diff --git a/.gitfox/lint.yaml b/.gitfox/lint.yaml index e234a424a7..318f4d8ff9 100644 --- a/.gitfox/lint.yaml +++ b/.gitfox/lint.yaml @@ -23,7 +23,7 @@ spec: container: image: hub.zentao.net/ci/git:2.45.2 script: - - git diff --name-only --diff-filter=d ${GITFOX_COMMIT_AFTER}${GITFOX_COMMIT_BEFORE} | tee .changes + - git diff --name-only --diff-filter=d ${GITFOX_COMMIT_AFTER} ${GITFOX_COMMIT_BEFORE} | tee .changes - | cat > sonar-project.properties <real; } $this->setPost('result', $results); - $this->setPost('reals', $reals); + $this->setPost('real', $reals); } $control->runCase($runID, $caseID, $version); diff --git a/ci.json b/ci.json index b33d55cf01..ee64caeac2 100644 --- a/ci.json +++ b/ci.json @@ -1,11 +1,18 @@ { "pkg": { "xuanxuan": { - "gitVersion": "383b4e4630ead6f25559cbe8bc0cbf1a01b71c26", + "gitVersion": "1672c352e2fb7bccaf94f30cf9341c7027c4ce89", "version": "9.3" }, "zentaoext": { - "gitRepo": "zentao/zentaoext" + "gitRepo": "zentao/zentaoext", + "gitVersion": "patch/11.7" + }, + "zentaomax": { + "gitVersion": "patch/6.7" + }, + "zentaoipd": { + "gitVersion": "patch/3.7" }, "devops": { "gitRepo": "zentao/devops" diff --git a/config/config.php b/config/config.php index bb4893e242..682acf0585 100644 --- a/config/config.php +++ b/config/config.php @@ -16,7 +16,7 @@ if(!class_exists('config')){class config{}} if(!function_exists('getWebRoot')){function getWebRoot(){}} /* 基本设置。Basic settings. */ -$config->version = '21.6'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it. +$config->version = '21.7'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it. $config->liteVersion = '1.2'; // 迅捷版版本。 The version of Lite. $config->charset = 'UTF-8'; // ZenTaoPHP的编码。 The encoding of ZenTaoPHP. $config->cookieLife = time() + 2592000; // Cookie的生存时间。The cookie life time. @@ -170,10 +170,9 @@ $config->allowedTags = '


      $config->accountRule = '|^[a-zA-Z0-9_]{1}[a-zA-Z0-9_\.]{1,}[a-zA-Z0-9_]{1}$|'; $config->checkVersion = true; // Auto check for new version or not. -/* Set the wide window size and timeout(ms) and duplicate interval time(s). */ +/* Set the wide window size and timeout(ms). */ $config->wideSize = 1400; $config->timeout = 30000; -$config->duplicateTime = 30; $config->maxCount = 500; $config->moreLinks = array(); diff --git a/config/zentaopms.php b/config/zentaopms.php index 1688b83fe3..59fb4f5016 100644 --- a/config/zentaopms.php +++ b/config/zentaopms.php @@ -429,6 +429,7 @@ define('TABLE_ACL', '`' . $config->db->prefix . 'acl`'); define('TABLE_DESIGN', '`' . $config->db->prefix . 'design`'); define('TABLE_DESIGNSPEC', '`' . $config->db->prefix . 'designspec`'); +define('TABLE_DELIVERABLE', '`' . $config->db->prefix . 'deliverable`'); define('TABLE_DOCLIB', '`' . $config->db->prefix . 'doclib`'); define('TABLE_DOC', '`' . $config->db->prefix . 'doc`'); define('TABLE_DOCBLOCK', '`' . $config->db->prefix . 'docblock`'); @@ -673,6 +674,7 @@ $config->objectTables['demand'] = TABLE_DEMAND; $config->objectTables['demandpool'] = TABLE_DEMANDPOOL; $config->objectTables['demandspec'] = TABLE_DEMANDSPEC; $config->objectTables['demandreview'] = TABLE_DEMANDREVIEW; +$config->objectTables['deliverable'] = TABLE_DELIVERABLE; $config->objectTables['todo'] = TABLE_TODO; $config->objectTables['custom'] = TABLE_LANG; $config->objectTables['branch'] = TABLE_BRANCH; diff --git a/db/standard/zentao21.6.1.sql b/db/standard/zentao21.6.1.sql new file mode 100644 index 0000000000..c540736dbf --- /dev/null +++ b/db/standard/zentao21.6.1.sql @@ -0,0 +1,4555 @@ +CREATE TABLE `im_chat` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `gid` char(40) NOT NULL DEFAULT '', + `name` varchar(60) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT 'group', + `admins` varchar(255) NOT NULL DEFAULT '', + `committers` varchar(255) NOT NULL DEFAULT '', + `subject` mediumint(8) unsigned NOT NULL DEFAULT 0, + `public` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `ownedBy` varchar(30) NOT NULL DEFAULT '', + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `mergedDate` datetime DEFAULT NULL, + `lastActiveTime` datetime DEFAULT NULL, + `lastMessage` int(11) unsigned NOT NULL DEFAULT 0, + `lastMessageIndex` int(11) unsigned NOT NULL DEFAULT 0, + `dismissDate` datetime DEFAULT NULL, + `pinnedMessages` text DEFAULT NULL, + `mergedChats` text DEFAULT NULL, + `adminInvite` enum('0','1') NOT NULL DEFAULT '0', + `avatar` text DEFAULT NULL, + `archiveDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `gid` (`gid`), + KEY `name` (`name`), + KEY `type` (`type`), + KEY `public` (`public`), + KEY `createdBy` (`createdBy`), + KEY `editedBy` (`editedBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `im_chat_message_index` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `gid` char(40) NOT NULL, + `tableName` char(64) NOT NULL, + `start` int(11) unsigned NOT NULL, + `end` int(11) unsigned NOT NULL, + `startIndex` int(11) unsigned NOT NULL, + `endIndex` int(11) unsigned NOT NULL, + `startDate` datetime DEFAULT NULL, + `endDate` datetime DEFAULT NULL, + `count` mediumint(8) unsigned NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `chattable` (`gid`,`tableName`), + KEY `start` (`start`), + KEY `end` (`end`), + KEY `startDate` (`startDate`), + KEY `endDate` (`endDate`), + KEY `chatstartindex` (`gid`,`startIndex`), + KEY `chatendindex` (`gid`,`endIndex`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `im_chatuser` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `cgid` char(40) NOT NULL DEFAULT '', + `user` mediumint(8) NOT NULL DEFAULT 0, + `order` smallint(5) NOT NULL DEFAULT 0, + `star` enum('0','1') NOT NULL DEFAULT '0', + `hide` enum('0','1') NOT NULL DEFAULT '0', + `mute` enum('0','1') NOT NULL DEFAULT '0', + `freeze` enum('0','1') NOT NULL DEFAULT '0', + `join` datetime DEFAULT NULL, + `quit` datetime DEFAULT NULL, + `category` varchar(40) NOT NULL DEFAULT '', + `lastReadMessage` int(11) unsigned NOT NULL DEFAULT 0, + `lastReadMessageIndex` int(11) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `chatuser` (`cgid`,`user`), + KEY `cgid` (`cgid`), + KEY `user` (`user`), + KEY `order` (`order`), + KEY `star` (`star`), + KEY `hide` (`hide`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `im_client` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `version` char(30) NOT NULL DEFAULT '', + `desc` varchar(100) NOT NULL DEFAULT '', + `changeLog` text DEFAULT NULL, + `strategy` varchar(10) NOT NULL DEFAULT '', + `downloads` text DEFAULT NULL, + `createdDate` datetime DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `status` enum('released','wait') NOT NULL DEFAULT 'wait', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `im_conference` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `rid` char(40) NOT NULL DEFAULT '', + `cgid` char(40) NOT NULL DEFAULT '', + `status` enum('closed','open','notStarted','canceled') NOT NULL DEFAULT 'closed', + `participants` text DEFAULT NULL, + `subscribers` text DEFAULT NULL, + `invitee` text DEFAULT NULL, + `openedBy` mediumint(8) NOT NULL DEFAULT 0, + `openedDate` datetime DEFAULT NULL, + `topic` text DEFAULT NULL, + `startTime` datetime DEFAULT NULL, + `endTime` datetime DEFAULT NULL, + `password` char(20) NOT NULL DEFAULT '', + `type` enum('default','periodic','scheduled') NOT NULL DEFAULT 'default', + `number` char(20) NOT NULL DEFAULT '', + `note` text DEFAULT NULL, + `sentNotify` tinyint(1) NOT NULL DEFAULT 0, + `reminderTime` int(11) NOT NULL DEFAULT 0, + `moderators` text DEFAULT NULL, + `isPrivate` enum('0','1') NOT NULL DEFAULT '0', + `isInner` enum('0','1') NOT NULL DEFAULT '1', + PRIMARY KEY (`id`), + KEY `status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `im_conferenceaction` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `rid` char(40) NOT NULL DEFAULT '', + `type` enum('create','invite','join','leave','close','publish') NOT NULL DEFAULT 'create', + `data` text DEFAULT NULL, + `user` mediumint(8) NOT NULL DEFAULT 0, + `date` datetime DEFAULT NULL, + `device` char(40) NOT NULL DEFAULT 'default', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `im_conferenceinvite` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `conferenceID` mediumint(8) unsigned NOT NULL, + `inviteeID` mediumint(8) unsigned NOT NULL, + `status` enum('pending','accepted','rejected') NOT NULL DEFAULT 'pending', + `createdDate` datetime DEFAULT NULL, + `updatedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `conference_user` (`conferenceID`,`inviteeID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `im_conferenceuser` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `conference` mediumint(8) NOT NULL DEFAULT 0, + `user` mediumint(8) NOT NULL DEFAULT 0, + `hide` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `conferenceuser` (`conference`,`user`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `im_message` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `gid` char(40) NOT NULL DEFAULT '', + `cgid` char(40) NOT NULL DEFAULT '', + `user` varchar(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `index` int(11) unsigned NOT NULL DEFAULT 0, + `type` enum('normal','broadcast','notify','bulletin','botcommand') NOT NULL DEFAULT 'normal', + `content` text DEFAULT NULL, + `contentType` enum('text','plain','emotion','image','file','object','code') NOT NULL DEFAULT 'text', + `data` text DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `legacy` tinyint(1) NOT NULL DEFAULT 0, + `uniqueIndex` int(11) GENERATED ALWAYS AS (case when `legacy` = 1 then NULL when `cgid` = 'notification' then NULL else `index` end) STORED, + PRIMARY KEY (`id`), + UNIQUE KEY `uniqueIndexInChat` (`cgid`,`uniqueIndex`), + KEY `mgid` (`gid`), + KEY `mcgid` (`cgid`), + KEY `muser` (`user`), + KEY `mtype` (`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `im_message_backup` ( + `id` int(11) unsigned NOT NULL, + `gid` char(40) NOT NULL DEFAULT '', + `cgid` char(40) NOT NULL DEFAULT '', + `user` varchar(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `index` int(11) unsigned NOT NULL DEFAULT 0, + `type` enum('normal','broadcast','notify') NOT NULL DEFAULT 'normal', + `content` text DEFAULT NULL, + `contentType` enum('text','plain','emotion','image','file','object','code') NOT NULL DEFAULT 'text', + `data` text DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `im_message_index` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `tableName` char(64) NOT NULL, + `start` int(11) unsigned NOT NULL, + `end` int(11) unsigned NOT NULL, + `startDate` datetime DEFAULT NULL, + `endDate` datetime DEFAULT NULL, + `chats` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `tableName` (`tableName`), + KEY `start` (`start`), + KEY `end` (`end`), + KEY `startDate` (`startDate`), + KEY `endDate` (`endDate`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `im_messagestatus` ( + `user` mediumint(8) NOT NULL DEFAULT 0, + `message` int(11) unsigned NOT NULL, + `status` enum('waiting','sent','readed','deleted') NOT NULL DEFAULT 'waiting', + UNIQUE KEY `user` (`user`,`message`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `im_queue` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` char(30) NOT NULL, + `content` text DEFAULT NULL, + `addDate` datetime DEFAULT NULL, + `processDate` datetime DEFAULT NULL, + `result` text DEFAULT NULL, + `status` char(30) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `im_userdevice` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `user` mediumint(8) NOT NULL DEFAULT 0, + `device` char(40) NOT NULL DEFAULT 'default', + `deviceID` char(40) NOT NULL DEFAULT '', + `token` char(64) NOT NULL DEFAULT '', + `validUntil` datetime DEFAULT NULL, + `lastLogin` datetime DEFAULT NULL, + `lastLogout` datetime DEFAULT NULL, + `online` tinyint(1) NOT NULL DEFAULT 0, + `version` char(10) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `userdevice` (`user`,`device`), + KEY `user` (`user`), + KEY `lastLogin` (`lastLogin`), + KEY `lastLogout` (`lastLogout`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_acl` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `type` char(40) NOT NULL DEFAULT 'whitelist', + `source` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_action` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` text DEFAULT NULL, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `actor` varchar(100) NOT NULL DEFAULT '', + `action` varchar(80) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `comment` text DEFAULT NULL, + `files` text DEFAULT NULL, + `extra` text DEFAULT NULL, + `read` enum('0','1') NOT NULL DEFAULT '0', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `efforted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `date` (`date`), + KEY `actor` (`actor`), + KEY `project` (`project`), + KEY `action` (`action`), + KEY `objectID` (`objectID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_actionrecent` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` text DEFAULT NULL, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `actor` varchar(100) NOT NULL DEFAULT '', + `action` varchar(80) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `comment` text DEFAULT NULL, + `files` text DEFAULT NULL, + `extra` text DEFAULT NULL, + `read` enum('0','1') NOT NULL DEFAULT '0', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `efforted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `date` (`date`), + KEY `actor` (`actor`), + KEY `project` (`project`), + KEY `action` (`action`), + KEY `objectID` (`objectID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_activity` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `process` mediumint(9) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `optional` varchar(255) NOT NULL DEFAULT '', + `tailorNorm` varchar(255) NOT NULL DEFAULT '', + `content` mediumtext DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `order` mediumint(8) DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ai_assistant` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(30) NOT NULL, + `modelId` mediumint(8) unsigned NOT NULL, + `desc` text NOT NULL, + `systemMessage` text NOT NULL, + `greetings` text NOT NULL, + `icon` varchar(30) NOT NULL DEFAULT 'coding-1', + `enabled` enum('0','1') NOT NULL DEFAULT '1', + `createdDate` datetime NOT NULL, + `publishedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ai_message` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `appID` mediumint(8) unsigned NOT NULL, + `user` mediumint(8) unsigned NOT NULL, + `type` enum('req','res','ntf') NOT NULL, + `content` text NOT NULL, + `createdDate` datetime NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ai_miniprogram` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(30) NOT NULL, + `category` varchar(30) NOT NULL, + `desc` text DEFAULT NULL, + `model` mediumint(8) unsigned DEFAULT NULL, + `icon` varchar(30) NOT NULL DEFAULT 'writinghand-7', + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL, + `editedDate` datetime NOT NULL, + `published` enum('0','1') NOT NULL DEFAULT '0', + `publishedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `prompt` text NOT NULL, + `builtIn` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ai_miniprogramfield` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `appID` mediumint(8) unsigned NOT NULL, + `name` varchar(30) NOT NULL, + `type` enum('radio','checkbox','text','textarea') DEFAULT 'text', + `placeholder` text DEFAULT NULL, + `options` text DEFAULT NULL, + `required` enum('0','1') DEFAULT '1', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ai_miniprogramstar` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `appID` mediumint(8) unsigned NOT NULL, + `userID` mediumint(8) unsigned NOT NULL, + `createdDate` datetime NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `appID` (`appID`,`userID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ai_model` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(20) NOT NULL, + `vendor` varchar(20) NOT NULL, + `credentials` text NOT NULL, + `proxy` text DEFAULT NULL, + `name` varchar(20) DEFAULT NULL, + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) DEFAULT NULL, + `editedDate` datetime DEFAULT NULL, + `enabled` enum('0','1') NOT NULL DEFAULT '1', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ai_prompt` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(20) NOT NULL, + `desc` text DEFAULT NULL, + `model` mediumint(8) unsigned DEFAULT NULL, + `module` varchar(30) DEFAULT NULL, + `source` text DEFAULT NULL, + `targetForm` varchar(30) DEFAULT NULL, + `purpose` text DEFAULT NULL, + `elaboration` text DEFAULT NULL, + `role` text DEFAULT NULL, + `characterization` text DEFAULT NULL, + `status` enum('draft','active') NOT NULL DEFAULT 'draft', + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) DEFAULT NULL, + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ai_promptrole` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(30) DEFAULT NULL, + `desc` text DEFAULT NULL, + `model` mediumint(8) unsigned DEFAULT NULL, + `role` text DEFAULT NULL, + `characterization` text DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_api` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `product` varchar(255) NOT NULL DEFAULT '', + `lib` int(11) unsigned NOT NULL DEFAULT 0, + `module` int(11) unsigned NOT NULL DEFAULT 0, + `title` varchar(100) NOT NULL DEFAULT '', + `path` varchar(255) NOT NULL DEFAULT '', + `protocol` varchar(10) NOT NULL DEFAULT '', + `method` varchar(10) NOT NULL DEFAULT '', + `requestType` varchar(100) NOT NULL DEFAULT '', + `responseType` varchar(100) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '0', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `params` text DEFAULT NULL, + `paramsExample` text DEFAULT NULL, + `responseExample` text DEFAULT NULL, + `response` text DEFAULT NULL, + `commonParams` text DEFAULT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_api_lib_release` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `lib` int(11) unsigned NOT NULL DEFAULT 0, + `desc` varchar(255) NOT NULL DEFAULT '', + `version` varchar(255) NOT NULL DEFAULT '', + `snap` mediumtext DEFAULT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_apispec` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `doc` int(11) unsigned NOT NULL DEFAULT 0, + `module` int(11) unsigned NOT NULL DEFAULT 0, + `title` varchar(100) NOT NULL DEFAULT '', + `path` varchar(255) NOT NULL DEFAULT '', + `protocol` varchar(10) NOT NULL DEFAULT '', + `method` varchar(10) NOT NULL DEFAULT '', + `requestType` varchar(100) NOT NULL DEFAULT '', + `responseType` varchar(100) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT '', + `owner` varchar(255) NOT NULL DEFAULT '0', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `params` text DEFAULT NULL, + `paramsExample` text DEFAULT NULL, + `responseExample` text DEFAULT NULL, + `response` text DEFAULT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_apistruct` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `lib` int(11) unsigned NOT NULL DEFAULT 0, + `name` varchar(30) NOT NULL DEFAULT '', + `type` varchar(50) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `attribute` text DEFAULT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_apistruct_spec` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(50) NOT NULL DEFAULT '', + `desc` varchar(255) NOT NULL DEFAULT '', + `attribute` text DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_approval` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `flow` mediumint(8) NOT NULL DEFAULT 0, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `nodes` mediumtext DEFAULT NULL, + `version` mediumint(9) NOT NULL DEFAULT 0, + `status` varchar(20) NOT NULL DEFAULT 'doing', + `result` varchar(20) NOT NULL DEFAULT '', + `extra` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_approvalflow` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `code` varchar(100) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `version` mediumint(8) NOT NULL DEFAULT 1, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `workflow` varchar(30) NOT NULL DEFAULT '', + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_approvalflowobject` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `root` int(8) NOT NULL DEFAULT 0, + `flow` int(8) NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `extra` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_approvalflowspec` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `flow` mediumint(8) NOT NULL DEFAULT 0, + `version` mediumint(8) NOT NULL DEFAULT 0, + `nodes` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_approvalnode` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `approval` mediumint(8) NOT NULL DEFAULT 0, + `type` enum('review','cc') NOT NULL DEFAULT 'review', + `title` varchar(255) NOT NULL DEFAULT '', + `account` char(30) NOT NULL DEFAULT '', + `node` varchar(100) NOT NULL DEFAULT '', + `reviewType` varchar(100) NOT NULL DEFAULT 'manual', + `agentType` varchar(100) NOT NULL DEFAULT 'pass', + `multipleType` enum('and','or') NOT NULL DEFAULT 'and', + `percent` smallint(6) NOT NULL DEFAULT 0, + `needAll` enum('0','1') NOT NULL DEFAULT '0', + `solicit` enum('0','1') NOT NULL DEFAULT '0', + `prev` mediumtext DEFAULT NULL, + `next` mediumtext DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT 'wait', + `result` varchar(10) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + `opinion` mediumtext DEFAULT NULL, + `extra` mediumtext DEFAULT NULL, + `revertTo` char(30) NOT NULL DEFAULT '', + `forwardBy` char(30) NOT NULL DEFAULT '', + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_reviewed_date` (`reviewedDate`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_approvalobject` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `approval` int(8) NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) NOT NULL DEFAULT 0, + `reviewers` text DEFAULT NULL, + `opinion` text DEFAULT NULL, + `result` varchar(10) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `appliedBy` char(30) NOT NULL DEFAULT '', + `appliedDate` datetime DEFAULT NULL, + `desc` text DEFAULT NULL, + `extra` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_approvalrole` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `code` char(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `users` longtext DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_artifactrepo` ( + `id` smallint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(45) NOT NULL DEFAULT '', + `products` varchar(255) NOT NULL DEFAULT '', + `serverID` smallint(8) NOT NULL DEFAULT 0, + `repoName` varchar(45) NOT NULL DEFAULT '', + `format` varchar(10) NOT NULL DEFAULT '', + `type` char(7) NOT NULL DEFAULT '', + `status` varchar(10) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` tinyint(4) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_assetlib` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_attend` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + `signIn` time DEFAULT NULL, + `signOut` time DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `ip` varchar(100) NOT NULL DEFAULT '', + `device` varchar(30) NOT NULL DEFAULT '', + `client` varchar(20) NOT NULL DEFAULT '', + `manualIn` time DEFAULT NULL, + `manualOut` time DEFAULT NULL, + `reason` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `reviewStatus` varchar(30) DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `attend` (`date`,`account`), + KEY `account` (`account`), + KEY `date` (`date`), + KEY `status` (`status`), + KEY `reason` (`reason`), + KEY `reviewStatus` (`reviewStatus`), + KEY `reviewedBy` (`reviewedBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_attendstat` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `month` char(10) NOT NULL DEFAULT '', + `normal` decimal(12,2) NOT NULL DEFAULT 0.00, + `late` decimal(12,2) NOT NULL DEFAULT 0.00, + `early` decimal(12,2) NOT NULL DEFAULT 0.00, + `absent` decimal(12,2) NOT NULL DEFAULT 0.00, + `trip` decimal(12,2) NOT NULL DEFAULT 0.00, + `egress` decimal(12,2) NOT NULL DEFAULT 0.00, + `lieu` decimal(12,2) NOT NULL DEFAULT 0.00, + `paidLeave` decimal(12,2) NOT NULL DEFAULT 0.00, + `unpaidLeave` decimal(12,2) NOT NULL DEFAULT 0.00, + `timeOvertime` decimal(12,2) NOT NULL DEFAULT 0.00, + `restOvertime` decimal(12,2) NOT NULL DEFAULT 0.00, + `holidayOvertime` decimal(12,2) NOT NULL DEFAULT 0.00, + `deserve` decimal(12,2) NOT NULL DEFAULT 0.00, + `actual` decimal(12,2) NOT NULL DEFAULT 0.00, + `status` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `attend` (`month`,`account`), + KEY `account` (`account`), + KEY `month` (`month`), + KEY `status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_auditcl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `model` char(30) NOT NULL DEFAULT 'waterfall', + `practiceArea` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` int(11) NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_auditplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `dateType` char(30) NOT NULL DEFAULT '', + `config` text DEFAULT NULL, + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `process` mediumint(9) NOT NULL DEFAULT 0, + `processType` char(30) NOT NULL DEFAULT '', + `checkDate` date DEFAULT NULL, + `checkedBy` varchar(30) NOT NULL DEFAULT '', + `realCheckDate` date DEFAULT NULL, + `result` char(30) NOT NULL DEFAULT '', + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `checkBy` varchar(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_auditresult` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `auditplan` mediumint(8) NOT NULL DEFAULT 0, + `listID` mediumint(8) NOT NULL DEFAULT 0, + `result` char(30) NOT NULL DEFAULT '', + `checkedBy` varchar(30) NOT NULL DEFAULT '', + `checkedDate` date DEFAULT NULL, + `comment` text DEFAULT NULL, + `severity` char(30) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_autocache` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `code` varchar(30) NOT NULL DEFAULT '', + `fields` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `cache` (`code`,`fields`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_automation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `node` int(11) unsigned NOT NULL DEFAULT 0, + `product` int(11) unsigned NOT NULL DEFAULT 0, + `scriptPath` varchar(255) NOT NULL DEFAULT '', + `shell` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_basicmeas` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `purpose` varchar(50) NOT NULL DEFAULT '', + `scope` char(30) NOT NULL DEFAULT '', + `object` char(30) NOT NULL DEFAULT '', + `name` varchar(90) NOT NULL DEFAULT '', + `code` char(30) NOT NULL DEFAULT '', + `unit` varchar(100) NOT NULL DEFAULT '', + `configure` text DEFAULT NULL, + `params` text DEFAULT NULL, + `definition` text DEFAULT NULL, + `source` varchar(255) NOT NULL DEFAULT '', + `collectType` varchar(30) NOT NULL DEFAULT '', + `collectConf` text DEFAULT NULL, + `execTime` varchar(30) NOT NULL DEFAULT '', + `collectedBy` varchar(10) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_block` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `dashboard` varchar(20) NOT NULL DEFAULT '', + `module` varchar(20) NOT NULL DEFAULT '', + `title` varchar(100) NOT NULL DEFAULT '', + `block` varchar(30) NOT NULL DEFAULT '', + `code` varchar(30) NOT NULL DEFAULT '', + `width` enum('1','2','3') NOT NULL DEFAULT '1', + `height` smallint(6) unsigned NOT NULL DEFAULT 3, + `left` enum('0','1','2') NOT NULL DEFAULT '0', + `top` smallint(5) unsigned NOT NULL DEFAULT 0, + `params` text DEFAULT NULL, + `hidden` tinyint(1) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_branch` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `default` enum('0','1') NOT NULL DEFAULT '0', + `status` enum('active','closed') NOT NULL DEFAULT 'active', + `desc` varchar(255) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `closedDate` date DEFAULT NULL, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_budget` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `stage` char(30) NOT NULL DEFAULT '', + `subject` mediumint(8) NOT NULL DEFAULT 0, + `amount` char(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_bug` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `injection` mediumint(8) unsigned NOT NULL DEFAULT 0, + `identify` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `plan` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `toTask` mediumint(8) unsigned NOT NULL DEFAULT 0, + `toStory` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `keywords` varchar(255) NOT NULL DEFAULT '', + `severity` tinyint(4) NOT NULL DEFAULT 0, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `type` varchar(30) NOT NULL DEFAULT '', + `os` varchar(255) NOT NULL DEFAULT '', + `browser` varchar(255) NOT NULL DEFAULT '', + `hardware` varchar(30) NOT NULL DEFAULT '', + `found` varchar(30) NOT NULL DEFAULT '', + `steps` mediumtext DEFAULT NULL, + `status` enum('active','resolved','closed') NOT NULL DEFAULT 'active', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `confirmed` tinyint(1) NOT NULL DEFAULT 0, + `activatedCount` smallint(6) NOT NULL DEFAULT 0, + `activatedDate` datetime DEFAULT NULL, + `feedbackBy` varchar(100) NOT NULL DEFAULT '', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', + `mailto` text DEFAULT NULL, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `openedBuild` varchar(255) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deadline` date DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolution` varchar(30) NOT NULL DEFAULT '', + `resolvedBuild` varchar(30) NOT NULL DEFAULT '', + `resolvedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `duplicateBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `relatedBug` varchar(255) NOT NULL DEFAULT '', + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `caseVersion` smallint(6) NOT NULL DEFAULT 1, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT 0, + `result` mediumint(8) unsigned NOT NULL DEFAULT 0, + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `mr` mediumint(8) unsigned NOT NULL DEFAULT 0, + `entry` text DEFAULT NULL, + `lines` varchar(10) NOT NULL DEFAULT '', + `v1` varchar(255) NOT NULL DEFAULT '', + `v2` varchar(255) NOT NULL DEFAULT '', + `repoType` varchar(30) NOT NULL DEFAULT '', + `issueKey` varchar(50) NOT NULL DEFAULT '', + `testtask` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`), + KEY `status` (`status`), + KEY `plan` (`plan`), + KEY `story` (`story`), + KEY `case` (`case`), + KEY `toStory` (`toStory`), + KEY `result` (`result`), + KEY `assignedTo` (`assignedTo`), + KEY `deleted` (`deleted`), + KEY `project` (`project`), + KEY `product_status_deleted` (`product`,`status`,`deleted`), + KEY `idx_repo` (`repo`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_build` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` varchar(255) NOT NULL DEFAULT '0', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `builds` varchar(255) NOT NULL DEFAULT '', + `name` char(150) NOT NULL DEFAULT '', + `system` mediumint(8) unsigned NOT NULL DEFAULT 0, + `scmPath` char(255) NOT NULL DEFAULT '', + `filePath` char(255) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + `stories` text DEFAULT NULL, + `bugs` text DEFAULT NULL, + `artifactRepoID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `builder` char(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`), + KEY `idx_system` (`system`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_burn` ( + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `date` date NOT NULL, + `estimate` float NOT NULL DEFAULT 0, + `left` float NOT NULL DEFAULT 0, + `consumed` float NOT NULL DEFAULT 0, + `storyPoint` float NOT NULL DEFAULT 0, + UNIQUE KEY `execution_task` (`execution`,`date`,`task`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_case` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(30) unsigned NOT NULL DEFAULT 0, + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `title` varchar(255) NOT NULL DEFAULT '', + `precondition` text DEFAULT NULL, + `keywords` varchar(255) NOT NULL DEFAULT '', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 3, + `type` char(30) NOT NULL DEFAULT '1', + `auto` varchar(10) NOT NULL DEFAULT 'no', + `frame` varchar(10) NOT NULL DEFAULT '', + `stage` varchar(255) NOT NULL DEFAULT '', + `howRun` varchar(30) NOT NULL DEFAULT '', + `script` longtext DEFAULT NULL, + `scriptedBy` varchar(30) NOT NULL DEFAULT '', + `scriptedDate` date DEFAULT NULL, + `scriptStatus` varchar(30) NOT NULL DEFAULT '', + `scriptLocation` varchar(255) NOT NULL DEFAULT '', + `status` char(30) NOT NULL DEFAULT '1', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `frequency` enum('1','2','3') NOT NULL DEFAULT '1', + `order` tinyint(30) unsigned NOT NULL DEFAULT 0, + `openedBy` char(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedDate` date DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `version` tinyint(3) unsigned NOT NULL DEFAULT 0, + `linkCase` varchar(255) NOT NULL DEFAULT '', + `fromBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromCaseID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromCaseVersion` mediumint(8) unsigned NOT NULL DEFAULT 1, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `lastRunner` varchar(30) NOT NULL DEFAULT '', + `lastRunDate` datetime DEFAULT NULL, + `lastRunResult` char(30) NOT NULL DEFAULT '', + `scene` int(11) NOT NULL DEFAULT 0, + `sort` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `story` (`story`), + KEY `fromBug` (`fromBug`), + KEY `module` (`module`), + KEY `scene` (`scene`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_casespec` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `case` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `precondition` text DEFAULT NULL, + `files` text DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `case` (`case`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_casestep` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `type` varchar(10) NOT NULL DEFAULT 'step', + `desc` text DEFAULT NULL, + `expect` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `case` (`case`), + KEY `version` (`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_cfd` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `execution` int(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `name` char(30) NOT NULL DEFAULT '', + `count` smallint(6) NOT NULL DEFAULT 0, + `date` date DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `execution_type_name_date` (`execution`,`type`,`name`,`date`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_chart` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `code` varchar(255) NOT NULL DEFAULT '', + `driver` enum('mysql','duckdb') NOT NULL DEFAULT 'mysql', + `mode` enum('text','builder') NOT NULL DEFAULT 'builder', + `dimension` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` varchar(30) NOT NULL DEFAULT '', + `group` varchar(255) NOT NULL DEFAULT '', + `dataset` varchar(30) NOT NULL DEFAULT '0', + `desc` text DEFAULT NULL, + `acl` enum('open','private') NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `settings` mediumtext DEFAULT NULL, + `filters` mediumtext DEFAULT NULL, + `step` tinyint(3) unsigned NOT NULL DEFAULT 0, + `fields` mediumtext DEFAULT NULL, + `langs` text DEFAULT NULL, + `sql` mediumtext DEFAULT NULL, + `version` varchar(10) NOT NULL DEFAULT '1', + `stage` enum('draft','published') NOT NULL DEFAULT 'draft', + `builtin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `objects` mediumtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_charter` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `level` varchar(255) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `market` varchar(30) NOT NULL DEFAULT '', + `check` enum('0','1') NOT NULL DEFAULT '0', + `appliedBy` char(30) NOT NULL DEFAULT '', + `appliedDate` datetime DEFAULT NULL, + `appliedReviewer` text DEFAULT NULL, + `budget` char(30) NOT NULL DEFAULT '', + `budgetUnit` char(30) NOT NULL DEFAULT '', + `product` text DEFAULT NULL, + `roadmap` text DEFAULT NULL, + `plan` text DEFAULT NULL, + `type` varchar(30) NOT NULL DEFAULT 'roadmap', + `filesConfig` text DEFAULT NULL, + `spec` mediumtext DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `charterFiles` text DEFAULT NULL, + `completionFiles` text DEFAULT NULL, + `canceledFiles` text DEFAULT NULL, + `prevCanceledStatus` varchar(30) NOT NULL DEFAULT '', + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(255) NOT NULL DEFAULT '', + `activatedBy` char(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `activatedReviewer` text DEFAULT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedResult` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `reviewStatus` varchar(30) NOT NULL DEFAULT 'wait', + `completedBy` varchar(30) NOT NULL DEFAULT '', + `completedDate` datetime DEFAULT NULL, + `completedReviewer` text DEFAULT NULL, + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime DEFAULT NULL, + `canceledReviewer` text DEFAULT NULL, + `meetingDate` date DEFAULT NULL, + `meetingLocation` varchar(255) NOT NULL DEFAULT '', + `meetingMinutes` mediumtext DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_charterproduct` ( + `charter` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `plan` varchar(255) NOT NULL DEFAULT '', + `roadmap` varchar(255) NOT NULL DEFAULT '', + UNIQUE KEY `charter_product` (`charter`,`product`,`branch`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_cmcl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` char(30) NOT NULL DEFAULT '', + `projectType` varchar(255) NOT NULL DEFAULT '', + `title` int(11) NOT NULL DEFAULT 0, + `contents` text DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `order` int(11) NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_company` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(120) DEFAULT NULL, + `phone` char(20) DEFAULT NULL, + `fax` char(20) DEFAULT NULL, + `address` char(120) DEFAULT NULL, + `zipcode` char(10) DEFAULT NULL, + `website` char(120) DEFAULT NULL, + `backyard` char(120) DEFAULT NULL, + `guest` enum('1','0') NOT NULL DEFAULT '0', + `admins` char(255) DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_compile` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL DEFAULT '', + `job` mediumint(8) unsigned NOT NULL DEFAULT 0, + `queue` mediumint(8) NOT NULL DEFAULT 0, + `status` varchar(100) NOT NULL DEFAULT '', + `logs` longtext DEFAULT NULL, + `atTime` varchar(10) NOT NULL DEFAULT '', + `testtask` mediumint(8) unsigned NOT NULL DEFAULT 0, + `tag` varchar(255) NOT NULL DEFAULT '', + `times` tinyint(3) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `updateDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `idx_created_status` (`createdDate`,`status`,`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_config` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `vision` varchar(10) NOT NULL DEFAULT '', + `owner` char(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `section` char(30) NOT NULL DEFAULT '', + `key` char(30) NOT NULL DEFAULT '', + `value` longtext DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`vision`,`owner`,`module`,`section`,`key`), + KEY `vision` (`vision`), + KEY `owner` (`owner`), + KEY `module` (`module`), + KEY `key` (`key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_cron` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `m` varchar(20) NOT NULL DEFAULT '', + `h` varchar(20) NOT NULL DEFAULT '', + `dom` varchar(20) NOT NULL DEFAULT '', + `mon` varchar(20) NOT NULL DEFAULT '', + `dow` varchar(20) NOT NULL DEFAULT '', + `command` text DEFAULT NULL, + `remark` varchar(255) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT '', + `buildin` tinyint(1) NOT NULL DEFAULT 0, + `status` varchar(20) NOT NULL DEFAULT '', + `lastTime` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `lastTime` (`lastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_dashboard` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `dimension` int(8) NOT NULL DEFAULT 0, + `module` mediumint(8) NOT NULL DEFAULT 0, + `desc` mediumtext DEFAULT NULL, + `layout` mediumtext DEFAULT NULL, + `filters` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_dataset` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(155) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `fields` mediumtext DEFAULT NULL, + `objects` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_dataview` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(155) NOT NULL DEFAULT '', + `code` varchar(50) NOT NULL DEFAULT '', + `mode` varchar(50) NOT NULL DEFAULT 'builder', + `driver` enum('mysql','duckdb') NOT NULL DEFAULT 'mysql', + `view` varchar(57) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `fields` text DEFAULT NULL, + `langs` text DEFAULT NULL, + `objects` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_demand` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `pool` int(8) NOT NULL DEFAULT 0, + `module` int(8) NOT NULL DEFAULT 0, + `product` varchar(255) NOT NULL DEFAULT '', + `parent` mediumint(8) NOT NULL DEFAULT 0, + `pri` char(30) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `source` char(30) NOT NULL DEFAULT '', + `sourceNote` varchar(255) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `feedbackedBy` varchar(255) NOT NULL DEFAULT '', + `email` varchar(255) NOT NULL DEFAULT '', + `assignedTo` char(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `reviewedBy` text DEFAULT NULL, + `reviewedDate` datetime DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + `stage` enum('wait','distributed','inroadmap','incharter','developing','delivering','delivered','closed') NOT NULL DEFAULT 'wait', + `duration` char(30) NOT NULL DEFAULT '', + `BSA` char(30) NOT NULL DEFAULT '', + `story` mediumint(8) NOT NULL DEFAULT 0, + `roadmap` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `mailto` text DEFAULT NULL, + `duplicateDemand` mediumint(8) DEFAULT NULL, + `childDemands` varchar(255) NOT NULL DEFAULT '', + `version` varchar(255) NOT NULL DEFAULT '', + `parentVersion` smallint(6) NOT NULL DEFAULT 0, + `vision` varchar(255) NOT NULL DEFAULT 'or', + `color` varchar(255) NOT NULL DEFAULT '', + `changedBy` char(30) NOT NULL DEFAULT '', + `changedDate` datetime DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `submitedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `activatedDate` datetime DEFAULT NULL, + `distributedBy` varchar(30) NOT NULL DEFAULT '', + `distributedDate` datetime DEFAULT NULL, + `feedback` mediumint(9) NOT NULL DEFAULT 0, + `keywords` varchar(255) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_demandpool` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + `products` varchar(255) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `owner` text DEFAULT NULL, + `reviewer` text DEFAULT NULL, + `acl` char(30) DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_demandreview` ( + `demand` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `reviewer` varchar(30) NOT NULL DEFAULT '', + `result` varchar(30) NOT NULL DEFAULT '', + `reviewDate` datetime DEFAULT NULL, + UNIQUE KEY `demand` (`demand`,`version`,`reviewer`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_demandspec` ( + `demand` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `spec` mediumtext DEFAULT NULL, + `verify` mediumtext DEFAULT NULL, + `files` text DEFAULT NULL, + UNIQUE KEY `demand` (`demand`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_deploy` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `begin` datetime DEFAULT NULL, + `end` datetime DEFAULT NULL, + `estimate` datetime DEFAULT NULL, + `name` varchar(255) NOT NULL DEFAULT '', + `host` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT '', + `owner` char(30) NOT NULL DEFAULT '', + `members` text DEFAULT NULL, + `notify` text DEFAULT NULL, + `cases` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `result` varchar(20) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_deployproduct` ( + `deploy` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `release` mediumint(8) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `deploy_product_release` (`deploy`,`product`,`release`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_deploystep` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `deploy` mediumint(8) unsigned NOT NULL DEFAULT 0, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `stage` varchar(30) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `assignedTo` char(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `finishedBy` char(30) NOT NULL DEFAULT '', + `finishedDate` datetime DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_dept` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(60) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + `position` char(30) NOT NULL DEFAULT '', + `function` char(255) NOT NULL DEFAULT '', + `manager` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `parent` (`parent`), + KEY `path` (`path`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_design` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` varchar(255) NOT NULL DEFAULT '', + `product` varchar(255) NOT NULL DEFAULT '', + `commit` text DEFAULT NULL, + `commitedBy` varchar(30) NOT NULL DEFAULT '', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `story` char(30) NOT NULL DEFAULT '', + `storyVersion` smallint(6) unsigned NOT NULL DEFAULT 1, + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_designspec` ( + `design` mediumint(8) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `files` varchar(255) NOT NULL DEFAULT '', + UNIQUE KEY `design` (`design`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_dimension` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(90) NOT NULL DEFAULT '', + `code` varchar(45) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `acl` enum('open','private') NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_doc` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lib` varchar(30) NOT NULL DEFAULT '', + `template` varchar(30) NOT NULL DEFAULT '', + `templateType` varchar(30) NOT NULL DEFAULT '', + `chapterType` varchar(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `keywords` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'normal', + `parent` smallint(6) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + `views` smallint(6) unsigned NOT NULL DEFAULT 0, + `assetLib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `assetLibType` varchar(30) NOT NULL DEFAULT '', + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromVersion` smallint(6) NOT NULL DEFAULT 1, + `draft` longtext DEFAULT NULL, + `collects` smallint(6) unsigned NOT NULL DEFAULT 0, + `addedBy` varchar(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `editingDate` text DEFAULT NULL, + `editedList` text DEFAULT NULL, + `mailto` text DEFAULT NULL, + `acl` varchar(10) NOT NULL DEFAULT 'open', + `groups` varchar(255) NOT NULL DEFAULT '', + `users` text DEFAULT NULL, + `readGroups` varchar(255) NOT NULL DEFAULT '', + `readUsers` text DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 1, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`), + KEY `lib` (`lib`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_docaction` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `doc` mediumint(8) unsigned NOT NULL DEFAULT 0, + `action` varchar(80) NOT NULL DEFAULT '', + `actor` char(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `doc` (`doc`), + KEY `actor` (`actor`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_docblock` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `doc` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` varchar(50) NOT NULL DEFAULT '', + `settings` text DEFAULT NULL, + `content` mediumtext DEFAULT NULL, + `extra` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_doc` (`doc`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_doccontent` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `doc` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `digest` varchar(255) NOT NULL DEFAULT '', + `content` longtext DEFAULT NULL, + `rawContent` longtext DEFAULT NULL, + `files` text DEFAULT NULL, + `type` varchar(10) NOT NULL DEFAULT '', + `addedBy` varchar(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `fromVersion` smallint(6) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `doc_version` (`doc`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_doclib` ( + `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(30) NOT NULL DEFAULT '', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(60) NOT NULL DEFAULT '', + `baseUrl` varchar(255) NOT NULL DEFAULT '', + `acl` varchar(10) NOT NULL DEFAULT 'open', + `groups` varchar(255) NOT NULL DEFAULT '', + `users` text DEFAULT NULL, + `main` enum('0','1') NOT NULL DEFAULT '0', + `collector` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `order` tinyint(5) unsigned NOT NULL DEFAULT 0, + `addedBy` varchar(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `archived` enum('0','1') NOT NULL DEFAULT '0', + `orderBy` varchar(30) NOT NULL DEFAULT 'id_asc', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_duckdbqueue` ( + `object` varchar(255) NOT NULL DEFAULT '', + `updatedTime` datetime DEFAULT NULL, + `syncTime` datetime DEFAULT NULL, + UNIQUE KEY `object` (`object`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_durationestimation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `stage` mediumint(9) NOT NULL DEFAULT 0, + `workload` varchar(255) NOT NULL DEFAULT '', + `worktimeRate` varchar(255) NOT NULL DEFAULT '', + `people` varchar(255) NOT NULL DEFAULT '', + `startDate` date DEFAULT NULL, + `endDate` date DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_effort` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` text DEFAULT NULL, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` varchar(30) NOT NULL DEFAULT '', + `work` text DEFAULT NULL, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `date` date DEFAULT NULL, + `left` float NOT NULL DEFAULT 0, + `consumed` float NOT NULL DEFAULT 0, + `begin` smallint(4) unsigned zerofill NOT NULL DEFAULT 0000, + `end` smallint(4) unsigned zerofill NOT NULL DEFAULT 0000, + `extra` text DEFAULT NULL, + `order` tinyint(3) unsigned NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `execution` (`execution`), + KEY `objectID` (`objectID`), + KEY `date` (`date`), + KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_entry` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL DEFAULT '', + `account` varchar(30) NOT NULL DEFAULT '', + `code` varchar(20) NOT NULL DEFAULT '', + `key` varchar(32) NOT NULL DEFAULT '', + `freePasswd` enum('0','1') NOT NULL DEFAULT '0', + `ip` varchar(100) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `calledTime` int(11) unsigned NOT NULL DEFAULT 0, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_expect` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `userID` mediumint(8) NOT NULL DEFAULT 0, + `project` mediumint(8) NOT NULL DEFAULT 0, + `expect` text DEFAULT NULL, + `progress` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_extension` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(150) NOT NULL DEFAULT '', + `code` varchar(30) NOT NULL DEFAULT '', + `version` varchar(50) NOT NULL DEFAULT '', + `author` varchar(100) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `license` text DEFAULT NULL, + `type` varchar(20) NOT NULL DEFAULT 'extension', + `site` varchar(150) NOT NULL DEFAULT '', + `zentaoCompatible` text DEFAULT NULL, + `installedTime` datetime DEFAULT NULL, + `depends` varchar(100) NOT NULL DEFAULT '', + `dirs` mediumtext DEFAULT NULL, + `files` mediumtext DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`), + KEY `name` (`name`), + KEY `installedTime` (`installedTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_extuser` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `code` varchar(255) NOT NULL, + `account` char(30) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_faq` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `module` mediumint(9) NOT NULL DEFAULT 0, + `product` mediumint(9) NOT NULL DEFAULT 0, + `question` varchar(255) NOT NULL DEFAULT '', + `answer` text DEFAULT NULL, + `addedtime` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_feedback` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `solution` char(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 2, + `status` varchar(30) NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `prevStatus` varchar(30) NOT NULL DEFAULT '', + `public` enum('0','1') NOT NULL DEFAULT '0', + `notify` enum('0','1') NOT NULL DEFAULT '0', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', + `source` varchar(255) NOT NULL DEFAULT '', + `likes` text DEFAULT NULL, + `result` mediumint(8) unsigned NOT NULL DEFAULT 0, + `faq` mediumint(8) unsigned NOT NULL DEFAULT 0, + `openedBy` char(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `processedBy` char(30) NOT NULL DEFAULT '', + `processedDate` datetime DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedTo` varchar(255) NOT NULL DEFAULT '', + `prevAssignedTo` varchar(255) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `activatedBy` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `feedbackBy` varchar(100) NOT NULL DEFAULT '', + `repeatFeedback` mediumint(8) NOT NULL DEFAULT 0, + `mailto` varchar(255) NOT NULL DEFAULT '', + `keywords` varchar(255) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_feedbackview` ( + `account` char(30) NOT NULL DEFAULT '', + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `account_product` (`account`,`product`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_file` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `pathname` char(100) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `extension` char(30) NOT NULL DEFAULT '', + `size` int(11) unsigned NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `gid` char(48) NOT NULL DEFAULT '', + `addedBy` char(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `downloads` mediumint(8) unsigned NOT NULL DEFAULT 0, + `extra` varchar(255) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `objectType` (`objectType`), + KEY `objectID` (`objectID`), + KEY `gid` (`gid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_gapanalysis` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` varchar(30) NOT NULL DEFAULT '', + `role` varchar(20) NOT NULL DEFAULT '', + `analysis` mediumtext DEFAULT NULL, + `needTrain` enum('no','yes') NOT NULL DEFAULT 'no', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `project_account` (`project`,`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_group` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `name` char(30) NOT NULL DEFAULT '', + `role` char(30) NOT NULL DEFAULT '', + `desc` char(255) NOT NULL DEFAULT '', + `acl` text DEFAULT NULL, + `developer` enum('0','1') NOT NULL DEFAULT '1', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_grouppriv` ( + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` char(30) NOT NULL DEFAULT '', + `method` char(30) NOT NULL DEFAULT '', + UNIQUE KEY `group` (`group`,`module`,`method`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_history` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `action` mediumint(8) unsigned NOT NULL DEFAULT 0, + `field` varchar(30) NOT NULL DEFAULT '', + `old` text DEFAULT NULL, + `oldValue` text DEFAULT NULL, + `new` text DEFAULT NULL, + `newValue` text DEFAULT NULL, + `diff` mediumtext DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `action` (`action`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_holiday` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(30) NOT NULL DEFAULT '', + `type` enum('holiday','working') NOT NULL DEFAULT 'holiday', + `desc` text DEFAULT NULL, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_host` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT 'normal', + `hostType` varchar(30) NOT NULL DEFAULT '', + `mac` varchar(128) NOT NULL DEFAULT '', + `memory` varchar(30) NOT NULL DEFAULT '', + `diskSize` varchar(30) NOT NULL DEFAULT '', + `status` varchar(50) NOT NULL DEFAULT '', + `secret` varchar(50) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `tokenSN` varchar(50) NOT NULL DEFAULT '', + `tokenTime` datetime DEFAULT NULL, + `oldTokenSN` varchar(50) NOT NULL DEFAULT '', + `vsoft` varchar(30) NOT NULL DEFAULT '', + `heartbeat` datetime DEFAULT NULL, + `zap` varchar(10) NOT NULL DEFAULT '', + `vnc` int(11) NOT NULL DEFAULT 0, + `ztf` int(11) NOT NULL DEFAULT 0, + `zd` int(11) NOT NULL DEFAULT 0, + `ssh` int(11) NOT NULL DEFAULT 0, + `parent` int(11) unsigned NOT NULL DEFAULT 0, + `image` int(11) unsigned NOT NULL DEFAULT 0, + `admin` smallint(5) unsigned NOT NULL DEFAULT 0, + `serverRoom` mediumint(8) unsigned NOT NULL DEFAULT 0, + `cpuNumber` varchar(16) NOT NULL DEFAULT '', + `cpuCores` varchar(30) NOT NULL DEFAULT '', + `intranet` varchar(128) NOT NULL DEFAULT '', + `extranet` varchar(128) NOT NULL DEFAULT '', + `osName` varchar(64) NOT NULL DEFAULT '', + `osVersion` varchar(64) NOT NULL DEFAULT '', + `group` varchar(128) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_image` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `host` int(11) unsigned NOT NULL DEFAULT 0, + `name` varchar(64) NOT NULL DEFAULT '', + `localName` varchar(64) NOT NULL DEFAULT '', + `address` varchar(64) NOT NULL DEFAULT '', + `path` varchar(64) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT '', + `osName` varchar(32) NOT NULL DEFAULT '', + `from` varchar(10) NOT NULL DEFAULT 'zentao', + `memory` float unsigned NOT NULL DEFAULT 0, + `disk` float unsigned NOT NULL DEFAULT 0, + `fileSize` float unsigned NOT NULL DEFAULT 0, + `md5` varchar(64) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `restoreDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_instance` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `space` mediumint(8) unsigned NOT NULL DEFAULT 0, + `solution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` char(50) NOT NULL DEFAULT '', + `appID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `appName` char(50) NOT NULL DEFAULT '', + `appVersion` char(20) NOT NULL DEFAULT '', + `chart` char(50) NOT NULL DEFAULT '', + `logo` varchar(255) NOT NULL DEFAULT '', + `version` char(50) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `introduction` text DEFAULT NULL, + `source` char(20) NOT NULL DEFAULT '', + `channel` char(20) NOT NULL DEFAULT '', + `k8name` char(64) NOT NULL DEFAULT '', + `status` char(20) NOT NULL DEFAULT '', + `pinned` enum('0','1') NOT NULL DEFAULT '0', + `domain` char(255) NOT NULL DEFAULT '', + `smtpSnippetName` char(30) NOT NULL DEFAULT '', + `ldapSnippetName` char(30) NOT NULL DEFAULT '', + `ldapSettings` text DEFAULT NULL, + `dbSettings` text DEFAULT NULL, + `autoBackup` tinyint(1) NOT NULL DEFAULT 0, + `backupKeepDays` int(10) unsigned NOT NULL DEFAULT 1, + `autoRestore` tinyint(1) NOT NULL DEFAULT 0, + `env` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdAt` datetime DEFAULT NULL, + `deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `space` (`space`), + KEY `k8name` (`k8name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_intervention` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `activity` mediumint(8) NOT NULL DEFAULT 0, + `status` char(30) NOT NULL DEFAULT '', + `partake` text DEFAULT NULL, + `begin` date DEFAULT NULL, + `realBegin` date DEFAULT NULL, + `situation` varchar(255) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `project` (`project`,`activity`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_issue` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `project` varchar(255) NOT NULL DEFAULT '', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `pri` char(30) NOT NULL DEFAULT '', + `severity` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `activity` varchar(255) NOT NULL DEFAULT '', + `deadline` date DEFAULT NULL, + `resolution` char(30) NOT NULL DEFAULT '', + `resolutionComment` text DEFAULT NULL, + `objectID` varchar(255) NOT NULL DEFAULT '', + `resolvedDate` date DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `owner` varchar(255) NOT NULL DEFAULT '', + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `activateBy` varchar(30) NOT NULL DEFAULT '', + `activateDate` date DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` date DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_job` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL DEFAULT '', + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `frame` varchar(20) NOT NULL DEFAULT '', + `engine` varchar(20) NOT NULL DEFAULT '', + `autoRun` enum('0','1') NOT NULL DEFAULT '1', + `server` mediumint(8) unsigned NOT NULL DEFAULT 0, + `pipeline` varchar(500) NOT NULL DEFAULT '', + `triggerType` varchar(255) NOT NULL DEFAULT '', + `sonarqubeServer` mediumint(8) unsigned NOT NULL DEFAULT 0, + `projectKey` varchar(255) NOT NULL DEFAULT '', + `svnDir` varchar(255) NOT NULL DEFAULT '', + `atDay` varchar(255) NOT NULL DEFAULT '', + `atTime` varchar(10) NOT NULL DEFAULT '', + `customParam` text DEFAULT NULL, + `comment` varchar(255) NOT NULL DEFAULT '', + `triggerActions` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `lastExec` datetime DEFAULT NULL, + `lastStatus` varchar(255) NOT NULL DEFAULT '', + `lastTag` varchar(255) NOT NULL DEFAULT '', + `lastSyncDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `idx_repo_deleted` (`repo`,`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_kanban` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `space` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `team` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `archived` enum('0','1') NOT NULL DEFAULT '1', + `performable` enum('0','1') NOT NULL DEFAULT '0', + `status` enum('active','closed') NOT NULL DEFAULT 'active', + `order` mediumint(8) NOT NULL DEFAULT 0, + `displayCards` smallint(6) NOT NULL DEFAULT 0, + `showWIP` enum('0','1') NOT NULL DEFAULT '1', + `fluidBoard` enum('0','1') NOT NULL DEFAULT '0', + `colWidth` smallint(4) NOT NULL DEFAULT 264, + `minColWidth` smallint(4) NOT NULL DEFAULT 200, + `maxColWidth` smallint(4) NOT NULL DEFAULT 384, + `object` varchar(255) NOT NULL DEFAULT '', + `alignment` varchar(10) NOT NULL DEFAULT 'center', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `activatedBy` char(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_kanbancard` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `kanban` mediumint(8) unsigned NOT NULL DEFAULT 0, + `region` mediumint(8) unsigned NOT NULL DEFAULT 0, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromType` varchar(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'doing', + `pri` mediumint(8) unsigned NOT NULL DEFAULT 0, + `assignedTo` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `estimate` float unsigned NOT NULL DEFAULT 0, + `progress` float unsigned NOT NULL DEFAULT 0, + `color` char(7) NOT NULL DEFAULT '', + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `order` mediumint(8) NOT NULL DEFAULT 0, + `archived` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `archivedBy` char(30) NOT NULL DEFAULT '', + `archivedDate` datetime DEFAULT NULL, + `assignedBy` char(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_kanbancell` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `kanban` mediumint(8) NOT NULL DEFAULT 0, + `lane` mediumint(8) NOT NULL DEFAULT 0, + `column` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `cards` mediumtext DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `card_group` (`kanban`,`type`,`lane`,`column`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_kanbancolumn` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `parent` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `region` mediumint(8) unsigned NOT NULL DEFAULT 0, + `group` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `color` char(30) NOT NULL DEFAULT '', + `limit` smallint(6) NOT NULL DEFAULT -1, + `order` mediumint(8) NOT NULL DEFAULT 0, + `archived` enum('0','1') NOT NULL DEFAULT '0', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_kanbangroup` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `kanban` mediumint(8) unsigned NOT NULL DEFAULT 0, + `region` mediumint(8) unsigned NOT NULL DEFAULT 0, + `order` smallint(6) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_kanbanlane` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `execution` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `region` mediumint(8) unsigned NOT NULL DEFAULT 0, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `groupby` char(30) NOT NULL DEFAULT '', + `extra` char(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `color` char(30) NOT NULL DEFAULT '', + `order` smallint(6) NOT NULL DEFAULT 0, + `lastEditedTime` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_kanbanregion` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `space` mediumint(8) unsigned NOT NULL DEFAULT 0, + `kanban` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `order` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_kanbanspace` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(50) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `team` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `status` enum('active','closed') NOT NULL DEFAULT 'active', + `order` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `activatedBy` char(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_lang` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `lang` varchar(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `section` varchar(50) NOT NULL DEFAULT '', + `key` varchar(60) NOT NULL DEFAULT '', + `value` text DEFAULT NULL, + `system` enum('0','1') NOT NULL DEFAULT '1', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + UNIQUE KEY `lang` (`lang`,`module`,`section`,`key`,`vision`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_leave` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `start` time DEFAULT NULL, + `finish` time DEFAULT NULL, + `hours` float(4,1) unsigned NOT NULL DEFAULT 0.0, + `backDate` datetime DEFAULT NULL, + `type` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `level` tinyint(3) NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `reviewers` text DEFAULT NULL, + `backReviewers` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `type` (`type`), + KEY `status` (`status`), + KEY `createdBy` (`createdBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_lieu` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `start` time DEFAULT NULL, + `finish` time DEFAULT NULL, + `hours` float(4,1) unsigned NOT NULL DEFAULT 0.0, + `overtime` char(255) NOT NULL DEFAULT '', + `trip` char(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `level` tinyint(3) NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `reviewers` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `status` (`status`), + KEY `createdBy` (`createdBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_log` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `action` mediumint(8) unsigned NOT NULL DEFAULT 0, + `date` datetime DEFAULT NULL, + `url` varchar(255) NOT NULL DEFAULT '', + `contentType` varchar(30) NOT NULL DEFAULT '', + `data` text DEFAULT NULL, + `result` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `objectType` (`objectType`), + KEY `obejctID` (`objectID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_mark` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(50) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` varchar(50) NOT NULL DEFAULT '', + `account` char(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `mark` varchar(50) NOT NULL DEFAULT '', + `extra` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `idx_object` (`objectType`,`objectID`), + KEY `idx_account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_market` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `industry` char(255) NOT NULL DEFAULT '', + `scale` decimal(10,2) NOT NULL DEFAULT 0.00, + `maturity` char(255) NOT NULL DEFAULT '', + `speed` varchar(255) NOT NULL DEFAULT '', + `competition` char(255) NOT NULL DEFAULT '', + `strategy` varchar(255) NOT NULL DEFAULT '', + `ppm` varchar(20) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_marketreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `market` mediumint(8) NOT NULL DEFAULT 0, + `research` mediumint(8) NOT NULL DEFAULT 0, + `maturity` varchar(30) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `participants` char(255) NOT NULL DEFAULT '', + `source` varchar(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT '', + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `publishedBy` varchar(30) NOT NULL DEFAULT '', + `publishedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_measqueue` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(30) NOT NULL DEFAULT '', + `mid` mediumint(8) unsigned NOT NULL DEFAULT 0, + `status` varchar(100) NOT NULL DEFAULT '', + `logs` text DEFAULT NULL, + `execTime` varchar(10) NOT NULL DEFAULT '', + `params` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `updateDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `status_deleted` (`status`,`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_measrecords` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `type` varchar(30) NOT NULL DEFAULT '', + `mid` mediumint(8) NOT NULL DEFAULT 0, + `measCode` char(50) NOT NULL DEFAULT '', + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `params` text DEFAULT NULL, + `year` char(4) NOT NULL DEFAULT '', + `month` char(6) NOT NULL DEFAULT '', + `week` char(8) NOT NULL DEFAULT '', + `day` char(8) NOT NULL DEFAULT '', + `value` varchar(255) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `time` (`year`,`month`,`day`,`week`), + KEY `product` (`product`), + KEY `project` (`project`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_meastemplate` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `model` char(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `content` mediumtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_meeting` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) NOT NULL DEFAULT 0, + `execution` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `begin` time DEFAULT NULL, + `end` time DEFAULT NULL, + `dept` mediumint(8) NOT NULL DEFAULT 0, + `mode` varchar(255) NOT NULL DEFAULT '', + `host` varchar(30) NOT NULL DEFAULT '', + `participant` text DEFAULT NULL, + `date` date DEFAULT NULL, + `room` int(11) NOT NULL DEFAULT 0, + `minutes` text DEFAULT NULL, + `minutedBy` varchar(30) NOT NULL DEFAULT '', + `minutedDate` datetime DEFAULT NULL, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_meetingroom` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `position` varchar(30) NOT NULL DEFAULT '', + `seats` int(11) NOT NULL DEFAULT 0, + `equipment` varchar(255) NOT NULL DEFAULT '', + `openTime` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_metric` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `purpose` varchar(50) NOT NULL DEFAULT '', + `scope` char(30) NOT NULL DEFAULT '', + `object` char(30) NOT NULL DEFAULT '', + `stage` enum('wait','released') DEFAULT 'wait', + `type` enum('php','sql') DEFAULT 'php', + `name` varchar(90) NOT NULL DEFAULT '', + `alias` varchar(90) NOT NULL DEFAULT '', + `code` varchar(90) NOT NULL DEFAULT '', + `unit` varchar(10) NOT NULL DEFAULT '', + `dateType` varchar(50) NOT NULL DEFAULT '', + `collector` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `definition` text DEFAULT NULL, + `when` varchar(30) NOT NULL DEFAULT '', + `event` varchar(30) NOT NULL DEFAULT '', + `cronCFG` varchar(30) NOT NULL DEFAULT '', + `time` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `implementedBy` varchar(30) NOT NULL DEFAULT '', + `implementedDate` datetime DEFAULT NULL, + `delistedBy` varchar(30) NOT NULL DEFAULT '', + `delistedDate` datetime DEFAULT NULL, + `builtin` enum('0','1') NOT NULL DEFAULT '0', + `fromID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lastCalcRows` int(11) NOT NULL DEFAULT 0, + `lastCalcTime` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_metriclib` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `metricID` mediumint(9) NOT NULL DEFAULT 0, + `metricCode` varchar(100) NOT NULL DEFAULT '', + `system` char(30) NOT NULL DEFAULT '0', + `program` char(30) NOT NULL DEFAULT '', + `project` char(30) NOT NULL DEFAULT '', + `product` char(30) NOT NULL DEFAULT '', + `execution` char(30) NOT NULL DEFAULT '', + `code` char(30) NOT NULL DEFAULT '', + `pipeline` char(30) NOT NULL DEFAULT '', + `repo` char(30) NOT NULL DEFAULT '', + `user` text DEFAULT NULL, + `dept` char(30) NOT NULL DEFAULT '', + `year` char(4) NOT NULL DEFAULT '0', + `month` char(2) NOT NULL DEFAULT '0', + `week` char(2) NOT NULL DEFAULT '0', + `day` char(2) NOT NULL DEFAULT '0', + `value` varchar(100) NOT NULL DEFAULT '0', + `calcType` enum('cron','inference') NOT NULL DEFAULT 'cron', + `calculatedBy` varchar(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `metricID` (`metricID`), + KEY `metricCode` (`metricCode`), + KEY `date` (`date`), + KEY `deleted` (`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_module` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `root` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` char(60) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `owner` varchar(30) NOT NULL DEFAULT '', + `collector` text DEFAULT NULL, + `short` varchar(30) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `root` (`root`), + KEY `type` (`type`), + KEY `path` (`path`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_mr` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `hostID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `sourceProject` varchar(50) NOT NULL DEFAULT '', + `sourceBranch` varchar(100) NOT NULL DEFAULT '', + `targetProject` varchar(50) NOT NULL DEFAULT '', + `targetBranch` varchar(100) NOT NULL DEFAULT '', + `mriid` int(10) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `description` text DEFAULT NULL, + `assignee` varchar(255) NOT NULL DEFAULT '', + `reviewer` varchar(255) NOT NULL DEFAULT '', + `approver` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `status` char(30) NOT NULL DEFAULT '', + `mergeStatus` char(30) NOT NULL DEFAULT '', + `approvalStatus` char(30) NOT NULL DEFAULT '', + `needApproved` enum('0','1') NOT NULL DEFAULT '0', + `needCI` enum('0','1') NOT NULL DEFAULT '0', + `repoID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `jobID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `executionID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `compileID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `compileStatus` char(30) NOT NULL DEFAULT '', + `removeSourceBranch` enum('0','1') NOT NULL DEFAULT '0', + `squash` enum('0','1') NOT NULL DEFAULT '0', + `isFlow` enum('0','1') NOT NULL DEFAULT '0', + `synced` enum('0','1') NOT NULL DEFAULT '1', + `syncError` varchar(255) NOT NULL DEFAULT '', + `hasNoConflict` enum('0','1') NOT NULL DEFAULT '0', + `diffs` longtext DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_mrapproval` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `mrID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` varchar(255) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `action` char(30) NOT NULL DEFAULT '', + `comment` text DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_nc` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `auditplan` mediumint(8) NOT NULL DEFAULT 0, + `listID` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `type` char(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'active', + `severity` char(30) NOT NULL DEFAULT '', + `deadline` date DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolution` char(30) NOT NULL DEFAULT '', + `resolvedDate` date DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` date DEFAULT NULL, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` date DEFAULT NULL, + `activateDate` date DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_notify` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(50) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `action` mediumint(8) NOT NULL DEFAULT 0, + `toList` text DEFAULT NULL, + `ccList` text DEFAULT NULL, + `subject` text DEFAULT NULL, + `data` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `sendTime` datetime DEFAULT NULL, + `status` varchar(10) NOT NULL DEFAULT 'wait', + `failReason` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `objectType` (`objectType`), + KEY `status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_oauth` ( + `account` varchar(30) NOT NULL DEFAULT '', + `openID` varchar(255) NOT NULL DEFAULT '', + `providerType` varchar(30) NOT NULL DEFAULT '', + `providerID` mediumint(8) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `account_openID` (`account`,`openID`,`providerType`,`providerID`), + KEY `account` (`account`), + KEY `providerType` (`providerType`), + KEY `providerID` (`providerID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_object` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) NOT NULL DEFAULT 0, + `from` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `version` varchar(255) NOT NULL DEFAULT '', + `type` enum('reviewed','taged') NOT NULL DEFAULT 'reviewed', + `enabled` enum('0','1') NOT NULL DEFAULT '1', + `range` text DEFAULT NULL, + `data` text DEFAULT NULL, + `storyEst` char(30) NOT NULL DEFAULT '', + `taskEst` char(30) NOT NULL DEFAULT '', + `requestEst` char(30) NOT NULL DEFAULT '', + `testEst` char(30) NOT NULL DEFAULT '', + `devEst` char(30) NOT NULL DEFAULT '', + `designEst` char(30) NOT NULL DEFAULT '', + `end` date DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_opportunity` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `source` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `strategy` char(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'active', + `impact` mediumint(8) NOT NULL DEFAULT 0, + `chance` mediumint(8) NOT NULL DEFAULT 0, + `ratio` mediumint(8) NOT NULL DEFAULT 0, + `pri` char(30) NOT NULL DEFAULT '', + `identifiedDate` date DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` date DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `prevention` mediumtext DEFAULT NULL, + `plannedClosedDate` date DEFAULT NULL, + `actualClosedDate` date DEFAULT NULL, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) NOT NULL DEFAULT 1, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `activatedBy` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime DEFAULT NULL, + `cancelReason` char(30) NOT NULL DEFAULT '', + `hangupedBy` varchar(30) NOT NULL DEFAULT '', + `hangupedDate` datetime DEFAULT NULL, + `resolution` mediumtext DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolvedDate` datetime DEFAULT NULL, + `lastCheckedBy` varchar(30) NOT NULL DEFAULT '', + `lastCheckedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_overtime` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `start` time DEFAULT NULL, + `finish` time DEFAULT NULL, + `hours` float(4,1) unsigned NOT NULL DEFAULT 0.0, + `leave` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `rejectReason` varchar(100) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `level` tinyint(3) NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `reviewers` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `type` (`type`), + KEY `status` (`status`), + KEY `createdBy` (`createdBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_pipeline` ( + `id` smallint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` char(30) NOT NULL DEFAULT '', + `name` varchar(50) NOT NULL DEFAULT '', + `url` varchar(255) DEFAULT NULL, + `account` varchar(30) DEFAULT NULL, + `password` varchar(255) DEFAULT NULL, + `token` varchar(255) DEFAULT NULL, + `private` char(32) DEFAULT NULL, + `instanceID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_pivot` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `dimension` mediumint(8) unsigned NOT NULL DEFAULT 0, + `group` varchar(255) NOT NULL DEFAULT '', + `code` varchar(255) NOT NULL DEFAULT '', + `driver` enum('mysql','duckdb') NOT NULL DEFAULT 'mysql', + `mode` varchar(10) NOT NULL DEFAULT 'builder', + `name` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `acl` enum('open','private') NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `sql` text DEFAULT NULL, + `fields` text DEFAULT NULL, + `langs` text DEFAULT NULL, + `vars` text DEFAULT NULL, + `objects` text DEFAULT NULL, + `settings` text DEFAULT NULL, + `filters` text DEFAULT NULL, + `step` tinyint(3) unsigned NOT NULL DEFAULT 0, + `stage` enum('draft','published') NOT NULL DEFAULT 'draft', + `builtin` enum('0','1') NOT NULL DEFAULT '0', + `version` varchar(10) NOT NULL DEFAULT '1', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `dimension` (`dimension`), + KEY `group` (`group`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_pivotdrill` ( + `pivot` mediumint(9) NOT NULL, + `version` varchar(10) NOT NULL DEFAULT '1', + `field` varchar(255) NOT NULL, + `object` varchar(40) NOT NULL, + `whereSql` mediumtext NOT NULL, + `condition` mediumtext NOT NULL, + `status` enum('design','published') NOT NULL DEFAULT 'published', + `account` varchar(30) NOT NULL DEFAULT '', + `type` enum('auto','manual') NOT NULL DEFAULT 'manual' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_pivotspec` ( + `pivot` mediumint(8) NOT NULL, + `version` varchar(10) NOT NULL, + `driver` enum('mysql','duckdb') NOT NULL DEFAULT 'mysql', + `mode` varchar(10) NOT NULL DEFAULT 'builder', + `name` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `sql` text DEFAULT NULL, + `fields` text DEFAULT NULL, + `langs` text DEFAULT NULL, + `vars` text DEFAULT NULL, + `objects` text DEFAULT NULL, + `settings` text DEFAULT NULL, + `filters` text DEFAULT NULL, + `createdDate` datetime DEFAULT NULL, + UNIQUE KEY `idx_pivot_version` (`pivot`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_planstory` ( + `plan` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `order` mediumint(9) NOT NULL DEFAULT 0, + UNIQUE KEY `plan_story` (`plan`,`story`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_practice` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `code` char(50) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `labels` varchar(255) NOT NULL DEFAULT '', + `summary` varchar(255) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `contributor` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_priv` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL DEFAULT '', + `method` varchar(30) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `edition` varchar(30) NOT NULL DEFAULT ',open,biz,max,', + `vision` varchar(30) NOT NULL DEFAULT ',rnd,', + `system` enum('0','1') NOT NULL DEFAULT '0', + `order` mediumint(8) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `priv` (`module`,`method`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_privlang` ( + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `objectType` enum('priv','manager') NOT NULL DEFAULT 'priv', + `lang` varchar(30) NOT NULL DEFAULT '', + `key` varchar(100) NOT NULL DEFAULT '', + `value` varchar(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + UNIQUE KEY `objectlang` (`objectID`,`objectType`,`lang`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_privmanager` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `code` varchar(100) NOT NULL DEFAULT '', + `type` enum('view','module','package') NOT NULL DEFAULT 'package', + `edition` varchar(30) NOT NULL DEFAULT ',open,biz,max,', + `vision` varchar(30) NOT NULL DEFAULT ',rnd,', + `order` mediumint(8) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_privrelation` ( + `priv` varchar(100) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `relationPriv` varchar(100) NOT NULL DEFAULT '', + UNIQUE KEY `privrelation` (`priv`,`type`,`relationPriv`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_process` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `model` char(30) NOT NULL DEFAULT 'waterfall', + `name` varchar(255) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `abbr` char(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `order` mediumint(9) NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_product` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `program` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(110) NOT NULL DEFAULT '', + `code` varchar(45) NOT NULL DEFAULT '', + `shadow` tinyint(1) unsigned NOT NULL DEFAULT 0, + `bind` enum('0','1') NOT NULL DEFAULT '0', + `line` mediumint(8) NOT NULL DEFAULT 0, + `type` varchar(30) NOT NULL DEFAULT 'normal', + `status` varchar(30) NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `PO` varchar(30) NOT NULL DEFAULT '', + `QD` varchar(30) NOT NULL DEFAULT '', + `RD` varchar(30) NOT NULL DEFAULT '', + `feedback` varchar(30) NOT NULL DEFAULT '', + `ticket` varchar(30) NOT NULL DEFAULT '', + `workflowGroup` int(8) NOT NULL DEFAULT 0, + `acl` enum('open','private','custom') NOT NULL DEFAULT 'open', + `groups` text DEFAULT NULL, + `whitelist` text DEFAULT NULL, + `reviewer` text DEFAULT NULL, + `PMT` text DEFAULT NULL, + `draftEpics` mediumint(8) NOT NULL DEFAULT 0, + `activeEpics` mediumint(8) NOT NULL DEFAULT 0, + `changingEpics` mediumint(8) NOT NULL DEFAULT 0, + `reviewingEpics` mediumint(8) NOT NULL DEFAULT 0, + `finishedEpics` mediumint(8) NOT NULL DEFAULT 0, + `closedEpics` mediumint(8) NOT NULL DEFAULT 0, + `totalEpics` mediumint(8) NOT NULL DEFAULT 0, + `draftRequirements` mediumint(8) NOT NULL DEFAULT 0, + `activeRequirements` mediumint(8) NOT NULL DEFAULT 0, + `changingRequirements` mediumint(8) NOT NULL DEFAULT 0, + `reviewingRequirements` mediumint(8) NOT NULL DEFAULT 0, + `finishedRequirements` mediumint(8) NOT NULL DEFAULT 0, + `closedRequirements` mediumint(8) NOT NULL DEFAULT 0, + `totalRequirements` mediumint(8) NOT NULL DEFAULT 0, + `draftStories` mediumint(8) NOT NULL DEFAULT 0, + `activeStories` mediumint(8) NOT NULL DEFAULT 0, + `changingStories` mediumint(8) NOT NULL DEFAULT 0, + `reviewingStories` mediumint(8) NOT NULL DEFAULT 0, + `finishedStories` mediumint(8) NOT NULL DEFAULT 0, + `closedStories` mediumint(8) NOT NULL DEFAULT 0, + `totalStories` mediumint(8) NOT NULL DEFAULT 0, + `unresolvedBugs` mediumint(8) NOT NULL DEFAULT 0, + `closedBugs` mediumint(8) NOT NULL DEFAULT 0, + `fixedBugs` mediumint(8) NOT NULL DEFAULT 0, + `totalBugs` mediumint(8) NOT NULL DEFAULT 0, + `plans` mediumint(8) NOT NULL DEFAULT 0, + `releases` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `createdVersion` varchar(20) NOT NULL DEFAULT '', + `closedDate` date DEFAULT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `acl` (`acl`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_productplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` varchar(255) NOT NULL DEFAULT '0', + `parent` mediumint(9) NOT NULL DEFAULT 0, + `title` varchar(90) NOT NULL DEFAULT '', + `status` enum('wait','doing','done','closed') NOT NULL DEFAULT 'wait', + `desc` mediumtext DEFAULT NULL, + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `finishedDate` datetime DEFAULT NULL, + `closedDate` datetime DEFAULT NULL, + `order` text DEFAULT NULL, + `closedReason` varchar(20) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `end` (`end`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_programactivity` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `process` mediumint(8) NOT NULL DEFAULT 0, + `activity` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `reason` varchar(255) NOT NULL DEFAULT '', + `result` char(30) NOT NULL DEFAULT '', + `linkedBy` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_programoutput` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `process` mediumint(8) NOT NULL DEFAULT 0, + `activity` mediumint(8) NOT NULL DEFAULT 0, + `output` mediumint(8) NOT NULL DEFAULT 0, + `content` text DEFAULT NULL, + `name` varchar(255) NOT NULL DEFAULT '', + `reason` varchar(255) NOT NULL DEFAULT '', + `result` char(30) NOT NULL DEFAULT '', + `linkedBy` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_programprocess` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `process` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `abbr` char(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `reason` varchar(255) NOT NULL DEFAULT '', + `linkedBy` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_programreport` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `template` mediumint(8) NOT NULL DEFAULT 0, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `params` text DEFAULT NULL, + `content` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_project` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) NOT NULL DEFAULT 0, + `charter` mediumint(8) NOT NULL DEFAULT 0, + `model` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT 'sprint', + `category` char(30) NOT NULL DEFAULT '', + `lifetime` char(30) NOT NULL DEFAULT '', + `budget` varchar(30) NOT NULL DEFAULT '0', + `budgetUnit` char(30) NOT NULL DEFAULT 'CNY', + `attribute` varchar(30) NOT NULL DEFAULT '', + `percent` float unsigned NOT NULL DEFAULT 0, + `milestone` enum('0','1') NOT NULL DEFAULT '0', + `output` text DEFAULT NULL, + `auth` char(30) NOT NULL DEFAULT '', + `storyType` char(30) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` varchar(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `name` varchar(90) NOT NULL DEFAULT '', + `code` varchar(45) NOT NULL DEFAULT '', + `hasProduct` tinyint(1) unsigned NOT NULL DEFAULT 1, + `workflowGroup` int(8) NOT NULL DEFAULT 0, + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `firstEnd` date DEFAULT NULL, + `realBegan` date DEFAULT NULL, + `realEnd` date DEFAULT NULL, + `days` smallint(6) unsigned NOT NULL DEFAULT 0, + `status` varchar(10) NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `pri` enum('1','2','3','4') NOT NULL DEFAULT '1', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) NOT NULL DEFAULT 0, + `parentVersion` smallint(6) NOT NULL DEFAULT 0, + `planDuration` int(11) NOT NULL DEFAULT 0, + `realDuration` int(11) NOT NULL DEFAULT 0, + `progress` decimal(5,2) NOT NULL DEFAULT 0.00, + `estimate` float NOT NULL DEFAULT 0, + `left` float NOT NULL DEFAULT 0, + `consumed` float NOT NULL DEFAULT 0, + `teamCount` int(11) NOT NULL DEFAULT 0, + `market` mediumint(8) NOT NULL DEFAULT 0, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `openedVersion` varchar(20) NOT NULL DEFAULT '', + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(20) NOT NULL DEFAULT '', + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime DEFAULT NULL, + `suspendedDate` date DEFAULT NULL, + `PO` varchar(30) NOT NULL DEFAULT '', + `PM` varchar(30) NOT NULL DEFAULT '', + `QD` varchar(30) NOT NULL DEFAULT '', + `RD` varchar(30) NOT NULL DEFAULT '', + `team` varchar(90) NOT NULL DEFAULT '', + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `stageBy` enum('project','product') NOT NULL DEFAULT 'product', + `displayCards` smallint(6) NOT NULL DEFAULT 0, + `fluidBoard` enum('0','1') NOT NULL DEFAULT '0', + `multiple` enum('0','1') NOT NULL DEFAULT '1', + `parallel` mediumint(9) NOT NULL DEFAULT 0, + `enabled` enum('on','off') NOT NULL DEFAULT 'on', + `linkType` varchar(30) NOT NULL DEFAULT 'plan', + `colWidth` smallint(6) NOT NULL DEFAULT 264, + `minColWidth` smallint(6) NOT NULL DEFAULT 200, + `maxColWidth` smallint(6) NOT NULL DEFAULT 384, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `parent` (`parent`), + KEY `begin` (`begin`), + KEY `end` (`end`), + KEY `status` (`status`), + KEY `acl` (`acl`), + KEY `order` (`order`), + KEY `project` (`project`), + KEY `type_order` (`type`,`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_projectadmin` ( + `group` smallint(6) NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `programs` text DEFAULT NULL, + `projects` text DEFAULT NULL, + `products` text DEFAULT NULL, + `executions` text DEFAULT NULL, + UNIQUE KEY `group_account` (`group`,`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_projectcase` ( + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `count` mediumint(8) unsigned NOT NULL DEFAULT 1, + `version` smallint(6) NOT NULL DEFAULT 1, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `project` (`project`,`case`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_projectproduct` ( + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `plan` varchar(255) NOT NULL DEFAULT '', + `roadmap` varchar(255) NOT NULL DEFAULT '', + UNIQUE KEY `project_product` (`project`,`product`,`branch`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_projectspec` ( + `project` mediumint(8) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `milestone` enum('0','1') NOT NULL DEFAULT '0', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + UNIQUE KEY `project` (`project`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_projectstory` ( + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `project` (`project`,`story`), + KEY `story` (`story`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_queue` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `cron` mediumint(9) NOT NULL, + `type` varchar(255) NOT NULL, + `command` text NOT NULL, + `status` enum('wait','doing','done') NOT NULL DEFAULT 'wait', + `execId` int(11) DEFAULT NULL, + `createdDate` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `status_createdDate` (`status`,`createdDate`), + KEY `cron_createdDate` (`cron`,`createdDate`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_relation` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) NOT NULL DEFAULT 0, + `product` mediumint(8) NOT NULL DEFAULT 0, + `execution` mediumint(8) NOT NULL DEFAULT 0, + `AType` char(30) NOT NULL DEFAULT '', + `AID` mediumint(8) NOT NULL DEFAULT 0, + `AVersion` char(30) NOT NULL DEFAULT '', + `relation` char(30) NOT NULL DEFAULT '', + `BType` char(30) NOT NULL DEFAULT '', + `BID` mediumint(8) NOT NULL DEFAULT 0, + `BVersion` char(30) NOT NULL DEFAULT '', + `extra` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `relation` (`product`,`relation`,`AType`,`BType`,`AID`,`BID`), + KEY `AID` (`AType`,`AID`), + KEY `BID` (`BType`,`BID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_relationoftasks` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `execution` mediumint(8) unsigned NOT NULL, + `pretask` mediumint(8) unsigned NOT NULL, + `condition` enum('begin','end') NOT NULL, + `task` mediumint(8) unsigned NOT NULL, + `action` enum('begin','end') NOT NULL, + PRIMARY KEY (`id`), + KEY `relationoftasks` (`execution`,`task`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_release` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` varchar(255) NOT NULL DEFAULT '0', + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` varchar(255) NOT NULL DEFAULT '0', + `shadow` mediumint(8) unsigned NOT NULL DEFAULT 0, + `build` varchar(255) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `system` mediumint(8) unsigned NOT NULL DEFAULT 0, + `releases` varchar(255) NOT NULL DEFAULT '', + `marker` enum('0','1') NOT NULL DEFAULT '0', + `date` date DEFAULT NULL, + `releasedDate` date DEFAULT NULL, + `stories` text DEFAULT NULL, + `bugs` text DEFAULT NULL, + `leftBugs` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `mailto` text DEFAULT NULL, + `notify` varchar(255) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT 'normal', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `build` (`build`), + KEY `idx_system` (`system`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_releaserelated` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `release` int(11) unsigned NOT NULL, + `objectID` int(11) unsigned NOT NULL, + `objectType` varchar(10) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`release`,`objectID`,`objectType`), + KEY `objectID` (`objectID`), + KEY `objectType` (`objectType`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_repo` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `product` varchar(255) NOT NULL DEFAULT '', + `projects` varchar(255) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `path` varchar(255) NOT NULL DEFAULT '', + `prefix` varchar(100) NOT NULL DEFAULT '', + `encoding` varchar(20) NOT NULL DEFAULT '', + `SCM` varchar(10) NOT NULL DEFAULT '', + `client` varchar(100) NOT NULL DEFAULT '', + `serviceHost` varchar(50) NOT NULL DEFAULT '', + `serviceProject` varchar(100) NOT NULL DEFAULT '', + `commits` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` varchar(30) NOT NULL DEFAULT '', + `password` varchar(30) NOT NULL DEFAULT '', + `encrypt` varchar(30) NOT NULL DEFAULT 'plain', + `acl` text DEFAULT NULL, + `synced` tinyint(1) NOT NULL DEFAULT 0, + `lastSync` datetime DEFAULT NULL, + `lastCommit` datetime DEFAULT NULL, + `desc` text DEFAULT NULL, + `extra` char(30) NOT NULL DEFAULT '', + `preMerge` enum('0','1') NOT NULL DEFAULT '0', + `job` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fileServerUrl` text DEFAULT NULL, + `fileServerAccount` varchar(40) NOT NULL DEFAULT '', + `fileServerPassword` varchar(100) NOT NULL DEFAULT '', + `deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_repobranch` ( + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `revision` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` varchar(255) NOT NULL DEFAULT '', + UNIQUE KEY `repo_revision_branch` (`repo`,`revision`,`branch`), + KEY `branch` (`branch`), + KEY `revision` (`revision`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_repofiles` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `revision` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` varchar(255) NOT NULL DEFAULT '', + `oldPath` varchar(255) NOT NULL DEFAULT '', + `parent` varchar(255) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT '', + `action` char(1) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `path` (`path`), + KEY `parent` (`parent`), + KEY `repo` (`repo`), + KEY `revision` (`revision`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_repohistory` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `repo` mediumint(9) NOT NULL DEFAULT 0, + `revision` varchar(40) NOT NULL DEFAULT '', + `commit` mediumint(8) unsigned NOT NULL DEFAULT 0, + `comment` text DEFAULT NULL, + `committer` varchar(100) NOT NULL DEFAULT '', + `time` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `repo` (`repo`), + KEY `revision` (`revision`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_report` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `code` varchar(100) NOT NULL DEFAULT '', + `name` text DEFAULT NULL, + `dimension` int(8) NOT NULL DEFAULT 0, + `module` varchar(100) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `vars` text DEFAULT NULL, + `langs` text DEFAULT NULL, + `params` text DEFAULT NULL, + `step` tinyint(1) NOT NULL DEFAULT 2, + `desc` text DEFAULT NULL, + `addedBy` char(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_researchplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `customer` varchar(255) NOT NULL DEFAULT '', + `stakeholder` varchar(255) NOT NULL DEFAULT '', + `objective` varchar(255) NOT NULL DEFAULT '', + `begin` datetime DEFAULT NULL, + `end` datetime DEFAULT NULL, + `location` varchar(255) NOT NULL DEFAULT '', + `team` varchar(255) NOT NULL DEFAULT '', + `method` enum('','videoConference','interview','questionnaire','telephoneInterview') NOT NULL DEFAULT '', + `outline` mediumtext DEFAULT NULL, + `schedule` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_researchreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `relatedPlan` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `author` varchar(30) NOT NULL DEFAULT '', + `content` mediumtext DEFAULT NULL, + `customer` varchar(255) NOT NULL DEFAULT '', + `researchObjects` varchar(255) NOT NULL DEFAULT '', + `begin` datetime DEFAULT NULL, + `end` datetime DEFAULT NULL, + `location` varchar(255) NOT NULL DEFAULT '', + `method` enum('','videoConference','interview','questionnaire','telephoneInterview') NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_review` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `object` mediumint(8) NOT NULL DEFAULT 0, + `template` mediumint(8) NOT NULL DEFAULT 0, + `doc` varchar(255) NOT NULL DEFAULT '', + `docVersion` varchar(255) NOT NULL DEFAULT '', + `status` char(30) NOT NULL DEFAULT '', + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `auditedBy` varchar(255) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `begin` date DEFAULT NULL, + `deadline` date DEFAULT NULL, + `lastReviewedBy` varchar(255) NOT NULL DEFAULT '', + `lastReviewedDate` date DEFAULT NULL, + `lastAuditedBy` varchar(255) NOT NULL DEFAULT '', + `lastAuditedDate` date DEFAULT NULL, + `toAuditBy` varchar(30) NOT NULL DEFAULT '', + `toAuditDate` datetime DEFAULT NULL, + `lastEditedBy` varchar(255) NOT NULL DEFAULT '', + `lastEditedDate` date DEFAULT NULL, + `result` char(30) NOT NULL DEFAULT '', + `auditResult` char(30) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_reviewcl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL DEFAULT '', + `object` char(30) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `order` mediumint(8) DEFAULT 0, + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_reviewissue` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `review` mediumint(8) NOT NULL DEFAULT 0, + `approval` mediumint(8) NOT NULL DEFAULT 0, + `injection` mediumint(8) NOT NULL DEFAULT 0, + `identify` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT 'review', + `listID` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `opinion` mediumtext DEFAULT NULL, + `opinionDate` date DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + `resolution` char(30) NOT NULL DEFAULT '', + `resolutionBy` char(30) NOT NULL DEFAULT '', + `resolutionDate` date DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_reviewlist` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL DEFAULT '', + `object` char(30) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_reviewresult` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `review` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT 'review', + `result` char(30) NOT NULL DEFAULT '', + `opinion` text DEFAULT NULL, + `reviewer` char(30) NOT NULL DEFAULT '', + `remainIssue` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `consumed` float NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `reviewer` (`review`,`reviewer`,`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_risk` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` varchar(255) NOT NULL DEFAULT '', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `source` char(30) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `strategy` char(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'active', + `impact` char(30) NOT NULL DEFAULT '', + `probability` char(30) NOT NULL DEFAULT '', + `rate` char(30) NOT NULL DEFAULT '', + `pri` char(30) NOT NULL DEFAULT '', + `identifiedDate` date DEFAULT NULL, + `prevention` mediumtext DEFAULT NULL, + `remedy` mediumtext DEFAULT NULL, + `plannedClosedDate` date DEFAULT NULL, + `actualClosedDate` date DEFAULT NULL, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `resolution` mediumtext DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `activateBy` varchar(30) NOT NULL DEFAULT '', + `activateDate` date DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` date DEFAULT NULL, + `cancelBy` varchar(30) NOT NULL DEFAULT '', + `cancelDate` date DEFAULT NULL, + `cancelReason` char(30) NOT NULL DEFAULT '', + `hangupBy` varchar(30) NOT NULL DEFAULT '', + `hangupDate` date DEFAULT NULL, + `trackedBy` varchar(30) NOT NULL DEFAULT '', + `trackedDate` date DEFAULT NULL, + `assignedDate` date DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_riskissue` ( + `risk` mediumint(8) unsigned NOT NULL DEFAULT 0, + `issue` mediumint(8) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `risk_issue` (`risk`,`issue`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_roadmap` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `product` mediumint(8) NOT NULL DEFAULT 0, + `branch` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `status` char(30) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `desc` longtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` enum('done','canceled') DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_roadmapstory` ( + `roadmap` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `order` mediumint(8) unsigned NOT NULL, + UNIQUE KEY `roadmap_story` (`roadmap`,`story`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_scene` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `sort` int(11) unsigned NOT NULL DEFAULT 0, + `openedBy` char(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `parent` int(11) NOT NULL DEFAULT 0, + `grade` tinyint(3) NOT NULL DEFAULT 0, + `path` varchar(1000) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_score` ( + `id` bigint(12) unsigned NOT NULL AUTO_INCREMENT, + `account` varchar(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `method` varchar(30) NOT NULL DEFAULT '', + `desc` varchar(250) NOT NULL DEFAULT '', + `before` int(11) NOT NULL DEFAULT 0, + `score` int(11) NOT NULL DEFAULT 0, + `after` int(11) NOT NULL DEFAULT 0, + `time` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `account` (`account`), + KEY `module` (`module`), + KEY `method` (`method`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_screen` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `dimension` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `acl` enum('open','private') NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `cover` mediumtext DEFAULT NULL, + `scheme` mediumtext DEFAULT NULL, + `status` enum('draft','published') NOT NULL DEFAULT 'draft', + `builtin` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_searchdict` ( + `key` smallint(6) unsigned NOT NULL DEFAULT 0, + `value` char(3) NOT NULL DEFAULT '', + UNIQUE KEY `key_value` (`key`,`value`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_searchindex` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `objectType` char(20) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `title` text DEFAULT NULL, + `content` text DEFAULT NULL, + `addedDate` datetime DEFAULT NULL, + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `object` (`objectType`,`objectID`), + KEY `addedDate` (`addedDate`), + FULLTEXT KEY `title_content` (`title`,`content`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_serverroom` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(128) NOT NULL DEFAULT '', + `city` varchar(128) NOT NULL DEFAULT '', + `line` varchar(20) NOT NULL DEFAULT '', + `bandwidth` varchar(128) NOT NULL DEFAULT '', + `provider` varchar(128) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_session` ( + `id` varchar(32) NOT NULL, + `data` mediumtext DEFAULT NULL, + `timestamp` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `timestamp` (`timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_solution` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(50) NOT NULL DEFAULT '', + `appID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `appName` char(50) NOT NULL DEFAULT '', + `appVersion` char(20) NOT NULL DEFAULT '', + `version` char(50) NOT NULL DEFAULT '', + `chart` char(50) NOT NULL DEFAULT '', + `cover` varchar(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `introduction` varchar(255) NOT NULL DEFAULT '', + `source` char(20) NOT NULL DEFAULT '', + `channel` char(20) NOT NULL DEFAULT '', + `components` text DEFAULT NULL, + `status` char(20) NOT NULL DEFAULT '', + `deleted` tinyint(1) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdAt` datetime DEFAULT NULL, + `updatedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_solutions` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `contents` text NOT NULL, + `support` text NOT NULL, + `measures` text NOT NULL, + `type` char(30) NOT NULL DEFAULT '', + `addedBy` varchar(30) NOT NULL DEFAULT '', + `addedDate` date DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_space` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(200) NOT NULL, + `k8space` char(64) NOT NULL, + `owner` char(30) NOT NULL, + `default` tinyint(1) NOT NULL DEFAULT 0, + `createdAt` datetime DEFAULT NULL, + `deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_sqlbuilder` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectID` mediumint(8) NOT NULL, + `objectType` varchar(50) NOT NULL, + `sql` text DEFAULT NULL, + `setting` text DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_sqlview` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(90) NOT NULL DEFAULT '', + `code` varchar(45) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_stage` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `percent` varchar(255) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `projectType` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_stakeholder` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `objectID` mediumint(8) NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `user` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `key` enum('0','1') NOT NULL DEFAULT '0', + `from` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `objectID` (`objectID`), + KEY `objectType` (`objectType`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_story` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `parent` mediumint(9) NOT NULL DEFAULT 0, + `isParent` enum('0','1') NOT NULL DEFAULT '0', + `root` mediumint(9) NOT NULL DEFAULT 0, + `path` text DEFAULT NULL, + `grade` smallint(6) NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `plan` text DEFAULT NULL, + `source` varchar(20) NOT NULL DEFAULT '', + `sourceNote` varchar(255) NOT NULL DEFAULT '', + `fromBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `keywords` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT 'story', + `category` varchar(30) NOT NULL DEFAULT 'feature', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 3, + `estimate` float unsigned NOT NULL DEFAULT 0, + `status` enum('','changing','active','draft','closed','reviewing','launched','developing') NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `stage` enum('','wait','inroadmap','incharter','planned','projected','designing','designed','developing','developed','testing','tested','verified','rejected','delivering','delivered','released','closed') NOT NULL DEFAULT 'wait', + `stagedBy` char(30) NOT NULL DEFAULT '', + `mailto` text DEFAULT NULL, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromStory` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromVersion` smallint(6) NOT NULL DEFAULT 1, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `changedBy` varchar(30) NOT NULL DEFAULT '', + `changedDate` datetime DEFAULT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `releasedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `toBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `linkStories` varchar(255) NOT NULL DEFAULT '', + `linkRequirements` varchar(255) NOT NULL DEFAULT '', + `twins` varchar(255) NOT NULL DEFAULT '', + `duplicateStory` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `parentVersion` smallint(6) NOT NULL DEFAULT 0, + `demandVersion` smallint(6) NOT NULL DEFAULT 0, + `storyChanged` enum('0','1') NOT NULL DEFAULT '0', + `feedbackBy` varchar(100) NOT NULL DEFAULT '', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', + `BSA` char(30) NOT NULL DEFAULT '', + `duration` char(30) NOT NULL DEFAULT '', + `demand` mediumint(8) NOT NULL DEFAULT 0, + `submitedBy` varchar(30) NOT NULL DEFAULT '', + `roadmap` varchar(255) NOT NULL DEFAULT '', + `URChanged` enum('0','1') NOT NULL DEFAULT '0', + `unlinkReason` enum('','omit','other') NOT NULL DEFAULT '', + `retractedReason` enum('','omit','other') NOT NULL DEFAULT '', + `retractedBy` varchar(30) NOT NULL DEFAULT '', + `retractedDate` datetime DEFAULT NULL, + `verifiedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `root` (`root`), + KEY `status` (`status`), + KEY `assignedTo` (`assignedTo`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_storyestimate` ( + `story` mediumint(9) NOT NULL DEFAULT 0, + `round` smallint(6) NOT NULL DEFAULT 0, + `estimate` text DEFAULT NULL, + `average` float NOT NULL DEFAULT 0, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + UNIQUE KEY `story` (`story`,`round`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_storygrade` ( + `type` enum('story','requirement','epic') NOT NULL, + `grade` smallint(6) NOT NULL, + `name` char(30) NOT NULL, + `status` char(30) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_storyreview` ( + `story` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `reviewer` varchar(30) NOT NULL DEFAULT '', + `result` varchar(30) NOT NULL DEFAULT '', + `reviewDate` datetime DEFAULT NULL, + UNIQUE KEY `story` (`story`,`version`,`reviewer`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_storyspec` ( + `story` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `spec` mediumtext DEFAULT NULL, + `verify` mediumtext DEFAULT NULL, + `files` text DEFAULT NULL, + UNIQUE KEY `story` (`story`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_storystage` ( + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `stage` varchar(50) NOT NULL DEFAULT '', + `stagedBy` char(30) NOT NULL DEFAULT '', + UNIQUE KEY `story_branch` (`story`,`branch`), + KEY `story` (`story`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_suitecase` ( + `suite` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(5) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `suitecase` (`suite`,`case`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_system` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL DEFAULT '', + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `integrated` enum('0','1') NOT NULL DEFAULT '0', + `latestRelease` mediumint(8) unsigned NOT NULL DEFAULT 0, + `latestDate` datetime DEFAULT NULL, + `children` varchar(255) NOT NULL DEFAULT '', + `status` enum('active','inactive') NOT NULL DEFAULT 'active', + `desc` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `idx_product` (`product`), + KEY `idx_status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_task` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `parent` mediumint(8) NOT NULL DEFAULT 0, + `isParent` tinyint(1) NOT NULL DEFAULT 0, + `path` text DEFAULT NULL, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `design` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `designVersion` smallint(6) unsigned NOT NULL DEFAULT 1, + `fromBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromIssue` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT '', + `mode` varchar(10) NOT NULL DEFAULT '', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `estimate` float unsigned NOT NULL DEFAULT 0, + `consumed` float unsigned NOT NULL DEFAULT 0, + `left` float unsigned NOT NULL DEFAULT 0, + `deadline` date DEFAULT NULL, + `status` enum('wait','doing','done','pause','cancel','closed') NOT NULL DEFAULT 'wait', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `mailto` text DEFAULT NULL, + `keywords` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) NOT NULL DEFAULT 0, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `estStarted` date DEFAULT NULL, + `realStarted` datetime DEFAULT NULL, + `finishedBy` varchar(30) NOT NULL DEFAULT '', + `finishedDate` datetime DEFAULT NULL, + `finishedList` text DEFAULT NULL, + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `planDuration` int(11) NOT NULL DEFAULT 0, + `realDuration` int(11) NOT NULL DEFAULT 0, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `activatedDate` datetime DEFAULT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `mr` mediumint(8) unsigned NOT NULL DEFAULT 0, + `entry` varchar(255) NOT NULL DEFAULT '', + `lines` varchar(10) NOT NULL DEFAULT '', + `v1` varchar(40) NOT NULL DEFAULT '', + `v2` varchar(40) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + KEY `execution` (`execution`), + KEY `story` (`story`), + KEY `parent` (`parent`), + KEY `assignedTo` (`assignedTo`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_taskestimate` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `date` date DEFAULT NULL, + `left` float unsigned NOT NULL DEFAULT 0, + `consumed` float unsigned NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `work` text DEFAULT NULL, + `order` tinyint(3) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `task` (`task`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_taskspec` ( + `task` mediumint(8) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `estStarted` date DEFAULT NULL, + `deadline` date DEFAULT NULL, + UNIQUE KEY `task` (`task`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_taskteam` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `estimate` decimal(12,2) NOT NULL DEFAULT 0.00, + `consumed` decimal(12,2) NOT NULL DEFAULT 0.00, + `left` decimal(12,2) NOT NULL DEFAULT 0.00, + `transfer` char(30) NOT NULL DEFAULT '', + `status` enum('wait','doing','done','cancel','closed') NOT NULL DEFAULT 'wait', + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `order` int(8) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `task` (`task`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_team` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `root` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` enum('project','task','execution') NOT NULL DEFAULT 'project', + `account` char(30) NOT NULL DEFAULT '', + `role` char(30) NOT NULL DEFAULT '', + `position` varchar(30) NOT NULL DEFAULT '', + `limited` char(8) NOT NULL DEFAULT 'no', + `join` date DEFAULT NULL, + `days` smallint(5) unsigned NOT NULL DEFAULT 0, + `hours` float(3,1) unsigned NOT NULL DEFAULT 0.0, + `estimate` decimal(12,2) unsigned NOT NULL DEFAULT 0.00, + `consumed` decimal(12,2) unsigned NOT NULL DEFAULT 0.00, + `left` decimal(12,2) unsigned NOT NULL DEFAULT 0.00, + `order` tinyint(3) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `team` (`root`,`type`,`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_testreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `tasks` varchar(255) NOT NULL DEFAULT '', + `builds` varchar(255) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `owner` char(30) NOT NULL DEFAULT '', + `members` text DEFAULT NULL, + `stories` text DEFAULT NULL, + `bugs` text DEFAULT NULL, + `cases` text DEFAULT NULL, + `report` text DEFAULT NULL, + `objectType` varchar(20) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_testresult` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `run` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(5) unsigned NOT NULL DEFAULT 0, + `job` mediumint(8) unsigned NOT NULL DEFAULT 0, + `compile` mediumint(8) unsigned NOT NULL DEFAULT 0, + `caseResult` char(30) NOT NULL DEFAULT '', + `stepResults` text DEFAULT NULL, + `ZTFResult` text DEFAULT NULL, + `node` int(8) unsigned NOT NULL DEFAULT 0, + `lastRunner` varchar(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `duration` float NOT NULL DEFAULT 0, + `xml` text DEFAULT NULL, + `deploy` mediumint(8) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `case` (`case`), + KEY `version` (`version`), + KEY `run` (`run`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_testrun` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` tinyint(3) unsigned NOT NULL DEFAULT 0, + `assignedTo` char(30) NOT NULL DEFAULT '', + `lastRunner` varchar(30) NOT NULL DEFAULT '', + `lastRunDate` datetime DEFAULT NULL, + `lastRunResult` char(30) NOT NULL DEFAULT '', + `status` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `task` (`task`,`case`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_testsuite` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `type` varchar(20) NOT NULL DEFAULT '', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `addedBy` char(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_testtask` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` char(90) NOT NULL DEFAULT '', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `build` char(30) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `realBegan` date DEFAULT NULL, + `realFinishedDate` datetime DEFAULT NULL, + `mailto` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `report` text DEFAULT NULL, + `status` enum('blocked','doing','wait','done') NOT NULL DEFAULT 'wait', + `testreport` mediumint(8) unsigned NOT NULL DEFAULT 0, + `auto` varchar(10) NOT NULL DEFAULT 'no', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `members` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `build` (`build`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ticket` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `openedBuild` varchar(255) NOT NULL DEFAULT '', + `feedback` mediumint(8) NOT NULL DEFAULT 0, + `assignedTo` varchar(255) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `realStarted` datetime DEFAULT NULL, + `startedBy` varchar(255) NOT NULL DEFAULT '', + `startedDate` datetime DEFAULT NULL, + `deadline` date DEFAULT NULL, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `estimate` float unsigned NOT NULL DEFAULT 0, + `left` float unsigned NOT NULL DEFAULT 0, + `status` varchar(30) NOT NULL DEFAULT '', + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `activatedCount` int(11) NOT NULL DEFAULT 0, + `activatedBy` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `finishedBy` varchar(30) NOT NULL DEFAULT '', + `finishedDate` datetime DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolvedDate` datetime DEFAULT NULL, + `resolution` text DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `keywords` varchar(255) NOT NULL DEFAULT '', + `repeatTicket` mediumint(8) NOT NULL DEFAULT 0, + `mailto` varchar(255) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `subStatus` varchar(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `product` (`product`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ticketrelation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `ticketId` mediumint(8) unsigned NOT NULL DEFAULT 0, + `objectId` mediumint(8) NOT NULL DEFAULT 0, + `objectType` varchar(100) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `ticketId` (`ticketId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ticketsource` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `ticketId` mediumint(8) unsigned NOT NULL DEFAULT 0, + `customer` varchar(100) NOT NULL DEFAULT '', + `contact` varchar(100) NOT NULL DEFAULT '', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `ticketId` (`ticketId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_todo` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + `begin` smallint(4) unsigned zerofill NOT NULL DEFAULT 0000, + `end` smallint(4) unsigned zerofill NOT NULL DEFAULT 0000, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` char(15) NOT NULL DEFAULT '', + `cycle` tinyint(3) unsigned NOT NULL DEFAULT 0, + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `name` char(150) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `status` enum('wait','doing','done','closed') NOT NULL DEFAULT 'wait', + `private` tinyint(1) NOT NULL DEFAULT 0, + `config` varchar(1000) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `finishedBy` varchar(30) NOT NULL DEFAULT '', + `finishedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + KEY `account` (`account`), + KEY `assignedTo` (`assignedTo`), + KEY `finishedBy` (`finishedBy`), + KEY `date` (`date`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_traincategory` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(30) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) NOT NULL DEFAULT 0, + `order` mediumint(8) NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `parent` (`parent`), + KEY `path` (`path`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_traincontents` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `code` varchar(50) NOT NULL DEFAULT '', + `course` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `order` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_traincourse` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `code` varchar(255) NOT NULL DEFAULT '', + `category` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `status` varchar(10) NOT NULL DEFAULT '', + `teacher` varchar(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `importedStatus` enum('','wait','doing','done') NOT NULL DEFAULT '', + `lastUpdatedTime` int(10) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(255) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `editedBy` varchar(255) NOT NULL DEFAULT '', + `editedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_trainplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `place` varchar(255) NOT NULL DEFAULT '', + `trainee` text DEFAULT NULL, + `lecturer` varchar(20) NOT NULL DEFAULT '', + `type` enum('inside','outside') NOT NULL DEFAULT 'inside', + `status` varchar(20) NOT NULL DEFAULT '', + `summary` mediumtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_trainrecords` ( + `user` char(30) NOT NULL DEFAULT '', + `objectId` mediumint(8) unsigned NOT NULL DEFAULT 0, + `objectType` varchar(10) NOT NULL DEFAULT '', + `status` varchar(10) NOT NULL DEFAULT '', + UNIQUE KEY `object` (`user`,`objectId`,`objectType`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_trip` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` enum('trip','egress') NOT NULL DEFAULT 'trip', + `customers` varchar(20) NOT NULL DEFAULT '', + `name` char(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `start` time DEFAULT NULL, + `finish` time DEFAULT NULL, + `from` char(50) NOT NULL DEFAULT '', + `to` char(50) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `createdBy` (`createdBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_user` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `company` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT 'inside', + `dept` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `password` char(32) NOT NULL DEFAULT '', + `role` char(10) NOT NULL DEFAULT '', + `realname` varchar(100) NOT NULL DEFAULT '', + `superior` char(30) DEFAULT '', + `pinyin` varchar(255) NOT NULL DEFAULT '', + `nickname` char(60) NOT NULL DEFAULT '', + `commiter` varchar(100) NOT NULL DEFAULT '', + `avatar` text DEFAULT NULL, + `birthday` date DEFAULT NULL, + `gender` enum('f','m') NOT NULL DEFAULT 'f', + `email` char(90) NOT NULL DEFAULT '', + `skype` char(90) NOT NULL DEFAULT '', + `qq` char(20) NOT NULL DEFAULT '', + `mobile` char(11) NOT NULL DEFAULT '', + `phone` char(20) NOT NULL DEFAULT '', + `weixin` varchar(90) NOT NULL DEFAULT '', + `dingding` varchar(90) NOT NULL DEFAULT '', + `slack` varchar(90) NOT NULL DEFAULT '', + `whatsapp` varchar(90) NOT NULL DEFAULT '', + `address` char(120) NOT NULL DEFAULT '', + `zipcode` char(10) NOT NULL DEFAULT '', + `nature` text DEFAULT NULL, + `analysis` text DEFAULT NULL, + `strategy` text DEFAULT NULL, + `join` date DEFAULT NULL, + `visits` mediumint(8) unsigned NOT NULL DEFAULT 0, + `visions` varchar(20) NOT NULL DEFAULT 'rnd,lite', + `ip` varchar(255) NOT NULL DEFAULT '', + `last` int(11) unsigned NOT NULL DEFAULT 0, + `fails` tinyint(5) NOT NULL DEFAULT 0, + `locked` datetime DEFAULT NULL, + `feedback` enum('0','1') NOT NULL DEFAULT '0', + `ranzhi` char(30) NOT NULL DEFAULT '', + `ldap` char(30) NOT NULL DEFAULT '', + `score` int(11) NOT NULL DEFAULT 0, + `scoreLevel` int(11) NOT NULL DEFAULT 0, + `resetToken` varchar(50) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `clientStatus` enum('online','away','busy','offline','meeting') NOT NULL DEFAULT 'offline', + `clientLang` varchar(10) NOT NULL DEFAULT 'zh-cn', + PRIMARY KEY (`id`), + UNIQUE KEY `account` (`account`), + KEY `dept` (`dept`), + KEY `email` (`email`), + KEY `commiter` (`commiter`), + KEY `deleted` (`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_usercontact` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `listName` varchar(60) NOT NULL DEFAULT '', + `userList` text DEFAULT NULL, + `public` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_usergroup` ( + `account` char(30) NOT NULL DEFAULT '', + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `project` text DEFAULT NULL, + UNIQUE KEY `account` (`account`,`group`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_userquery` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `title` varchar(90) NOT NULL DEFAULT '', + `form` text DEFAULT NULL, + `sql` text DEFAULT NULL, + `shortcut` enum('0','1') NOT NULL DEFAULT '0', + `common` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `account` (`account`), + KEY `module` (`module`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_usertpl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `title` varchar(150) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `public` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_userview` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `programs` mediumtext DEFAULT NULL, + `products` mediumtext DEFAULT NULL, + `projects` mediumtext DEFAULT NULL, + `sprints` mediumtext DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_webhook` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(15) NOT NULL DEFAULT 'default', + `name` varchar(50) NOT NULL DEFAULT '', + `url` varchar(255) NOT NULL DEFAULT '', + `domain` varchar(255) NOT NULL DEFAULT '', + `secret` varchar(255) NOT NULL DEFAULT '', + `contentType` varchar(30) NOT NULL DEFAULT 'application/json', + `sendType` enum('sync','async') NOT NULL DEFAULT 'sync', + `products` text DEFAULT NULL, + `executions` text DEFAULT NULL, + `params` varchar(100) NOT NULL DEFAULT '', + `actions` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_weeklyreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `weekStart` date DEFAULT NULL, + `pv` float(9,2) NOT NULL DEFAULT 0.00, + `ev` float(9,2) NOT NULL DEFAULT 0.00, + `ac` float(9,2) NOT NULL DEFAULT 0.00, + `sv` float(9,2) NOT NULL DEFAULT 0.00, + `cv` float(9,2) NOT NULL DEFAULT 0.00, + `staff` smallint(5) unsigned NOT NULL DEFAULT 0, + `progress` varchar(255) NOT NULL DEFAULT '', + `workload` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `week` (`project`,`weekStart`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_workestimation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `scale` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `productivity` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `duration` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `unitLaborCost` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `totalLaborCost` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `dayHour` decimal(10,2) NOT NULL DEFAULT 0.00, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_workflow` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `parent` varchar(30) NOT NULL DEFAULT '', + `child` varchar(30) NOT NULL DEFAULT '', + `type` varchar(10) NOT NULL DEFAULT 'flow', + `navigator` varchar(10) NOT NULL DEFAULT '', + `app` varchar(20) NOT NULL DEFAULT '', + `position` varchar(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `table` varchar(50) NOT NULL DEFAULT '', + `name` varchar(30) NOT NULL DEFAULT '', + `icon` varchar(30) NOT NULL DEFAULT 'flow', + `titleField` varchar(30) NOT NULL DEFAULT '', + `contentField` text DEFAULT NULL, + `flowchart` text DEFAULT NULL, + `js` text DEFAULT NULL, + `css` text DEFAULT NULL, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `role` varchar(10) NOT NULL DEFAULT 'buildin', + `belong` varchar(50) NOT NULL DEFAULT '', + `administrator` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `version` varchar(10) NOT NULL DEFAULT '1.0', + `status` varchar(10) NOT NULL DEFAULT 'wait', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `approval` enum('enabled','disabled') NOT NULL DEFAULT 'disabled', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`group`,`app`,`module`,`vision`), + KEY `type` (`type`), + KEY `app` (`app`), + KEY `module` (`module`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_workflowaction` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` varchar(30) NOT NULL DEFAULT '', + `action` varchar(50) NOT NULL DEFAULT '', + `method` varchar(50) NOT NULL DEFAULT '', + `name` varchar(50) NOT NULL DEFAULT '', + `type` enum('single','batch') NOT NULL DEFAULT 'single', + `batchMode` enum('same','different') NOT NULL DEFAULT 'different', + `extensionType` varchar(10) NOT NULL DEFAULT 'override', + `open` varchar(20) NOT NULL DEFAULT '', + `position` enum('menu','browseandview','browse','view') NOT NULL DEFAULT 'browseandview', + `layout` char(20) NOT NULL DEFAULT '', + `show` enum('dropdownlist','direct') NOT NULL DEFAULT 'dropdownlist', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `role` varchar(10) NOT NULL DEFAULT 'custom', + `virtual` tinyint(1) unsigned NOT NULL DEFAULT 0, + `conditions` text DEFAULT NULL, + `verifications` text DEFAULT NULL, + `hooks` text DEFAULT NULL, + `linkages` text DEFAULT NULL, + `js` text DEFAULT NULL, + `css` text DEFAULT NULL, + `toList` char(255) NOT NULL DEFAULT '', + `blocks` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `status` varchar(10) NOT NULL DEFAULT 'enable', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`group`,`module`,`action`,`vision`), + KEY `module` (`module`), + KEY `action` (`action`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_workflowdatasource` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` enum('system','sql','func','option','lang','category') NOT NULL DEFAULT 'option', + `name` varchar(30) NOT NULL DEFAULT '', + `code` varchar(30) NOT NULL DEFAULT '', + `datasource` text DEFAULT NULL, + `view` varchar(20) NOT NULL DEFAULT '', + `keyField` varchar(50) NOT NULL DEFAULT '', + `valueField` varchar(50) NOT NULL DEFAULT '', + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `type` (`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_workflowfield` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` varchar(30) NOT NULL DEFAULT '', + `field` varchar(50) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT 'varchar', + `length` varchar(10) NOT NULL DEFAULT '', + `name` varchar(50) NOT NULL DEFAULT '', + `control` varchar(20) NOT NULL DEFAULT '', + `expression` text DEFAULT NULL, + `options` text DEFAULT NULL, + `default` varchar(100) NOT NULL DEFAULT '', + `rules` varchar(255) NOT NULL DEFAULT '', + `placeholder` varchar(255) NOT NULL DEFAULT '', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `searchOrder` smallint(5) unsigned NOT NULL DEFAULT 0, + `exportOrder` smallint(5) unsigned NOT NULL DEFAULT 0, + `canExport` enum('0','1') NOT NULL DEFAULT '0', + `canSearch` enum('0','1') NOT NULL DEFAULT '0', + `isValue` enum('0','1') NOT NULL DEFAULT '0', + `readonly` enum('0','1') NOT NULL DEFAULT '0', + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `role` varchar(10) NOT NULL DEFAULT 'custom', + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`group`,`module`,`field`), + KEY `module` (`module`), + KEY `field` (`field`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_workflowgroup` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(10) NOT NULL DEFAULT '', + `projectModel` varchar(10) NOT NULL DEFAULT '', + `projectType` varchar(10) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `code` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `disabledModules` varchar(255) NOT NULL DEFAULT '', + `status` varchar(10) NOT NULL DEFAULT 'wait', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `main` enum('0','1') NOT NULL DEFAULT '0', + `exclusive` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `type` (`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_workflowlabel` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` varchar(30) NOT NULL DEFAULT '', + `action` varchar(30) NOT NULL DEFAULT 'browse', + `code` varchar(30) NOT NULL DEFAULT '', + `label` varchar(255) NOT NULL DEFAULT '', + `params` text DEFAULT NULL, + `orderBy` text DEFAULT NULL, + `order` tinyint(3) NOT NULL DEFAULT 0, + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `role` varchar(10) NOT NULL DEFAULT 'custom', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `module` (`module`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_workflowlayout` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` varchar(30) NOT NULL DEFAULT '', + `action` varchar(50) NOT NULL DEFAULT '', + `ui` mediumint(8) NOT NULL DEFAULT 0, + `field` varchar(50) NOT NULL DEFAULT '', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `width` varchar(50) NOT NULL DEFAULT '0', + `position` text DEFAULT NULL, + `readonly` enum('0','1') NOT NULL DEFAULT '0', + `mobileShow` enum('0','1') NOT NULL DEFAULT '1', + `summary` varchar(20) NOT NULL DEFAULT '', + `defaultValue` text DEFAULT NULL, + `layoutRules` varchar(255) NOT NULL DEFAULT '', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`group`,`module`,`action`,`ui`,`field`,`vision`), + KEY `module` (`module`), + KEY `action` (`action`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_workflowlinkdata` ( + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `linkedType` varchar(30) NOT NULL DEFAULT '', + `linkedID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + UNIQUE KEY `unique` (`objectType`,`objectID`,`linkedType`,`linkedID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_workflowrelation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `prev` varchar(30) NOT NULL DEFAULT '', + `next` varchar(30) NOT NULL DEFAULT '', + `field` varchar(50) NOT NULL DEFAULT '', + `actions` varchar(20) NOT NULL DEFAULT '', + `actionCodes` text DEFAULT NULL, + `buildin` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_workflowrelationlayout` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `prev` varchar(30) NOT NULL DEFAULT '', + `next` varchar(30) NOT NULL DEFAULT '', + `action` varchar(50) NOT NULL DEFAULT '', + `ui` mediumint(8) NOT NULL DEFAULT 0, + `field` varchar(50) NOT NULL DEFAULT '', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`prev`,`next`,`action`,`ui`,`field`), + KEY `prev` (`prev`), + KEY `next` (`next`), + KEY `action` (`action`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_workflowreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL, + `name` varchar(100) NOT NULL, + `type` enum('pie','line','bar') NOT NULL DEFAULT 'pie', + `countType` enum('sum','count') NOT NULL DEFAULT 'sum', + `displayType` enum('value','percent') NOT NULL DEFAULT 'value', + `dimension` varchar(130) NOT NULL, + `fields` text NOT NULL, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_workflowrule` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` enum('system','regex','func') NOT NULL DEFAULT 'regex', + `name` varchar(30) NOT NULL DEFAULT '', + `rule` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `type` (`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_workflowsql` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL DEFAULT '', + `field` varchar(50) NOT NULL DEFAULT '', + `action` varchar(50) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `vars` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `module` (`module`), + KEY `field` (`field`), + KEY `action` (`action`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_workflowui` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` varchar(30) NOT NULL, + `action` varchar(50) NOT NULL, + `name` varchar(30) NOT NULL, + `conditions` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `module` (`module`), + KEY `action` (`action`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_workflowversion` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL DEFAULT '', + `version` varchar(10) NOT NULL DEFAULT '', + `fields` text DEFAULT NULL, + `actions` text DEFAULT NULL, + `layouts` text DEFAULT NULL, + `sqls` text DEFAULT NULL, + `labels` text DEFAULT NULL, + `table` text DEFAULT NULL, + `datas` text DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `moduleversion` (`module`,`version`), + KEY `module` (`module`), + KEY `version` (`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_zoutput` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `activity` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `content` mediumtext DEFAULT NULL, + `optional` char(20) NOT NULL DEFAULT '', + `tailorNorm` varchar(255) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `order` mediumint(8) DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/db/standard/zentao21.7.sql b/db/standard/zentao21.7.sql new file mode 100644 index 0000000000..5d92c6b88e --- /dev/null +++ b/db/standard/zentao21.7.sql @@ -0,0 +1,4318 @@ +CREATE TABLE `zt_acl` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `type` char(40) NOT NULL DEFAULT 'whitelist', + `source` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_action` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` text DEFAULT NULL, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `actor` varchar(100) NOT NULL DEFAULT '', + `action` varchar(80) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `comment` text DEFAULT NULL, + `files` text DEFAULT NULL, + `extra` text DEFAULT NULL, + `read` enum('0','1') NOT NULL DEFAULT '0', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `efforted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `date` (`date`), + KEY `actor` (`actor`), + KEY `project` (`project`), + KEY `action` (`action`), + KEY `objectID` (`objectID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_actionrecent` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` text DEFAULT NULL, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `actor` varchar(100) NOT NULL DEFAULT '', + `action` varchar(80) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `comment` text DEFAULT NULL, + `files` text DEFAULT NULL, + `extra` text DEFAULT NULL, + `read` enum('0','1') NOT NULL DEFAULT '0', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `efforted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `date` (`date`), + KEY `actor` (`actor`), + KEY `project` (`project`), + KEY `action` (`action`), + KEY `objectID` (`objectID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_activity` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `process` mediumint(9) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `optional` varchar(255) NOT NULL DEFAULT '', + `tailorNorm` varchar(255) NOT NULL DEFAULT '', + `content` mediumtext DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `order` mediumint(8) DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_ai_assistant` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(30) NOT NULL, + `modelId` mediumint(8) unsigned NOT NULL, + `desc` text NOT NULL, + `systemMessage` text NOT NULL, + `greetings` text NOT NULL, + `icon` varchar(30) NOT NULL DEFAULT 'coding-1', + `enabled` enum('0','1') NOT NULL DEFAULT '1', + `createdDate` datetime NOT NULL, + `publishedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_ai_message` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `appID` mediumint(8) unsigned NOT NULL, + `user` mediumint(8) unsigned NOT NULL, + `type` enum('req','res','ntf') NOT NULL, + `content` text NOT NULL, + `createdDate` datetime NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ai_miniprogram` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(30) NOT NULL, + `category` varchar(30) NOT NULL, + `desc` text DEFAULT NULL, + `model` mediumint(8) unsigned DEFAULT NULL, + `icon` varchar(30) NOT NULL DEFAULT 'writinghand-7', + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL, + `editedDate` datetime NOT NULL, + `published` enum('0','1') NOT NULL DEFAULT '0', + `publishedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `prompt` text NOT NULL, + `builtIn` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ai_miniprogramfield` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `appID` mediumint(8) unsigned NOT NULL, + `name` varchar(30) NOT NULL, + `type` enum('radio','checkbox','text','textarea') DEFAULT 'text', + `placeholder` text DEFAULT NULL, + `options` text DEFAULT NULL, + `required` enum('0','1') DEFAULT '1', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ai_miniprogramstar` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `appID` mediumint(8) unsigned NOT NULL, + `userID` mediumint(8) unsigned NOT NULL, + `createdDate` datetime NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `appID` (`appID`,`userID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +CREATE TABLE `zt_ai_model` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(20) NOT NULL, + `vendor` varchar(20) NOT NULL, + `credentials` text NOT NULL, + `proxy` text DEFAULT NULL, + `name` varchar(20) DEFAULT NULL, + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) DEFAULT NULL, + `editedDate` datetime DEFAULT NULL, + `enabled` enum('0','1') NOT NULL DEFAULT '1', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_ai_prompt` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(20) NOT NULL, + `desc` text DEFAULT NULL, + `model` mediumint(8) unsigned DEFAULT NULL, + `module` varchar(30) DEFAULT NULL, + `source` text DEFAULT NULL, + `targetForm` varchar(30) DEFAULT NULL, + `purpose` text DEFAULT NULL, + `elaboration` text DEFAULT NULL, + `role` text DEFAULT NULL, + `characterization` text DEFAULT NULL, + `status` enum('draft','active') NOT NULL DEFAULT 'draft', + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) DEFAULT NULL, + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_ai_promptrole` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(30) DEFAULT NULL, + `desc` text DEFAULT NULL, + `model` mediumint(8) unsigned DEFAULT NULL, + `role` text DEFAULT NULL, + `characterization` text DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_api` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `product` varchar(255) NOT NULL DEFAULT '', + `lib` int(11) unsigned NOT NULL DEFAULT 0, + `module` int(11) unsigned NOT NULL DEFAULT 0, + `title` varchar(100) NOT NULL DEFAULT '', + `path` varchar(255) NOT NULL DEFAULT '', + `protocol` varchar(10) NOT NULL DEFAULT '', + `method` varchar(10) NOT NULL DEFAULT '', + `requestType` varchar(100) NOT NULL DEFAULT '', + `responseType` varchar(100) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '0', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `params` text DEFAULT NULL, + `paramsExample` text DEFAULT NULL, + `responseExample` text DEFAULT NULL, + `response` text DEFAULT NULL, + `commonParams` text DEFAULT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_api_lib_release` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `lib` int(11) unsigned NOT NULL DEFAULT 0, + `desc` varchar(255) NOT NULL DEFAULT '', + `version` varchar(255) NOT NULL DEFAULT '', + `snap` mediumtext DEFAULT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_apispec` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `doc` int(11) unsigned NOT NULL DEFAULT 0, + `module` int(11) unsigned NOT NULL DEFAULT 0, + `title` varchar(100) NOT NULL DEFAULT '', + `path` varchar(255) NOT NULL DEFAULT '', + `protocol` varchar(10) NOT NULL DEFAULT '', + `method` varchar(10) NOT NULL DEFAULT '', + `requestType` varchar(100) NOT NULL DEFAULT '', + `responseType` varchar(100) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT '', + `owner` varchar(255) NOT NULL DEFAULT '0', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `params` text DEFAULT NULL, + `paramsExample` text DEFAULT NULL, + `responseExample` text DEFAULT NULL, + `response` text DEFAULT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_apistruct` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `lib` int(11) unsigned NOT NULL DEFAULT 0, + `name` varchar(30) NOT NULL DEFAULT '', + `type` varchar(50) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `attribute` text DEFAULT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_apistruct_spec` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(50) NOT NULL DEFAULT '', + `desc` varchar(255) NOT NULL DEFAULT '', + `attribute` text DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_approval` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `flow` mediumint(8) NOT NULL DEFAULT 0, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `nodes` mediumtext DEFAULT NULL, + `version` mediumint(9) NOT NULL DEFAULT 0, + `status` varchar(20) NOT NULL DEFAULT 'doing', + `result` varchar(20) NOT NULL DEFAULT '', + `extra` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_approvalflow` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `code` varchar(100) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `version` mediumint(8) NOT NULL DEFAULT 1, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `workflow` varchar(30) NOT NULL DEFAULT '', + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_approvalflowobject` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `root` int(8) NOT NULL DEFAULT 0, + `flow` int(8) NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `extra` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_approvalflowspec` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `flow` mediumint(8) NOT NULL DEFAULT 0, + `version` mediumint(8) NOT NULL DEFAULT 0, + `nodes` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_approvalnode` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `approval` mediumint(8) NOT NULL DEFAULT 0, + `type` enum('review','cc') NOT NULL DEFAULT 'review', + `title` varchar(255) NOT NULL DEFAULT '', + `account` char(30) NOT NULL DEFAULT '', + `node` varchar(100) NOT NULL DEFAULT '', + `reviewType` varchar(100) NOT NULL DEFAULT 'manual', + `agentType` varchar(100) NOT NULL DEFAULT 'pass', + `multipleType` enum('and','or') NOT NULL DEFAULT 'and', + `percent` smallint(6) NOT NULL DEFAULT 0, + `needAll` enum('0','1') NOT NULL DEFAULT '0', + `solicit` enum('0','1') NOT NULL DEFAULT '0', + `prev` mediumtext DEFAULT NULL, + `next` mediumtext DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT 'wait', + `result` varchar(10) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + `opinion` mediumtext DEFAULT NULL, + `extra` mediumtext DEFAULT NULL, + `revertTo` char(30) NOT NULL DEFAULT '', + `forwardBy` char(30) NOT NULL DEFAULT '', + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_reviewed_date` (`reviewedDate`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_approvalobject` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `approval` int(8) NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) NOT NULL DEFAULT 0, + `reviewers` text DEFAULT NULL, + `opinion` text DEFAULT NULL, + `result` varchar(10) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `appliedBy` char(30) NOT NULL DEFAULT '', + `appliedDate` datetime DEFAULT NULL, + `desc` text DEFAULT NULL, + `extra` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_approvalrole` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `code` char(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `users` longtext DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_artifactrepo` ( + `id` smallint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(45) NOT NULL DEFAULT '', + `products` varchar(255) NOT NULL DEFAULT '', + `serverID` smallint(8) NOT NULL DEFAULT 0, + `repoName` varchar(45) NOT NULL DEFAULT '', + `format` varchar(10) NOT NULL DEFAULT '', + `type` char(7) NOT NULL DEFAULT '', + `status` varchar(10) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` tinyint(4) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_assetlib` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_attend` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + `signIn` time DEFAULT NULL, + `signOut` time DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `ip` varchar(100) NOT NULL DEFAULT '', + `device` varchar(30) NOT NULL DEFAULT '', + `client` varchar(20) NOT NULL DEFAULT '', + `manualIn` time DEFAULT NULL, + `manualOut` time DEFAULT NULL, + `reason` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `reviewStatus` varchar(30) DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `attend` (`date`,`account`), + KEY `account` (`account`), + KEY `date` (`date`), + KEY `status` (`status`), + KEY `reason` (`reason`), + KEY `reviewStatus` (`reviewStatus`), + KEY `reviewedBy` (`reviewedBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_attendstat` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `month` char(10) NOT NULL DEFAULT '', + `normal` decimal(12,2) NOT NULL DEFAULT 0.00, + `late` decimal(12,2) NOT NULL DEFAULT 0.00, + `early` decimal(12,2) NOT NULL DEFAULT 0.00, + `absent` decimal(12,2) NOT NULL DEFAULT 0.00, + `trip` decimal(12,2) NOT NULL DEFAULT 0.00, + `egress` decimal(12,2) NOT NULL DEFAULT 0.00, + `lieu` decimal(12,2) NOT NULL DEFAULT 0.00, + `paidLeave` decimal(12,2) NOT NULL DEFAULT 0.00, + `unpaidLeave` decimal(12,2) NOT NULL DEFAULT 0.00, + `timeOvertime` decimal(12,2) NOT NULL DEFAULT 0.00, + `restOvertime` decimal(12,2) NOT NULL DEFAULT 0.00, + `holidayOvertime` decimal(12,2) NOT NULL DEFAULT 0.00, + `deserve` decimal(12,2) NOT NULL DEFAULT 0.00, + `actual` decimal(12,2) NOT NULL DEFAULT 0.00, + `status` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `attend` (`month`,`account`), + KEY `account` (`account`), + KEY `month` (`month`), + KEY `status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_auditcl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `model` char(30) NOT NULL DEFAULT 'waterfall', + `practiceArea` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` int(11) NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_auditplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `dateType` char(30) NOT NULL DEFAULT '', + `config` text DEFAULT NULL, + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `process` mediumint(9) NOT NULL DEFAULT 0, + `processType` char(30) NOT NULL DEFAULT '', + `checkDate` date DEFAULT NULL, + `checkedBy` varchar(30) NOT NULL DEFAULT '', + `realCheckDate` date DEFAULT NULL, + `result` char(30) NOT NULL DEFAULT '', + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `checkBy` varchar(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_auditresult` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `auditplan` mediumint(8) NOT NULL DEFAULT 0, + `listID` mediumint(8) NOT NULL DEFAULT 0, + `result` char(30) NOT NULL DEFAULT '', + `checkedBy` varchar(30) NOT NULL DEFAULT '', + `checkedDate` date DEFAULT NULL, + `comment` text DEFAULT NULL, + `severity` char(30) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_autocache` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `code` varchar(30) NOT NULL DEFAULT '', + `fields` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `cache` (`code`,`fields`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_automation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `node` int(11) unsigned NOT NULL DEFAULT 0, + `product` int(11) unsigned NOT NULL DEFAULT 0, + `scriptPath` varchar(255) NOT NULL DEFAULT '', + `shell` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_basicmeas` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `purpose` varchar(50) NOT NULL DEFAULT '', + `scope` char(30) NOT NULL DEFAULT '', + `object` char(30) NOT NULL DEFAULT '', + `name` varchar(90) NOT NULL DEFAULT '', + `code` char(30) NOT NULL DEFAULT '', + `unit` varchar(100) NOT NULL DEFAULT '', + `configure` text DEFAULT NULL, + `params` text DEFAULT NULL, + `definition` text DEFAULT NULL, + `source` varchar(255) NOT NULL DEFAULT '', + `collectType` varchar(30) NOT NULL DEFAULT '', + `collectConf` text DEFAULT NULL, + `execTime` varchar(30) NOT NULL DEFAULT '', + `collectedBy` varchar(10) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_block` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `dashboard` varchar(20) NOT NULL DEFAULT '', + `module` varchar(20) NOT NULL DEFAULT '', + `title` varchar(100) NOT NULL DEFAULT '', + `block` varchar(30) NOT NULL DEFAULT '', + `code` varchar(30) NOT NULL DEFAULT '', + `width` enum('1','2','3') NOT NULL DEFAULT '1', + `height` smallint(6) unsigned NOT NULL DEFAULT 3, + `left` enum('0','1','2') NOT NULL DEFAULT '0', + `top` smallint(5) unsigned NOT NULL DEFAULT 0, + `params` text DEFAULT NULL, + `hidden` tinyint(1) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_branch` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `default` enum('0','1') NOT NULL DEFAULT '0', + `status` enum('active','closed') NOT NULL DEFAULT 'active', + `desc` varchar(255) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `closedDate` date DEFAULT NULL, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_budget` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `stage` char(30) NOT NULL DEFAULT '', + `subject` mediumint(8) NOT NULL DEFAULT 0, + `amount` char(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_bug` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `injection` mediumint(8) unsigned NOT NULL DEFAULT 0, + `identify` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `plan` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `toTask` mediumint(8) unsigned NOT NULL DEFAULT 0, + `toStory` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `keywords` varchar(255) NOT NULL DEFAULT '', + `severity` tinyint(4) NOT NULL DEFAULT 0, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `type` varchar(30) NOT NULL DEFAULT '', + `os` varchar(255) NOT NULL DEFAULT '', + `browser` varchar(255) NOT NULL DEFAULT '', + `hardware` varchar(30) NOT NULL DEFAULT '', + `found` varchar(30) NOT NULL DEFAULT '', + `steps` mediumtext DEFAULT NULL, + `status` enum('active','resolved','closed') NOT NULL DEFAULT 'active', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `confirmed` tinyint(1) NOT NULL DEFAULT 0, + `activatedCount` smallint(6) NOT NULL DEFAULT 0, + `activatedDate` datetime DEFAULT NULL, + `feedbackBy` varchar(100) NOT NULL DEFAULT '', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', + `mailto` text DEFAULT NULL, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `openedBuild` varchar(255) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deadline` date DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolution` varchar(30) NOT NULL DEFAULT '', + `resolvedBuild` varchar(30) NOT NULL DEFAULT '', + `resolvedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `duplicateBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `relatedBug` varchar(255) NOT NULL DEFAULT '', + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `caseVersion` smallint(6) NOT NULL DEFAULT 1, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT 0, + `result` mediumint(8) unsigned NOT NULL DEFAULT 0, + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `mr` mediumint(8) unsigned NOT NULL DEFAULT 0, + `entry` text DEFAULT NULL, + `lines` varchar(10) NOT NULL DEFAULT '', + `v1` varchar(255) NOT NULL DEFAULT '', + `v2` varchar(255) NOT NULL DEFAULT '', + `repoType` varchar(30) NOT NULL DEFAULT '', + `issueKey` varchar(50) NOT NULL DEFAULT '', + `testtask` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`), + KEY `status` (`status`), + KEY `plan` (`plan`), + KEY `story` (`story`), + KEY `case` (`case`), + KEY `toStory` (`toStory`), + KEY `result` (`result`), + KEY `assignedTo` (`assignedTo`), + KEY `deleted` (`deleted`), + KEY `project` (`project`), + KEY `product_status_deleted` (`product`,`status`,`deleted`), + KEY `idx_repo` (`repo`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_build` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` varchar(255) NOT NULL DEFAULT '0', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `builds` varchar(255) NOT NULL DEFAULT '', + `name` char(150) NOT NULL DEFAULT '', + `system` mediumint(8) unsigned NOT NULL DEFAULT 0, + `scmPath` char(255) NOT NULL DEFAULT '', + `filePath` char(255) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + `stories` text DEFAULT NULL, + `bugs` text DEFAULT NULL, + `artifactRepoID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `builder` char(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`), + KEY `idx_system` (`system`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_burn` ( + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `date` date NOT NULL, + `estimate` float NOT NULL DEFAULT 0, + `left` float NOT NULL DEFAULT 0, + `consumed` float NOT NULL DEFAULT 0, + `storyPoint` float NOT NULL DEFAULT 0, + UNIQUE KEY `execution_task` (`execution`,`date`,`task`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_case` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(30) unsigned NOT NULL DEFAULT 0, + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `title` varchar(255) NOT NULL DEFAULT '', + `precondition` text DEFAULT NULL, + `keywords` varchar(255) NOT NULL DEFAULT '', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 3, + `type` char(30) NOT NULL DEFAULT '1', + `auto` varchar(10) NOT NULL DEFAULT 'no', + `frame` varchar(10) NOT NULL DEFAULT '', + `stage` varchar(255) NOT NULL DEFAULT '', + `howRun` varchar(30) NOT NULL DEFAULT '', + `script` longtext DEFAULT NULL, + `scriptedBy` varchar(30) NOT NULL DEFAULT '', + `scriptedDate` date DEFAULT NULL, + `scriptStatus` varchar(30) NOT NULL DEFAULT '', + `scriptLocation` varchar(255) NOT NULL DEFAULT '', + `status` char(30) NOT NULL DEFAULT '1', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `frequency` enum('1','2','3') NOT NULL DEFAULT '1', + `order` tinyint(30) unsigned NOT NULL DEFAULT 0, + `openedBy` char(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedDate` date DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `version` tinyint(3) unsigned NOT NULL DEFAULT 0, + `linkCase` varchar(255) NOT NULL DEFAULT '', + `fromBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromCaseID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromCaseVersion` mediumint(8) unsigned NOT NULL DEFAULT 1, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `lastRunner` varchar(30) NOT NULL DEFAULT '', + `lastRunDate` datetime DEFAULT NULL, + `lastRunResult` char(30) NOT NULL DEFAULT '', + `scene` int(11) NOT NULL DEFAULT 0, + `sort` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `story` (`story`), + KEY `fromBug` (`fromBug`), + KEY `module` (`module`), + KEY `scene` (`scene`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_casespec` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `case` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `precondition` text DEFAULT NULL, + `files` text DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `case` (`case`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_casestep` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `type` varchar(10) NOT NULL DEFAULT 'step', + `desc` text DEFAULT NULL, + `expect` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `case` (`case`), + KEY `version` (`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_cfd` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `execution` int(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `name` char(30) NOT NULL DEFAULT '', + `count` smallint(6) NOT NULL DEFAULT 0, + `date` date DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `execution_type_name_date` (`execution`,`type`,`name`,`date`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_chart` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `code` varchar(255) NOT NULL DEFAULT '', + `driver` enum('mysql','duckdb') NOT NULL DEFAULT 'mysql', + `mode` enum('text','builder') NOT NULL DEFAULT 'builder', + `dimension` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` varchar(30) NOT NULL DEFAULT '', + `group` varchar(255) NOT NULL DEFAULT '', + `dataset` varchar(30) NOT NULL DEFAULT '0', + `desc` text DEFAULT NULL, + `acl` enum('open','private') NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `settings` mediumtext DEFAULT NULL, + `filters` mediumtext DEFAULT NULL, + `step` tinyint(3) unsigned NOT NULL DEFAULT 0, + `fields` mediumtext DEFAULT NULL, + `langs` text DEFAULT NULL, + `sql` mediumtext DEFAULT NULL, + `version` varchar(10) NOT NULL DEFAULT '1', + `stage` enum('draft','published') NOT NULL DEFAULT 'draft', + `builtin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `objects` mediumtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_charter` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `level` varchar(255) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `market` varchar(30) NOT NULL DEFAULT '', + `check` enum('0','1') NOT NULL DEFAULT '0', + `appliedBy` char(30) NOT NULL DEFAULT '', + `appliedDate` datetime DEFAULT NULL, + `appliedReviewer` text DEFAULT NULL, + `budget` char(30) NOT NULL DEFAULT '', + `budgetUnit` char(30) NOT NULL DEFAULT '', + `product` text DEFAULT NULL, + `roadmap` text DEFAULT NULL, + `plan` text DEFAULT NULL, + `type` varchar(30) NOT NULL DEFAULT 'roadmap', + `filesConfig` text DEFAULT NULL, + `spec` mediumtext DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `charterFiles` text DEFAULT NULL, + `completionFiles` text DEFAULT NULL, + `canceledFiles` text DEFAULT NULL, + `prevCanceledStatus` varchar(30) NOT NULL DEFAULT '', + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(255) NOT NULL DEFAULT '', + `activatedBy` char(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `activatedReviewer` text DEFAULT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedResult` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `reviewStatus` varchar(30) NOT NULL DEFAULT 'wait', + `completedBy` varchar(30) NOT NULL DEFAULT '', + `completedDate` datetime DEFAULT NULL, + `completedReviewer` text DEFAULT NULL, + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime DEFAULT NULL, + `canceledReviewer` text DEFAULT NULL, + `meetingDate` date DEFAULT NULL, + `meetingLocation` varchar(255) NOT NULL DEFAULT '', + `meetingMinutes` mediumtext DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_cmcl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` char(30) NOT NULL DEFAULT '', + `projectType` varchar(255) NOT NULL DEFAULT '', + `title` int(11) NOT NULL DEFAULT 0, + `contents` text DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `order` int(11) NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_company` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(120) DEFAULT NULL, + `phone` char(20) DEFAULT NULL, + `fax` char(20) DEFAULT NULL, + `address` char(120) DEFAULT NULL, + `zipcode` char(10) DEFAULT NULL, + `website` char(120) DEFAULT NULL, + `backyard` char(120) DEFAULT NULL, + `guest` enum('1','0') NOT NULL DEFAULT '0', + `admins` char(255) DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_compile` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL DEFAULT '', + `job` mediumint(8) unsigned NOT NULL DEFAULT 0, + `queue` mediumint(8) NOT NULL DEFAULT 0, + `status` varchar(100) NOT NULL DEFAULT '', + `logs` longtext DEFAULT NULL, + `atTime` varchar(10) NOT NULL DEFAULT '', + `testtask` mediumint(8) unsigned NOT NULL DEFAULT 0, + `tag` varchar(255) NOT NULL DEFAULT '', + `times` tinyint(3) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `updateDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `idx_created_status` (`createdDate`,`status`,`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_config` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `vision` varchar(10) NOT NULL DEFAULT '', + `owner` char(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `section` char(30) NOT NULL DEFAULT '', + `key` char(30) NOT NULL DEFAULT '', + `value` longtext DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`vision`,`owner`,`module`,`section`,`key`), + KEY `vision` (`vision`), + KEY `owner` (`owner`), + KEY `module` (`module`), + KEY `key` (`key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_cron` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `m` varchar(20) NOT NULL DEFAULT '', + `h` varchar(20) NOT NULL DEFAULT '', + `dom` varchar(20) NOT NULL DEFAULT '', + `mon` varchar(20) NOT NULL DEFAULT '', + `dow` varchar(20) NOT NULL DEFAULT '', + `command` text DEFAULT NULL, + `remark` varchar(255) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT '', + `buildin` tinyint(1) NOT NULL DEFAULT 0, + `status` varchar(20) NOT NULL DEFAULT '', + `lastTime` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `lastTime` (`lastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_dashboard` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `dimension` int(8) NOT NULL DEFAULT 0, + `module` mediumint(8) NOT NULL DEFAULT 0, + `desc` mediumtext DEFAULT NULL, + `layout` mediumtext DEFAULT NULL, + `filters` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_dataset` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(155) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `fields` mediumtext DEFAULT NULL, + `objects` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_dataview` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(155) NOT NULL DEFAULT '', + `code` varchar(50) NOT NULL DEFAULT '', + `mode` varchar(50) NOT NULL DEFAULT 'builder', + `driver` enum('mysql','duckdb') NOT NULL DEFAULT 'mysql', + `view` varchar(57) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `fields` text DEFAULT NULL, + `langs` text DEFAULT NULL, + `objects` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_demand` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `pool` int(8) NOT NULL DEFAULT 0, + `module` int(8) NOT NULL DEFAULT 0, + `product` varchar(255) NOT NULL DEFAULT '', + `parent` mediumint(8) NOT NULL DEFAULT 0, + `pri` char(30) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `source` char(30) NOT NULL DEFAULT '', + `sourceNote` varchar(255) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `feedbackedBy` varchar(255) NOT NULL DEFAULT '', + `email` varchar(255) NOT NULL DEFAULT '', + `assignedTo` char(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `reviewedBy` text DEFAULT NULL, + `reviewedDate` datetime DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + `stage` enum('wait','distributed','inroadmap','incharter','developing','delivering','delivered','closed') NOT NULL DEFAULT 'wait', + `duration` char(30) NOT NULL DEFAULT '', + `BSA` char(30) NOT NULL DEFAULT '', + `story` mediumint(8) NOT NULL DEFAULT 0, + `roadmap` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `mailto` text DEFAULT NULL, + `duplicateDemand` mediumint(8) DEFAULT NULL, + `childDemands` varchar(255) NOT NULL DEFAULT '', + `version` varchar(255) NOT NULL DEFAULT '', + `parentVersion` smallint(6) NOT NULL DEFAULT 0, + `vision` varchar(255) NOT NULL DEFAULT 'or', + `color` varchar(255) NOT NULL DEFAULT '', + `changedBy` char(30) NOT NULL DEFAULT '', + `changedDate` datetime DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `submitedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `activatedDate` datetime DEFAULT NULL, + `distributedBy` varchar(30) NOT NULL DEFAULT '', + `distributedDate` datetime DEFAULT NULL, + `feedback` mediumint(9) NOT NULL DEFAULT 0, + `keywords` varchar(255) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_demandpool` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + `products` varchar(255) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `owner` text DEFAULT NULL, + `reviewer` text DEFAULT NULL, + `acl` char(30) DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_demandreview` ( + `demand` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `reviewer` varchar(30) NOT NULL DEFAULT '', + `result` varchar(30) NOT NULL DEFAULT '', + `reviewDate` datetime DEFAULT NULL, + UNIQUE KEY `demand` (`demand`,`version`,`reviewer`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_demandspec` ( + `demand` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `spec` mediumtext DEFAULT NULL, + `verify` mediumtext DEFAULT NULL, + `files` text DEFAULT NULL, + UNIQUE KEY `demand` (`demand`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_deploy` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `begin` datetime DEFAULT NULL, + `end` datetime DEFAULT NULL, + `estimate` datetime DEFAULT NULL, + `name` varchar(255) NOT NULL DEFAULT '', + `host` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT '', + `owner` char(30) NOT NULL DEFAULT '', + `members` text DEFAULT NULL, + `notify` text DEFAULT NULL, + `cases` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `result` varchar(20) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_deployproduct` ( + `deploy` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `release` mediumint(8) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `deploy_product_release` (`deploy`,`product`,`release`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_deploystep` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `deploy` mediumint(8) unsigned NOT NULL DEFAULT 0, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `stage` varchar(30) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `assignedTo` char(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `finishedBy` char(30) NOT NULL DEFAULT '', + `finishedDate` datetime DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_dept` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(60) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + `position` char(30) NOT NULL DEFAULT '', + `function` char(255) NOT NULL DEFAULT '', + `manager` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `parent` (`parent`), + KEY `path` (`path`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_design` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` varchar(255) NOT NULL DEFAULT '', + `product` varchar(255) NOT NULL DEFAULT '', + `commit` text DEFAULT NULL, + `commitedBy` varchar(30) NOT NULL DEFAULT '', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `story` char(30) NOT NULL DEFAULT '', + `storyVersion` smallint(6) unsigned NOT NULL DEFAULT 1, + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_designspec` ( + `design` mediumint(8) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `files` varchar(255) NOT NULL DEFAULT '', + UNIQUE KEY `design` (`design`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_dimension` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(90) NOT NULL DEFAULT '', + `code` varchar(45) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `acl` enum('open','private') NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_doc` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lib` varchar(30) NOT NULL DEFAULT '', + `template` varchar(30) NOT NULL DEFAULT '', + `templateType` varchar(30) NOT NULL DEFAULT '', + `chapterType` varchar(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `keywords` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'normal', + `parent` smallint(6) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + `views` smallint(6) unsigned NOT NULL DEFAULT 0, + `assetLib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `assetLibType` varchar(30) NOT NULL DEFAULT '', + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromVersion` smallint(6) NOT NULL DEFAULT 1, + `draft` longtext DEFAULT NULL, + `collects` smallint(6) unsigned NOT NULL DEFAULT 0, + `addedBy` varchar(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `editingDate` text DEFAULT NULL, + `editedList` text DEFAULT NULL, + `mailto` text DEFAULT NULL, + `acl` varchar(10) NOT NULL DEFAULT 'open', + `groups` varchar(255) NOT NULL DEFAULT '', + `users` text DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 1, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`), + KEY `lib` (`lib`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_docaction` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `doc` mediumint(8) unsigned NOT NULL DEFAULT 0, + `action` varchar(80) NOT NULL DEFAULT '', + `actor` char(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `doc` (`doc`), + KEY `actor` (`actor`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_docblock` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `doc` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` varchar(50) NOT NULL DEFAULT '', + `settings` text DEFAULT NULL, + `content` mediumtext DEFAULT NULL, + `extra` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_doc` (`doc`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_doccontent` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `doc` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `digest` varchar(255) NOT NULL DEFAULT '', + `content` longtext DEFAULT NULL, + `rawContent` longtext DEFAULT NULL, + `files` text DEFAULT NULL, + `type` varchar(10) NOT NULL DEFAULT '', + `addedBy` varchar(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `fromVersion` smallint(6) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `doc_version` (`doc`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_doclib` ( + `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(30) NOT NULL DEFAULT '', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(60) NOT NULL DEFAULT '', + `baseUrl` varchar(255) NOT NULL DEFAULT '', + `acl` varchar(10) NOT NULL DEFAULT 'open', + `groups` varchar(255) NOT NULL DEFAULT '', + `users` text DEFAULT NULL, + `main` enum('0','1') NOT NULL DEFAULT '0', + `collector` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `order` tinyint(5) unsigned NOT NULL DEFAULT 0, + `addedBy` varchar(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `orderBy` varchar(30) NOT NULL DEFAULT 'id_asc', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_duckdbqueue` ( + `object` varchar(255) NOT NULL DEFAULT '', + `updatedTime` datetime DEFAULT NULL, + `syncTime` datetime DEFAULT NULL, + UNIQUE KEY `object` (`object`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_durationestimation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `stage` mediumint(9) NOT NULL DEFAULT 0, + `workload` varchar(255) NOT NULL DEFAULT '', + `worktimeRate` varchar(255) NOT NULL DEFAULT '', + `people` varchar(255) NOT NULL DEFAULT '', + `startDate` date DEFAULT NULL, + `endDate` date DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_effort` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` text DEFAULT NULL, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` varchar(30) NOT NULL DEFAULT '', + `work` text DEFAULT NULL, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `date` date DEFAULT NULL, + `left` float NOT NULL DEFAULT 0, + `consumed` float NOT NULL DEFAULT 0, + `begin` smallint(4) unsigned zerofill NOT NULL DEFAULT 0000, + `end` smallint(4) unsigned zerofill NOT NULL DEFAULT 0000, + `extra` text DEFAULT NULL, + `order` tinyint(3) unsigned NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `execution` (`execution`), + KEY `objectID` (`objectID`), + KEY `date` (`date`), + KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_entry` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL DEFAULT '', + `account` varchar(30) NOT NULL DEFAULT '', + `code` varchar(20) NOT NULL DEFAULT '', + `key` varchar(32) NOT NULL DEFAULT '', + `freePasswd` enum('0','1') NOT NULL DEFAULT '0', + `ip` varchar(100) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `calledTime` int(11) unsigned NOT NULL DEFAULT 0, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_expect` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `userID` mediumint(8) NOT NULL DEFAULT 0, + `project` mediumint(8) NOT NULL DEFAULT 0, + `expect` text DEFAULT NULL, + `progress` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_extension` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(150) NOT NULL DEFAULT '', + `code` varchar(30) NOT NULL DEFAULT '', + `version` varchar(50) NOT NULL DEFAULT '', + `author` varchar(100) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `license` text DEFAULT NULL, + `type` varchar(20) NOT NULL DEFAULT 'extension', + `site` varchar(150) NOT NULL DEFAULT '', + `zentaoCompatible` text DEFAULT NULL, + `installedTime` datetime DEFAULT NULL, + `depends` varchar(100) NOT NULL DEFAULT '', + `dirs` mediumtext DEFAULT NULL, + `files` mediumtext DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`), + KEY `name` (`name`), + KEY `installedTime` (`installedTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_extuser` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `code` varchar(255) NOT NULL, + `account` char(30) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_faq` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `module` mediumint(9) NOT NULL DEFAULT 0, + `product` mediumint(9) NOT NULL DEFAULT 0, + `question` varchar(255) NOT NULL DEFAULT '', + `answer` text DEFAULT NULL, + `addedtime` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_feedback` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `solution` char(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 2, + `status` varchar(30) NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `public` enum('0','1') NOT NULL DEFAULT '0', + `notify` enum('0','1') NOT NULL DEFAULT '0', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', + `source` varchar(255) NOT NULL DEFAULT '', + `likes` text DEFAULT NULL, + `result` mediumint(8) unsigned NOT NULL DEFAULT 0, + `faq` mediumint(8) unsigned NOT NULL DEFAULT 0, + `openedBy` char(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `processedBy` char(30) NOT NULL DEFAULT '', + `processedDate` datetime DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedTo` varchar(255) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `activatedBy` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `feedbackBy` varchar(100) NOT NULL DEFAULT '', + `repeatFeedback` mediumint(8) NOT NULL DEFAULT 0, + `mailto` varchar(255) NOT NULL DEFAULT '', + `keywords` varchar(255) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_feedbackview` ( + `account` char(30) NOT NULL DEFAULT '', + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `account_product` (`account`,`product`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_file` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `pathname` char(100) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `extension` char(30) NOT NULL DEFAULT '', + `size` int(11) unsigned NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `gid` char(48) NOT NULL DEFAULT '', + `addedBy` char(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `downloads` mediumint(8) unsigned NOT NULL DEFAULT 0, + `extra` varchar(255) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `objectType` (`objectType`), + KEY `objectID` (`objectID`), + KEY `gid` (`gid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_gapanalysis` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` varchar(30) NOT NULL DEFAULT '', + `role` varchar(20) NOT NULL DEFAULT '', + `analysis` mediumtext DEFAULT NULL, + `needTrain` enum('no','yes') NOT NULL DEFAULT 'no', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `project_account` (`project`,`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_group` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `name` char(30) NOT NULL DEFAULT '', + `role` char(30) NOT NULL DEFAULT '', + `desc` char(255) NOT NULL DEFAULT '', + `acl` text DEFAULT NULL, + `developer` enum('0','1') NOT NULL DEFAULT '1', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_grouppriv` ( + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` char(30) NOT NULL DEFAULT '', + `method` char(30) NOT NULL DEFAULT '', + UNIQUE KEY `group` (`group`,`module`,`method`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_history` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `action` mediumint(8) unsigned NOT NULL DEFAULT 0, + `field` varchar(30) NOT NULL DEFAULT '', + `old` text DEFAULT NULL, + `oldValue` text DEFAULT NULL, + `new` text DEFAULT NULL, + `newValue` text DEFAULT NULL, + `diff` mediumtext DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `action` (`action`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_holiday` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(30) NOT NULL DEFAULT '', + `type` enum('holiday','working') NOT NULL DEFAULT 'holiday', + `desc` text DEFAULT NULL, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_host` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT 'normal', + `hostType` varchar(30) NOT NULL DEFAULT '', + `mac` varchar(128) NOT NULL DEFAULT '', + `memory` varchar(30) NOT NULL DEFAULT '', + `diskSize` varchar(30) NOT NULL DEFAULT '', + `status` varchar(50) NOT NULL DEFAULT '', + `secret` varchar(50) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `tokenSN` varchar(50) NOT NULL DEFAULT '', + `tokenTime` datetime DEFAULT NULL, + `oldTokenSN` varchar(50) NOT NULL DEFAULT '', + `vsoft` varchar(30) NOT NULL DEFAULT '', + `heartbeat` datetime DEFAULT NULL, + `zap` varchar(10) NOT NULL DEFAULT '', + `vnc` int(11) NOT NULL DEFAULT 0, + `ztf` int(11) NOT NULL DEFAULT 0, + `zd` int(11) NOT NULL DEFAULT 0, + `ssh` int(11) NOT NULL DEFAULT 0, + `parent` int(11) unsigned NOT NULL DEFAULT 0, + `image` int(11) unsigned NOT NULL DEFAULT 0, + `admin` smallint(5) unsigned NOT NULL DEFAULT 0, + `serverRoom` mediumint(8) unsigned NOT NULL DEFAULT 0, + `cpuNumber` varchar(16) NOT NULL DEFAULT '', + `cpuCores` varchar(30) NOT NULL DEFAULT '', + `intranet` varchar(128) NOT NULL DEFAULT '', + `extranet` varchar(128) NOT NULL DEFAULT '', + `osName` varchar(64) NOT NULL DEFAULT '', + `osVersion` varchar(64) NOT NULL DEFAULT '', + `group` varchar(128) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_image` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `host` int(11) unsigned NOT NULL DEFAULT 0, + `name` varchar(64) NOT NULL DEFAULT '', + `localName` varchar(64) NOT NULL DEFAULT '', + `address` varchar(64) NOT NULL DEFAULT '', + `path` varchar(64) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT '', + `osName` varchar(32) NOT NULL DEFAULT '', + `from` varchar(10) NOT NULL DEFAULT 'zentao', + `memory` float unsigned NOT NULL DEFAULT 0, + `disk` float unsigned NOT NULL DEFAULT 0, + `fileSize` float unsigned NOT NULL DEFAULT 0, + `md5` varchar(64) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `restoreDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_instance` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `space` mediumint(8) unsigned NOT NULL DEFAULT 0, + `solution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` char(50) NOT NULL DEFAULT '', + `appID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `appName` char(50) NOT NULL DEFAULT '', + `appVersion` char(20) NOT NULL DEFAULT '', + `chart` char(50) NOT NULL DEFAULT '', + `logo` varchar(255) NOT NULL DEFAULT '', + `version` char(50) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `introduction` text DEFAULT NULL, + `source` char(20) NOT NULL DEFAULT '', + `channel` char(20) NOT NULL DEFAULT '', + `k8name` char(64) NOT NULL DEFAULT '', + `status` char(20) NOT NULL DEFAULT '', + `pinned` enum('0','1') NOT NULL DEFAULT '0', + `domain` char(255) NOT NULL DEFAULT '', + `smtpSnippetName` char(30) NOT NULL DEFAULT '', + `ldapSnippetName` char(30) NOT NULL DEFAULT '', + `ldapSettings` text DEFAULT NULL, + `dbSettings` text DEFAULT NULL, + `autoBackup` tinyint(1) NOT NULL DEFAULT 0, + `backupKeepDays` int(10) unsigned NOT NULL DEFAULT 1, + `autoRestore` tinyint(1) NOT NULL DEFAULT 0, + `env` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdAt` datetime DEFAULT NULL, + `deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `space` (`space`), + KEY `k8name` (`k8name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_intervention` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `activity` mediumint(8) NOT NULL DEFAULT 0, + `status` char(30) NOT NULL DEFAULT '', + `partake` text DEFAULT NULL, + `begin` date DEFAULT NULL, + `realBegin` date DEFAULT NULL, + `situation` varchar(255) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `project` (`project`,`activity`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_issue` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `project` varchar(255) NOT NULL DEFAULT '', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `pri` char(30) NOT NULL DEFAULT '', + `severity` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `activity` varchar(255) NOT NULL DEFAULT '', + `deadline` date DEFAULT NULL, + `resolution` char(30) NOT NULL DEFAULT '', + `resolutionComment` text DEFAULT NULL, + `objectID` varchar(255) NOT NULL DEFAULT '', + `resolvedDate` date DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `owner` varchar(255) NOT NULL DEFAULT '', + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `activateBy` varchar(30) NOT NULL DEFAULT '', + `activateDate` date DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` date DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_job` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL DEFAULT '', + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `frame` varchar(20) NOT NULL DEFAULT '', + `engine` varchar(20) NOT NULL DEFAULT '', + `autoRun` enum('0','1') NOT NULL DEFAULT '1', + `server` mediumint(8) unsigned NOT NULL DEFAULT 0, + `pipeline` varchar(500) NOT NULL DEFAULT '', + `triggerType` varchar(255) NOT NULL DEFAULT '', + `sonarqubeServer` mediumint(8) unsigned NOT NULL DEFAULT 0, + `projectKey` varchar(255) NOT NULL DEFAULT '', + `svnDir` varchar(255) NOT NULL DEFAULT '', + `atDay` varchar(255) NOT NULL DEFAULT '', + `atTime` varchar(10) NOT NULL DEFAULT '', + `customParam` text DEFAULT NULL, + `comment` varchar(255) NOT NULL DEFAULT '', + `triggerActions` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `lastExec` datetime DEFAULT NULL, + `lastStatus` varchar(255) NOT NULL DEFAULT '', + `lastTag` varchar(255) NOT NULL DEFAULT '', + `lastSyncDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `idx_repo_deleted` (`repo`,`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_kanban` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `space` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `team` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `archived` enum('0','1') NOT NULL DEFAULT '1', + `performable` enum('0','1') NOT NULL DEFAULT '0', + `status` enum('active','closed') NOT NULL DEFAULT 'active', + `order` mediumint(8) NOT NULL DEFAULT 0, + `displayCards` smallint(6) NOT NULL DEFAULT 0, + `showWIP` enum('0','1') NOT NULL DEFAULT '1', + `fluidBoard` enum('0','1') NOT NULL DEFAULT '0', + `colWidth` smallint(4) NOT NULL DEFAULT 264, + `minColWidth` smallint(4) NOT NULL DEFAULT 200, + `maxColWidth` smallint(4) NOT NULL DEFAULT 384, + `object` varchar(255) NOT NULL DEFAULT '', + `alignment` varchar(10) NOT NULL DEFAULT 'center', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `activatedBy` char(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_kanbancard` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `kanban` mediumint(8) unsigned NOT NULL DEFAULT 0, + `region` mediumint(8) unsigned NOT NULL DEFAULT 0, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromType` varchar(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'doing', + `pri` mediumint(8) unsigned NOT NULL DEFAULT 0, + `assignedTo` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `estimate` float unsigned NOT NULL DEFAULT 0, + `progress` float unsigned NOT NULL DEFAULT 0, + `color` char(7) NOT NULL DEFAULT '', + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `order` mediumint(8) NOT NULL DEFAULT 0, + `archived` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `archivedBy` char(30) NOT NULL DEFAULT '', + `archivedDate` datetime DEFAULT NULL, + `assignedBy` char(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_kanbancell` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `kanban` mediumint(8) NOT NULL DEFAULT 0, + `lane` mediumint(8) NOT NULL DEFAULT 0, + `column` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `cards` mediumtext DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `card_group` (`kanban`,`type`,`lane`,`column`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_kanbancolumn` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `parent` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `region` mediumint(8) unsigned NOT NULL DEFAULT 0, + `group` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `color` char(30) NOT NULL DEFAULT '', + `limit` smallint(6) NOT NULL DEFAULT -1, + `order` mediumint(8) NOT NULL DEFAULT 0, + `archived` enum('0','1') NOT NULL DEFAULT '0', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_kanbangroup` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `kanban` mediumint(8) unsigned NOT NULL DEFAULT 0, + `region` mediumint(8) unsigned NOT NULL DEFAULT 0, + `order` smallint(6) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_kanbanlane` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `execution` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `region` mediumint(8) unsigned NOT NULL DEFAULT 0, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `groupby` char(30) NOT NULL DEFAULT '', + `extra` char(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `color` char(30) NOT NULL DEFAULT '', + `order` smallint(6) NOT NULL DEFAULT 0, + `lastEditedTime` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_kanbanregion` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `space` mediumint(8) unsigned NOT NULL DEFAULT 0, + `kanban` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `order` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_kanbanspace` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(50) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `team` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `status` enum('active','closed') NOT NULL DEFAULT 'active', + `order` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `activatedBy` char(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_lang` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `lang` varchar(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `section` varchar(50) NOT NULL DEFAULT '', + `key` varchar(60) NOT NULL DEFAULT '', + `value` text DEFAULT NULL, + `system` enum('0','1') NOT NULL DEFAULT '1', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + UNIQUE KEY `lang` (`lang`,`module`,`section`,`key`,`vision`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_leave` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `start` time DEFAULT NULL, + `finish` time DEFAULT NULL, + `hours` float(4,1) unsigned NOT NULL DEFAULT 0.0, + `backDate` datetime DEFAULT NULL, + `type` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `level` tinyint(3) NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `reviewers` text DEFAULT NULL, + `backReviewers` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `type` (`type`), + KEY `status` (`status`), + KEY `createdBy` (`createdBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_lieu` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `start` time DEFAULT NULL, + `finish` time DEFAULT NULL, + `hours` float(4,1) unsigned NOT NULL DEFAULT 0.0, + `overtime` char(255) NOT NULL DEFAULT '', + `trip` char(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `level` tinyint(3) NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `reviewers` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `status` (`status`), + KEY `createdBy` (`createdBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_log` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `action` mediumint(8) unsigned NOT NULL DEFAULT 0, + `date` datetime DEFAULT NULL, + `url` varchar(255) NOT NULL DEFAULT '', + `contentType` varchar(30) NOT NULL DEFAULT '', + `data` text DEFAULT NULL, + `result` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `objectType` (`objectType`), + KEY `obejctID` (`objectID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_mark` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(50) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` varchar(50) NOT NULL DEFAULT '', + `account` char(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `mark` varchar(50) NOT NULL DEFAULT '', + `extra` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `idx_object` (`objectType`,`objectID`), + KEY `idx_account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_market` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `industry` char(255) NOT NULL DEFAULT '', + `scale` decimal(10,2) NOT NULL DEFAULT 0.00, + `maturity` char(255) NOT NULL DEFAULT '', + `speed` varchar(255) NOT NULL DEFAULT '', + `competition` char(255) NOT NULL DEFAULT '', + `strategy` varchar(255) NOT NULL DEFAULT '', + `ppm` varchar(20) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_marketreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `market` mediumint(8) NOT NULL DEFAULT 0, + `research` mediumint(8) NOT NULL DEFAULT 0, + `maturity` varchar(30) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `participants` char(255) NOT NULL DEFAULT '', + `source` varchar(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT '', + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `publishedBy` varchar(30) NOT NULL DEFAULT '', + `publishedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_measqueue` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(30) NOT NULL DEFAULT '', + `mid` mediumint(8) unsigned NOT NULL DEFAULT 0, + `status` varchar(100) NOT NULL DEFAULT '', + `logs` text DEFAULT NULL, + `execTime` varchar(10) NOT NULL DEFAULT '', + `params` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `updateDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `status_deleted` (`status`,`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_measrecords` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `type` varchar(30) NOT NULL DEFAULT '', + `mid` mediumint(8) NOT NULL DEFAULT 0, + `measCode` char(50) NOT NULL DEFAULT '', + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `params` text DEFAULT NULL, + `year` char(4) NOT NULL DEFAULT '', + `month` char(6) NOT NULL DEFAULT '', + `week` char(8) NOT NULL DEFAULT '', + `day` char(8) NOT NULL DEFAULT '', + `value` varchar(255) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `time` (`year`,`month`,`day`,`week`), + KEY `product` (`product`), + KEY `project` (`project`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_meastemplate` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `model` char(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `content` mediumtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_meeting` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) NOT NULL DEFAULT 0, + `execution` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `begin` time DEFAULT NULL, + `end` time DEFAULT NULL, + `dept` mediumint(8) NOT NULL DEFAULT 0, + `mode` varchar(255) NOT NULL DEFAULT '', + `host` varchar(30) NOT NULL DEFAULT '', + `participant` text DEFAULT NULL, + `date` date DEFAULT NULL, + `room` int(11) NOT NULL DEFAULT 0, + `minutes` text DEFAULT NULL, + `minutedBy` varchar(30) NOT NULL DEFAULT '', + `minutedDate` datetime DEFAULT NULL, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_meetingroom` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `position` varchar(30) NOT NULL DEFAULT '', + `seats` int(11) NOT NULL DEFAULT 0, + `equipment` varchar(255) NOT NULL DEFAULT '', + `openTime` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_metric` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `purpose` varchar(50) NOT NULL DEFAULT '', + `scope` char(30) NOT NULL DEFAULT '', + `object` char(30) NOT NULL DEFAULT '', + `stage` enum('wait','released') DEFAULT 'wait', + `type` enum('php','sql') DEFAULT 'php', + `name` varchar(90) NOT NULL DEFAULT '', + `alias` varchar(90) NOT NULL DEFAULT '', + `code` varchar(90) NOT NULL DEFAULT '', + `unit` varchar(10) NOT NULL DEFAULT '', + `dateType` varchar(50) NOT NULL DEFAULT '', + `collector` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `definition` text DEFAULT NULL, + `when` varchar(30) NOT NULL DEFAULT '', + `event` varchar(30) NOT NULL DEFAULT '', + `cronCFG` varchar(30) NOT NULL DEFAULT '', + `time` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `implementedBy` varchar(30) NOT NULL DEFAULT '', + `implementedDate` datetime DEFAULT NULL, + `delistedBy` varchar(30) NOT NULL DEFAULT '', + `delistedDate` datetime DEFAULT NULL, + `builtin` enum('0','1') NOT NULL DEFAULT '0', + `fromID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lastCalcRows` int(11) NOT NULL DEFAULT 0, + `lastCalcTime` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_metriclib` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `metricID` mediumint(9) NOT NULL DEFAULT 0, + `metricCode` varchar(100) NOT NULL DEFAULT '', + `system` char(30) NOT NULL DEFAULT '0', + `program` char(30) NOT NULL DEFAULT '', + `project` char(30) NOT NULL DEFAULT '', + `product` char(30) NOT NULL DEFAULT '', + `execution` char(30) NOT NULL DEFAULT '', + `code` char(30) NOT NULL DEFAULT '', + `pipeline` char(30) NOT NULL DEFAULT '', + `repo` char(30) NOT NULL DEFAULT '', + `user` text DEFAULT NULL, + `dept` char(30) NOT NULL DEFAULT '', + `year` char(4) NOT NULL DEFAULT '0', + `month` char(2) NOT NULL DEFAULT '0', + `week` char(2) NOT NULL DEFAULT '0', + `day` char(2) NOT NULL DEFAULT '0', + `value` varchar(100) NOT NULL DEFAULT '0', + `calcType` enum('cron','inference') NOT NULL DEFAULT 'cron', + `calculatedBy` varchar(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `metricID` (`metricID`), + KEY `metricCode` (`metricCode`), + KEY `date` (`date`), + KEY `deleted` (`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_module` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `root` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` char(60) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `owner` varchar(30) NOT NULL DEFAULT '', + `collector` text DEFAULT NULL, + `short` varchar(30) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `root` (`root`), + KEY `type` (`type`), + KEY `path` (`path`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_mr` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `hostID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `sourceProject` varchar(50) NOT NULL DEFAULT '', + `sourceBranch` varchar(100) NOT NULL DEFAULT '', + `targetProject` varchar(50) NOT NULL DEFAULT '', + `targetBranch` varchar(100) NOT NULL DEFAULT '', + `mriid` int(10) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `description` text DEFAULT NULL, + `assignee` varchar(255) NOT NULL DEFAULT '', + `reviewer` varchar(255) NOT NULL DEFAULT '', + `approver` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `status` char(30) NOT NULL DEFAULT '', + `mergeStatus` char(30) NOT NULL DEFAULT '', + `approvalStatus` char(30) NOT NULL DEFAULT '', + `needApproved` enum('0','1') NOT NULL DEFAULT '0', + `needCI` enum('0','1') NOT NULL DEFAULT '0', + `repoID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `jobID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `executionID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `compileID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `compileStatus` char(30) NOT NULL DEFAULT '', + `removeSourceBranch` enum('0','1') NOT NULL DEFAULT '0', + `squash` enum('0','1') NOT NULL DEFAULT '0', + `isFlow` enum('0','1') NOT NULL DEFAULT '0', + `synced` enum('0','1') NOT NULL DEFAULT '1', + `syncError` varchar(255) NOT NULL DEFAULT '', + `hasNoConflict` enum('0','1') NOT NULL DEFAULT '0', + `diffs` longtext DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_mrapproval` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `mrID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` varchar(255) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `action` char(30) NOT NULL DEFAULT '', + `comment` text DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_nc` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `auditplan` mediumint(8) NOT NULL DEFAULT 0, + `listID` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `type` char(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'active', + `severity` char(30) NOT NULL DEFAULT '', + `deadline` date DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolution` char(30) NOT NULL DEFAULT '', + `resolvedDate` date DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` date DEFAULT NULL, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` date DEFAULT NULL, + `activateDate` date DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_notify` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(50) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `action` mediumint(8) NOT NULL DEFAULT 0, + `toList` text DEFAULT NULL, + `ccList` text DEFAULT NULL, + `subject` text DEFAULT NULL, + `data` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `sendTime` datetime DEFAULT NULL, + `status` varchar(10) NOT NULL DEFAULT 'wait', + `failReason` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `objectType` (`objectType`), + KEY `status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_oauth` ( + `account` varchar(30) NOT NULL DEFAULT '', + `openID` varchar(255) NOT NULL DEFAULT '', + `providerType` varchar(30) NOT NULL DEFAULT '', + `providerID` mediumint(8) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `account_openID` (`account`,`openID`,`providerType`,`providerID`), + KEY `account` (`account`), + KEY `providerType` (`providerType`), + KEY `providerID` (`providerID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_object` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) NOT NULL DEFAULT 0, + `from` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `version` varchar(255) NOT NULL DEFAULT '', + `type` enum('reviewed','taged') NOT NULL DEFAULT 'reviewed', + `enabled` enum('0','1') NOT NULL DEFAULT '1', + `range` text DEFAULT NULL, + `data` text DEFAULT NULL, + `storyEst` char(30) NOT NULL DEFAULT '', + `taskEst` char(30) NOT NULL DEFAULT '', + `requestEst` char(30) NOT NULL DEFAULT '', + `testEst` char(30) NOT NULL DEFAULT '', + `devEst` char(30) NOT NULL DEFAULT '', + `designEst` char(30) NOT NULL DEFAULT '', + `end` date DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_opportunity` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `source` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `strategy` char(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'active', + `impact` mediumint(8) NOT NULL DEFAULT 0, + `chance` mediumint(8) NOT NULL DEFAULT 0, + `ratio` mediumint(8) NOT NULL DEFAULT 0, + `pri` char(30) NOT NULL DEFAULT '', + `identifiedDate` date DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` date DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `prevention` mediumtext DEFAULT NULL, + `plannedClosedDate` date DEFAULT NULL, + `actualClosedDate` date DEFAULT NULL, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) NOT NULL DEFAULT 1, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `activatedBy` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime DEFAULT NULL, + `cancelReason` char(30) NOT NULL DEFAULT '', + `hangupedBy` varchar(30) NOT NULL DEFAULT '', + `hangupedDate` datetime DEFAULT NULL, + `resolution` mediumtext DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolvedDate` datetime DEFAULT NULL, + `lastCheckedBy` varchar(30) NOT NULL DEFAULT '', + `lastCheckedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_overtime` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `start` time DEFAULT NULL, + `finish` time DEFAULT NULL, + `hours` float(4,1) unsigned NOT NULL DEFAULT 0.0, + `leave` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `rejectReason` varchar(100) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `level` tinyint(3) NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `reviewers` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `type` (`type`), + KEY `status` (`status`), + KEY `createdBy` (`createdBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_pipeline` ( + `id` smallint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` char(30) NOT NULL DEFAULT '', + `name` varchar(50) NOT NULL DEFAULT '', + `url` varchar(255) DEFAULT NULL, + `account` varchar(30) DEFAULT NULL, + `password` varchar(255) DEFAULT NULL, + `token` varchar(255) DEFAULT NULL, + `private` char(32) DEFAULT NULL, + `instanceID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_pivot` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `dimension` mediumint(8) unsigned NOT NULL DEFAULT 0, + `group` varchar(255) NOT NULL DEFAULT '', + `code` varchar(255) NOT NULL DEFAULT '', + `driver` enum('mysql','duckdb') NOT NULL DEFAULT 'mysql', + `mode` varchar(10) NOT NULL DEFAULT 'builder', + `name` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `acl` enum('open','private') NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `sql` text DEFAULT NULL, + `fields` text DEFAULT NULL, + `langs` text DEFAULT NULL, + `vars` text DEFAULT NULL, + `objects` text DEFAULT NULL, + `settings` text DEFAULT NULL, + `filters` text DEFAULT NULL, + `step` tinyint(3) unsigned NOT NULL DEFAULT 0, + `stage` enum('draft','published') NOT NULL DEFAULT 'draft', + `builtin` enum('0','1') NOT NULL DEFAULT '0', + `version` varchar(10) NOT NULL DEFAULT '1', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `dimension` (`dimension`), + KEY `group` (`group`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_pivotdrill` ( + `pivot` mediumint(9) NOT NULL, + `version` varchar(10) NOT NULL DEFAULT '1', + `field` varchar(255) NOT NULL, + `object` varchar(40) NOT NULL, + `whereSql` mediumtext NOT NULL, + `condition` mediumtext NOT NULL, + `status` enum('design','published') NOT NULL DEFAULT 'published', + `account` varchar(30) NOT NULL DEFAULT '', + `type` enum('auto','manual') NOT NULL DEFAULT 'manual' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_pivotspec` ( + `pivot` mediumint(8) NOT NULL, + `version` varchar(10) NOT NULL, + `driver` enum('mysql','duckdb') NOT NULL DEFAULT 'mysql', + `mode` varchar(10) NOT NULL DEFAULT 'builder', + `name` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `sql` text DEFAULT NULL, + `fields` text DEFAULT NULL, + `langs` text DEFAULT NULL, + `vars` text DEFAULT NULL, + `objects` text DEFAULT NULL, + `settings` text DEFAULT NULL, + `filters` text DEFAULT NULL, + `createdDate` datetime DEFAULT NULL, + UNIQUE KEY `idx_pivot_version` (`pivot`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_planstory` ( + `plan` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `order` mediumint(9) NOT NULL DEFAULT 0, + UNIQUE KEY `plan_story` (`plan`,`story`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_practice` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `code` char(50) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `labels` varchar(255) NOT NULL DEFAULT '', + `summary` varchar(255) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `contributor` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_priv` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL DEFAULT '', + `method` varchar(30) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `edition` varchar(30) NOT NULL DEFAULT ',open,biz,max,', + `vision` varchar(30) NOT NULL DEFAULT ',rnd,', + `system` enum('0','1') NOT NULL DEFAULT '0', + `order` mediumint(8) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `priv` (`module`,`method`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_privlang` ( + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `objectType` enum('priv','manager') NOT NULL DEFAULT 'priv', + `lang` varchar(30) NOT NULL DEFAULT '', + `key` varchar(100) NOT NULL DEFAULT '', + `value` varchar(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + UNIQUE KEY `objectlang` (`objectID`,`objectType`,`lang`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_privmanager` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `code` varchar(100) NOT NULL DEFAULT '', + `type` enum('view','module','package') NOT NULL DEFAULT 'package', + `edition` varchar(30) NOT NULL DEFAULT ',open,biz,max,', + `vision` varchar(30) NOT NULL DEFAULT ',rnd,', + `order` mediumint(8) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_privrelation` ( + `priv` varchar(100) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `relationPriv` varchar(100) NOT NULL DEFAULT '', + UNIQUE KEY `privrelation` (`priv`,`type`,`relationPriv`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_process` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `model` char(30) NOT NULL DEFAULT 'waterfall', + `name` varchar(255) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `abbr` char(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `order` mediumint(9) NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_product` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `program` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(110) NOT NULL DEFAULT '', + `code` varchar(45) NOT NULL DEFAULT '', + `shadow` tinyint(1) unsigned NOT NULL DEFAULT 0, + `bind` enum('0','1') NOT NULL DEFAULT '0', + `line` mediumint(8) NOT NULL DEFAULT 0, + `type` varchar(30) NOT NULL DEFAULT 'normal', + `status` varchar(30) NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `PO` varchar(30) NOT NULL DEFAULT '', + `QD` varchar(30) NOT NULL DEFAULT '', + `RD` varchar(30) NOT NULL DEFAULT '', + `feedback` varchar(30) NOT NULL DEFAULT '', + `ticket` varchar(30) NOT NULL DEFAULT '', + `workflowGroup` int(8) NOT NULL DEFAULT 0, + `acl` enum('open','private','custom') NOT NULL DEFAULT 'open', + `groups` text DEFAULT NULL, + `whitelist` text DEFAULT NULL, + `reviewer` text DEFAULT NULL, + `PMT` text DEFAULT NULL, + `draftEpics` mediumint(8) NOT NULL DEFAULT 0, + `activeEpics` mediumint(8) NOT NULL DEFAULT 0, + `changingEpics` mediumint(8) NOT NULL DEFAULT 0, + `reviewingEpics` mediumint(8) NOT NULL DEFAULT 0, + `finishedEpics` mediumint(8) NOT NULL DEFAULT 0, + `closedEpics` mediumint(8) NOT NULL DEFAULT 0, + `totalEpics` mediumint(8) NOT NULL DEFAULT 0, + `draftRequirements` mediumint(8) NOT NULL DEFAULT 0, + `activeRequirements` mediumint(8) NOT NULL DEFAULT 0, + `changingRequirements` mediumint(8) NOT NULL DEFAULT 0, + `reviewingRequirements` mediumint(8) NOT NULL DEFAULT 0, + `finishedRequirements` mediumint(8) NOT NULL DEFAULT 0, + `closedRequirements` mediumint(8) NOT NULL DEFAULT 0, + `totalRequirements` mediumint(8) NOT NULL DEFAULT 0, + `draftStories` mediumint(8) NOT NULL DEFAULT 0, + `activeStories` mediumint(8) NOT NULL DEFAULT 0, + `changingStories` mediumint(8) NOT NULL DEFAULT 0, + `reviewingStories` mediumint(8) NOT NULL DEFAULT 0, + `finishedStories` mediumint(8) NOT NULL DEFAULT 0, + `closedStories` mediumint(8) NOT NULL DEFAULT 0, + `totalStories` mediumint(8) NOT NULL DEFAULT 0, + `unresolvedBugs` mediumint(8) NOT NULL DEFAULT 0, + `closedBugs` mediumint(8) NOT NULL DEFAULT 0, + `fixedBugs` mediumint(8) NOT NULL DEFAULT 0, + `totalBugs` mediumint(8) NOT NULL DEFAULT 0, + `plans` mediumint(8) NOT NULL DEFAULT 0, + `releases` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `createdVersion` varchar(20) NOT NULL DEFAULT '', + `closedDate` date DEFAULT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `acl` (`acl`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_productplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` varchar(255) NOT NULL DEFAULT '0', + `parent` mediumint(9) NOT NULL DEFAULT 0, + `title` varchar(90) NOT NULL DEFAULT '', + `status` enum('wait','doing','done','closed') NOT NULL DEFAULT 'wait', + `desc` mediumtext DEFAULT NULL, + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `finishedDate` datetime DEFAULT NULL, + `closedDate` datetime DEFAULT NULL, + `order` text DEFAULT NULL, + `closedReason` varchar(20) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `end` (`end`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_programactivity` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `process` mediumint(8) NOT NULL DEFAULT 0, + `activity` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `reason` varchar(255) NOT NULL DEFAULT '', + `result` char(30) NOT NULL DEFAULT '', + `linkedBy` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_programoutput` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `process` mediumint(8) NOT NULL DEFAULT 0, + `activity` mediumint(8) NOT NULL DEFAULT 0, + `output` mediumint(8) NOT NULL DEFAULT 0, + `content` text DEFAULT NULL, + `name` varchar(255) NOT NULL DEFAULT '', + `reason` varchar(255) NOT NULL DEFAULT '', + `result` char(30) NOT NULL DEFAULT '', + `linkedBy` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_programprocess` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `process` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `abbr` char(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `reason` varchar(255) NOT NULL DEFAULT '', + `linkedBy` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_programreport` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `template` mediumint(8) NOT NULL DEFAULT 0, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `params` text DEFAULT NULL, + `content` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_project` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) NOT NULL DEFAULT 0, + `charter` mediumint(8) NOT NULL DEFAULT 0, + `model` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT 'sprint', + `category` char(30) NOT NULL DEFAULT '', + `lifetime` char(30) NOT NULL DEFAULT '', + `budget` varchar(30) NOT NULL DEFAULT '0', + `budgetUnit` char(30) NOT NULL DEFAULT 'CNY', + `attribute` varchar(30) NOT NULL DEFAULT '', + `percent` float unsigned NOT NULL DEFAULT 0, + `milestone` enum('0','1') NOT NULL DEFAULT '0', + `output` text DEFAULT NULL, + `auth` char(30) NOT NULL DEFAULT '', + `storyType` char(30) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` varchar(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `name` varchar(90) NOT NULL DEFAULT '', + `code` varchar(45) NOT NULL DEFAULT '', + `hasProduct` tinyint(1) unsigned NOT NULL DEFAULT 1, + `workflowGroup` int(8) NOT NULL DEFAULT 0, + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `firstEnd` date DEFAULT NULL, + `realBegan` date DEFAULT NULL, + `realEnd` date DEFAULT NULL, + `days` smallint(6) unsigned NOT NULL DEFAULT 0, + `status` varchar(10) NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `pri` enum('1','2','3','4') NOT NULL DEFAULT '1', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) NOT NULL DEFAULT 0, + `parentVersion` smallint(6) NOT NULL DEFAULT 0, + `planDuration` int(11) NOT NULL DEFAULT 0, + `realDuration` int(11) NOT NULL DEFAULT 0, + `progress` decimal(5,2) NOT NULL DEFAULT 0.00, + `estimate` float NOT NULL DEFAULT 0, + `left` float NOT NULL DEFAULT 0, + `consumed` float NOT NULL DEFAULT 0, + `teamCount` int(11) NOT NULL DEFAULT 0, + `market` mediumint(8) NOT NULL DEFAULT 0, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `openedVersion` varchar(20) NOT NULL DEFAULT '', + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(20) NOT NULL DEFAULT '', + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime DEFAULT NULL, + `suspendedDate` date DEFAULT NULL, + `PO` varchar(30) NOT NULL DEFAULT '', + `PM` varchar(30) NOT NULL DEFAULT '', + `QD` varchar(30) NOT NULL DEFAULT '', + `RD` varchar(30) NOT NULL DEFAULT '', + `team` varchar(90) NOT NULL DEFAULT '', + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `stageBy` enum('project','product') NOT NULL DEFAULT 'product', + `displayCards` smallint(6) NOT NULL DEFAULT 0, + `fluidBoard` enum('0','1') NOT NULL DEFAULT '0', + `multiple` enum('0','1') NOT NULL DEFAULT '1', + `parallel` mediumint(9) NOT NULL DEFAULT 0, + `enabled` enum('on','off') NOT NULL DEFAULT 'on', + `linkType` varchar(30) NOT NULL DEFAULT 'plan', + `colWidth` smallint(6) NOT NULL DEFAULT 264, + `minColWidth` smallint(6) NOT NULL DEFAULT 200, + `maxColWidth` smallint(6) NOT NULL DEFAULT 384, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `parent` (`parent`), + KEY `begin` (`begin`), + KEY `end` (`end`), + KEY `status` (`status`), + KEY `acl` (`acl`), + KEY `order` (`order`), + KEY `project` (`project`), + KEY `type_order` (`type`,`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_projectadmin` ( + `group` smallint(6) NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `programs` text DEFAULT NULL, + `projects` text DEFAULT NULL, + `products` text DEFAULT NULL, + `executions` text DEFAULT NULL, + UNIQUE KEY `group_account` (`group`,`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_projectcase` ( + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `count` mediumint(8) unsigned NOT NULL DEFAULT 1, + `version` smallint(6) NOT NULL DEFAULT 1, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `project` (`project`,`case`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_projectproduct` ( + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `plan` varchar(255) NOT NULL DEFAULT '', + `roadmap` varchar(255) NOT NULL DEFAULT '', + UNIQUE KEY `project_product` (`project`,`product`,`branch`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_projectspec` ( + `project` mediumint(8) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `milestone` enum('0','1') NOT NULL DEFAULT '0', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + UNIQUE KEY `project` (`project`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_projectstory` ( + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `project` (`project`,`story`), + KEY `story` (`story`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_queue` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `cron` mediumint(9) NOT NULL, + `type` varchar(255) NOT NULL, + `command` text NOT NULL, + `status` enum('wait','doing','done') NOT NULL DEFAULT 'wait', + `execId` int(11) DEFAULT NULL, + `createdDate` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `status_createdDate` (`status`,`createdDate`), + KEY `cron_createdDate` (`cron`,`createdDate`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_relation` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) NOT NULL DEFAULT 0, + `product` mediumint(8) NOT NULL DEFAULT 0, + `execution` mediumint(8) NOT NULL DEFAULT 0, + `AType` char(30) NOT NULL DEFAULT '', + `AID` mediumint(8) NOT NULL DEFAULT 0, + `AVersion` char(30) NOT NULL DEFAULT '', + `relation` char(30) NOT NULL DEFAULT '', + `BType` char(30) NOT NULL DEFAULT '', + `BID` mediumint(8) NOT NULL DEFAULT 0, + `BVersion` char(30) NOT NULL DEFAULT '', + `extra` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `relation` (`product`,`relation`,`AType`,`BType`,`AID`,`BID`), + KEY `AID` (`AType`,`AID`), + KEY `BID` (`BType`,`BID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_relationoftasks` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `execution` mediumint(8) unsigned NOT NULL, + `pretask` mediumint(8) unsigned NOT NULL, + `condition` enum('begin','end') NOT NULL, + `task` mediumint(8) unsigned NOT NULL, + `action` enum('begin','end') NOT NULL, + PRIMARY KEY (`id`), + KEY `relationoftasks` (`execution`,`task`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_release` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` varchar(255) NOT NULL DEFAULT '0', + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` varchar(255) NOT NULL DEFAULT '0', + `shadow` mediumint(8) unsigned NOT NULL DEFAULT 0, + `build` varchar(255) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `system` mediumint(8) unsigned NOT NULL DEFAULT 0, + `releases` varchar(255) NOT NULL DEFAULT '', + `marker` enum('0','1') NOT NULL DEFAULT '0', + `date` date DEFAULT NULL, + `releasedDate` date DEFAULT NULL, + `stories` text DEFAULT NULL, + `bugs` text DEFAULT NULL, + `leftBugs` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `mailto` text DEFAULT NULL, + `notify` varchar(255) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT 'normal', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `build` (`build`), + KEY `idx_system` (`system`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_releaserelated` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `release` int(11) unsigned NOT NULL, + `objectID` int(11) unsigned NOT NULL, + `objectType` varchar(10) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`release`,`objectID`,`objectType`), + KEY `objectID` (`objectID`), + KEY `objectType` (`objectType`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_repo` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `product` varchar(255) NOT NULL DEFAULT '', + `projects` varchar(255) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `path` varchar(255) NOT NULL DEFAULT '', + `prefix` varchar(100) NOT NULL DEFAULT '', + `encoding` varchar(20) NOT NULL DEFAULT '', + `SCM` varchar(10) NOT NULL DEFAULT '', + `client` varchar(100) NOT NULL DEFAULT '', + `serviceHost` varchar(50) NOT NULL DEFAULT '', + `serviceProject` varchar(100) NOT NULL DEFAULT '', + `commits` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` varchar(30) NOT NULL DEFAULT '', + `password` varchar(30) NOT NULL DEFAULT '', + `encrypt` varchar(30) NOT NULL DEFAULT 'plain', + `acl` text DEFAULT NULL, + `synced` tinyint(1) NOT NULL DEFAULT 0, + `lastSync` datetime DEFAULT NULL, + `lastCommit` datetime DEFAULT NULL, + `desc` text DEFAULT NULL, + `extra` char(30) NOT NULL DEFAULT '', + `preMerge` enum('0','1') NOT NULL DEFAULT '0', + `job` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fileServerUrl` text DEFAULT NULL, + `fileServerAccount` varchar(40) NOT NULL DEFAULT '', + `fileServerPassword` varchar(100) NOT NULL DEFAULT '', + `deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_repobranch` ( + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `revision` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` varchar(255) NOT NULL DEFAULT '', + UNIQUE KEY `repo_revision_branch` (`repo`,`revision`,`branch`), + KEY `branch` (`branch`), + KEY `revision` (`revision`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_repofiles` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `revision` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` varchar(255) NOT NULL DEFAULT '', + `oldPath` varchar(255) NOT NULL DEFAULT '', + `parent` varchar(255) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT '', + `action` char(1) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `path` (`path`), + KEY `parent` (`parent`), + KEY `repo` (`repo`), + KEY `revision` (`revision`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_repohistory` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `repo` mediumint(9) NOT NULL DEFAULT 0, + `revision` varchar(40) NOT NULL DEFAULT '', + `commit` mediumint(8) unsigned NOT NULL DEFAULT 0, + `comment` text DEFAULT NULL, + `committer` varchar(100) NOT NULL DEFAULT '', + `time` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `repo` (`repo`), + KEY `revision` (`revision`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_report` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `code` varchar(100) NOT NULL DEFAULT '', + `name` text DEFAULT NULL, + `dimension` int(8) NOT NULL DEFAULT 0, + `module` varchar(100) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `vars` text DEFAULT NULL, + `langs` text DEFAULT NULL, + `params` text DEFAULT NULL, + `step` tinyint(1) NOT NULL DEFAULT 2, + `desc` text DEFAULT NULL, + `addedBy` char(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_researchplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `customer` varchar(255) NOT NULL DEFAULT '', + `stakeholder` varchar(255) NOT NULL DEFAULT '', + `objective` varchar(255) NOT NULL DEFAULT '', + `begin` datetime DEFAULT NULL, + `end` datetime DEFAULT NULL, + `location` varchar(255) NOT NULL DEFAULT '', + `team` varchar(255) NOT NULL DEFAULT '', + `method` enum('','videoConference','interview','questionnaire','telephoneInterview') NOT NULL DEFAULT '', + `outline` mediumtext DEFAULT NULL, + `schedule` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_researchreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `relatedPlan` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `author` varchar(30) NOT NULL DEFAULT '', + `content` mediumtext DEFAULT NULL, + `customer` varchar(255) NOT NULL DEFAULT '', + `researchObjects` varchar(255) NOT NULL DEFAULT '', + `begin` datetime DEFAULT NULL, + `end` datetime DEFAULT NULL, + `location` varchar(255) NOT NULL DEFAULT '', + `method` enum('','videoConference','interview','questionnaire','telephoneInterview') NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_review` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `object` mediumint(8) NOT NULL DEFAULT 0, + `template` mediumint(8) NOT NULL DEFAULT 0, + `doc` varchar(255) NOT NULL DEFAULT '', + `docVersion` varchar(255) NOT NULL DEFAULT '', + `status` char(30) NOT NULL DEFAULT '', + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `auditedBy` varchar(255) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `begin` date DEFAULT NULL, + `deadline` date DEFAULT NULL, + `lastReviewedBy` varchar(255) NOT NULL DEFAULT '', + `lastReviewedDate` date DEFAULT NULL, + `lastAuditedBy` varchar(255) NOT NULL DEFAULT '', + `lastAuditedDate` date DEFAULT NULL, + `toAuditBy` varchar(30) NOT NULL DEFAULT '', + `toAuditDate` datetime DEFAULT NULL, + `lastEditedBy` varchar(255) NOT NULL DEFAULT '', + `lastEditedDate` date DEFAULT NULL, + `result` char(30) NOT NULL DEFAULT '', + `auditResult` char(30) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_reviewcl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL DEFAULT '', + `object` char(30) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `order` mediumint(8) DEFAULT 0, + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_reviewissue` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `review` mediumint(8) NOT NULL DEFAULT 0, + `approval` mediumint(8) NOT NULL DEFAULT 0, + `injection` mediumint(8) NOT NULL DEFAULT 0, + `identify` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT 'review', + `listID` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `opinion` mediumtext DEFAULT NULL, + `opinionDate` date DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + `resolution` char(30) NOT NULL DEFAULT '', + `resolutionBy` char(30) NOT NULL DEFAULT '', + `resolutionDate` date DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_reviewlist` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL DEFAULT '', + `object` char(30) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_reviewresult` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `review` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT 'review', + `result` char(30) NOT NULL DEFAULT '', + `opinion` text DEFAULT NULL, + `reviewer` char(30) NOT NULL DEFAULT '', + `remainIssue` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `consumed` float NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `reviewer` (`review`,`reviewer`,`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_risk` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` varchar(255) NOT NULL DEFAULT '', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `source` char(30) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `strategy` char(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'active', + `impact` char(30) NOT NULL DEFAULT '', + `probability` char(30) NOT NULL DEFAULT '', + `rate` char(30) NOT NULL DEFAULT '', + `pri` char(30) NOT NULL DEFAULT '', + `identifiedDate` date DEFAULT NULL, + `prevention` mediumtext DEFAULT NULL, + `remedy` mediumtext DEFAULT NULL, + `plannedClosedDate` date DEFAULT NULL, + `actualClosedDate` date DEFAULT NULL, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `resolution` mediumtext DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `activateBy` varchar(30) NOT NULL DEFAULT '', + `activateDate` date DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` date DEFAULT NULL, + `cancelBy` varchar(30) NOT NULL DEFAULT '', + `cancelDate` date DEFAULT NULL, + `cancelReason` char(30) NOT NULL DEFAULT '', + `hangupBy` varchar(30) NOT NULL DEFAULT '', + `hangupDate` date DEFAULT NULL, + `trackedBy` varchar(30) NOT NULL DEFAULT '', + `trackedDate` date DEFAULT NULL, + `assignedDate` date DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_riskissue` ( + `risk` mediumint(8) unsigned NOT NULL DEFAULT 0, + `issue` mediumint(8) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `risk_issue` (`risk`,`issue`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_roadmap` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `product` mediumint(8) NOT NULL DEFAULT 0, + `branch` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `status` char(30) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `desc` longtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` enum('done','canceled') DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_roadmapstory` ( + `roadmap` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `order` mediumint(8) unsigned NOT NULL, + UNIQUE KEY `roadmap_story` (`roadmap`,`story`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_scene` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `sort` int(11) unsigned NOT NULL DEFAULT 0, + `openedBy` char(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `parent` int(11) NOT NULL DEFAULT 0, + `grade` tinyint(3) NOT NULL DEFAULT 0, + `path` varchar(1000) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_score` ( + `id` bigint(12) unsigned NOT NULL AUTO_INCREMENT, + `account` varchar(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `method` varchar(30) NOT NULL DEFAULT '', + `desc` varchar(250) NOT NULL DEFAULT '', + `before` int(11) NOT NULL DEFAULT 0, + `score` int(11) NOT NULL DEFAULT 0, + `after` int(11) NOT NULL DEFAULT 0, + `time` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `account` (`account`), + KEY `module` (`module`), + KEY `method` (`method`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_screen` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `dimension` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `acl` enum('open','private') NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `cover` mediumtext DEFAULT NULL, + `scheme` mediumtext DEFAULT NULL, + `status` enum('draft','published') NOT NULL DEFAULT 'draft', + `builtin` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_searchdict` ( + `key` smallint(6) unsigned NOT NULL DEFAULT 0, + `value` char(3) NOT NULL DEFAULT '', + UNIQUE KEY `key_value` (`key`,`value`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_searchindex` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `objectType` char(20) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `title` text DEFAULT NULL, + `content` text DEFAULT NULL, + `addedDate` datetime DEFAULT NULL, + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `object` (`objectType`,`objectID`), + KEY `addedDate` (`addedDate`), + FULLTEXT KEY `title_content` (`title`,`content`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_serverroom` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(128) NOT NULL DEFAULT '', + `city` varchar(128) NOT NULL DEFAULT '', + `line` varchar(20) NOT NULL DEFAULT '', + `bandwidth` varchar(128) NOT NULL DEFAULT '', + `provider` varchar(128) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_session` ( + `id` varchar(32) NOT NULL, + `data` mediumtext DEFAULT NULL, + `timestamp` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `timestamp` (`timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_solution` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(50) NOT NULL DEFAULT '', + `appID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `appName` char(50) NOT NULL DEFAULT '', + `appVersion` char(20) NOT NULL DEFAULT '', + `version` char(50) NOT NULL DEFAULT '', + `chart` char(50) NOT NULL DEFAULT '', + `cover` varchar(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `introduction` varchar(255) NOT NULL DEFAULT '', + `source` char(20) NOT NULL DEFAULT '', + `channel` char(20) NOT NULL DEFAULT '', + `components` text DEFAULT NULL, + `status` char(20) NOT NULL DEFAULT '', + `deleted` tinyint(1) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdAt` datetime DEFAULT NULL, + `updatedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_solutions` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `contents` text NOT NULL, + `support` text NOT NULL, + `measures` text NOT NULL, + `type` char(30) NOT NULL DEFAULT '', + `addedBy` varchar(30) NOT NULL DEFAULT '', + `addedDate` date DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_space` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(200) NOT NULL, + `k8space` char(64) NOT NULL, + `owner` char(30) NOT NULL, + `default` tinyint(1) NOT NULL DEFAULT 0, + `createdAt` datetime DEFAULT NULL, + `deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_sqlbuilder` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectID` mediumint(8) NOT NULL, + `objectType` varchar(50) NOT NULL, + `sql` text DEFAULT NULL, + `setting` text DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_sqlview` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(90) NOT NULL DEFAULT '', + `code` varchar(45) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_stage` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `percent` varchar(255) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `projectType` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_stakeholder` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `objectID` mediumint(8) NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `user` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `key` enum('0','1') NOT NULL DEFAULT '0', + `from` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `objectID` (`objectID`), + KEY `objectType` (`objectType`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_story` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `parent` mediumint(9) NOT NULL DEFAULT 0, + `isParent` enum('0','1') NOT NULL DEFAULT '0', + `root` mediumint(9) NOT NULL DEFAULT 0, + `path` text DEFAULT NULL, + `grade` smallint(6) NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `plan` text DEFAULT NULL, + `source` varchar(20) NOT NULL DEFAULT '', + `sourceNote` varchar(255) NOT NULL DEFAULT '', + `fromBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `keywords` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT 'story', + `category` varchar(30) NOT NULL DEFAULT 'feature', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 3, + `estimate` float unsigned NOT NULL DEFAULT 0, + `status` enum('','changing','active','draft','closed','reviewing','launched','developing') NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `stage` enum('','wait','inroadmap','incharter','planned','projected','designing','designed','developing','developed','testing','tested','verified','rejected','delivering','delivered','released','closed') NOT NULL DEFAULT 'wait', + `stagedBy` char(30) NOT NULL DEFAULT '', + `mailto` text DEFAULT NULL, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromStory` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromVersion` smallint(6) NOT NULL DEFAULT 1, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `changedBy` varchar(30) NOT NULL DEFAULT '', + `changedDate` datetime DEFAULT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `releasedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `toBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `linkStories` varchar(255) NOT NULL DEFAULT '', + `linkRequirements` varchar(255) NOT NULL DEFAULT '', + `twins` varchar(255) NOT NULL DEFAULT '', + `duplicateStory` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `parentVersion` smallint(6) NOT NULL DEFAULT 0, + `demandVersion` smallint(6) NOT NULL DEFAULT 0, + `storyChanged` enum('0','1') NOT NULL DEFAULT '0', + `feedbackBy` varchar(100) NOT NULL DEFAULT '', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', + `BSA` char(30) NOT NULL DEFAULT '', + `duration` char(30) NOT NULL DEFAULT '', + `demand` mediumint(8) NOT NULL DEFAULT 0, + `submitedBy` varchar(30) NOT NULL DEFAULT '', + `roadmap` varchar(255) NOT NULL DEFAULT '', + `URChanged` enum('0','1') NOT NULL DEFAULT '0', + `unlinkReason` enum('','omit','other') NOT NULL DEFAULT '', + `retractedReason` enum('','omit','other') NOT NULL DEFAULT '', + `retractedBy` varchar(30) NOT NULL DEFAULT '', + `retractedDate` datetime DEFAULT NULL, + `verifiedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `root` (`root`), + KEY `status` (`status`), + KEY `assignedTo` (`assignedTo`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_storyestimate` ( + `story` mediumint(9) NOT NULL DEFAULT 0, + `round` smallint(6) NOT NULL DEFAULT 0, + `estimate` text DEFAULT NULL, + `average` float NOT NULL DEFAULT 0, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + UNIQUE KEY `story` (`story`,`round`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_storygrade` ( + `type` enum('story','requirement','epic') NOT NULL, + `grade` smallint(6) NOT NULL, + `name` char(30) NOT NULL, + `status` char(30) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_storyreview` ( + `story` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `reviewer` varchar(30) NOT NULL DEFAULT '', + `result` varchar(30) NOT NULL DEFAULT '', + `reviewDate` datetime DEFAULT NULL, + UNIQUE KEY `story` (`story`,`version`,`reviewer`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_storyspec` ( + `story` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `spec` mediumtext DEFAULT NULL, + `verify` mediumtext DEFAULT NULL, + `files` text DEFAULT NULL, + UNIQUE KEY `story` (`story`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_storystage` ( + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `stage` varchar(50) NOT NULL DEFAULT '', + `stagedBy` char(30) NOT NULL DEFAULT '', + UNIQUE KEY `story_branch` (`story`,`branch`), + KEY `story` (`story`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_suitecase` ( + `suite` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(5) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `suitecase` (`suite`,`case`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_system` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL DEFAULT '', + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `integrated` enum('0','1') NOT NULL DEFAULT '0', + `latestRelease` mediumint(8) unsigned NOT NULL DEFAULT 0, + `latestDate` datetime DEFAULT NULL, + `children` varchar(255) NOT NULL DEFAULT '', + `status` enum('active','inactive') NOT NULL DEFAULT 'active', + `desc` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `idx_product` (`product`), + KEY `idx_status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_task` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `parent` mediumint(8) NOT NULL DEFAULT 0, + `isParent` tinyint(1) NOT NULL DEFAULT 0, + `path` text DEFAULT NULL, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `design` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `designVersion` smallint(6) unsigned NOT NULL DEFAULT 1, + `fromBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromIssue` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT '', + `mode` varchar(10) NOT NULL DEFAULT '', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `estimate` float unsigned NOT NULL DEFAULT 0, + `consumed` float unsigned NOT NULL DEFAULT 0, + `left` float unsigned NOT NULL DEFAULT 0, + `deadline` date DEFAULT NULL, + `status` enum('wait','doing','done','pause','cancel','closed') NOT NULL DEFAULT 'wait', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `mailto` text DEFAULT NULL, + `keywords` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) NOT NULL DEFAULT 0, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `estStarted` date DEFAULT NULL, + `realStarted` datetime DEFAULT NULL, + `finishedBy` varchar(30) NOT NULL DEFAULT '', + `finishedDate` datetime DEFAULT NULL, + `finishedList` text DEFAULT NULL, + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `planDuration` int(11) NOT NULL DEFAULT 0, + `realDuration` int(11) NOT NULL DEFAULT 0, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `activatedDate` datetime DEFAULT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `mr` mediumint(8) unsigned NOT NULL DEFAULT 0, + `entry` varchar(255) NOT NULL DEFAULT '', + `lines` varchar(10) NOT NULL DEFAULT '', + `v1` varchar(40) NOT NULL DEFAULT '', + `v2` varchar(40) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + KEY `execution` (`execution`), + KEY `story` (`story`), + KEY `parent` (`parent`), + KEY `assignedTo` (`assignedTo`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_taskestimate` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `date` date DEFAULT NULL, + `left` float unsigned NOT NULL DEFAULT 0, + `consumed` float unsigned NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `work` text DEFAULT NULL, + `order` tinyint(3) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `task` (`task`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_taskspec` ( + `task` mediumint(8) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `estStarted` date DEFAULT NULL, + `deadline` date DEFAULT NULL, + UNIQUE KEY `task` (`task`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_taskteam` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `estimate` decimal(12,2) NOT NULL DEFAULT 0.00, + `consumed` decimal(12,2) NOT NULL DEFAULT 0.00, + `left` decimal(12,2) NOT NULL DEFAULT 0.00, + `transfer` char(30) NOT NULL DEFAULT '', + `status` enum('wait','doing','done','cancel','closed') NOT NULL DEFAULT 'wait', + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `order` int(8) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `task` (`task`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_team` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `root` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` enum('project','task','execution') NOT NULL DEFAULT 'project', + `account` char(30) NOT NULL DEFAULT '', + `role` char(30) NOT NULL DEFAULT '', + `position` varchar(30) NOT NULL DEFAULT '', + `limited` char(8) NOT NULL DEFAULT 'no', + `join` date DEFAULT NULL, + `days` smallint(5) unsigned NOT NULL DEFAULT 0, + `hours` float(3,1) unsigned NOT NULL DEFAULT 0.0, + `estimate` decimal(12,2) unsigned NOT NULL DEFAULT 0.00, + `consumed` decimal(12,2) unsigned NOT NULL DEFAULT 0.00, + `left` decimal(12,2) unsigned NOT NULL DEFAULT 0.00, + `order` tinyint(3) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `team` (`root`,`type`,`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_testreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `tasks` varchar(255) NOT NULL DEFAULT '', + `builds` varchar(255) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `owner` char(30) NOT NULL DEFAULT '', + `members` text DEFAULT NULL, + `stories` text DEFAULT NULL, + `bugs` text DEFAULT NULL, + `cases` text DEFAULT NULL, + `report` text DEFAULT NULL, + `objectType` varchar(20) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_testresult` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `run` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(5) unsigned NOT NULL DEFAULT 0, + `job` mediumint(8) unsigned NOT NULL DEFAULT 0, + `compile` mediumint(8) unsigned NOT NULL DEFAULT 0, + `caseResult` char(30) NOT NULL DEFAULT '', + `stepResults` text DEFAULT NULL, + `ZTFResult` text DEFAULT NULL, + `node` int(8) unsigned NOT NULL DEFAULT 0, + `lastRunner` varchar(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `duration` float NOT NULL DEFAULT 0, + `xml` text DEFAULT NULL, + `deploy` mediumint(8) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `case` (`case`), + KEY `version` (`version`), + KEY `run` (`run`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_testrun` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` tinyint(3) unsigned NOT NULL DEFAULT 0, + `assignedTo` char(30) NOT NULL DEFAULT '', + `lastRunner` varchar(30) NOT NULL DEFAULT '', + `lastRunDate` datetime DEFAULT NULL, + `lastRunResult` char(30) NOT NULL DEFAULT '', + `status` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `task` (`task`,`case`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_testsuite` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `type` varchar(20) NOT NULL DEFAULT '', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `addedBy` char(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_testtask` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` char(90) NOT NULL DEFAULT '', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `build` char(30) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `realBegan` date DEFAULT NULL, + `realFinishedDate` datetime DEFAULT NULL, + `mailto` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `report` text DEFAULT NULL, + `status` enum('blocked','doing','wait','done') NOT NULL DEFAULT 'wait', + `testreport` mediumint(8) unsigned NOT NULL DEFAULT 0, + `auto` varchar(10) NOT NULL DEFAULT 'no', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `members` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `build` (`build`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_ticket` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `openedBuild` varchar(255) NOT NULL DEFAULT '', + `feedback` mediumint(8) NOT NULL DEFAULT 0, + `assignedTo` varchar(255) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `realStarted` datetime DEFAULT NULL, + `startedBy` varchar(255) NOT NULL DEFAULT '', + `startedDate` datetime DEFAULT NULL, + `deadline` date DEFAULT NULL, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `estimate` float unsigned NOT NULL DEFAULT 0, + `left` float unsigned NOT NULL DEFAULT 0, + `status` varchar(30) NOT NULL DEFAULT '', + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `activatedCount` int(11) NOT NULL DEFAULT 0, + `activatedBy` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `finishedBy` varchar(30) NOT NULL DEFAULT '', + `finishedDate` datetime DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolvedDate` datetime DEFAULT NULL, + `resolution` text DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `keywords` varchar(255) NOT NULL DEFAULT '', + `repeatTicket` mediumint(8) NOT NULL DEFAULT 0, + `mailto` varchar(255) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `subStatus` varchar(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `product` (`product`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_ticketrelation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `ticketId` mediumint(8) unsigned NOT NULL DEFAULT 0, + `objectId` mediumint(8) NOT NULL DEFAULT 0, + `objectType` varchar(100) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `ticketId` (`ticketId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_ticketsource` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `ticketId` mediumint(8) unsigned NOT NULL DEFAULT 0, + `customer` varchar(100) NOT NULL DEFAULT '', + `contact` varchar(100) NOT NULL DEFAULT '', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `ticketId` (`ticketId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_todo` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + `begin` smallint(4) unsigned zerofill NOT NULL DEFAULT 0000, + `end` smallint(4) unsigned zerofill NOT NULL DEFAULT 0000, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` char(15) NOT NULL DEFAULT '', + `cycle` tinyint(3) unsigned NOT NULL DEFAULT 0, + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `name` char(150) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `status` enum('wait','doing','done','closed') NOT NULL DEFAULT 'wait', + `private` tinyint(1) NOT NULL DEFAULT 0, + `config` varchar(1000) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `finishedBy` varchar(30) NOT NULL DEFAULT '', + `finishedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + KEY `account` (`account`), + KEY `assignedTo` (`assignedTo`), + KEY `finishedBy` (`finishedBy`), + KEY `date` (`date`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_traincategory` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(30) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) NOT NULL DEFAULT 0, + `order` mediumint(8) NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `parent` (`parent`), + KEY `path` (`path`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_traincontents` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `code` varchar(50) NOT NULL DEFAULT '', + `course` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `order` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_traincourse` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `code` varchar(255) NOT NULL DEFAULT '', + `category` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `status` varchar(10) NOT NULL DEFAULT '', + `teacher` varchar(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `importedStatus` enum('','wait','doing','done') NOT NULL DEFAULT '', + `lastUpdatedTime` int(10) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(255) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `editedBy` varchar(255) NOT NULL DEFAULT '', + `editedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_trainplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `place` varchar(255) NOT NULL DEFAULT '', + `trainee` text DEFAULT NULL, + `lecturer` varchar(20) NOT NULL DEFAULT '', + `type` enum('inside','outside') NOT NULL DEFAULT 'inside', + `status` varchar(20) NOT NULL DEFAULT '', + `summary` mediumtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_trainrecords` ( + `user` char(30) NOT NULL DEFAULT '', + `objectId` mediumint(8) unsigned NOT NULL DEFAULT 0, + `objectType` varchar(10) NOT NULL DEFAULT '', + `status` varchar(10) NOT NULL DEFAULT '', + UNIQUE KEY `object` (`user`,`objectId`,`objectType`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_trip` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` enum('trip','egress') NOT NULL DEFAULT 'trip', + `customers` varchar(20) NOT NULL DEFAULT '', + `name` char(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `start` time DEFAULT NULL, + `finish` time DEFAULT NULL, + `from` char(50) NOT NULL DEFAULT '', + `to` char(50) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `createdBy` (`createdBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_user` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `company` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT 'inside', + `dept` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `password` char(32) NOT NULL DEFAULT '', + `role` char(10) NOT NULL DEFAULT '', + `realname` varchar(100) NOT NULL DEFAULT '', + `superior` char(30) DEFAULT '', + `pinyin` varchar(255) NOT NULL DEFAULT '', + `nickname` char(60) NOT NULL DEFAULT '', + `commiter` varchar(100) NOT NULL DEFAULT '', + `avatar` text DEFAULT NULL, + `birthday` date DEFAULT NULL, + `gender` enum('f','m') NOT NULL DEFAULT 'f', + `email` char(90) NOT NULL DEFAULT '', + `skype` char(90) NOT NULL DEFAULT '', + `qq` char(20) NOT NULL DEFAULT '', + `mobile` char(11) NOT NULL DEFAULT '', + `phone` char(20) NOT NULL DEFAULT '', + `weixin` varchar(90) NOT NULL DEFAULT '', + `dingding` varchar(90) NOT NULL DEFAULT '', + `slack` varchar(90) NOT NULL DEFAULT '', + `whatsapp` varchar(90) NOT NULL DEFAULT '', + `address` char(120) NOT NULL DEFAULT '', + `zipcode` char(10) NOT NULL DEFAULT '', + `nature` text DEFAULT NULL, + `analysis` text DEFAULT NULL, + `strategy` text DEFAULT NULL, + `join` date DEFAULT NULL, + `visits` mediumint(8) unsigned NOT NULL DEFAULT 0, + `visions` varchar(20) NOT NULL DEFAULT 'rnd,lite', + `ip` varchar(255) NOT NULL DEFAULT '', + `last` int(11) unsigned NOT NULL DEFAULT 0, + `fails` tinyint(5) NOT NULL DEFAULT 0, + `locked` datetime DEFAULT NULL, + `feedback` enum('0','1') NOT NULL DEFAULT '0', + `ranzhi` char(30) NOT NULL DEFAULT '', + `ldap` char(30) NOT NULL DEFAULT '', + `score` int(11) NOT NULL DEFAULT 0, + `scoreLevel` int(11) NOT NULL DEFAULT 0, + `resetToken` varchar(50) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `clientStatus` enum('online','away','busy','offline','meeting') NOT NULL DEFAULT 'offline', + `clientLang` varchar(10) NOT NULL DEFAULT 'zh-cn', + PRIMARY KEY (`id`), + UNIQUE KEY `account` (`account`), + KEY `dept` (`dept`), + KEY `email` (`email`), + KEY `commiter` (`commiter`), + KEY `deleted` (`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_usercontact` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `listName` varchar(60) NOT NULL DEFAULT '', + `userList` text DEFAULT NULL, + `public` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_usergroup` ( + `account` char(30) NOT NULL DEFAULT '', + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `project` text DEFAULT NULL, + UNIQUE KEY `account` (`account`,`group`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_userquery` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `title` varchar(90) NOT NULL DEFAULT '', + `form` text DEFAULT NULL, + `sql` text DEFAULT NULL, + `shortcut` enum('0','1') NOT NULL DEFAULT '0', + `common` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `account` (`account`), + KEY `module` (`module`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_usertpl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `title` varchar(150) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `public` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_userview` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `programs` mediumtext DEFAULT NULL, + `products` mediumtext DEFAULT NULL, + `projects` mediumtext DEFAULT NULL, + `sprints` mediumtext DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_webhook` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(15) NOT NULL DEFAULT 'default', + `name` varchar(50) NOT NULL DEFAULT '', + `url` varchar(255) NOT NULL DEFAULT '', + `domain` varchar(255) NOT NULL DEFAULT '', + `secret` varchar(255) NOT NULL DEFAULT '', + `contentType` varchar(30) NOT NULL DEFAULT 'application/json', + `sendType` enum('sync','async') NOT NULL DEFAULT 'sync', + `products` text DEFAULT NULL, + `executions` text DEFAULT NULL, + `params` varchar(100) NOT NULL DEFAULT '', + `actions` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_weeklyreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `weekStart` date DEFAULT NULL, + `pv` float(9,2) NOT NULL DEFAULT 0.00, + `ev` float(9,2) NOT NULL DEFAULT 0.00, + `ac` float(9,2) NOT NULL DEFAULT 0.00, + `sv` float(9,2) NOT NULL DEFAULT 0.00, + `cv` float(9,2) NOT NULL DEFAULT 0.00, + `staff` smallint(5) unsigned NOT NULL DEFAULT 0, + `progress` varchar(255) NOT NULL DEFAULT '', + `workload` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `week` (`project`,`weekStart`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workestimation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `scale` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `productivity` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `duration` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `unitLaborCost` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `totalLaborCost` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `dayHour` decimal(10,2) NOT NULL DEFAULT 0.00, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflow` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `parent` varchar(30) NOT NULL DEFAULT '', + `child` varchar(30) NOT NULL DEFAULT '', + `type` varchar(10) NOT NULL DEFAULT 'flow', + `navigator` varchar(10) NOT NULL DEFAULT '', + `app` varchar(20) NOT NULL DEFAULT '', + `position` varchar(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `table` varchar(50) NOT NULL DEFAULT '', + `name` varchar(30) NOT NULL DEFAULT '', + `icon` varchar(30) NOT NULL DEFAULT 'flow', + `titleField` varchar(30) NOT NULL DEFAULT '', + `contentField` text DEFAULT NULL, + `flowchart` text DEFAULT NULL, + `js` text DEFAULT NULL, + `css` text DEFAULT NULL, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `role` varchar(10) NOT NULL DEFAULT 'buildin', + `belong` varchar(50) NOT NULL DEFAULT '', + `administrator` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `version` varchar(10) NOT NULL DEFAULT '1.0', + `status` varchar(10) NOT NULL DEFAULT 'wait', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `approval` enum('enabled','disabled') NOT NULL DEFAULT 'disabled', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`group`,`app`,`module`,`vision`), + KEY `type` (`type`), + KEY `app` (`app`), + KEY `module` (`module`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowaction` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` varchar(30) NOT NULL DEFAULT '', + `action` varchar(50) NOT NULL DEFAULT '', + `method` varchar(50) NOT NULL DEFAULT '', + `name` varchar(50) NOT NULL DEFAULT '', + `type` enum('single','batch') NOT NULL DEFAULT 'single', + `batchMode` enum('same','different') NOT NULL DEFAULT 'different', + `extensionType` varchar(10) NOT NULL DEFAULT 'override', + `open` varchar(20) NOT NULL DEFAULT '', + `position` enum('menu','browseandview','browse','view') NOT NULL DEFAULT 'browseandview', + `layout` char(20) NOT NULL DEFAULT '', + `show` enum('dropdownlist','direct') NOT NULL DEFAULT 'dropdownlist', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `role` varchar(10) NOT NULL DEFAULT 'custom', + `virtual` tinyint(1) unsigned NOT NULL DEFAULT 0, + `conditions` text DEFAULT NULL, + `verifications` text DEFAULT NULL, + `hooks` text DEFAULT NULL, + `linkages` text DEFAULT NULL, + `js` text DEFAULT NULL, + `css` text DEFAULT NULL, + `toList` char(255) NOT NULL DEFAULT '', + `blocks` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `status` varchar(10) NOT NULL DEFAULT 'enable', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`group`,`module`,`action`,`vision`), + KEY `module` (`module`), + KEY `action` (`action`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowdatasource` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` enum('system','sql','func','option','lang','category') NOT NULL DEFAULT 'option', + `name` varchar(30) NOT NULL DEFAULT '', + `code` varchar(30) NOT NULL DEFAULT '', + `datasource` text DEFAULT NULL, + `view` varchar(20) NOT NULL DEFAULT '', + `keyField` varchar(50) NOT NULL DEFAULT '', + `valueField` varchar(50) NOT NULL DEFAULT '', + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `type` (`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowfield` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` varchar(30) NOT NULL DEFAULT '', + `field` varchar(50) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT 'varchar', + `length` varchar(10) NOT NULL DEFAULT '', + `name` varchar(50) NOT NULL DEFAULT '', + `control` varchar(20) NOT NULL DEFAULT '', + `expression` text DEFAULT NULL, + `options` text DEFAULT NULL, + `default` varchar(100) NOT NULL DEFAULT '', + `rules` varchar(255) NOT NULL DEFAULT '', + `placeholder` varchar(255) NOT NULL DEFAULT '', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `searchOrder` smallint(5) unsigned NOT NULL DEFAULT 0, + `exportOrder` smallint(5) unsigned NOT NULL DEFAULT 0, + `canExport` enum('0','1') NOT NULL DEFAULT '0', + `canSearch` enum('0','1') NOT NULL DEFAULT '0', + `isValue` enum('0','1') NOT NULL DEFAULT '0', + `readonly` enum('0','1') NOT NULL DEFAULT '0', + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `role` varchar(10) NOT NULL DEFAULT 'custom', + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`group`,`module`,`field`), + KEY `module` (`module`), + KEY `field` (`field`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowgroup` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(10) NOT NULL DEFAULT '', + `projectModel` varchar(10) NOT NULL DEFAULT '', + `projectType` varchar(10) NOT NULL DEFAULT '', + `name` varchar(30) NOT NULL DEFAULT '', + `code` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `disabledModules` varchar(255) NOT NULL DEFAULT '', + `status` varchar(10) NOT NULL DEFAULT 'wait', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `main` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `type` (`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowlabel` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` varchar(30) NOT NULL DEFAULT '', + `action` varchar(30) NOT NULL DEFAULT 'browse', + `code` varchar(30) NOT NULL DEFAULT '', + `label` varchar(255) NOT NULL DEFAULT '', + `params` text DEFAULT NULL, + `orderBy` text DEFAULT NULL, + `order` tinyint(3) NOT NULL DEFAULT 0, + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `role` varchar(10) NOT NULL DEFAULT 'custom', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `module` (`module`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowlayout` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` varchar(30) NOT NULL DEFAULT '', + `action` varchar(50) NOT NULL DEFAULT '', + `ui` mediumint(8) NOT NULL DEFAULT 0, + `field` varchar(50) NOT NULL DEFAULT '', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `width` varchar(50) NOT NULL DEFAULT '0', + `position` text DEFAULT NULL, + `readonly` enum('0','1') NOT NULL DEFAULT '0', + `mobileShow` enum('0','1') NOT NULL DEFAULT '1', + `summary` varchar(20) NOT NULL DEFAULT '', + `defaultValue` text DEFAULT NULL, + `layoutRules` varchar(255) NOT NULL DEFAULT '', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`group`,`module`,`action`,`ui`,`field`,`vision`), + KEY `module` (`module`), + KEY `action` (`action`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowlinkdata` ( + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `linkedType` varchar(30) NOT NULL DEFAULT '', + `linkedID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + UNIQUE KEY `unique` (`objectType`,`objectID`,`linkedType`,`linkedID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowrelation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `prev` varchar(30) NOT NULL DEFAULT '', + `next` varchar(30) NOT NULL DEFAULT '', + `field` varchar(50) NOT NULL DEFAULT '', + `actions` varchar(20) NOT NULL DEFAULT '', + `actionCodes` text DEFAULT NULL, + `buildin` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowrelationlayout` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `prev` varchar(30) NOT NULL DEFAULT '', + `next` varchar(30) NOT NULL DEFAULT '', + `action` varchar(50) NOT NULL DEFAULT '', + `ui` mediumint(8) NOT NULL DEFAULT 0, + `field` varchar(50) NOT NULL DEFAULT '', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`prev`,`next`,`action`,`ui`,`field`), + KEY `prev` (`prev`), + KEY `next` (`next`), + KEY `action` (`action`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL, + `name` varchar(100) NOT NULL, + `type` enum('pie','line','bar') NOT NULL DEFAULT 'pie', + `countType` enum('sum','count') NOT NULL DEFAULT 'sum', + `displayType` enum('value','percent') NOT NULL DEFAULT 'value', + `dimension` varchar(130) NOT NULL, + `fields` text NOT NULL, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowrule` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` enum('system','regex','func') NOT NULL DEFAULT 'regex', + `name` varchar(30) NOT NULL DEFAULT '', + `rule` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `type` (`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowsql` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL DEFAULT '', + `field` varchar(50) NOT NULL DEFAULT '', + `action` varchar(50) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `vars` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `module` (`module`), + KEY `field` (`field`), + KEY `action` (`action`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowui` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` varchar(30) NOT NULL, + `action` varchar(50) NOT NULL, + `name` varchar(30) NOT NULL, + `conditions` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `module` (`module`), + KEY `action` (`action`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_workflowversion` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL DEFAULT '', + `version` varchar(10) NOT NULL DEFAULT '', + `fields` text DEFAULT NULL, + `actions` text DEFAULT NULL, + `layouts` text DEFAULT NULL, + `sqls` text DEFAULT NULL, + `labels` text DEFAULT NULL, + `table` text DEFAULT NULL, + `datas` text DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `moduleversion` (`module`,`version`), + KEY `module` (`module`), + KEY `version` (`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +CREATE TABLE `zt_zoutput` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `activity` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `content` mediumtext DEFAULT NULL, + `optional` char(20) NOT NULL DEFAULT '', + `tailorNorm` varchar(255) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `order` mediumint(8) DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; diff --git a/db/update21.6.1.sql b/db/update21.6.1.sql new file mode 100644 index 0000000000..169db5f37a --- /dev/null +++ b/db/update21.6.1.sql @@ -0,0 +1,7 @@ +ALTER TABLE `zt_task` ADD COLUMN `docs` text NULL AFTER `fromIssue`; +ALTER TABLE `zt_task` ADD COLUMN `docVersions` text NULL AFTER `docs`; +ALTER TABLE `zt_storyspec` ADD COLUMN `docs` text NULL AFTER `files`; +ALTER TABLE `zt_storyspec` ADD COLUMN `docVersions` text NULL AFTER `docs`; +ALTER TABLE `zt_design` ADD COLUMN `docs` text NULL AFTER `storyVersion`; +ALTER TABLE `zt_design` ADD COLUMN `docVersions` text NULL AFTER `docs`; +ALTER TABLE `zt_project` ADD `taskDateLimit` varchar(30) NOT NULL DEFAULT 'auto' AFTER `linkType`; \ No newline at end of file diff --git a/db/update21.7.sql b/db/update21.7.sql new file mode 100644 index 0000000000..6805002597 --- /dev/null +++ b/db/update21.7.sql @@ -0,0 +1,39 @@ +UPDATE `zt_workflowaction` SET `module` = 'story', `action` = 'browse' WHERE `module` = 'product' AND `action` = 'browse'; +UPDATE `zt_workflowlayout` SET `module` = 'story', `action` = 'browse' WHERE `module` = 'product' AND `action` = 'browse'; + +UPDATE `zt_workflowaction` SET `module` = 'requirement', `action` = 'browse' WHERE `module` = 'product' AND `action` = 'requirement'; +UPDATE `zt_workflowlayout` SET `module` = 'requirement', `action` = 'browse' WHERE `module` = 'product' AND `action` = 'requirement'; + +UPDATE `zt_workflowaction` SET `module` = 'epic', `action` = 'browse' WHERE `module` = 'product' AND `action` = 'epic'; +UPDATE `zt_workflowlayout` SET `module` = 'epic', `action` = 'browse' WHERE `module` = 'product' AND `action` = 'epic'; + +UPDATE `zt_workflowaction` SET `module` = 'build', `action` = 'browse' WHERE `module` = 'execution' AND `action` = 'build'; +UPDATE `zt_workflowlayout` SET `module` = 'build', `action` = 'browse' WHERE `module` = 'execution' AND `action` = 'build'; + +UPDATE `zt_workflowaction` SET `module` = 'task', `action` = 'browse' WHERE `module` = 'execution' AND `action` = 'task'; +UPDATE `zt_workflowlayout` SET `module` = 'task', `action` = 'browse' WHERE `module` = 'execution' AND `action` = 'task'; + +ALTER TABLE `zt_relationoftasks` ADD COLUMN `project` mediumint(8) unsigned NOT NULL DEFAULT 0 AFTER `id`; +ALTER TABLE `zt_relationoftasks` MODIFY `execution` char(30) NOT NULL DEFAULT '' AFTER `project`; +UPDATE `zt_relationoftasks` SET `project` = (SELECT `project` FROM `zt_task` WHERE `id` = `zt_relationoftasks`.`task`); + +CREATE TABLE IF NOT EXISTS `zt_deliverable` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `module` varchar(30) NULL, + `method` varchar(30) NULL, + `model` text NULL, + `type` enum('doc','file') NULL DEFAULT 'file', + `desc` text NULL, + `files` varchar(255) NULL, + `createdBy` varchar(30) NULL, + `createdDate` date NULL, + `lastEditedBy` varchar(30) NULL, + `lastEditedDate` date NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +ALTER TABLE `zt_workflowgroup` ADD `objectID` mediumint(8) unsigned NOT NULL DEFAULT '0' AFTER `id`; +ALTER TABLE `zt_workflowgroup` ADD COLUMN `deliverable` text NULL AFTER `editedDate`; +ALTER TABLE `zt_project` ADD COLUMN `deliverable` text NULL AFTER `maxColWidth`; \ No newline at end of file diff --git a/db/zentao.sql b/db/zentao.sql index c9057ea682..668e16528d 100755 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -578,6 +578,24 @@ CREATE TABLE IF NOT EXISTS `zt_screen` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +-- DROP TABLE IF EXISTS `zt_deliverable`; +CREATE TABLE IF NOT EXISTS `zt_deliverable` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `module` varchar(30) NULL, + `method` varchar(30) NULL, + `model` text NULL, + `type` enum('doc','file') NULL DEFAULT 'file', + `desc` text NULL, + `files` varchar(255) NULL, + `createdBy` varchar(30) NULL, + `createdDate` date NULL, + `lastEditedBy` varchar(30) NULL, + `lastEditedDate` date NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + -- DROP TABLE IF EXISTS `zt_dimension`; CREATE TABLE IF NOT EXISTS `zt_dimension` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, @@ -751,6 +769,8 @@ CREATE TABLE IF NOT EXISTS `zt_design` ( `deleted` enum('0','1') NOT NULL DEFAULT '0', `story` char(30) NOT NULL DEFAULT '', `storyVersion` smallint(6) UNSIGNED NOT NULL DEFAULT '1', + `docs` text NULL, + `docVersions` text NULL, `desc` mediumtext NULL, `version` smallint(6) NOT NULL DEFAULT '0', `type` char(30) NOT NULL DEFAULT '', @@ -1591,9 +1611,11 @@ CREATE TABLE IF NOT EXISTS `zt_project` ( `parallel` mediumint(9) NOT NULL DEFAULT '0', `enabled` enum('on','off') NOT NULL DEFAULT 'on', `linkType` varchar(30) NOT NULL DEFAULT 'plan', + `taskDateLimit` varchar(30) NOT NULL DEFAULT 'auto', `colWidth` smallint(6) NOT NULL DEFAULT '264', `minColWidth` smallint(6) NOT NULL DEFAULT '200', `maxColWidth` smallint(6) NOT NULL DEFAULT '384', + `deliverable` text NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; @@ -1945,6 +1967,7 @@ CREATE TABLE IF NOT EXISTS `zt_story` ( `toBug` mediumint(8) unsigned NOT NULL DEFAULT '0', `linkStories` varchar(255) NOT NULL DEFAULT '', `linkRequirements` varchar(255) NOT NULL DEFAULT '', + `docs` text NULL, `twins` varchar(255) NOT NULL DEFAULT '', `duplicateStory` mediumint(8) unsigned NOT NULL DEFAULT '0', `version` smallint(6) NOT NULL DEFAULT '1', @@ -2008,7 +2031,9 @@ CREATE TABLE IF NOT EXISTS `zt_storyspec` ( `title` varchar(255) NOT NULL DEFAULT '', `spec` mediumtext NULL, `verify` mediumtext NULL, - `files` text NULL + `files` text NULL, + `docs` text NULL, + `docVersions` text NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE UNIQUE INDEX `story` ON `zt_storyspec`(`story`,`version`); @@ -2047,6 +2072,8 @@ CREATE TABLE IF NOT EXISTS `zt_task` ( `fromBug` mediumint(8) unsigned NOT NULL DEFAULT '0', `feedback` mediumint(8) unsigned NOT NULL DEFAULT '0', `fromIssue` mediumint(8) unsigned NOT NULL DEFAULT '0', + `docs` text NULL, + `docVersions` text NULL, `name` varchar(255) NOT NULL DEFAULT '', `type` varchar(20) NOT NULL DEFAULT '', `mode` varchar(10) NOT NULL DEFAULT '', @@ -13227,6 +13254,7 @@ CREATE INDEX `order` ON `zt_workflow` (`order`); -- DROP TABLE IF EXISTS `zt_workflowgroup`; CREATE TABLE IF NOT EXISTS `zt_workflowgroup` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectID` mediumint(8) unsigned NOT NULL DEFAULT '0', `type` varchar(10) NOT NULL DEFAULT '', `projectModel` varchar(10) NOT NULL DEFAULT '', `projectType` varchar(10) NOT NULL DEFAULT '', @@ -13242,6 +13270,7 @@ CREATE TABLE IF NOT EXISTS `zt_workflowgroup` ( `createdDate` datetime NULL, `editedBy` varchar(30) NOT NULL DEFAULT '', `editedDate` datetime NULL, + `deliverable` text NULL, `deleted` enum('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/doc/CHANGELOG b/doc/CHANGELOG index e8b079e850..a593d9d88d 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -1,3 +1,65 @@ +2025-05-16 21.7 +完成的需求 +开源版: +74400 修改代码块中的语言项显示为中文 +74398 版本恢复成功后存为新版本 +74397 版本恢复前增加弹窗提示 +74396 在文档版本切换右侧打印「恢复」按钮 +73166 编辑器有序列表和无序列表样式 +修复的Bug +开源版: +61513 场景下用例关联的研发需求显示undefined +61525 快捷访问下编辑文档提示无权限 (Feedback#9021) +61758 【内禅】文档升级成功后内容有丢失 +61761 【内禅】预览文档附件有报错 +61772 接口文档的历史记录不正确 +61773 [内禅]文档中显示附件已做防盗链处理 +61785 需要手动刷新浏览器后,文档正文才显示 +61799 [内禅]文档正文内容为空 +61808 【内禅】火狐浏览器简单表格内文字丢失 +61873 emoji显示不正确 +62130 从用例库导入用例性能存在问题 (Feedback#9169) +62159 计划关联需求搜索后报错 +62162 使用版本1恢复创建了版本3,版本3还显示恢复按钮 +62163 执行下需求估算页直接点击保存后sql报错 +62164 切换文档版本,一直显示“正在加载文档” +62170 文档加载中时,点击恢复实际是不生效的 +62175 执行下任务看板中在制品设置页保存后有报错 +62180 用例执行后执行结果展示样式错乱 +62181 点击接口编辑按钮无反应 +62182 旧编辑器的全屏查看,无法查看完整内容 +62183 子任务的截止日期大于父任务截止日期时没有自动修改父任务的截止日期 +62185 执行分组视图页面分组下拉菜单缺少选中态 +62186 只读用户恢复文档时应提示无编辑权限 +62187 回收站中文档点击版本恢复按钮无反应 +62188 biz10.5升级biz11.6.1,升级后编辑之前zenEditor创建的文档,存为草稿报错 +62193 权限选择全选,点击保存报错 +62258 执行下需求估算页面预计工时输入空格保存时提示信息不正确 +62259 开启音视频功能后大桌面登录报错 +62276 执行分组视图页面按状态分组时有报错 +企业版: +62195 未分配项目阶段模板导出和导入任务权限时,显示了对应按钮 +旗舰版: +62152 DevOps代码页面,没有列表页码 (Feedback#9205) +62483 复制项目保存时报错 +IPD版: +39515 IPD项目有迭代的父阶段在迭代没开始时就可以关闭 +62165 IPD项目设置阶段保存时页面报错 + +2025-04-30 21.6.1 +完成的需求 +修复的Bug +开源版: +61525 快捷访问下编辑文档提示无权限 (Feedback#9021) +61758 【内禅】文档升级成功后内容有丢失 +61761 【内禅】预览文档附件有报错 +61772 接口文档的历史记录不正确 +61773 [内禅]文档中显示附件已做防盗链处理 +61785 需要手动刷新浏览器后,文档正文才显示 +61799 [内禅]文档正文内容为空 +61808 【内禅】火狐浏览器简单表格内文字丢失 +61873 emoji显示不正确 + 2025-04-11 21.6 完成的需求 开源版: diff --git a/framework/base/helper.class.php b/framework/base/helper.class.php index 7662d5e483..f657339bb6 100644 --- a/framework/base/helper.class.php +++ b/framework/base/helper.class.php @@ -254,7 +254,7 @@ class baseHelper static public function importControl($moduleName) { global $app; - return helper::import($app->getModulePath($moduleName) . 'control.php'); + return helper::import($app->getModulePath('', $moduleName) . 'control.php'); } /** diff --git a/framework/router.class.php b/framework/router.class.php index c673e1f849..d0666cc59f 100755 --- a/framework/router.class.php +++ b/framework/router.class.php @@ -443,7 +443,7 @@ class router extends baseRouter /* 加载每一个配置文件。Load every config file. */ foreach($configFiles as $configFile) { - if(isset(static::$loadedConfigs[$configFile])) continue; + if(isset(static::$loadedConfigs[$configFile]) && !$force) continue; if(file_exists($configFile)) include $configFile; static::$loadedConfigs[$configFile] = $configFile; } diff --git a/lib/base/dao/dao.class.php b/lib/base/dao/dao.class.php index 207f55d87c..759a0bb9da 100644 --- a/lib/base/dao/dao.class.php +++ b/lib/base/dao/dao.class.php @@ -1771,19 +1771,8 @@ class baseDAO */ public function getFieldsType() { - try - { - $this->dbh->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); - $sql = "DESC $this->table"; - $rawFields = $this->dbh->rawQuery($sql)->fetchAll(); - $this->dbh->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL); - } - catch (PDOException $e) - { - $this->sqlError($e); - } - - $fields = array(); + $fields = array(); + $rawFields = $this->descTable($this->table); foreach($rawFields as $rawField) { $firstPOS = strpos($rawField->type, '('); @@ -1875,17 +1864,17 @@ class baseDAO $performanceSwitch = $performanceSchema->Value ?? 'OFF'; if($performanceSwitch == 'ON') { - $profiles = $this->select('t1.EVENT_ID AS Query_ID, TRUNCATE(t1.TIMER_WAIT/1000000000000,6) AS Duration, t1.SQL_TEXT AS Query') - ->from('performance_schema.events_statements_history_long')->alias('t1') - ->leftJoin('performance_schema.threads')->alias('t2')->on('t1.THREAD_ID=t2.THREAD_ID') - ->where('t2.PROCESSLIST_ID=CONNECTION_ID()') - ->orderBy('EVENT_ID') - ->fetchAll(); - } - else - { - $profiles = $this->query('SHOW PROFILES')->fetchAll(); + try + { + $sql = "SELECT t1.EVENT_ID AS Query_ID, TRUNCATE(t1.TIMER_WAIT/1000000000000,6) AS Duration, t1.SQL_TEXT AS Query FROM performance_schema.events_statements_history_long AS t1 LEFT JOIN performance_schema.threads AS t2 ON t1.THREAD_ID=t2.THREAD_ID wHeRe t2.PROCESSLIST_ID=CONNECTION_ID() oRdEr bY EVENT_ID"; + $profiles = $this->dbh->query($sql)->fetchAll(); + } + catch(PDOException $e) + { + $profiles = $this->query('SHOW PROFILES')->fetchAll(); + } } + if(empty($profiles)) $profiles = $this->query('SHOW PROFILES')->fetchAll(); foreach($profiles as $profile) { diff --git a/lib/dbh/dbh.class.php b/lib/dbh/dbh.class.php index d77a3707ba..5eb89cb63f 100644 --- a/lib/dbh/dbh.class.php +++ b/lib/dbh/dbh.class.php @@ -85,7 +85,7 @@ class dbh if($driver == 'mysql') { $pdo->exec("SET NAMES {$config->encoding}"); - if(isset($this->config->strictMode) and $this->config->strictMode == false) $pdo->exec("SET @@sql_mode= ''"); + if(isset($config->strictMode) and $config->strictMode == false) $pdo->exec("SET @@sql_mode= ''"); } else if($setSchema) { diff --git a/lib/form/form.class.php b/lib/form/form.class.php index d694e95019..2ac9718ddb 100644 --- a/lib/form/form.class.php +++ b/lib/form/form.class.php @@ -224,6 +224,8 @@ class form extends fixer if($app->rawModule == 'feedback' && $app->rawMethod == 'touserstory') $module = 'requirement'; if($app->rawModule == 'feedback' && $app->rawMethod == 'toepic') $module = 'epic'; + if($app->rawModule == 'projectrelease') $module = 'release'; + if($method == 'batchcreate') $method = 'create'; if($method == 'batchedit') $method = 'edit'; diff --git a/lib/zin/func.php b/lib/zin/func.php index 9ad3894d70..e651f5237a 100644 --- a/lib/zin/func.php +++ b/lib/zin/func.php @@ -248,6 +248,8 @@ function pivotConfig(): pivotConfig {return createWg('pivotConfig', func_get_arg function iconPicker(): iconPicker {return createWg('iconPicker', func_get_args());} function relatedObjectList(): relatedObjectList {return createWg('relatedObjectList', func_get_args());} function taskAssignedTo(): taskAssignedTo {return createWg('taskAssignedTo', func_get_args());} +function docList(): docList {return createWg('docList', func_get_args());} +function deliverable(): deliverable {return createWg('deliverable', func_get_args());} if(is_dir(__DIR__ . DS . 'wg' . DS . 'schedule')) { @@ -257,4 +259,4 @@ if(is_dir(__DIR__ . DS . 'wg' . DS . 'schedule')) if(is_dir(__DIR__ . DS . 'wg' . DS . 'boardeditor')) { function boardEditor(): boardEditor {return createWg('boardeditor', func_get_args());} -} +} \ No newline at end of file diff --git a/lib/zin/wg/backbtn/v1.php b/lib/zin/wg/backbtn/v1.php index 5b20fca7ac..0f67b0e291 100644 --- a/lib/zin/wg/backbtn/v1.php +++ b/lib/zin/wg/backbtn/v1.php @@ -96,7 +96,9 @@ class backBtn extends btn 'approvalflow' => 'approvalflow-browse', 'host' => 'host-browse,my-index', 'deploy' => 'deploy-browse', - 'program' => 'program-browse,program-productview' + 'program' => 'program-browse,program-productview', + 'workflowgroup' => 'workflowgroup-project,workflowgroup-deliverable', + 'deliverable' => 'deliverable-browse' ); $props = parent::getProps(); diff --git a/lib/zin/wg/deliverable/js/v1.js b/lib/zin/wg/deliverable/js/v1.js new file mode 100644 index 0000000000..80fa48a10f --- /dev/null +++ b/lib/zin/wg/deliverable/js/v1.js @@ -0,0 +1,44 @@ +/** + * 获取附件的操作按钮。 + * Get file actions. + */ +window.getDeliverableFileActions = function(file, deliverable) +{ + let actions = []; + if(canDownload && typeof file.id === 'number') actions[0] = {icon: 'download', key: 'download', url: $.createLink('file', 'download', 'id=' + file.id), target: '_blank'}; + actions[1] = {icon: 'edit', key: 'rename'}; + actions[2] = {icon: 'trash', key: 'delete'}; + + /* 可以预览的文件。 */ + if(['txt', 'jpg', 'jpeg', 'gif', 'png', 'bmp', 'mp4'].includes(file.extension) && canDownload) + { + actions[3] = {icon: 'eye', key: 'view', url: $.createLink('file', 'download', `fileID=${file.id}&mouse=left`), 'data-toggle' : 'modal', 'data-size' : 'lg'}; + } + + return actions; +} + +/** + * 获取文档的操作按钮。 + * Get file actions. + */ +window.getDocActions = function(doc, deliverable) +{ + let actions = []; + actions[0] = {icon: 'eye', key: 'view', url: $.createLink('doc', 'view', 'docID=' + doc.id)}; + actions[1] = {icon: 'edit', key: 'rename'}; + actions[2] = {icon: 'trash', key: 'delete'}; + return actions; +} + +/** + * 获取交付物的操作按钮。 + * Get deliverable actions. + */ +window.getDeliverableActions = function(deliverable) +{ + let actions = []; + actions[0] = {text: addFile, icon: 'file', key: 'selectFile'}; + if(deliverable.template > 0 && canDownload) actions[1] = {text: downloadTemplate, icon: 'download', key: 'downloadTemplate', url: $.createLink('file', 'download', 'templateID=' + deliverable.template), target: '_blank'}; + return actions; +} diff --git a/lib/zin/wg/deliverable/v1.php b/lib/zin/wg/deliverable/v1.php new file mode 100644 index 0000000000..dc3c7c86f9 --- /dev/null +++ b/lib/zin/wg/deliverable/v1.php @@ -0,0 +1,78 @@ +loadLang('doc'); + $app->loadLang('file'); + jsVar('addFile', $lang->doc->addFile); + jsVar('downloadTemplate', $lang->doc->downloadTemplate); + jsVar('deleteItem', $lang->delete); + jsVar('canDownload', hasPriv('file', 'download')); + + return file_get_contents(__DIR__ . DS . 'js' . DS . 'v1.js'); + } + + /** + * 构建组件。 + * Build. + * + * @access protected + * @return zui + */ + protected function build(): zui + { + global $lang, $app; + $app->loadLang('doc'); + $app->loadLang('file'); + + $formName = $this->prop('formName') ? $this->prop('formName') : 'deliverable'; + + if(!$this->hasProp('maxFileSize')) + { + $maxFileSize = ini_get('upload_max_filesize'); + $lastChar = substr($maxFileSize, -1); + $fileSizeUnit = array('K', 'M', 'G', 'T'); + if(in_array($lastChar, $fileSizeUnit)) $maxFileSize .= 'B'; + $this->setProp('maxFileSize', $maxFileSize); + } + + return zui::deliverableList + ( + set::formName($formName), + set::items($this->prop('items')), + set::docPicker(array('placeholder' => $lang->doc->selectDoc, 'items' => helper::createLink('doc', 'ajaxGetMineDocs', 'keyword={search}'))), + set::getFileActions(jsRaw('window.getDeliverableFileActions')), + set::getDocActions(jsRaw('window.getDocActions')), + set::getEmptyActions(jsRaw('window.getDeliverableActions')), + set::maxFileSize($this->prop('maxFileSize')), + set::extraCategory($lang->other) + ); + } +} diff --git a/lib/zin/wg/docapp/js/v1.js b/lib/zin/wg/docapp/js/v1.js index 4493847a45..28f221cedc 100644 --- a/lib/zin/wg/docapp/js/v1.js +++ b/lib/zin/wg/docapp/js/v1.js @@ -581,6 +581,7 @@ function handleSaveDoc(doc) space : spaceType, uid : (doc.uid || `doc${doc.id}`), }; + if(doc.fromVersion) docData.fromVersion = doc.fromVersion; if(savingDocData[doc.id]) { @@ -602,6 +603,14 @@ function handleSaveDoc(doc) throw new Error(message); } doc = $.extend({}, doc, docData, data.doc); + + if(docApp.spaceType == 'quick') + { + resolve(false); + const libType = docApp.lib.data.quickType; + return loadPage($.createLink('doc', 'quick', `type=${libType}&docID=${doc.id}`)); + } + const libID = +doc.lib; const lib = docApp.getLib(libID); if(!lib) @@ -1190,12 +1199,7 @@ const commands = if (typeof doc !== 'object') { doc = docApp._treeMap.value.docs.get(doc)?.data; } - docApp.load(null, null, null, {noLoading: false, picks: 'doc'}).then(() => { - doc = docApp._treeMap.value.docs.get(doc.id)?.data; - const editable = doc?.editable; - if(!editable) return zui.Modal.alert(getLang('needEditable')); - docApp.startEditDoc(doc, options); - }); + return docApp.startEditDoc(doc, options); }, /** 上传文档。Upload Doc. */ uploadDoc: function() diff --git a/lib/zin/wg/docapp/v1.php b/lib/zin/wg/docapp/v1.php index a69c13e5bf..293a9ecfaa 100644 --- a/lib/zin/wg/docapp/v1.php +++ b/lib/zin/wg/docapp/v1.php @@ -317,6 +317,7 @@ class docApp extends wg set::viewModeUrl($viewModeUrl), set::langData($langData), set::historyPanel($historyPanelProps), + set::showToolbar(true), $hasZentaoSlashMenu ? jsCall('setZentaoSlashMenu', $this->getZentaoListMenu(), $lang->doc->zentaoData, $config->vision, $config->doc->zentaoListMenuPosition) : null ); } diff --git a/lib/zin/wg/doclist/js/v1.js b/lib/zin/wg/doclist/js/v1.js new file mode 100644 index 0000000000..bea34425fd --- /dev/null +++ b/lib/zin/wg/doclist/js/v1.js @@ -0,0 +1,12 @@ +window.removeDocs = function(event) +{ + const docID = $(event.target).closest(".docItem").data('docID'); + const docTitle = $(event.target).closest(".docItem").find('.docTitle').text(); + + /* 删掉的这一行追加到相关文档下拉组件里。 */ + items = $("#docs").zui('picker').$.state.items; + items.push({text: docTitle, value: docID, key: docID}); + $("#docs").zui('picker').render({items, toolbar: true}); + + $(event.target).closest(".docItem").empty(); +} diff --git a/lib/zin/wg/doclist/v1.php b/lib/zin/wg/doclist/v1.php new file mode 100644 index 0000000000..74cc0e96d8 --- /dev/null +++ b/lib/zin/wg/doclist/v1.php @@ -0,0 +1,78 @@ + '?object', // 对象数据。 + 'mode' => '?string="edit"' // view还是edit模式。 + ); + + public static function getPageJS(): ?string + { + return file_get_contents(__DIR__ . DS . 'js' . DS . 'v1.js'); + } + + protected function build() + { + global $app, $lang; + + $app->loadLang('task'); + $data = $this->prop('data'); + $mode = $this->prop('mode'); + $oldDocs = $app->control->dao->select('id,title,version')->from(TABLE_DOC)->where('id')->in($data->docs)->fetchAll('id'); + $docList = $app->control->loadModel('doc')->getMySpaceDocs('all', 'bykeyword', '', 'id_desc', null, '', $data->docs); + + $docs = array(); + foreach($docList as $doc) $docs[] = array('text' => $doc->title, 'value' => $doc->id); + + if($mode == 'edit') + { + $oldDocVersions = $app->control->dao->select('doc,version')->from(TABLE_DOCCONTENT)->where('doc')->in($data->docs)->fetchGroup('doc', 'version'); + $oldDocVersions = \json_decode(json_encode($oldDocVersions), true); + foreach($oldDocVersions as $docID => $versions) + { + foreach($versions as $versionID => $version) $oldDocVersions[$docID][$versionID] = "#{$version['version']}"; + } + } + + if(is_string($data->docVersions)) $data->docVersions = \json_decode($data->docVersions, true); + + $docBox = array(); + if($data->docs) + { + foreach(explode(',', $data->docs) as $docID) + { + $link = $mode == 'view' && common::hasPriv('doc', 'view') ? a(set::href(helper::createLink('doc', 'view', "docID={$docID}&version={$data->docVersions[$docID]}")), $oldDocs[$docID]->title) : $oldDocs[$docID]->title; + $docBox[] = div + ( + setData(array('docID' => $docID)), + setClass('docItem flex items-center py-1'), + span(setClass('mr-4 p-1 docTitle'), icon(setClass('mr-2'), 'file-text'), $link), + div(setClass('w-24'), $mode == 'edit' ? picker(set::required(true), set::name("docVersions[$docID]"), set::items($oldDocVersions[$docID]), set::value($data->docVersions[$docID])) : "#{$data->docVersions[$docID]}"), + $mode == 'edit' && $oldDocs[$docID]->version != $data->docVersions[$docID] ? label(setClass('ml-2 warning'), $lang->task->docSyncTips) : null, + $mode == 'edit' ? input(setClass('hidden'), set::name("oldDocs[$docID]"), set::value($docID)) : null, + $mode == 'edit' ? btn(setClass('ghost ml-2'), icon('trash'), setData(array('on' => 'click', 'call' => 'window.removeDocs', 'params' => 'event'))) : null + ); + } + } + + + return div + ( + setClass('form-group-wrapper picker-box'), + $mode == 'edit' ? picker + ( + setID('docs'), + set::name('docs'), + set::items($docs), + set::multiple(true), + set::maxItemsCount(50), + set::menu(array('checkbox' => true)), + !empty($items) ? set::toolbar(true) : null + ) : null, + div(setClass('mt-2'), $docBox) + ); + } +} diff --git a/lib/zin/wg/dropmenu/css/v1.css b/lib/zin/wg/dropmenu/css/v1.css index a1308d5d1a..9904ddbb1d 100644 --- a/lib/zin/wg/dropmenu/css/v1.css +++ b/lib/zin/wg/dropmenu/css/v1.css @@ -1,4 +1,4 @@ -#pick-pop-admin-menu {width: 139px!important;} +#pick-pop-admin-menu {width: 145px!important;} #pick-pop-admin-menu .dropmenu-list {padding: 8px;} #pick-pop-admin-menu .dropmenu-item + .dropmenu-item {margin-top: 4px} #pick-pop-admin-menu .dropmenu-item.active {background-color: unset;} diff --git a/lib/zin/wg/filter/v1.php b/lib/zin/wg/filter/v1.php index 1baeddd66d..23ca9ba7e6 100644 --- a/lib/zin/wg/filter/v1.php +++ b/lib/zin/wg/filter/v1.php @@ -32,7 +32,7 @@ class filter extends wg return picker ( - setClass('flex-auto'), + setClass('flex-auto no-morph'), set::name($name), set::value($value), set::items($items), diff --git a/lib/zin/wg/gantt/js/v1.js b/lib/zin/wg/gantt/js/v1.js index 36e93384e0..b1d7410b0c 100644 --- a/lib/zin/wg/gantt/js/v1.js +++ b/lib/zin/wg/gantt/js/v1.js @@ -270,7 +270,6 @@ function validateResources(id) let status = task.status; let type = task.type; let statusLang = ganttLang.taskStatusList['wait']; - flag = true; /* Check status. */ if(status !== statusLang && type != 'point') @@ -292,32 +291,26 @@ function validateResources(id) if(type == 'point') itemID = task.id.split("-")[2]; /* Check data. */ - let postData = { - 'id' : itemID, - 'startDate' : from.toLocaleDateString('en-CA'), - 'endDate' : to.toLocaleDateString('en-CA'), - 'type' : type - }; - /* Sync Close. */ - $.ajax({ - url: $.createLink('programplan', 'ajaxResponseGanttDragEvent'), - dataType: "json", - data: postData, - type: "post", - success: function(response) - { - if(response.result == 'fail' && response.message) - { - zui.Messager.show({content: response.message, type: 'danger-outline', icon: 'exclamation-sign'}); - flag = false; - } - else - { - gantt.updateTask(task.id, task); - if(task.parent) changeParentTask(task, task.parent); - } - } - }); + const postData = 'id=' + itemID + '&startDate=' + from.toLocaleDateString('en-CA') + '&endDate=' + to.toLocaleDateString('en-CA') + '&type=' +type; + + const xhr = new XMLHttpRequest(); + xhr.open('POST', $.createLink('programplan', 'ajaxResponseGanttDragEvent'), false); // 同步模式 + xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); + xhr.send(postData); + + let flag = true; + const response = JSON.parse(xhr.responseText); + if(response.result == 'fail' && response.message) + { + zui.Messager.show({content: response.message, type: 'danger-outline', icon: 'exclamation-sign'}); + flag = false; + } + else + { + gantt.updateTask(task.id, task); + if(task.parent) changeParentTask(task, task.parent); + } return flag; } @@ -714,6 +707,14 @@ function initGantt() return false; } + const sourceTask = gantt.getTask(link.source); + const targetTask = gantt.getTask(link.target); + if(sourceTask.allowLinks === false || targetTask.allowLinks === false) + { + zui.Messager.show({content: ganttLang.wrongKanbanTasks, type: 'danger-outline', icon: 'exclamation-sign'}); + return false; + }; + return true; }); diff --git a/lib/zin/wg/modulemenu/v1.php b/lib/zin/wg/modulemenu/v1.php index 333ee3a950..cf69cc55c0 100644 --- a/lib/zin/wg/modulemenu/v1.php +++ b/lib/zin/wg/modulemenu/v1.php @@ -131,7 +131,7 @@ class moduleMenu extends wg $modules = $this->prop('modules'); $moduleName = ''; if($modules) array_map(function($module) use(&$moduleName, $activeKey) { if($module->id == $activeKey || $module->id == 'product-' . $activeKey) $moduleName = $module->name; }, $modules); - if(empty($moduleName)) + if(!empty($modules) && empty($moduleName)) { $module = $app->control->loadModel('tree')->getByID($activeKey); if($module) $moduleName = $module->name; diff --git a/lib/zin/wg/useravatar/v1.php b/lib/zin/wg/useravatar/v1.php index c1e5e0fa45..a98beb7b14 100644 --- a/lib/zin/wg/useravatar/v1.php +++ b/lib/zin/wg/useravatar/v1.php @@ -53,6 +53,8 @@ class userAvatar extends wg $realname = isset($user->realname) ? $user->realname : $realname; } + if($avatar) $avatar .= '?v=' . uniqid(); // 给头像URL添加一个随机参数,避免浏览器缓存。 + return avatar ( set::src($avatar), diff --git a/misc/ci/Jenkinsfile b/misc/ci/Jenkinsfile index e64bc27975..b75f02b91a 100644 --- a/misc/ci/Jenkinsfile +++ b/misc/ci/Jenkinsfile @@ -26,8 +26,10 @@ pipeline { separator(name: "replay", sectionHeader: "仓库切换") string description: '指定一个构建Id用于回放', name: 'REPLAY_ID', trim: true - string description: '指定 zentaoext 分支, 也可以是 tag 或者 commit', name: 'zentaoext_version', trim: true - string description: '指定 xuanxuan 分支', name: 'xuanxuan_version', trim: true + string description: '指定企业版分支, 也可以是 tag 或者 commit', name: 'zentaoext_version', trim: true + string description: '指定旗舰版分支, 也可以是 tag 或者 commit', name: 'zentaomax_version', trim: true + string description: '指定IPD版分支, 也可以是 tag 或者 commit', name: 'zentaoipd_version', trim: true + string description: '指定喧喧分支', name: 'xuanxuan_version', trim: true string description: '指定开源版全量降级 revision', name: 'fulldown_pms_version', trim: true string description: '指定收费版全量降级 revision', name: 'fulldown_ext_version', trim: true @@ -95,8 +97,8 @@ pipeline { zCheckout([ [name: "xuansrc", subDir: true, url: "https://${env.GITFOX_HOST}/git/xuan/xuanxuan.git", credentialsId: "gitfox-zcorp-cc-ci-robot", branchs: ["${params.xuanxuan_version}", j.getReplaySHA("xuanxuan"), "${env.XUANVERSION}"] ], [name: "zentaoext", subDir: true, url: "https://${env.GITFOX_HOST}/git/${env.ZENTAOEXT_GIT_REPO}.git", credentialsId: "gitfox-zcorp-cc-ci-robot", branchs: ["${params.zentaoext_version}", j.getReplaySHA("zentaoext"), "${env.ZENTAOEXT_VERSION}", "${env.GIT_BRANCH}"] ], - [name: "zentaomax", subDir: true, url: "https://${env.GITFOX_HOST}/git/zentao/zentaomax.git", credentialsId: "gitfox-zcorp-cc-ci-robot", branchs: ["${env.GIT_BRANCH}"] ], - [name: "zentaoipd", subDir: true, url: "https://${env.GITFOX_HOST}/git/zentao/zentaoipd.git", credentialsId: "gitfox-zcorp-cc-ci-robot", branchs: ["${env.GIT_BRANCH}"] ], + [name: "zentaomax", subDir: true, url: "https://${env.GITFOX_HOST}/git/zentao/zentaomax.git", credentialsId: "gitfox-zcorp-cc-ci-robot", branchs: ["${params.zentaomax_version}", j.getReplaySHA("zentaomax"), "${env.ZENTAOMAX_VERSION}", "${env.GIT_BRANCH}"] ], + [name: "zentaoipd", subDir: true, url: "https://${env.GITFOX_HOST}/git/zentao/zentaoipd.git", credentialsId: "gitfox-zcorp-cc-ci-robot", branchs: ["${params.zentaoipd_version}", j.getReplaySHA("zentaoipd"), "${env.ZENTAOIPD_VERSION}", "${env.GIT_BRANCH}"] ], [name: "downRepo", subDir: true, url: "https://${env.GITFOX_HOST}/git/${env.DOWNGRADE_GIT_REPO}.git", credentialsId: "gitfox-zcorp-cc-ci-robot", branchs: ["${params.fulldown_pms_version}", j.getReplaySHA("${env.DOWNGRADE_GIT_REPO}"), "downgrade/${env.GIT_BRANCH}/src"] ], [name: "downRepoExt", subDir: true, url: "https://${env.GITFOX_HOST}/git/${env.DOWNGRADE_EXT_GIT_REPO}.git", credentialsId: "gitfox-zcorp-cc-ci-robot", branchs: ["${params.fulldown_ext_version}", j.getReplaySHA("${env.DOWNGRADE_EXT_GIT_REPO}"), "downgrade/${env.GIT_BRANCH}/src"] ] ]) diff --git a/misc/ci/Jenkinsfile.downgrade b/misc/ci/Jenkinsfile.downgrade index b603b2a9a8..b7fbcc2107 100755 --- a/misc/ci/Jenkinsfile.downgrade +++ b/misc/ci/Jenkinsfile.downgrade @@ -18,8 +18,10 @@ pipeline { parameters { separator(name: "spec", sectionHeader: "仓库切换") - string description: '指定 zentaoext 分支, 也可以是 tag 或者 commit', name: 'zentaoext_version', trim: true - string description: '指定 xuanxuan 分支', name: 'xuanxuan_version', trim: true + string description: '指定企业版分支, 也可以是 tag 或者 commit', name: 'zentaoext_version', trim: true + string description: '指定旗舰版分支, 也可以是 tag 或者 commit', name: 'zentaomax_version', trim: true + string description: '指定IPD版分支, 也可以是 tag 或者 commit', name: 'zentaoipd_version', trim: true + string description: '指定喧喧分支', name: 'xuanxuan_version', trim: true separator(name: "other", sectionHeader: "其它") booleanParam defaultValue: false, description: '调试模式', name: 'DEBUG' @@ -67,8 +69,8 @@ pipeline { zCheckout([ [name: "xuansrc", subDir: true, url: "https://${env.GITFOX_HOST}/git/xuan/xuanxuan.git", credentialsId: "gitfox-zcorp-cc-ci-robot", branchs: ["${params.xuanxuan_version}", "${env.XUANVERSION}"] ], [name: "zentaoext", subDir: true, url: "https://${env.GITFOX_HOST}/git/${env.ZENTAOEXT_GIT_REPO}.git", credentialsId: "gitfox-zcorp-cc-ci-robot", branchs: ["${params.zentaoext_version}", "${env.ZENTAOEXT_VERSION}", "${env.GIT_BRANCH}"] ], - [name: "zentaomax", subDir: true, url: "https://${env.GITFOX_HOST}/git/zentao/zentaomax.git", credentialsId: "gitfox-zcorp-cc-ci-robot", branchs: ["${env.GIT_BRANCH}"] ], - [name: "zentaoipd", subDir: true, url: "https://${env.GITFOX_HOST}/git/zentao/zentaoipd.git", credentialsId: "gitfox-zcorp-cc-ci-robot", branchs: ["${env.GIT_BRANCH}"] ], + [name: "zentaomax", subDir: true, url: "https://${env.GITFOX_HOST}/git/zentao/zentaomax.git", credentialsId: "gitfox-zcorp-cc-ci-robot", branchs: ["${params.zentaomax_version}", "${env.ZENTAOMAX_VERSION}", "${env.GIT_BRANCH}"] ], + [name: "zentaoipd", subDir: true, url: "https://${env.GITFOX_HOST}/git/zentao/zentaoipd.git", credentialsId: "gitfox-zcorp-cc-ci-robot", branchs: ["${params.zentaoipd_version}", "${env.ZENTAOIPD_VERSION}", "${env.GIT_BRANCH}"] ], [name: "downRepo", subDir: true, url: "https://${env.GITFOX_HOST}/git/${env.DOWNGRADE_GIT_REPO}.git", credentialsId: "gitfox-zcorp-cc-ci-robot", branchs: ["downgrade/blank"] ], [name: "downRepoExt", subDir: true, url: "https://${env.GITFOX_HOST}/git/${env.DOWNGRADE_EXT_GIT_REPO}.git", credentialsId: "gitfox-zcorp-cc-ci-robot", branchs: ["downgrade/blank"] ] ]) diff --git a/module/action/config.php b/module/action/config.php index b67498ba33..46af15a042 100755 --- a/module/action/config.php +++ b/module/action/config.php @@ -72,6 +72,7 @@ $config->action->objectNameFields['prompt'] = 'name'; $config->action->objectNameFields['miniprogram'] = 'name'; $config->action->objectNameFields['holiday'] = 'name'; $config->action->objectNameFields['system'] = 'name'; +$config->action->objectNameFields['deliverable'] = 'name'; $config->action->commonImgSize = 870; diff --git a/module/action/lang/de.php b/module/action/lang/de.php index 62320eca61..fd36ce0934 100644 --- a/module/action/lang/de.php +++ b/module/action/lang/de.php @@ -192,6 +192,7 @@ $lang->action->objectTypes['board'] = 'Board'; $lang->action->objectTypes['boardspace'] = 'Board Space'; $lang->action->objectTypes['productline'] = 'Product Line'; $lang->action->objectTypes['system'] = $lang->product->system; +$lang->action->objectTypes['deliverable'] = 'Deliverable'; /* Used to describe operation history. */ $lang->action->desc = new stdclass(); @@ -944,6 +945,7 @@ $lang->action->label->instance = 'Application|instance|view|id=%s'; $lang->action->label->prompt = 'Prompt|ai|promptview|id=%s'; $lang->action->label->miniprogram = 'Mini Program|aiapp|browseminiprogram|id=%s'; $lang->action->label->holiday = 'Holiday|holiday|browse|'; +$lang->action->label->deliverable = 'Deliverable|deliverable|view|id=%s'; /* Object type. */ $lang->action->search = new stdclass(); diff --git a/module/action/lang/en.php b/module/action/lang/en.php index fa05b5f3d2..e4bfad9581 100755 --- a/module/action/lang/en.php +++ b/module/action/lang/en.php @@ -192,6 +192,7 @@ $lang->action->objectTypes['board'] = 'Board'; $lang->action->objectTypes['boardspace'] = 'Board Space'; $lang->action->objectTypes['productline'] = 'Product Line'; $lang->action->objectTypes['system'] = $lang->product->system; +$lang->action->objectTypes['deliverable'] = 'Deliverable'; /* Used to describe operation history. */ $lang->action->desc = new stdclass(); @@ -944,6 +945,7 @@ $lang->action->label->instance = 'Application|instance|view|id=%s'; $lang->action->label->prompt = 'Prompt|ai|promptview|id=%s'; $lang->action->label->miniprogram = 'Mini Program|aiapp|browseminiprogram|id=%s'; $lang->action->label->holiday = 'Holiday|holiday|browse|'; +$lang->action->label->deliverable = 'Deliverable|deliverable|view|id=%s'; /* Object type. */ $lang->action->search = new stdclass(); diff --git a/module/action/lang/fr.php b/module/action/lang/fr.php index d46e8c8724..db0ee0ed12 100644 --- a/module/action/lang/fr.php +++ b/module/action/lang/fr.php @@ -192,6 +192,7 @@ $lang->action->objectTypes['board'] = 'Board'; $lang->action->objectTypes['boardspace'] = 'Board Space'; $lang->action->objectTypes['productline'] = 'Product Line'; $lang->action->objectTypes['system'] = $lang->product->system; +$lang->action->objectTypes['deliverable'] = 'Deliverable'; /* Used to describe operation history. */ $lang->action->desc = new stdclass(); @@ -944,6 +945,7 @@ $lang->action->label->instance = 'Application|instance|view|id=%s'; $lang->action->label->prompt = 'Prompt|ai|promptview|id=%s'; $lang->action->label->miniprogram = 'Mini Program|aiapp|browseminiprogram|id=%s'; $lang->action->label->holiday = 'Holiday|holiday|browse|'; +$lang->action->label->deliverable = 'Deliverable|deliverable|view|id=%s'; /* Object type. */ $lang->action->search = new stdclass(); diff --git a/module/action/lang/zh-cn.php b/module/action/lang/zh-cn.php index bd2ec0a289..9e6f2a22e6 100755 --- a/module/action/lang/zh-cn.php +++ b/module/action/lang/zh-cn.php @@ -192,6 +192,7 @@ $lang->action->objectTypes['board'] = '白板'; $lang->action->objectTypes['boardspace'] = '白板空间'; $lang->action->objectTypes['productline'] = '产品线'; $lang->action->objectTypes['system'] = $lang->product->system; +$lang->action->objectTypes['deliverable'] = '交付物'; /* 用来描述操作历史记录。*/ $lang->action->desc = new stdclass(); @@ -944,6 +945,7 @@ $lang->action->label->instance = '服务|instance|view|id=%s'; $lang->action->label->prompt = '提词|ai|promptview|id=%s'; $lang->action->label->miniprogram = '小程序|aiapp|browseminiprogram|id=%s'; $lang->action->label->holiday = '节假日|holiday|browse|'; +$lang->action->label->deliverable = '交付物|deliverable|view|id=%s'; /* Object type. */ $lang->action->search = new stdclass(); diff --git a/module/action/model.php b/module/action/model.php index 006aa41bbb..525b3a4f18 100755 --- a/module/action/model.php +++ b/module/action/model.php @@ -940,6 +940,12 @@ class actionModel extends model foreach($actions as $action) { $item = new stdClass(); + if(strlen(trim(($action->comment))) !== 0) + { + $item->comment = $this->formatActionComment($action->comment); + $currentUserCanEdit = $action->id == $endAction->id && $action->actor == $account && $action->action == 'commented'; + $item->commentEditable = $commentEditable && common::hasPriv('action', 'editComment') && $currentUserCanEdit; + } if($action->action === 'assigned' || $action->action === 'toaudit') { @@ -951,7 +957,7 @@ class actionModel extends model $action->actor = zget($users, $action->actor); if(str_contains($action->actor, ':')) $action->actor = substr($action->actor, strpos($action->actor, ':') + 1); - if(!empty($action->history)) $item->historyChanges = $this->renderChanges($action->objectType, $action->history); + if(!empty($action->history)) $item->historyChanges = $this->renderChanges($action->objectType, $action->objectID, $action->history); $item->id = $action->id; $item->action = $action->action; @@ -1452,12 +1458,13 @@ class actionModel extends model * Render histories of every action. * * @param string $objectType + * @param int $objectID * @param array $histories * @param bool $canChangeTag * @access public * @return string */ - public function renderChanges(string $objectType, array $histories, bool $canChangeTag = true): string + public function renderChanges(string $objectType, int $objectID, array $histories, bool $canChangeTag = true): string { if(empty($histories)) return ''; @@ -1509,7 +1516,14 @@ class actionModel extends model } else { - $content .= sprintf($this->lang->action->desc->diff1, $history->fieldLabel, $history->old, $history->new); + if($history->field == 'deliverable' && ($objectType == 'project' || $objectType == 'execution')) + { + $content .= $this->processDeliverableJson($objectType, $objectID, $history); + } + else + { + $content .= sprintf($this->lang->action->desc->diff1, $history->fieldLabel, $history->old, $history->new); + } } } return $content; @@ -1520,14 +1534,15 @@ class actionModel extends model * Print histories of every action. * * @param string $objectType + * @param int $objectID * @param array $histories * @param bool $canChangeTag * @access public * @return void */ - public function printChanges(string $objectType, array $histories, bool $canChangeTag = true): void + public function printChanges(string $objectType, int $objectID, array $histories, bool $canChangeTag = true): void { - $content = $this->renderChanges($objectType, $histories, $canChangeTag); + $content = $this->renderChanges($objectType, $objectID, $histories, $canChangeTag); if(is_string($content)) echo $content; } @@ -2324,7 +2339,18 @@ class actionModel extends model if($action->objectType == 'task') { $task = $this->loadModel('task')->fetchByID((int)$action->objectID); - $this->loadModel('task')->updateParent($task, false); + if($task->parent > 0) + { + $parentConsumed = $this->dao->select('consumed')->from(TABLE_TASK)->where('id')->eq($task->parent)->fetch('consumed'); + if($parentConsumed) + { + $this->dao->update(TABLE_TASK)->set('parent')->eq('0')->set('path')->eq(",{$task->id},")->where('id')->eq($task->id)->exec(); + } + else + { + $this->loadModel('task')->updateParent($task, false); + } + } } } diff --git a/module/admin/config.php b/module/admin/config.php index 48b6d8c167..f205582b85 100755 --- a/module/admin/config.php +++ b/module/admin/config.php @@ -8,7 +8,7 @@ if(!isset($config->safe->weak)) $config->safe->weak = '123456,password,12345,123 $config->admin->menuGroup['system'] = array('custom|mode', 'backup', 'cron', 'action|trash', 'admin|xuanxuan', 'setting|xuanxuan', 'admin|license', 'admin|checkweak', 'admin|resetpwdsetting', 'admin|safe', 'cache|setting', 'custom|timezone', 'search|buildindex', 'admin|tableengine', 'ldap', 'custom|libreoffice', 'conference', 'watermark', 'client', 'system|browsebackup', 'system|restorebackup'); $config->admin->menuGroup['company'] = array('dept', 'company', 'user', 'group', 'tutorial'); $config->admin->menuGroup['switch'] = array('admin|setmodule'); -$config->admin->menuGroup['model'] = array('auditcl', 'stage', 'design', 'cmcl', 'reviewcl', 'custom|required', 'custom|set', 'custom|flow', 'custom|code', 'custom|percent','custom|estimate', 'custom|hours', 'subject', 'process', 'activity', 'zoutput', 'classify', 'holiday', 'reviewsetting', 'custom|project'); +$config->admin->menuGroup['model'] = array('auditcl', 'stage', 'deliverable', 'design', 'cmcl', 'reviewcl', 'custom|required', 'custom|set', 'custom|flow', 'custom|code', 'custom|percent','custom|estimate', 'custom|hours', 'subject', 'process', 'activity', 'zoutput', 'classify', 'holiday', 'reviewsetting', 'custom|project'); $config->admin->menuGroup['feature'] = array('custom|set', 'custom|product', 'custom|execution', 'custom|required', 'custom|kanban', 'measurement', 'meetingroom', 'custom|browsestoryconcept', 'custom|kanban', 'sqlbuilder', 'report', 'custom|limittaskdate', 'measurement'); $config->admin->menuGroup['template'] = array('custom|set', 'baseline'); $config->admin->menuGroup['message'] = array('mail', 'webhook', 'sms', 'message'); diff --git a/module/admin/lang/de.php b/module/admin/lang/de.php index f46edad4ef..11bc8a98f8 100755 --- a/module/admin/lang/de.php +++ b/module/admin/lang/de.php @@ -118,6 +118,7 @@ $lang->admin->setModule->opportunitylib = 'Opportunity Lib'; $lang->admin->setModule->practicelib = 'Practice Lib'; $lang->admin->setModule->componentlib = 'Component Lib'; $lang->admin->setModule->devops = 'DevOps'; +$lang->admin->setModule->deliverable = 'Deliverable'; $lang->admin->setModule->kanban = 'Kanban'; $lang->admin->setModule->OA = 'OA'; $lang->admin->setModule->deploy = 'Deploy'; diff --git a/module/admin/lang/en.php b/module/admin/lang/en.php index ca0b92b227..aec0983c5b 100755 --- a/module/admin/lang/en.php +++ b/module/admin/lang/en.php @@ -118,6 +118,7 @@ $lang->admin->setModule->opportunitylib = 'Opportunity Lib'; $lang->admin->setModule->practicelib = 'Practice Lib'; $lang->admin->setModule->componentlib = 'Component Lib'; $lang->admin->setModule->devops = 'DevOps'; +$lang->admin->setModule->deliverable = 'Deliverable'; $lang->admin->setModule->kanban = 'Kanban'; $lang->admin->setModule->OA = 'OA'; $lang->admin->setModule->deploy = 'Deploy'; diff --git a/module/admin/lang/fr.php b/module/admin/lang/fr.php index 1d5b91d323..38b0490e3a 100755 --- a/module/admin/lang/fr.php +++ b/module/admin/lang/fr.php @@ -118,6 +118,7 @@ $lang->admin->setModule->opportunitylib = 'Opportunity Lib'; $lang->admin->setModule->practicelib = 'Practice Lib'; $lang->admin->setModule->componentlib = 'Component Lib'; $lang->admin->setModule->devops = 'DevOps'; +$lang->admin->setModule->deliverable = 'Deliverable'; $lang->admin->setModule->kanban = 'Kanban'; $lang->admin->setModule->OA = 'OA'; $lang->admin->setModule->deploy = 'Deploy'; diff --git a/module/admin/lang/menu.php b/module/admin/lang/menu.php index cef8ec25a5..8acf9d1353 100644 --- a/module/admin/lang/menu.php +++ b/module/admin/lang/menu.php @@ -74,7 +74,7 @@ $lang->admin->menuList->company['menuOrder']['5'] = 'dept'; $lang->admin->menuList->company['menuOrder']['10'] = 'browseUser'; $lang->admin->menuList->company['menuOrder']['15'] = 'group'; -$lang->admin->menuList->model['subMenu']['common'] = array('link' => "{$lang->globalSetting}|custom|required|module=project", 'subModule' => 'custom,subject,holiday,stage', 'exclude' => 'stage-browse,stage-plusbrowse,stage-create,stage-edit,stage-batchcreate'); +$lang->admin->menuList->model['subMenu']['common'] = array('link' => "{$lang->globalSetting}|custom|required|module=project", 'subModule' => 'custom,subject,holiday,stage,deliverable', 'exclude' => 'stage-browse,stage-plusbrowse,stage-create,stage-edit,stage-batchcreate'); $lang->admin->menuList->model['subMenu']['scrum'] = array('link' => "{$lang->scrumModel}|auditcl|scrumbrowse|", 'subModule' => 'auditcl'); $lang->admin->menuList->model['subMenu']['waterfall'] = array('link' => "{$lang->waterfallModel}|stage|browse|", 'subModule' => 'stage', 'exclude' => 'stage-settype,stage-plusbrowse'); $lang->admin->menuList->model['subMenu']['agileplus'] = array('link' => "{$lang->agilePlusModel}|auditcl|agileplusbrowse|", 'subModule' => 'auditcl'); @@ -86,13 +86,14 @@ $lang->admin->menuList->model['menuOrder']['15'] = 'waterfall'; $lang->admin->menuList->model['menuOrder']['20'] = 'agileplus'; $lang->admin->menuList->model['menuOrder']['25'] = 'waterfallplus'; -$lang->admin->menuList->model['tabMenu']['common']['project'] = array('link' => "{$lang->project->common}|custom|required|module=project", 'alias' => 'set,project', 'exclude' => 'custom-required', 'links' => array('custom|set|module=project&field=unitList')); -if(helper::hasFeature('waterfall') or helper::hasFeature('waterfallplus')) $lang->admin->menuList->model['tabMenu']['common']['stage'] = array('link' => "{$lang->stage->type}|stage|settype|", 'subModule' => 'stage'); -$lang->admin->menuList->model['tabMenu']['common']['build'] = array('link' => "{$lang->build->common}|custom|required|module=build", 'alias' => 'set', 'exclude' => 'custom'); -$lang->admin->menuList->model['tabMenu']['common']['flow'] = array('link' => "{$lang->custom->flow}|custom|flow|", 'divider' => true); +$lang->admin->menuList->model['tabMenu']['common']['project'] = array('link' => "{$lang->project->common}|custom|required|module=project", 'alias' => 'set,project', 'exclude' => 'custom-required', 'links' => array('custom|set|module=project&field=unitList')); +if(helper::hasFeature('waterfall') || helper::hasFeature('waterfallplus')) $lang->admin->menuList->model['tabMenu']['common']['stage'] = array('link' => "{$lang->stage->type}|stage|settype|", 'subModule' => 'stage'); +if(helper::hasFeature('deliverable') && ($config->edition == 'max' || $config->edition == 'ipd')) $lang->admin->menuList->model['tabMenu']['common']['deliverable'] = array('link' => "{$lang->deliverable->common}|deliverable|browse|", 'subModule' => 'deliverable'); +$lang->admin->menuList->model['tabMenu']['common']['build'] = array('link' => "{$lang->build->common}|custom|required|module=build", 'alias' => 'set', 'exclude' => 'custom'); +$lang->admin->menuList->model['tabMenu']['common']['flow'] = array('link' => "{$lang->custom->flow}|custom|flow|", 'divider' => true); -$lang->admin->menuList->model['tabMenu']['common']['percent'] = array('link' => "{$lang->stage->percent}|custom|percent|"); -$lang->admin->menuList->model['tabMenu']['common']['hours'] = array('link' => "{$lang->workingHour}|custom|hours|", 'subModule' => 'holiday', 'links' => array('holiday|browse|', 'custom|hours|')); +$lang->admin->menuList->model['tabMenu']['common']['percent'] = array('link' => "{$lang->stage->percent}|custom|percent|"); +$lang->admin->menuList->model['tabMenu']['common']['hours'] = array('link' => "{$lang->workingHour}|custom|hours|", 'subModule' => 'holiday', 'links' => array('holiday|browse|', 'custom|hours|')); if(helper::hasFeature('waterfall')) $lang->admin->menuList->model['tabMenu']['waterfall']['stage'] = array('link' => "{$lang->stage->list}|stage|browse|", 'subModule' => 'stage', 'exclude' => 'stage-plusbrowse'); if(helper::hasFeature('waterfallplus')) $lang->admin->menuList->model['tabMenu']['waterfallplus']['stage'] = array('link' => "{$lang->stage->list}|stage|plusbrowse|", 'subModule' => 'stage', 'exclude' => 'stage-browse'); $lang->admin->menuList->model['tabMenu']['menuOrder']['common']['5'] = 'project'; @@ -103,6 +104,10 @@ $lang->admin->menuList->model['tabMenu']['menuOrder']['common']['40'] = 'p $lang->admin->menuList->model['tabMenu']['menuOrder']['common']['45'] = 'hours'; if(helper::hasFeature('waterfall')) $lang->admin->menuList->model['tabMenu']['menuOrder']['waterfall']['5'] = 'stage'; if(helper::hasFeature('waterfallplus')) $lang->admin->menuList->model['tabMenu']['menuOrder']['waterfallplus']['5'] = 'stage'; +if($config->edition == 'max' or $config->edition == 'ipd') +{ + $lang->admin->menuList->model['tabMenu']['menuOrder']['common']['15'] = 'deliverable'; +} $lang->admin->menuList->feature['subMenu']['my'] = array('link' => "{$lang->my->common}|custom|set|module=todo&field=priList", 'exclude' => 'set,required'); $lang->admin->menuList->feature['subMenu']['product'] = array('link' => "{$lang->productCommon}|custom|required|module=product", 'exclude' => 'set,required', 'alias' => 'browsestoryconcept,product'); diff --git a/module/admin/lang/zh-cn.php b/module/admin/lang/zh-cn.php index 2be5c58512..18dbf40abe 100755 --- a/module/admin/lang/zh-cn.php +++ b/module/admin/lang/zh-cn.php @@ -118,6 +118,7 @@ $lang->admin->setModule->opportunitylib = '机会库'; $lang->admin->setModule->practicelib = '最佳实践库'; $lang->admin->setModule->componentlib = '组件库'; $lang->admin->setModule->devops = 'DevOps'; +$lang->admin->setModule->deliverable = '交付物'; $lang->admin->setModule->kanban = '通用看板'; $lang->admin->setModule->OA = '办公'; $lang->admin->setModule->deploy = '运维'; @@ -170,7 +171,7 @@ $lang->admin->menuSetting['user']['name'] = '人员管理'; $lang->admin->menuSetting['user']['desc'] = '维护部门、添加人员、分组配置权限。'; $lang->admin->menuSetting['switch']['name'] = '功能开关'; $lang->admin->menuSetting['switch']['desc'] = '打开、关闭系统部分功能。'; -$lang->admin->menuSetting['model']['name'] = '模型配置'; +$lang->admin->menuSetting['model']['name'] = '项目模型配置'; $lang->admin->menuSetting['model']['desc'] = '不同项目管理模型和项目通用要素配置。'; $lang->admin->menuSetting['feature']['name'] = '功能配置'; $lang->admin->menuSetting['feature']['desc'] = '按照功能菜单进行系统的要素配置。'; diff --git a/module/ai/js/modeledit.ui.js b/module/ai/js/modeledit.ui.js index 4679407918..6ccfddedfb 100644 --- a/module/ai/js/modeledit.ui.js +++ b/module/ai/js/modeledit.ui.js @@ -6,7 +6,7 @@ window.testConnection = () => { type: 'POST', url: $.createLink('ai', 'modelTestConnection'), - data: $('#model-form').find('form').serialize(), + data: $('.form').serialize(), dataType: 'json', success: data => { @@ -68,8 +68,8 @@ $(() => $.ajax( { type: 'POST', - url: $.createLink('ai', 'modelcreate'), - data: $('#model-form').serialize(), + url: $.createLink('ai', 'modeledit', "id=" + modelData.id), + data: $('.form').serialize(), dataType: 'json', success: data => { diff --git a/module/api/model.php b/module/api/model.php index 4326b66cd9..0001712c58 100644 --- a/module/api/model.php +++ b/module/api/model.php @@ -326,7 +326,7 @@ class apiModel extends model /* 如果要根据版本号查询,那主要查询的是spec表,否则查询api表即可。 */ if($version) { - $fields = 'spec.*,api.id,api.product,api.lib,api.version,doc.name as libName,module.name as moduleName,api.editedBy,api.editedDate'; + $fields = 'spec.*,api.id,api.product,api.lib,doc.name as libName,module.name as moduleName,api.editedBy,api.editedDate'; } else { diff --git a/module/api/ui/view.html.php b/module/api/ui/view.html.php index 929eb5d850..3720a7cd2a 100644 --- a/module/api/ui/view.html.php +++ b/module/api/ui/view.html.php @@ -139,6 +139,7 @@ $apiData = (array)$api; foreach($unsetProps as $prop) unset($apiData[$prop]); $apiData['api'] = true; $apiData['title'] = "$api->method $api->path $api->title"; +$apiData['desc'] = htmlspecialchars_decode($apiData['desc']); div ( @@ -156,7 +157,7 @@ div h2(setClass('flex-none min-w-0 max-w-full'), $api->title), (isset($api->deleted) && $api->deleted) ? span(setClass('label danger flex-none'), $lang->deleted) : null ), - div(setClass('desc'), html($api->desc)), + div(setClass('desc'), html(htmlspecialchars_decode($api->desc))), $apiHeader, $apiQuery, $apiParams, diff --git a/module/bug/config.php b/module/bug/config.php index f8caed6827..034f396f3b 100755 --- a/module/bug/config.php +++ b/module/bug/config.php @@ -34,14 +34,14 @@ $config->bug->list->allFields = 'id, module, execution, story, task, $config->bug->list->defaultFields = 'id,title,severity,pri,openedBy,assignedTo,resolvedBy,resolution'; $config->bug->list->customCreateFields = 'execution,noticefeedbackBy,story,task,pri,severity,os,browser,deadline,mailto,keywords'; $config->bug->list->customBatchEditFields = 'type,severity,pri,productplan,assignedTo,deadline,resolvedBy,resolution,os,browser,keywords'; -$config->bug->list->customBatchCreateFields = 'project,execution,steps,type,pri,deadline,severity,os,browser,keywords'; +$config->bug->list->customBatchCreateFields = 'project,execution,plan,steps,type,pri,deadline,severity,os,browser,keywords'; $config->bug->custom = new stdclass(); $config->bug->custom->createFields = $config->bug->list->customCreateFields; $config->bug->custom->batchCreateFields = 'project,execution,deadline,steps,type,pri,severity,os,browser,%s'; $config->bug->custom->batchEditFields = 'type,severity,pri,assignedTo,deadline,status,resolvedBy,resolution'; -$config->bug->exportFields = 'id, product, branch, module, project, execution, story, task, +$config->bug->exportFields = 'id, product, branch, module, project, execution, plan, story, task, title, keywords, severity, pri, type, os, browser, steps, status, deadline, activatedCount, confirmed, mailto, openedBy, openedDate, openedBuild, diff --git a/module/bug/config/form.php b/module/bug/config/form.php index 9736e3f52d..12057be640 100644 --- a/module/bug/config/form.php +++ b/module/bug/config/form.php @@ -10,6 +10,7 @@ $config->bug->form->create['openedBuild'] = array('required' => true, 'type' => $config->bug->form->create['product'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->bug->form->create['branch'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->bug->form->create['module'] = array('required' => false, 'type' => 'int', 'default' => 0); +$config->bug->form->create['plan'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->bug->form->create['project'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->bug->form->create['execution'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->bug->form->create['assignedTo'] = array('required' => false, 'type' => 'string', 'default' => ''); @@ -159,6 +160,7 @@ $config->bug->form->batchCreate['story'] = array('required' => false, 'typ $config->bug->form->batchCreate['branch'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->bug->form->batchCreate['laneID'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->bug->form->batchCreate['openedBuild'] = array('required' => true, 'type' => 'array', 'default' => '', 'filter' => 'join'); +$config->bug->form->batchCreate['plan'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->bug->form->batchCreate['title'] = array('required' => true, 'type' => 'string', 'default' => '', 'base' => true); $config->bug->form->batchCreate['deadline'] = array('required' => false, 'type' => 'date', 'default' => null); $config->bug->form->batchCreate['steps'] = array('required' => false, 'type' => 'string', 'default' => '', 'control' => 'editor'); diff --git a/module/bug/config/table.php b/module/bug/config/table.php index c6116e204b..856b198bd4 100644 --- a/module/bug/config/table.php +++ b/module/bug/config/table.php @@ -70,11 +70,12 @@ $config->bug->dtable->fieldList['execution']['group'] = 3; $config->bug->dtable->fieldList['execution']['dataSource'] = array('module' => 'execution', 'method' =>'getPairs', 'params' => ['projectID' => 0]); $config->bug->dtable->fieldList['execution']['sortType'] = true; -$config->bug->dtable->fieldList['plan']['title'] = $lang->bug->plan; -$config->bug->dtable->fieldList['plan']['width'] = 120; -$config->bug->dtable->fieldList['plan']['group'] = 3; -$config->bug->dtable->fieldList['plan']['sortType'] = true; -$config->bug->dtable->fieldList['plan']['hint'] = true; +$config->bug->dtable->fieldList['plan']['title'] = $lang->bug->plan; +$config->bug->dtable->fieldList['plan']['width'] = 120; +$config->bug->dtable->fieldList['plan']['group'] = 3; +$config->bug->dtable->fieldList['plan']['sortType'] = true; +$config->bug->dtable->fieldList['plan']['hint'] = true; +$config->bug->dtable->fieldList['plan']['dataSource'] = array('module' => 'productplan', 'method' =>'getPairs', 'params' => ['productIdList' => '$productIdList', 'branch' => '$branch']); $config->bug->dtable->fieldList['openedBuild']['title'] = $lang->bug->openedBuild; $config->bug->dtable->fieldList['openedBuild']['type'] = 'text'; diff --git a/module/bug/control.php b/module/bug/control.php index ec0101fa2d..b1b4fb23bf 100755 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -251,8 +251,6 @@ class bug extends control $formData = form::data($this->config->bug->form->create); $bug = $this->bugZen->prepareCreateExtras($formData); - $this->bugZen->checkExistBug($bug); - $bugID = $this->bug->create($bug, $from); if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError())); @@ -648,7 +646,17 @@ class bug extends control { /* 设置bug导出的参数。 */ /* Set bug export params. */ - $this->session->set('bugTransferParams', array('productID' => $productID, 'executionID' => $executionID, 'branch' => 'all')); + if($executionID) + { + $productIdList = $this->loadModel('product')->getProductPairsByProject($executionID); + $productIdList = array_keys($productIdList); + } + else + { + $productIdList = array($productID); + } + + $this->session->set('bugTransferParams', array('productID' => $productID, 'executionID' => $executionID, 'branch' => 'all', 'productIdList' => $productIdList)); /* 设置导出数据源。 */ /* Set export data source. */ @@ -797,7 +805,7 @@ class bug extends control if(!empty($_POST)) { $bugs = $this->bugZen->buildBugsForBatchCreate($productID, $branch, $bugImagesFile); - $bugs = $this->bugZen->checkBugsForBatchCreate($bugs, $productID); + $bugs = $this->bugZen->checkBugsForBatchCreate($bugs); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); $message = ''; diff --git a/module/bug/model.php b/module/bug/model.php index b2fef73673..62fab6cb23 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -771,7 +771,7 @@ class bugModel extends model $this->config->bug->search['queryID'] = $queryID; $this->config->bug->search['params']['project']['values'] = $projectParams; $this->config->bug->search['params']['product']['values'] = $productParams; - $this->config->bug->search['params']['plan']['values'] = $this->loadModel('productplan')->getPairs($productID); + $this->config->bug->search['params']['plan']['values'] = $this->loadModel('productplan')->getPairs($productID, '', '', true); $this->config->bug->search['params']['module']['values'] = $modules; $this->config->bug->search['params']['execution']['values'] = $this->loadModel('product')->getExecutionPairsByProduct($productID, '0', (int)$projectID); $this->config->bug->search['params']['severity']['values'] = array(0 => '') + $this->lang->bug->severityList; //Fix bug #939. diff --git a/module/bug/ui/batchcreate.html.php b/module/bug/ui/batchcreate.html.php index 1906819900..b8de0005af 100644 --- a/module/bug/ui/batchcreate.html.php +++ b/module/bug/ui/batchcreate.html.php @@ -12,6 +12,7 @@ namespace zin; $defaultBug = array('module' => $moduleID, 'project' => $projectID, 'execution' => $executionID, 'openedBuild' => 'trunk', 'pri' => 3, 'severity' => 3); if($product->type != 'normal') $defaultBug['branch'] = $branch; +if($product->shadow) unset($customFields['plan']); if(isset($executionType) && $executionType == 'kanban') { $defaultBug['region'] = $regionID; @@ -64,6 +65,9 @@ $items[] = array /* Field of openedBuild. */ $items[] = array('name' => 'openedBuild', 'label' => $lang->bug->openedBuild, 'control' => 'picker', 'items' => $builds, 'value' => 'trunk', 'multiple' => true, 'width' => '200px', 'required' => true, 'ditto' => true); +/* Field of plan. */ +if(!$product->shadow) $items[] = array('name' => 'plan', 'label' => $lang->bug->plan, 'control' => 'picker', 'items' => $plans, 'value' => '', 'width' => '200px', 'required' => isset($requiredFields['plan']), 'ditto' => true); + /* Field of title. */ $items[] = array( 'name' => 'title', 'label' => $lang->bug->title, 'width' => '240px', 'required' => true, 'control' => 'colorInput'); diff --git a/module/bug/ui/create.field.php b/module/bug/ui/create.field.php index 4e2cc0f7e1..426cd10a0f 100644 --- a/module/bug/ui/create.field.php +++ b/module/bug/ui/create.field.php @@ -27,6 +27,13 @@ $fields->field('execution') ->className($isShadowProduct && $isOriginalProduct ? 'full:w-1/2' : 'full:w-1/4') ->foldable(!$isShadowProduct); +$fields->field('plan') + ->label($lang->bug->plan) + ->className('w-1/2 full:w-1/2') + ->hidden($isShadowProduct) + ->items(data('plans')) + ->foldable(); + if(common::hasPriv('build', 'create')) { $fields->field('openedBuild') diff --git a/module/bug/ui/create.html.php b/module/bug/ui/create.html.php index 68150fa7a0..a67df19f44 100644 --- a/module/bug/ui/create.html.php +++ b/module/bug/ui/create.html.php @@ -24,7 +24,7 @@ $fields->autoLoad('branch', 'module,execution,project,story,task,assignedTo') ->autoLoad('allUsers', 'assignedTo') ->autoLoad('region', 'lane'); -if(!$product->shadow) $fields->fullModeOrders('module,project,execution'); +if(!$product->shadow) $fields->fullModeOrders('module,project,execution,plan'); jsVar('bug', $bug); jsVar('moduleID', $bug->moduleID); diff --git a/module/bug/zen.php b/module/bug/zen.php index 90c5a8afe4..b4b2a9f296 100644 --- a/module/bug/zen.php +++ b/module/bug/zen.php @@ -2,27 +2,6 @@ declare(strict_types=1); class bugZen extends bug { - /** - * 检查bug是否已经存在。 - * Check whether bug is exist. - * - * @param object $bug - * @access protected - * @return bool - */ - protected function checkExistBug(object $bug): bool - { - $result = $this->loadModel('common')->removeDuplicate('bug', $bug, "product={$bug->product}"); - - if($result && $result['stop']) - { - $message = sprintf($this->lang->duplicate, $this->lang->bug->common); - return $this->send(array('result' => 'success', 'message' => $message, 'load' => $this->createLink('bug', 'view', "bugID={$result['duplicate']}"))); - } - - return true; - } - /** * 检查用户是否拥有所属执行的权限。 * Check bug execution priv. @@ -141,25 +120,11 @@ class bugZen extends bug * Check the batch created bugs. * * @param array $bugs - * @param int $productID * @access protected * @return array */ - protected function checkBugsForBatchCreate(array $bugs, int $productID): array + protected function checkBugsForBatchCreate(array $bugs): array { - $this->loadModel('common'); - - /* Check whether the bugs meet the requirements, and if not, remove it. */ - foreach($bugs as $index => $bug) - { - $result = $this->common->removeDuplicate('bug', $bug, "product={$productID}"); - if(zget($result, 'stop', false) !== false) - { - unset($bugs[$index]); - continue; - } - } - /* Check required fields. */ foreach($bugs as $index => $bug) { @@ -414,6 +379,7 @@ class bugZen extends bug protected function getExportFields(int $executionID, object|bool $product): string { $exportFields = str_replace(' ', '', $this->config->bug->exportFields); + $isShadow = false; if(isset($product->type) and $product->type == 'normal') $exportFields = str_replace(',branch,', ',', ",{$exportFields},");; if(!$product) { @@ -422,9 +388,16 @@ class bugZen extends bug foreach($products as $product) { if($product->type != 'normal') $hasBranch = true; + if(!empty($product->shadow)) $isShadow = true; } if(!$hasBranch) $exportFields = str_replace(',branch,', ',', ",{$exportFields},"); } + else + { + $isShadow = $product->shadow; + } + + if($isShadow) $exportFields = str_replace(',plan,', ',', ",{$exportFields},"); if($this->app->tab == 'project' or $this->app->tab == 'execution') { $execution = $this->loadModel('execution')->getByID($executionID); @@ -1139,6 +1112,7 @@ class bugZen extends bug $this->view->branchID = $bug->branch != 'all' ? $bug->branch : '0'; $this->view->cases = $this->loadModel('testcase')->getPairsByProduct($this->session->product, array(0, $this->view->branchID)); $this->view->copyBugID = isset($bugID) ? $bugID : 0; + $this->view->plans = $this->loadModel('productplan')->getPairs($bug->productID, $bug->branch, 'noclosed', true); } /** @@ -1436,6 +1410,7 @@ class bugZen extends bug $this->view->branch = $branch; $this->view->branches = $branches; $this->view->moduleOptionMenu = $this->tree->getOptionMenu($product->id, 'bug', 0, $branch === 'all' ? 'all' : (string)$branch); + $this->view->plans = $this->loadModel('productplan')->getPairs($product->id, $branch, 'noclosed', true); } /** diff --git a/module/build/lang/de.php b/module/build/lang/de.php index 2a28219b1b..da915fb5f5 100644 --- a/module/build/lang/de.php +++ b/module/build/lang/de.php @@ -10,6 +10,7 @@ * @link https://www.zentao.net */ $lang->build->common = "Build"; +$lang->build->browse = "Build List"; $lang->build->create = "Build erstellen"; $lang->build->edit = "Bearbeiten"; $lang->build->linkStory = "{$lang->SRCommon} verknüpfen"; diff --git a/module/build/lang/en.php b/module/build/lang/en.php index 87cdd16721..7029c0d180 100644 --- a/module/build/lang/en.php +++ b/module/build/lang/en.php @@ -10,6 +10,7 @@ * @link https://www.zentao.net */ $lang->build->common = "Build"; +$lang->build->browse = "Build List"; $lang->build->create = "Create Build"; $lang->build->edit = "Edit Build"; $lang->build->linkStory = "Link {$lang->SRCommon}"; diff --git a/module/build/lang/fr.php b/module/build/lang/fr.php index 85d2daf8d1..da7ea5afec 100644 --- a/module/build/lang/fr.php +++ b/module/build/lang/fr.php @@ -10,6 +10,7 @@ * @link https://www.zentao.net */ $lang->build->common = "Build"; +$lang->build->browse = "Liste Build"; $lang->build->create = "Créer Build"; $lang->build->edit = "Editer Build"; $lang->build->linkStory = "Intégrer {$lang->SRCommon}"; diff --git a/module/build/lang/zh-cn.php b/module/build/lang/zh-cn.php index 3130868d54..5c980b8b51 100644 --- a/module/build/lang/zh-cn.php +++ b/module/build/lang/zh-cn.php @@ -10,6 +10,7 @@ * @link https://www.zentao.net */ $lang->build->common = "构建"; +$lang->build->browse = "构建列表"; $lang->build->create = "创建构建"; $lang->build->edit = "编辑构建"; $lang->build->linkStory = "关联{$lang->SRCommon}"; diff --git a/module/caselib/control.php b/module/caselib/control.php index 1887092097..6dfd931cf9 100644 --- a/module/caselib/control.php +++ b/module/caselib/control.php @@ -236,7 +236,7 @@ class caselib extends control $this->loadModel('testcase'); helper::setcookie('lastLibCaseModule', (int)$this->post->module, $this->config->cookieLife, $this->config->webRoot, '', $this->config->cookieSecure, false); - $case = form::data($this->config->testcase->form->create)->add('lib', $libID) + $case = form::data($this->config->testcase->form->create)->add('lib', $_POST['lib'] ? $this->post->lib : $libID) ->setIF(($this->config->testcase->needReview && strpos($this->config->testcase->forceNotReview, $this->app->user->account) === false) || (!empty($this->config->testcase->forceReview) && strpos($this->config->testcase->forceReview, $this->app->user->account) !== false), 'status', 'wait') ->get(); @@ -248,15 +248,13 @@ class caselib extends control } if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); - $result = $this->loadModel('common')->removeDuplicate('case', $case, "id!='$param'"); - if($result and $result['stop']) return $this->send(array('result' => 'fail', 'message' => sprintf($this->lang->duplicate, $this->lang->testcase->common), 'locate' => $this->createLink('testcase', 'view', "caseID={$result['duplicate']}"))); - $this->testcase->create($case); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); /* If link from no head then reload. */ if(isInModal()) return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'closeModal' => true)); - return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'load' => $this->createLink('caselib', 'browse', "libID={$libID}&browseType=byModule¶m={$_POST['module']}"))); + $params = $libID == $case->lib ? "libID={$libID}&browseType=byModule¶m={$_POST['module']}" : "libID={$libID}"; + return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'load' => $this->createLink('caselib', 'browse', $params))); } /* Set lib menu. */ $libraries = $this->caselib->getLibraries(); diff --git a/module/caselib/js/createcase.ui.js b/module/caselib/js/createcase.ui.js new file mode 100644 index 0000000000..12d79454c9 --- /dev/null +++ b/module/caselib/js/createcase.ui.js @@ -0,0 +1,19 @@ +/** + * 加载用例库的模块。 + * Load modules of the caselib. + */ +function loadModules(e) +{ + const libID = $(e.target).val(); + const moduleID = $('input[name=module]').val(); + const getModuleLink = $.createLink('tree', 'ajaxGetOptionMenu', 'rootID=' + libID + '&viewtype=caselib&branch=0&rootModuleID=0&returnType=items'); + $.getJSON(getModuleLink, function(modules) + { + if(modules) + { + const $modulePicker = $('input[name=module]').zui('picker'); + $modulePicker.render({items: modules}); + $modulePicker.$.setValue(moduleID); + } + }); +} diff --git a/module/caselib/ui/createcase.html.php b/module/caselib/ui/createcase.html.php index c24e9df807..9b6a38aff7 100644 --- a/module/caselib/ui/createcase.html.php +++ b/module/caselib/ui/createcase.html.php @@ -24,6 +24,7 @@ formPanel ( picker ( + on::change('loadModules'), set::name('lib'), set::items($libraries), set::required(true), diff --git a/module/caselib/zen.php b/module/caselib/zen.php index fd18ea20a2..277c9951f2 100644 --- a/module/caselib/zen.php +++ b/module/caselib/zen.php @@ -153,13 +153,6 @@ class caselibZen extends caselib $testcases = form::batchData($this->config->testcase->form->batchCreate)->get(); foreach($testcases as $i => $testcase) { - $result = $this->common->removeDuplicate('testcase', $testcase, "lib={$libID}"); - if(zget($result, 'stop', false) !== false) - { - unset($testcases[$i]); - continue; - } - $testcase->lib = $libID; $testcase->project = 0; $testcase->openedBy = $account; diff --git a/module/chart/lang/de.php b/module/chart/lang/de.php index 8efe093957..5a7c8b39e5 100644 --- a/module/chart/lang/de.php +++ b/module/chart/lang/de.php @@ -8,14 +8,16 @@ $lang->chart->acl = 'Access Control'; $lang->chart->aclList['open'] = 'Public (with chart view permissions and dimension permissions can access it)'; $lang->chart->aclList['private'] = 'Private (Only creators and whitelisted users with dimension permissions can access it)'; -$lang->chart->group = 'Group'; -$lang->chart->field = 'Related Field'; -$lang->chart->agg = 'Aggregate'; -$lang->chart->chooseField = 'Choose field'; -$lang->chart->aggType = 'Aggregate type'; -$lang->chart->other = 'Other'; -$lang->chart->unlimited = 'Unlimited'; -$lang->chart->colon = 'To'; +$lang->chart->group = 'Group'; +$lang->chart->field = 'Related Field'; +$lang->chart->agg = 'Aggregate'; +$lang->chart->chooseField = 'Choose field'; +$lang->chart->aggType = 'Aggregate type'; +$lang->chart->other = 'Other'; +$lang->chart->unlimited = 'Unlimited'; +$lang->chart->colon = 'To'; +$lang->chart->updateCharts = 'Update the chart'; +$lang->chart->updateCurrentChart = 'Update data in charts'; $lang->chart->fieldTypeList = array(); $lang->chart->fieldTypeList['input'] = 'Text'; diff --git a/module/chart/lang/en.php b/module/chart/lang/en.php index 8efe093957..5a7c8b39e5 100644 --- a/module/chart/lang/en.php +++ b/module/chart/lang/en.php @@ -8,14 +8,16 @@ $lang->chart->acl = 'Access Control'; $lang->chart->aclList['open'] = 'Public (with chart view permissions and dimension permissions can access it)'; $lang->chart->aclList['private'] = 'Private (Only creators and whitelisted users with dimension permissions can access it)'; -$lang->chart->group = 'Group'; -$lang->chart->field = 'Related Field'; -$lang->chart->agg = 'Aggregate'; -$lang->chart->chooseField = 'Choose field'; -$lang->chart->aggType = 'Aggregate type'; -$lang->chart->other = 'Other'; -$lang->chart->unlimited = 'Unlimited'; -$lang->chart->colon = 'To'; +$lang->chart->group = 'Group'; +$lang->chart->field = 'Related Field'; +$lang->chart->agg = 'Aggregate'; +$lang->chart->chooseField = 'Choose field'; +$lang->chart->aggType = 'Aggregate type'; +$lang->chart->other = 'Other'; +$lang->chart->unlimited = 'Unlimited'; +$lang->chart->colon = 'To'; +$lang->chart->updateCharts = 'Update the chart'; +$lang->chart->updateCurrentChart = 'Update data in charts'; $lang->chart->fieldTypeList = array(); $lang->chart->fieldTypeList['input'] = 'Text'; diff --git a/module/chart/lang/fr.php b/module/chart/lang/fr.php index 8efe093957..5a7c8b39e5 100644 --- a/module/chart/lang/fr.php +++ b/module/chart/lang/fr.php @@ -8,14 +8,16 @@ $lang->chart->acl = 'Access Control'; $lang->chart->aclList['open'] = 'Public (with chart view permissions and dimension permissions can access it)'; $lang->chart->aclList['private'] = 'Private (Only creators and whitelisted users with dimension permissions can access it)'; -$lang->chart->group = 'Group'; -$lang->chart->field = 'Related Field'; -$lang->chart->agg = 'Aggregate'; -$lang->chart->chooseField = 'Choose field'; -$lang->chart->aggType = 'Aggregate type'; -$lang->chart->other = 'Other'; -$lang->chart->unlimited = 'Unlimited'; -$lang->chart->colon = 'To'; +$lang->chart->group = 'Group'; +$lang->chart->field = 'Related Field'; +$lang->chart->agg = 'Aggregate'; +$lang->chart->chooseField = 'Choose field'; +$lang->chart->aggType = 'Aggregate type'; +$lang->chart->other = 'Other'; +$lang->chart->unlimited = 'Unlimited'; +$lang->chart->colon = 'To'; +$lang->chart->updateCharts = 'Update the chart'; +$lang->chart->updateCurrentChart = 'Update data in charts'; $lang->chart->fieldTypeList = array(); $lang->chart->fieldTypeList['input'] = 'Text'; diff --git a/module/chart/lang/zh-cn.php b/module/chart/lang/zh-cn.php index dfbfd209db..f40a3d10f1 100644 --- a/module/chart/lang/zh-cn.php +++ b/module/chart/lang/zh-cn.php @@ -8,14 +8,16 @@ $lang->chart->acl = '访问控制'; $lang->chart->aclList['open'] = '公开(有图表视图权限与所在维度的访问权限即可访问)'; $lang->chart->aclList['private'] = '私有(仅创建者和白名单用户可访问)'; -$lang->chart->group = '所属分组'; -$lang->chart->field = '关联字段'; -$lang->chart->agg = '汇总'; -$lang->chart->chooseField = '选择字段'; -$lang->chart->aggType = '统计方式'; -$lang->chart->other = '其他'; -$lang->chart->unlimited = '不限'; -$lang->chart->colon = '至'; +$lang->chart->group = '所属分组'; +$lang->chart->field = '关联字段'; +$lang->chart->agg = '汇总'; +$lang->chart->chooseField = '选择字段'; +$lang->chart->aggType = '统计方式'; +$lang->chart->other = '其他'; +$lang->chart->unlimited = '不限'; +$lang->chart->colon = '至'; +$lang->chart->updateCharts = '更新展示图表'; +$lang->chart->updateCurrentChart = '更新当前图表数据'; $lang->chart->fieldTypeList = array(); $lang->chart->fieldTypeList['input'] = '文本框'; diff --git a/module/chart/model.php b/module/chart/model.php index c896d71487..186fde7d66 100644 --- a/module/chart/model.php +++ b/module/chart/model.php @@ -678,6 +678,7 @@ class chartModel extends model $builtinCharts[] = array(10000, 10119); $builtinCharts[] = array(10201, 10220); $builtinCharts[] = array(20002, 20015); + $builtinCharts[] = array(30000, 30001); $found = false; // 标记ID是否在范围内 diff --git a/module/chart/ui/charts.html.php b/module/chart/ui/charts.html.php index 1aff2249c9..22a4ca93a8 100644 --- a/module/chart/ui/charts.html.php +++ b/module/chart/ui/charts.html.php @@ -57,6 +57,7 @@ $generateCharts = function() use($charts, $lang) ( setClass('btn primary'), setData(array('on' => 'click', 'call' => "loadChart('{$chartID}')")), + set::title($lang->chart->updateCurrentChart), $lang->chart->query ) ) : null, diff --git a/module/chart/ui/preview.html.php b/module/chart/ui/preview.html.php index 6403a3d793..bdac23bc75 100644 --- a/module/chart/ui/preview.html.php +++ b/module/chart/ui/preview.html.php @@ -77,7 +77,7 @@ sidebar $treeMenu ? div ( setClass('bg-canvas px-4 py-2 module-menu'), - btn($lang->chart->preview, setClass('primary'), on::click('previewCharts')) + btn($lang->chart->preview, setClass('primary'), set::hint($lang->chart->updateCharts), on::click('previewCharts')) ) : null, $config->edition == 'open' ? div ( diff --git a/module/common/lang/common.php b/module/common/lang/common.php index 01677fd34a..1c242060ad 100644 --- a/module/common/lang/common.php +++ b/module/common/lang/common.php @@ -105,8 +105,12 @@ $lang->ops = new stdclass(); $lang->domain = new stdclass(); $lang->service = new stdclass(); $lang->deployment = new stdclass(); +$lang->deliverable = new stdclass(); $lang->metric = new stdclass(); +$lang->projectDeliverable = new stdclass(); +$lang->executionDeliverable = new stdclass(); + $lang->ai = new stdclass(); $lang->aiapp = new stdclass(); diff --git a/module/common/lang/de.php b/module/common/lang/de.php index 72643a9eab..b54589a659 100644 --- a/module/common/lang/de.php +++ b/module/common/lang/de.php @@ -289,37 +289,40 @@ $lang->aiapp->common = 'AI'; $lang->product->system = 'Application'; $lang->configure->common = 'Configure'; -$lang->programstakeholder->common = 'Stakeholder'; -$lang->featureswitch->common = 'Features On/Off'; -$lang->importdata->common = 'Import data'; -$lang->systemsetting->common = 'System setting'; -$lang->staffmanage->common = 'User management'; -$lang->modelconfig->common = 'Pattern setting'; -$lang->featureconfig->common = 'Features config'; -$lang->doctemplate->common = 'Template Square'; -$lang->notifysetting->common = 'Notification'; -$lang->bidesign->common = 'BI design'; -$lang->personalsettings->common = 'Personal setting '; -$lang->projectsettings->common = 'Setting'; -$lang->dataaccess->common = 'Data permission'; -$lang->executiongantt->common = 'Gantt chart'; -$lang->executionkanban->common = 'Kanban'; -$lang->executionburn->common = 'Burndown chart'; -$lang->executioncfd->common = 'Cumulative Flow Diagram'; -$lang->executionstory->common = 'Story'; -$lang->executionqa->common = 'QA'; -$lang->executionsettings->common = 'Setting'; -$lang->generalcomment->common = 'Comment'; -$lang->generalping->common = 'Timeout prevention'; -$lang->generaltemplate->common = 'Template'; -$lang->generaleffort->common = 'General log'; -$lang->productsettings->common = 'Product setting'; -$lang->projectreview->common = 'Review'; -$lang->projecttrack->common = 'Matrix'; -$lang->projectqa->common = 'QA'; -$lang->holidayseason->common = 'Holiday'; -$lang->codereview->common = 'Review'; -$lang->repocode->common = 'Code'; +$lang->programstakeholder->common = 'Stakeholder'; +$lang->featureswitch->common = 'Features On/Off'; +$lang->importdata->common = 'Import data'; +$lang->systemsetting->common = 'System setting'; +$lang->staffmanage->common = 'User management'; +$lang->modelconfig->common = 'Pattern setting'; +$lang->featureconfig->common = 'Features config'; +$lang->doctemplate->common = 'Doc template'; +$lang->notifysetting->common = 'Notification'; +$lang->bidesign->common = 'BI design'; +$lang->personalsettings->common = 'Personal setting '; +$lang->projectsettings->common = 'Setting'; +$lang->dataaccess->common = 'Data permission'; +$lang->executiongantt->common = 'Gantt chart'; +$lang->executionkanban->common = 'Kanban'; +$lang->executionburn->common = 'Burndown chart'; +$lang->executioncfd->common = 'Cumulative Flow Diagram'; +$lang->executionstory->common = 'Story'; +$lang->executionqa->common = 'QA'; +$lang->executionsettings->common = 'Setting'; +$lang->generalcomment->common = 'Comment'; +$lang->generalping->common = 'Timeout prevention'; +$lang->generaltemplate->common = 'Template'; +$lang->generaleffort->common = 'General log'; +$lang->productsettings->common = 'Product setting'; +$lang->projectreview->common = 'Review'; +$lang->projecttrack->common = 'Matrix'; +$lang->projectqa->common = 'QA'; +$lang->holidayseason->common = 'Holiday'; +$lang->codereview->common = 'Review'; +$lang->repocode->common = 'Code'; +$lang->deliverable->common = 'Deliverable'; +$lang->projectDeliverable->common = 'Project Deliverable'; +$lang->executionDeliverable->common = 'Execution Deliverable'; $lang->personnel->common = 'Member'; $lang->personnel->invest = 'Investment'; diff --git a/module/common/lang/en.php b/module/common/lang/en.php index c756a89914..0d5c3b92af 100644 --- a/module/common/lang/en.php +++ b/module/common/lang/en.php @@ -289,37 +289,40 @@ $lang->aiapp->common = 'AI'; $lang->product->system = 'Application'; $lang->configure->common = 'Configure'; -$lang->programstakeholder->common = 'Stakeholder'; -$lang->featureswitch->common = 'Features On/Off'; -$lang->importdata->common = 'Import data'; -$lang->systemsetting->common = 'System setting'; -$lang->staffmanage->common = 'User management'; -$lang->modelconfig->common = 'Pattern setting'; -$lang->featureconfig->common = 'Features config'; -$lang->doctemplate->common = 'Template Square'; -$lang->notifysetting->common = 'Notification'; -$lang->bidesign->common = 'BI design'; -$lang->personalsettings->common = 'Personal setting '; -$lang->projectsettings->common = 'Setting'; -$lang->dataaccess->common = 'Data permission'; -$lang->executiongantt->common = 'Gantt chart'; -$lang->executionkanban->common = 'Kanban'; -$lang->executionburn->common = 'Burndown chart'; -$lang->executioncfd->common = 'Cumulative Flow Diagram'; -$lang->executionstory->common = 'Story'; -$lang->executionqa->common = 'QA'; -$lang->executionsettings->common = 'Setting'; -$lang->generalcomment->common = 'Comment'; -$lang->generalping->common = 'Timeout prevention'; -$lang->generaltemplate->common = 'Template'; -$lang->generaleffort->common = 'General log'; -$lang->productsettings->common = 'Product setting'; -$lang->projectreview->common = 'Review'; -$lang->projecttrack->common = 'Matrix'; -$lang->projectqa->common = 'QA'; -$lang->holidayseason->common = 'Holiday'; -$lang->codereview->common = 'Review'; -$lang->repocode->common = 'Code'; +$lang->programstakeholder->common = 'Stakeholder'; +$lang->featureswitch->common = 'Features On/Off'; +$lang->importdata->common = 'Import data'; +$lang->systemsetting->common = 'System setting'; +$lang->staffmanage->common = 'User management'; +$lang->modelconfig->common = 'Pattern setting'; +$lang->featureconfig->common = 'Features config'; +$lang->doctemplate->common = 'Doc template'; +$lang->notifysetting->common = 'Notification'; +$lang->bidesign->common = 'BI design'; +$lang->personalsettings->common = 'Personal setting '; +$lang->projectsettings->common = 'Setting'; +$lang->dataaccess->common = 'Data permission'; +$lang->executiongantt->common = 'Gantt chart'; +$lang->executionkanban->common = 'Kanban'; +$lang->executionburn->common = 'Burndown chart'; +$lang->executioncfd->common = 'Cumulative Flow Diagram'; +$lang->executionstory->common = 'Story'; +$lang->executionqa->common = 'QA'; +$lang->executionsettings->common = 'Setting'; +$lang->generalcomment->common = 'Comment'; +$lang->generalping->common = 'Timeout prevention'; +$lang->generaltemplate->common = 'Template'; +$lang->generaleffort->common = 'General log'; +$lang->productsettings->common = 'Product setting'; +$lang->projectreview->common = 'Review'; +$lang->projecttrack->common = 'Matrix'; +$lang->projectqa->common = 'QA'; +$lang->holidayseason->common = 'Holiday'; +$lang->codereview->common = 'Review'; +$lang->repocode->common = 'Code'; +$lang->deliverable->common = 'Deliverable'; +$lang->projectDeliverable->common = 'Project Deliverable'; +$lang->executionDeliverable->common = 'Execution Deliverable'; $lang->personnel->common = 'Member'; $lang->personnel->invest = 'Investment'; diff --git a/module/common/lang/fr.php b/module/common/lang/fr.php index c32cbd7d15..402f0f2618 100644 --- a/module/common/lang/fr.php +++ b/module/common/lang/fr.php @@ -289,37 +289,40 @@ $lang->aiapp->common = 'AI'; $lang->product->system = 'Application'; $lang->configure->common = 'Configure'; -$lang->programstakeholder->common = 'Stakeholder'; -$lang->featureswitch->common = 'Features On/Off'; -$lang->importdata->common = 'Import data'; -$lang->systemsetting->common = 'System setting'; -$lang->staffmanage->common = 'User management'; -$lang->modelconfig->common = 'Pattern setting'; -$lang->featureconfig->common = 'Features config'; -$lang->doctemplate->common = 'Template Square'; -$lang->notifysetting->common = 'Notification'; -$lang->bidesign->common = 'BI design'; -$lang->personalsettings->common = 'Personal setting '; -$lang->projectsettings->common = 'Setting'; -$lang->dataaccess->common = 'Data permission'; -$lang->executiongantt->common = 'Gantt chart'; -$lang->executionkanban->common = 'Kanban'; -$lang->executionburn->common = 'Burndown chart'; -$lang->executioncfd->common = 'Cumulative Flow Diagram'; -$lang->executionstory->common = 'Story'; -$lang->executionqa->common = 'QA'; -$lang->executionsettings->common = 'Setting'; -$lang->generalcomment->common = 'Comment'; -$lang->generalping->common = 'Timeout prevention'; -$lang->generaltemplate->common = 'Template'; -$lang->generaleffort->common = 'General log'; -$lang->productsettings->common = 'Product setting'; -$lang->projectreview->common = 'Review'; -$lang->projecttrack->common = 'Matrix'; -$lang->projectqa->common = 'QA'; -$lang->holidayseason->common = 'Holiday'; -$lang->codereview->common = 'Review'; -$lang->repocode->common = 'Code'; +$lang->programstakeholder->common = 'Stakeholder'; +$lang->featureswitch->common = 'Features On/Off'; +$lang->importdata->common = 'Import data'; +$lang->systemsetting->common = 'System setting'; +$lang->staffmanage->common = 'User management'; +$lang->modelconfig->common = 'Pattern setting'; +$lang->featureconfig->common = 'Features config'; +$lang->doctemplate->common = 'Doc template'; +$lang->notifysetting->common = 'Notification'; +$lang->bidesign->common = 'BI design'; +$lang->personalsettings->common = 'Personal setting '; +$lang->projectsettings->common = 'Setting'; +$lang->dataaccess->common = 'Data permission'; +$lang->executiongantt->common = 'Gantt chart'; +$lang->executionkanban->common = 'Kanban'; +$lang->executionburn->common = 'Burndown chart'; +$lang->executioncfd->common = 'Cumulative Flow Diagram'; +$lang->executionstory->common = 'Story'; +$lang->executionqa->common = 'QA'; +$lang->executionsettings->common = 'Setting'; +$lang->generalcomment->common = 'Comment'; +$lang->generalping->common = 'Timeout prevention'; +$lang->generaltemplate->common = 'Template'; +$lang->generaleffort->common = 'General log'; +$lang->productsettings->common = 'Product setting'; +$lang->projectreview->common = 'Review'; +$lang->projecttrack->common = 'Matrix'; +$lang->projectqa->common = 'QA'; +$lang->holidayseason->common = 'Holiday'; +$lang->codereview->common = 'Review'; +$lang->repocode->common = 'Code'; +$lang->deliverable->common = 'Deliverable'; +$lang->projectDeliverable->common = 'Project Deliverable'; +$lang->executionDeliverable->common = 'Execution Deliverable'; $lang->personnel->common = 'Member'; $lang->personnel->invest = 'Investment'; diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index 8d2217cec7..fd3161b489 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -240,7 +240,7 @@ if(helper::hasFeature('devops')) $lang->scrum->menu->devops = array('link' $lang->scrum->menu->build = array('link' => "{$lang->build->common}|projectbuild|browse|project=%s", 'subModule' => 'projectbuild'); $lang->scrum->menu->release = array('link' => "{$lang->release->common}|projectrelease|browse|project=%s", 'subModule' => 'projectrelease,system'); $lang->scrum->menu->dynamic = array('link' => "$lang->dynamic|project|dynamic|project=%s"); -$lang->scrum->menu->settings = array('link' => "$lang->settings|project|view|project=%s", 'subModule' => 'tree,stakeholder', 'alias' => 'edit,manageproducts,group,managemembers,manageview,managepriv,whitelist,addwhitelist,team', 'exclude' => 'tree-browsetask'); +$lang->scrum->menu->settings = array('link' => "$lang->settings|project|view|project=%s", 'subModule' => 'tree,stakeholder', 'alias' => 'edit,manageproducts,group,managemembers,manageview,managepriv,whitelist,addwhitelist,team,workflowgroup', 'exclude' => 'tree-browsetask'); $lang->scrum->dividerMenu = ',execution,programplan,doc,settings,'; @@ -783,6 +783,7 @@ $lang->navGroup->extension = 'admin'; $lang->navGroup->action = 'admin'; $lang->navGroup->convert = 'admin'; $lang->navGroup->stage = 'admin'; +$lang->navGroup->deliverable = 'admin'; $lang->navGroup->featureswitch = 'admin'; $lang->navGroup->importdata = 'admin'; $lang->navGroup->systemsetting = 'admin'; diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index d8fab1c109..aabd2cd8ed 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -289,37 +289,40 @@ $lang->aiapp->common = 'AI'; $lang->product->system = '应用'; $lang->configure->common = '配置'; -$lang->programstakeholder->common = '干系人'; -$lang->featureswitch->common = '功能开关'; -$lang->importdata->common = '数据导入'; -$lang->systemsetting->common = '系统设置'; -$lang->staffmanage->common = '人员管理'; -$lang->modelconfig->common = '模型配置'; -$lang->featureconfig->common = '功能配置'; -$lang->doctemplate->common = '模板广场'; -$lang->notifysetting->common = '通知设置'; -$lang->bidesign->common = 'BI设计'; -$lang->personalsettings->common = '个人设置'; -$lang->projectsettings->common = '设置'; -$lang->dataaccess->common = '数据权限'; -$lang->executiongantt->common = '甘特图'; -$lang->executionkanban->common = '看板'; -$lang->executionburn->common = '燃尽图'; -$lang->executioncfd->common = '累积流图'; -$lang->executionstory->common = '研发需求'; -$lang->executionqa->common = '测试'; -$lang->executionsettings->common = '设置'; -$lang->generalcomment->common = '备注'; -$lang->generalping->common = '防超时'; -$lang->generaltemplate->common = '模板'; -$lang->generaleffort->common = '通用日志'; -$lang->productsettings->common = '产品设置'; -$lang->projectreview->common = '评审'; -$lang->projecttrack->common = '矩阵'; -$lang->projectqa->common = '测试'; -$lang->holidayseason->common = '节假日'; -$lang->codereview->common = '问题'; -$lang->repocode->common = '代码'; +$lang->programstakeholder->common = '干系人'; +$lang->featureswitch->common = '功能开关'; +$lang->importdata->common = '数据导入'; +$lang->systemsetting->common = '系统设置'; +$lang->staffmanage->common = '人员管理'; +$lang->modelconfig->common = '项目模型配置'; +$lang->featureconfig->common = '功能配置'; +$lang->doctemplate->common = '文档模板'; +$lang->notifysetting->common = '通知设置'; +$lang->bidesign->common = 'BI设计'; +$lang->personalsettings->common = '个人设置'; +$lang->projectsettings->common = '设置'; +$lang->dataaccess->common = '数据权限'; +$lang->executiongantt->common = '甘特图'; +$lang->executionkanban->common = '看板'; +$lang->executionburn->common = '燃尽图'; +$lang->executioncfd->common = '累积流图'; +$lang->executionstory->common = '研发需求'; +$lang->executionqa->common = '测试'; +$lang->executionsettings->common = '设置'; +$lang->generalcomment->common = '备注'; +$lang->generalping->common = '防超时'; +$lang->generaltemplate->common = '模板'; +$lang->generaleffort->common = '通用日志'; +$lang->productsettings->common = '产品设置'; +$lang->projectreview->common = '评审'; +$lang->projecttrack->common = '矩阵'; +$lang->projectqa->common = '测试'; +$lang->holidayseason->common = '节假日'; +$lang->codereview->common = '问题'; +$lang->repocode->common = '代码'; +$lang->deliverable->common = '交付物'; +$lang->projectDeliverable->common = '项目交付物'; +$lang->executionDeliverable->common = '执行交付物'; $lang->personnel->common = '人员'; $lang->personnel->invest = '投入人员'; diff --git a/module/common/model.php b/module/common/model.php index f9044a9e65..36b83c3637 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -1059,50 +1059,6 @@ class commonModel extends model $this->session->set($objectType . 'BrowseList', array(), $this->app->tab); } - /** - * 批量创建时,移除名称重复的对象。 - * Remove duplicate for story, task, bug, case, doc. - * - * @param string $type e.g. story task bug case doc. - * @param array|object $data - * @param string $condition - * @access public - * @return array|false - */ - public function removeDuplicate(string $type, object|array $data, string $condition = ''): array|false - { - $table = zget($this->config->objectTables, $type, ''); - if(empty($table)) return array('stop' => false, 'data' => $data); - - $titleField = $type == 'task' ? 'name' : 'title'; - $date = date(DT_DATETIME1, time() - $this->config->duplicateTime); - $dateField = $type == 'doc' ? 'addedDate' : 'openedDate'; - $titles = zget($data, $titleField, array()); - $storyType = zget($data, 'type', ''); - - if(empty($titles)) return false; - $duplicate = $this->dao->select("id,$titleField")->from($table) - ->where('deleted')->eq(0) - ->andWhere($titleField)->in($titles) - ->andWhere($dateField)->ge($date)->fi() - ->beginIF($condition)->andWhere($condition)->fi() - ->beginIF($type == 'story')->andWhere('type')->eq($storyType) - ->fetchPairs(); - - if($duplicate and is_string($titles)) return array('stop' => true, 'duplicate' => key($duplicate)); - if($duplicate and is_array($titles)) - { - foreach($titles as $i => $title) - { - if(in_array($title, $duplicate)) unset($titles[$i]); - } - - if(is_object($data)) $data->$titleField = $titles; - if(is_array($data)) $data[$titleField] = $titles; - } - return array('stop' => false, 'data' => $data); - } - /** * 追加排序字段。 * Append order by. diff --git a/module/common/test/model/removeduplicate.php b/module/common/test/model/removeduplicate.php deleted file mode 100755 index 6bbafc1f28..0000000000 --- a/module/common/test/model/removeduplicate.php +++ /dev/null @@ -1,149 +0,0 @@ -#!/usr/bin/env php -id->range('1'); -$story->title->range('teststory'); -$story->gen(1); - -$case = zenData('case'); -$case->id->range('1'); -$case->title->range('testcase'); -$case->gen(1); - -$task = zenData('task'); -$task->id->range('1'); -$task->name->range('testtask'); -$task->gen(1); - -$bug = zenData('bug'); -$bug->id->range('1'); -$bug->title->range('testbug'); -$bug->gen(1); - -$doc = zenData('doc'); -$doc->id->range('1'); -$doc->title->range('testdoc'); -$doc->gen(1); - -/** - -title=测试 commonModel->removeDuplicate(); -timeout=0 -cid=1 - -- 测试是否是重复需求 - - 属性stop @1 - - 属性duplicate @1 -- 有条件情况下,测试是否是重复需求。属性stop @~~ -- 测试是否是重复用例 - - 属性stop @1 - - 属性duplicate @1 -- 有条件情况下,测试是否是重复用例。属性stop @~~ -- 测试是否是重复任务 - - 属性stop @1 - - 属性duplicate @1 -- 有条件情况下,测试是否是重复用例。属性stop @~~ -- 测试是否是重复Bug - - 属性stop @1 - - 属性duplicate @1 -- 有条件情况下,测试是否是重复Bug属性stop @~~ -- 测试是否是重复文档 - - 属性stop @1 - - 属性duplicate @1 -- 有条件情况下,测试是否是重复文档属性stop @~~ -- 测试批量重复需求 @story1 -- 有条件情况下,测试批量重复需求 @2 -- 测试批量重复用例 @case1 -- 有条件情况下,测试批量重复用例 @2 -- 测试批量重复任务 @task1 -- 有条件情况下,测试批量重复任务 @2 -- 测试批量重复Bug @bug1 -- 有条件情况下,测试批量重复Bug @2 -- 测试批量重复文档 @doc1 -- 有条件情况下,测试批量重复文档 @2 - -*/ - -global $tester; -$tester->loadModel('common'); - -$now = date('Y-m-d H:i:s', time() - 5); -$tester->common->dao->update(TABLE_STORY)->set('openedDate')->eq($now)->exec(); -$tester->common->dao->update(TABLE_CASE)->set('openedDate')->eq($now)->exec(); -$tester->common->dao->update(TABLE_TASK)->set('openedDate')->eq($now)->exec(); -$tester->common->dao->update(TABLE_BUG)->set('openedDate')->eq($now)->exec(); -$tester->common->dao->update(TABLE_DOC)->set('addedDate')->eq($now)->exec(); - -$story = new stdclass(); -$story->title = 'teststory'; -$story->type = 'requirement'; -r($tester->common->removeDuplicate('story', $story)) && p('stop,duplicate') && e('1,1'); //测试是否是重复需求 -r($tester->common->removeDuplicate('story', $story, 'id!=1')) && p('stop') && e('~~'); //有条件情况下,测试是否是重复需求。 - -$case = new stdclass(); -$case->title = 'testcase'; -r($tester->common->removeDuplicate('case', $case)) && p('stop,duplicate') && e('1,1'); //测试是否是重复用例 -r($tester->common->removeDuplicate('case', $case, 'id!=1')) && p('stop') && e('~~'); //有条件情况下,测试是否是重复用例。 - -$task = new stdclass(); -$task->name = 'testtask'; -r($tester->common->removeDuplicate('task', $task)) && p('stop,duplicate') && e('1,1'); //测试是否是重复任务 -r($tester->common->removeDuplicate('task', $task, 'id!=1')) && p('stop') && e('~~'); //有条件情况下,测试是否是重复用例。 - -$bug = new stdclass(); -$bug->title = 'testbug'; -r($tester->common->removeDuplicate('bug', $bug)) && p('stop,duplicate') && e('1,1'); //测试是否是重复Bug -r($tester->common->removeDuplicate('bug', $bug, 'id!=1')) && p('stop') && e('~~'); //有条件情况下,测试是否是重复Bug - -$doc = new stdclass(); -$doc->title = 'testdoc'; -r($tester->common->removeDuplicate('doc', $doc)) && p('stop,duplicate') && e('1,1'); //测试是否是重复文档 -r($tester->common->removeDuplicate('doc', $doc, 'id!=1')) && p('stop') && e('~~'); //有条件情况下,测试是否是重复文档 - -$story = new stdclass(); -$story->title = array('teststory', 'story1'); -$result = $tester->common->removeDuplicate('story', $story); -r($result['data']->title[1]) && p() && e('story1'); //测试批量重复需求 - -$story->title = array('teststory', 'story1'); -$result = $tester->common->removeDuplicate('story', $story, 'id!=1'); -r(count($result['data']->title)) && p() && e('2'); //有条件情况下,测试批量重复需求 - -$case = new stdclass(); -$case->title = array('testcase', 'case1'); -$result = $tester->common->removeDuplicate('case', $case); -r($result['data']->title[1]) && p() && e('case1'); //测试批量重复用例 - -$case->title = array('testcase', 'case1'); -$result = $tester->common->removeDuplicate('case', $case, 'id!=1'); -r(count($result['data']->title)) && p() && e('2'); //有条件情况下,测试批量重复用例 - -$task = new stdclass(); -$task->name = array('testtask', 'task1'); -$result = $tester->common->removeDuplicate('task', $task); -r($result['data']->name[1]) && p() && e('task1'); //测试批量重复任务 - -$task->name = array('testtask', 'task1'); -$result = $tester->common->removeDuplicate('task', $task, 'id!=1'); -r(count($result['data']->name)) && p() && e('2'); //有条件情况下,测试批量重复任务 - -$bug = new stdclass(); -$bug->title = array('testbug', 'bug1'); -$result = $tester->common->removeDuplicate('bug', $bug); -r($result['data']->title[1]) && p() && e('bug1'); //测试批量重复Bug - -$bug->title = array('testbug', 'bug1'); -$result = $tester->common->removeDuplicate('bug', $bug, 'id!=1'); -r(count($result['data']->title)) && p() && e('2'); //有条件情况下,测试批量重复Bug - -$doc = new stdclass(); -$doc->title = array('testdoc', 'doc1'); -$result = $tester->common->removeDuplicate('doc', $doc); -r($result['data']->title[1]) && p() && e('doc1'); //测试批量重复文档 - -$doc->title = array('testdoc', 'doc1'); -$result = $tester->common->removeDuplicate('doc', $doc, 'id!=1'); -r(count($result['data']->title)) && p() && e('2'); //有条件情况下,测试批量重复文档 diff --git a/module/common/test/model/savequerycondition.php b/module/common/test/model/savequerycondition.php index 43dec44cc0..7f7755818b 100755 --- a/module/common/test/model/savequerycondition.php +++ b/module/common/test/model/savequerycondition.php @@ -10,6 +10,9 @@ cid=1 - 仅保留WHERE条件 @id = 1 - 保留完整SQL语句 @SELECT * FROM zt_execution WHERE id = 1 +- 仅保留WHERE条件 @1=1 +- 仅保留WHERE条件 @id = 1 and type = "story" +- 仅保留WHERE条件 @id = 1 and type = "epic" */ @@ -17,6 +20,12 @@ global $tester; $tester->loadModel('common')->saveQueryCondition('SELECT * FROM zt_task WHERE id = 1', 'task', true); $tester->loadModel('common')->saveQueryCondition('SELECT * FROM zt_execution WHERE id = 1', 'execution', false); +$tester->loadModel('common')->saveQueryCondition('', 'testcase', true); +$tester->loadModel('common')->saveQueryCondition('SELECT * FROM zt_story WHERE id = 1 and type = "story"', 'story', true); +$tester->loadModel('common')->saveQueryCondition('SELECT * FROM zt_epic WHERE id = 1 and type = "epic"', 'epic', true); r($tester->session->taskQueryCondition) && p('') && e('id = 1'); // 仅保留WHERE条件 -r($tester->session->executionQueryCondition) && p('') && e('SELECT * FROM zt_execution WHERE id = 1'); // 保留完整SQL语句 \ No newline at end of file +r($tester->session->executionQueryCondition) && p('') && e('SELECT * FROM zt_execution WHERE id = 1'); // 保留完整SQL语句 +r($tester->session->testcaseQueryCondition) && p('') && e('1=1'); // 仅保留WHERE条件 +r($tester->session->storyQueryCondition) && p('') && e('id = 1 and type = "story"'); // 仅保留WHERE条件 +r($tester->session->epicQueryCondition) && p('') && e('id = 1 and type = "epic"'); // 仅保留WHERE条件 \ No newline at end of file diff --git a/module/common/view/action.html.php b/module/common/view/action.html.php index d1dadede7f..46c53b7416 100755 --- a/module/common/view/action.html.php +++ b/module/common/view/action.html.php @@ -61,7 +61,7 @@ history)):?>
      - action->printChanges($action->objectType, $action->history);?> + action->printChanges($action->objectType, $action->objectID, $action->history);?>
      comment))) != 0):?> diff --git a/module/common/view/mail.footer.html.php b/module/common/view/mail.footer.html.php index 3d8d365619..3f632ce7b5 100644 --- a/module/common/view/mail.footer.html.php +++ b/module/common/view/mail.footer.html.php @@ -28,7 +28,7 @@ if(file_exists($extViewFile)) history)):?> -
      action->printChanges($action->objectType, $action->history, false);?>
      +
      action->printChanges($action->objectType, $action->objectID, $action->history, false);?>
      diff --git a/module/custom/control.php b/module/custom/control.php index 8fbbb08d55..1d4cc17991 100644 --- a/module/custom/control.php +++ b/module/custom/control.php @@ -439,7 +439,7 @@ class custom extends control $this->loadModel('common')->loadConfigFromDB(); $this->app->loadLang($module); - $this->app->loadConfig($module); + $this->app->loadConfig($module, '', true); if($module == 'programplan' && $section == 'custom') $key = 'createFields'; $customFields = zget(zget($this->config->$module, 'list', array()), $section . ucfirst($key), ''); diff --git a/module/datatable/model.php b/module/datatable/model.php index 47aad7a5e9..5d0632f9cb 100644 --- a/module/datatable/model.php +++ b/module/datatable/model.php @@ -446,25 +446,23 @@ class datatableModel extends model */ public function appendWorkflowFields(string $module, string $method): array { - if(in_array($module, array('epic', 'story', 'requirement'))) + if($module == 'build' && $method == 'build') { - $method = $module == 'story' ? 'browse' : $module; // 需求加载product-browse的layout配置。 - $module = 'product'; + $module = 'build'; + $method = 'browse'; // 版本加载build-browse的layout配置。 } - elseif($module == 'build') + elseif($module == 'task' && $method == 'task') { - $module = 'execution'; - $method = 'build'; // 版本加载execution-build的layout配置。 - } - elseif($module == 'task') - { - $module = 'execution'; - $method = 'task'; // 任务加载execution-task的layout配置。 + $method = 'browse'; // 任务加载task-browse的layout配置。 } elseif($module == 'bug' && $method == 'bug') { $method = 'browse'; // 执行bug列表加载bug-browse的layout配置。 } + elseif($module == 'story' && $method == 'story') + { + $method = 'browse'; // 执行需求列表加载story-browse的layout配置。 + } elseif($module == 'testcase' && $method == 'testcase') { $method = 'browse'; // 执行用例列表加载testcase-browse的layout配置。 @@ -520,4 +518,4 @@ class datatableModel extends model return $this->loadModel('flow')->buildDtableCols($fields, [], [], isset($flow->buildin) && !$flow->buildin); } -} +} \ No newline at end of file diff --git a/module/dataview/js/querybase.js b/module/dataview/js/querybase.js index 9629b7d4ba..8a34875eeb 100644 --- a/module/dataview/js/querybase.js +++ b/module/dataview/js/querybase.js @@ -33,7 +33,9 @@ function query(callback) { $('.query').addClass('disabled'); $('#querying').removeClass('hidden'); - $.post(createLink('dataview', 'ajaxQuery'), {sql: $('#sql').val(), driver: DataStorage.driver, filters: filters, recPerPage: DataStorage.recPerPage, pageID: DataStorage.pageID}, function(resp) + var sql = $('#sql').val(); + sql = btoa(sql); + $.post(createLink('dataview', 'ajaxQuery'), {sql: sql, driver: DataStorage.driver, filters: filters, recPerPage: DataStorage.recPerPage, pageID: DataStorage.pageID}, function(resp) { resp = JSON.parse(resp); $('.query').removeClass('disabled'); diff --git a/module/design/model.php b/module/design/model.php index 8e52a403d5..8878af9c16 100755 --- a/module/design/model.php +++ b/module/design/model.php @@ -23,7 +23,7 @@ class designModel extends model public function create(object $design): bool|int { $design = $this->loadModel('file')->processImgURL($design, 'desc', (string)$this->post->uid); - $this->dao->insert(TABLE_DESIGN)->data($design) + $this->dao->insert(TABLE_DESIGN)->data($design, 'docVersions') ->autoCheck() ->batchCheck($this->config->design->create->requiredFields, 'notempty') ->exec(); @@ -97,7 +97,7 @@ class designModel extends model if(!$oldDesign) return false; $design = $this->loadModel('file')->processImgURL($design, 'desc', (string)$this->post->uid); - $this->dao->update(TABLE_DESIGN)->data($design, 'deleteFiles,renameFiles,files')->autoCheck()->batchCheck($this->config->design->edit->requiredFields, 'notempty')->where('id')->eq($designID)->exec(); + $this->dao->update(TABLE_DESIGN)->data($design, 'deleteFiles,renameFiles,files,docs,oldDocs,docVersions')->autoCheck()->batchCheck($this->config->design->edit->requiredFields, 'notempty')->where('id')->eq($designID)->exec(); if(dao::isError()) return false; diff --git a/module/design/ui/create.html.php b/module/design/ui/create.html.php index 724e211514..fc4aaf302d 100644 --- a/module/design/ui/create.html.php +++ b/module/design/ui/create.html.php @@ -85,6 +85,7 @@ formPanel ), formRow ( + setID('files'), formGroup ( set::label($lang->design->file), diff --git a/module/design/ui/edit.html.php b/module/design/ui/edit.html.php index 89c2a85f7a..35210126e9 100644 --- a/module/design/ui/edit.html.php +++ b/module/design/ui/edit.html.php @@ -75,6 +75,7 @@ formPanel ), formGroup ( + setID('files'), set::label($lang->design->file), fileSelector($design->files ? set::defaultFiles(array_values($design->files)) : null) ), diff --git a/module/design/ui/view.html.php b/module/design/ui/view.html.php index d6e102a311..ebd70fdc0d 100644 --- a/module/design/ui/view.html.php +++ b/module/design/ui/view.html.php @@ -78,6 +78,7 @@ detailBody ( section ( + setID('desc'), set::title($lang->design->desc), set::content(empty($design->desc) ? $lang->noDesc : $design->desc), set::useHtml(true) diff --git a/module/dev/lang/de.php b/module/dev/lang/de.php index 682f94a0d7..d400dd2619 100644 --- a/module/dev/lang/de.php +++ b/module/dev/lang/de.php @@ -29,6 +29,7 @@ $lang->dev->ER = 'Epic'; $lang->dev->UR = 'Feature'; $lang->dev->SR = 'Story'; $lang->dev->branch = 'Branch'; +$lang->dev->apiBaseUrl = 'Base URL'; $lang->dev->fields = array(); $lang->dev->fields['id'] = 'ID'; diff --git a/module/dev/lang/en.php b/module/dev/lang/en.php index 80bd715375..2203c9e6b8 100644 --- a/module/dev/lang/en.php +++ b/module/dev/lang/en.php @@ -29,6 +29,7 @@ $lang->dev->ER = 'Epic'; $lang->dev->UR = 'Feature'; $lang->dev->SR = 'Story'; $lang->dev->branch = 'Branch'; +$lang->dev->apiBaseUrl = 'Base URL'; $lang->dev->fields = array(); $lang->dev->fields['id'] = 'ID'; diff --git a/module/dev/lang/fr.php b/module/dev/lang/fr.php index 80bd715375..2203c9e6b8 100644 --- a/module/dev/lang/fr.php +++ b/module/dev/lang/fr.php @@ -29,6 +29,7 @@ $lang->dev->ER = 'Epic'; $lang->dev->UR = 'Feature'; $lang->dev->SR = 'Story'; $lang->dev->branch = 'Branch'; +$lang->dev->apiBaseUrl = 'Base URL'; $lang->dev->fields = array(); $lang->dev->fields['id'] = 'ID'; diff --git a/module/dev/lang/zh-cn.php b/module/dev/lang/zh-cn.php index e6205b8158..960831c0d7 100644 --- a/module/dev/lang/zh-cn.php +++ b/module/dev/lang/zh-cn.php @@ -29,6 +29,7 @@ $lang->dev->ER = '业务需求'; $lang->dev->UR = '用户需求'; $lang->dev->SR = '软件需求'; $lang->dev->branch = '平台/分支'; +$lang->dev->apiBaseUrl = '请求基路径'; $lang->dev->fields = array(); $lang->dev->fields['id'] = '序号'; diff --git a/module/dev/ui/restapi.html.php b/module/dev/ui/restapi.html.php index b1fb9ed293..9c00f1d97a 100644 --- a/module/dev/ui/restapi.html.php +++ b/module/dev/ui/restapi.html.php @@ -187,8 +187,15 @@ $fnGetResponseContent = function($api) use($parseTree, $typeList) $fnBuildAPIContent = function() use($api, $fnGetHeaderContent, $fnGetQueryContent, $fnGetParamsContent, $fnGetResponseContent) { + global $lang, $app; + $content = array(); $content[] = div + ( + setClass('pb-3 font-bold'), + $lang->dev->apiBaseUrl . ': ' . commonModel::getSysURL() . $app->config->webRoot . 'api.php/v1' + ); + $content[] = div ( setClass('panel-heading'), div(setClass('http-method label'), $api->method), @@ -235,7 +242,8 @@ sidebar setClass('h-10 flex items-center pl-4 flex-none gap-3'), div(setClass('text-lg font-semibold flex items-center'), icon(setClass('pr-2'), 'list'), span($lang->dev->moduleList)) ), - treeEditor(set(array('className' => 'pl-3', 'items' => $moduleTree, 'canEdit' => false, 'canDelete' => false, 'canSplit' => false))) + treeEditor(set(array('className' => 'pl-3', 'items' => $moduleTree, 'canEdit' => false, 'canDelete' => false, 'canSplit' => false))), + set::toggleBtn(false) ); div diff --git a/module/doc/lang/de.php b/module/doc/lang/de.php index c400991636..95fa7a63ef 100644 --- a/module/doc/lang/de.php +++ b/module/doc/lang/de.php @@ -325,6 +325,8 @@ $lang->doc->uploadFormat = 'Upload Format'; $lang->doc->editedList = 'File editor'; $lang->doc->moveTo = 'Move to'; $lang->doc->notSupportExport = 'This document does not support export'; +$lang->doc->downloadTemplate = 'Download Template'; +$lang->doc->addFile = 'Add File'; $lang->doc->preview = 'Preview'; $lang->doc->insertTitle = 'Insert %s list'; @@ -517,6 +519,7 @@ $lang->doc->noCollectedDoc = 'Sie haben kein Dokument gesammelt.'; $lang->doc->errorEmptyLib = 'No data in document library.'; $lang->doc->confirmUpdateContent = 'You have a document that is not saved from last time. Do you want to continue editing it?'; $lang->doc->selectLibType = 'Please select a type of doc library.'; +$lang->doc->selectDoc = 'Please select a doc'; $lang->doc->noLibreOffice = 'You does not have access to office conversion settings!'; $lang->doc->errorParentChapter = 'The parent chapter cannot be its own chapter or sub chapter!'; $lang->doc->errorOthersCreated = 'There are documents created by others in this library. You cannot move it.'; @@ -774,6 +777,9 @@ $lang->doc->docLang->addSubDoc = $lang->doc->addSubDoc; $lang->doc->docLang->chapterName = $lang->doc->chapterName; $lang->doc->docLang->autoSaveHint = 'Auto saved'; $lang->doc->docLang->editing = 'Editing'; +$lang->doc->docLang->restoreVersionHint = 'Restore to version'; +$lang->doc->docLang->restoreVersion = 'Restore'; +$lang->doc->docLang->restoreVersionConfirm = 'This will create a new version using the content of version {version}. Are you sure you want to continue?'; $lang->docTemplate->moduleName = array(); $lang->docTemplate->moduleName['plan'] = 'plan'; diff --git a/module/doc/lang/en.php b/module/doc/lang/en.php index 3d4858e56d..bc3b1b6cd4 100644 --- a/module/doc/lang/en.php +++ b/module/doc/lang/en.php @@ -325,6 +325,8 @@ $lang->doc->uploadFormat = 'Upload Format'; $lang->doc->editedList = 'File editor'; $lang->doc->moveTo = 'Move to'; $lang->doc->notSupportExport = 'This document does not support export'; +$lang->doc->downloadTemplate = 'Download Template'; +$lang->doc->addFile = 'Add File'; $lang->doc->preview = 'Preview'; $lang->doc->insertTitle = 'Insert %s list'; @@ -517,6 +519,7 @@ $lang->doc->noCollectedDoc = 'You have not favorited any documents. $lang->doc->errorEmptyLib = 'No data in document library.'; $lang->doc->confirmUpdateContent = 'You have a document that is not saved from last time. Do you want to continue editing it?'; $lang->doc->selectLibType = 'Please select a type of doc library.'; +$lang->doc->selectDoc = 'Please select a doc'; $lang->doc->noLibreOffice = 'You does not have access to office conversion settings!'; $lang->doc->errorParentChapter = 'The parent chapter cannot be its own chapter or sub chapter!'; $lang->doc->errorOthersCreated = 'There are documents created by others in this library. You cannot move it.'; @@ -774,6 +777,9 @@ $lang->doc->docLang->addSubDoc = $lang->doc->addSubDoc; $lang->doc->docLang->chapterName = $lang->doc->chapterName; $lang->doc->docLang->autoSaveHint = 'Auto saved'; $lang->doc->docLang->editing = 'Editing'; +$lang->doc->docLang->restoreVersionHint = 'Restore to version'; +$lang->doc->docLang->restoreVersion = 'Restore'; +$lang->doc->docLang->restoreVersionConfirm = 'This will create a new version using the content of version {version}. Are you sure you want to continue?'; $lang->docTemplate->moduleName = array(); $lang->docTemplate->moduleName['plan'] = 'plan'; diff --git a/module/doc/lang/fr.php b/module/doc/lang/fr.php index 965317c134..968ecf4344 100644 --- a/module/doc/lang/fr.php +++ b/module/doc/lang/fr.php @@ -325,6 +325,8 @@ $lang->doc->uploadFormat = 'Upload Format'; $lang->doc->editedList = 'File editor'; $lang->doc->moveTo = 'Move to'; $lang->doc->notSupportExport = 'This document does not support export'; +$lang->doc->downloadTemplate = 'Download Template'; +$lang->doc->addFile = 'Add File'; $lang->doc->preview = 'Preview'; $lang->doc->insertTitle = 'Insert %s list'; @@ -517,6 +519,7 @@ $lang->doc->noCollectedDoc = "Vous avez aucun document dans vos fav $lang->doc->errorEmptyLib = 'No data in document library.'; $lang->doc->confirmUpdateContent = 'You have a document that is not saved from last time. Do you want to continue editing it?'; $lang->doc->selectLibType = 'Please select a type of doc library.'; +$lang->doc->selectDoc = 'Please select a doc'; $lang->doc->noLibreOffice = 'You does not have access to office conversion settings!'; $lang->doc->errorParentChapter = 'The parent chapter cannot be its own chapter or sub chapter!'; $lang->doc->errorOthersCreated = 'There are documents created by others in this library. You cannot move it.'; @@ -774,6 +777,9 @@ $lang->doc->docLang->addSubDoc = $lang->doc->addSubDoc; $lang->doc->docLang->chapterName = $lang->doc->chapterName; $lang->doc->docLang->autoSaveHint = 'Auto saved'; $lang->doc->docLang->editing = 'Editing'; +$lang->doc->docLang->restoreVersionHint = 'Restore to version'; +$lang->doc->docLang->restoreVersion = 'Restore'; +$lang->doc->docLang->restoreVersionConfirm = 'This will create a new version using the content of version {version}. Are you sure you want to continue?'; $lang->docTemplate->moduleName = array(); $lang->docTemplate->moduleName['plan'] = 'plan'; diff --git a/module/doc/lang/zh-cn.php b/module/doc/lang/zh-cn.php index 7e7e7c53e9..fac4f793d0 100644 --- a/module/doc/lang/zh-cn.php +++ b/module/doc/lang/zh-cn.php @@ -325,6 +325,8 @@ $lang->doc->uploadFormat = '上传格式'; $lang->doc->editedList = '文档编辑者'; $lang->doc->moveTo = '移动至'; $lang->doc->notSupportExport = '(此文档暂不支持导出)'; +$lang->doc->downloadTemplate = '下载模板'; +$lang->doc->addFile = '提交文件'; $lang->doc->preview = '预览'; $lang->doc->insertTitle = '插入%s列表'; @@ -517,6 +519,7 @@ $lang->doc->noCollectedDoc = '您还没有收藏任何文档。'; $lang->doc->errorEmptyLib = '文档库暂无数据。'; $lang->doc->confirmUpdateContent = '检查到您有未保存的文档内容,是否继续编辑?'; $lang->doc->selectLibType = '请选择文档库类型'; +$lang->doc->selectDoc = '请选择文档'; $lang->doc->noLibreOffice = '您还没有office转换设置访问权限!'; $lang->doc->errorParentChapter = '父章节不能是自身章节及子章节!'; $lang->doc->errorOthersCreated = '该库下其他人创建的文档暂不支持移动,是否确认移动?'; @@ -774,6 +777,9 @@ $lang->doc->docLang->addSubDoc = $lang->doc->addSubDoc; $lang->doc->docLang->chapterName = $lang->doc->chapterName; $lang->doc->docLang->autoSaveHint = '已自动保存'; $lang->doc->docLang->editing = '正在编辑'; +$lang->doc->docLang->restoreVersionHint = '恢复到版本'; +$lang->doc->docLang->restoreVersion = '恢复'; +$lang->doc->docLang->restoreVersionConfirm = '这将使用文档版本 {version} 的内容创建一个新的版本,确定要继续吗?'; $lang->docTemplate->moduleName = array(); $lang->docTemplate->moduleName['plan'] = '计划'; diff --git a/module/doc/model.php b/module/doc/model.php index 0a400b9d47..ab06b6d0a5 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -965,12 +965,14 @@ class docModel extends model * @param string $orderBy * @param string $query * @param object $pager + * @param string $appendDocs + * @param string $filterDocs * @access public * @return array */ - public function getMySpaceDocs(string $type, string $browseType, string $query = '', string $orderBy = 'id_desc', object $pager = null): array + public function getMySpaceDocs(string $type, string $browseType, string $query = '', string $orderBy = 'id_desc', object $pager = null, string $appendDocs = '', string $filterDocs = ''): array { - if(!in_array($type, array('view', 'collect', 'createdby', 'editedby'))) return array(); + if(!in_array($type, array('all', 'view', 'collect', 'createdby', 'editedby'))) return array(); $allLibs = $this->getLibs('all'); $allLibIDList = array_keys($allLibs); @@ -997,7 +999,11 @@ class docModel extends model ->beginIF(in_array($browseType, array('all', 'bysearch')))->andWhere("(t1.status = 'normal' or (t1.status = 'draft' and t1.addedBy='{$this->app->user->account}'))")->fi() ->beginIF($browseType == 'draft')->andWhere('t1.status')->eq('draft')->andWhere('t1.addedBy')->eq($this->app->user->account)->fi() ->beginIF($browseType == 'bysearch')->andWhere($query)->fi() + ->beginIF($browseType == 'bykeyword')->andWhere('t1.status')->eq('normal')->fi() + ->beginIF($browseType == 'bykeyword' && $query)->andWhere('t1.title')->like("%$query%")->fi() ->beginIF(!empty($hasPrivDocIdList))->andWhere('t1.id')->in($hasPrivDocIdList)->fi() + ->beginIF($filterDocs)->andWhere('t1.id')->notIN($filterDocs)->fi() + ->beginIF($appendDocs)->orWhere('t1.id')->in($appendDocs)->fi() ->orderBy($orderBy) ->page($pager, 't1.id') ->fetchAll('id', false); @@ -1017,7 +1023,11 @@ class docModel extends model ->beginIF(!common::hasPriv('doc', 'teamSpace'))->andWhere('t2.type')->ne('custom')->fi() ->beginIF($browseType == 'draft')->andWhere('t1.status')->eq('draft')->andWhere('t1.addedBy')->eq($this->app->user->account)->fi() ->beginIF($browseType == 'bysearch')->andWhere($query)->fi() + ->beginIF($browseType == 'bykeyword')->andWhere('t1.status')->eq('normal')->fi() + ->beginIF($browseType == 'bykeyword' && $query)->andWhere('t1.title')->like("%$query%")->fi() ->beginIF(!empty($hasPrivDocIdList))->andWhere('t1.id')->in($hasPrivDocIdList)->fi() + ->beginIF($filterDocs)->andWhere('t1.id')->notIN($filterDocs)->fi() + ->beginIF($appendDocs)->orWhere('t1.id')->in($appendDocs)->fi() ->orderBy($orderBy) ->page($pager) ->fetchAll('id', false); @@ -1611,12 +1621,12 @@ class docModel extends model } $files = $this->loadModel('file')->getUpload(); - if($doc->type == 'attachment' && (empty($files) || isset($files['name']))) return dao::$errors['files'] = sprintf($this->lang->error->notempty, $this->lang->doc->uploadFile); + if($doc->type == 'attachment' && empty($doc->copy) && (empty($files) || isset($files['name']))) return dao::$errors['files'] = sprintf($this->lang->error->notempty, $this->lang->doc->uploadFile); $doc->draft = $isDraft ? $docContent->content : ''; $doc->vision = $this->config->vision; $doc->version = $isDraft ? 0 : 1; - $this->dao->insert(TABLE_DOC)->data($doc, 'content')->autoCheck()->batchCheck($requiredFields, 'notempty')->exec(); + $this->dao->insert(TABLE_DOC)->data($doc, 'content,copy')->autoCheck()->batchCheck($requiredFields, 'notempty')->exec(); if(dao::isError()) return false; $docID = $this->dao->lastInsertID(); @@ -1675,7 +1685,7 @@ class docModel extends model $docContent->addedBy = $docContent->editedBy; $docContent->addedDate = $docContent->editedDate; $docContent->files = implode(',', $files); - $docContent->fromVersion = $version - 1; + $docContent->fromVersion = isset($docData->fromVersion) ? $docData->fromVersion : max(0, ($version - 1)); $this->dao->insert(TABLE_DOCCONTENT)->data($docContent)->exec(); $docContent->id = $this->dao->lastInsertID(); } @@ -1716,9 +1726,9 @@ class docModel extends model $oldRawContent = isset($oldDoc->rawContent) ? $oldDoc->rawContent : ''; $newRawContent = isset($doc->rawContent) ? $doc->rawContent : ''; $onlyRawChanged = $oldRawContent != $newRawContent; - $changed = $files || $onlyRawChanged ? true : false; $isDraft = $doc->status == 'draft'; $version = $isDraft ? 0 : ($oldDoc->version + 1); + $changed = $files || $onlyRawChanged || (!$isDraft && $oldDoc->version == 0); $basicInfoChanged = false; foreach($changes as $change) { @@ -1748,7 +1758,7 @@ class docModel extends model $doc->path = $path; } - $this->dao->update(TABLE_DOC)->data($doc, 'content,contentType,rawContent') + $this->dao->update(TABLE_DOC)->data($doc, 'content,contentType,rawContent,fromVersion') ->autoCheck() ->batchCheck($requiredFields, 'notempty') ->where('id')->eq($docID) @@ -2425,7 +2435,7 @@ class docModel extends model foreach($files as $file) { $this->file->setFileWebAndRealPaths($file); - if($file->objectType == 'story') + if($file->objectType == 'story' && $type == 'product') { if(in_array($file->objectID, $epicIdList)) $file->objectType = 'epic'; if(in_array($file->objectID, $requirementIdList)) $file->objectType = 'requirement'; diff --git a/module/doc/ui/app.html.php b/module/doc/ui/app.html.php index 8b9478f6f7..4750972990 100644 --- a/module/doc/ui/app.html.php +++ b/module/doc/ui/app.html.php @@ -64,6 +64,7 @@ $privs['createRelease']= hasPriv('api', 'createRelease'); $privs['releases'] = hasPriv('api', 'releases'); $privs['struct'] = hasPriv('api', 'struct'); $privs['createOffice'] = $privs['create']; +$privs['restoreDoc'] = $privs['edit']; $privs['addChapter'] = hasPriv('doc', 'addChapter'); $privs['editChapter'] = hasPriv('doc', 'editChapter'); diff --git a/module/execution/config/dtable.php b/module/execution/config/dtable.php index 0fe823bf71..790d50be86 100644 --- a/module/execution/config/dtable.php +++ b/module/execution/config/dtable.php @@ -49,6 +49,17 @@ $config->execution->dtable->fieldList['status']['width'] = '80'; $config->execution->dtable->fieldList['status']['group'] = '1'; $config->execution->dtable->fieldList['status']['show'] = true; +if(in_array($config->edition, array('max', 'ipd')) && helper::hasFeature('deliverable')) +{ + $config->execution->dtable->fieldList['deliverable']['title'] = $lang->execution->deliverableAbbr; + $config->execution->dtable->fieldList['deliverable']['name'] = 'deliverable'; + $config->execution->dtable->fieldList['deliverable']['type'] = 'html'; + $config->execution->dtable->fieldList['deliverable']['width'] = '100px'; + $config->execution->dtable->fieldList['deliverable']['group'] = '1'; + $config->execution->dtable->fieldList['deliverable']['show'] = true; + $config->execution->dtable->fieldList['deliverable']['sortType'] = false; +} + $config->execution->dtable->fieldList['PM']['title'] = $lang->execution->execPM; $config->execution->dtable->fieldList['PM']['name'] = 'PM'; $config->execution->dtable->fieldList['PM']['type'] = 'avatarBtn'; diff --git a/module/execution/control.php b/module/execution/control.php index 2081fcd549..4efd825551 100644 --- a/module/execution/control.php +++ b/module/execution/control.php @@ -1105,8 +1105,28 @@ class execution extends control if(!$isStage && !empty($this->view->execution) && $this->view->execution->type == 'stage') $isStage = true; if(!empty($project) && in_array($project->model, $this->config->project->waterfallList)) { - if($project->model == 'waterfall') $isStage = true; - $this->view->parentStage = isset($output['parentStage']) ? $output['parentStage'] : 0; + if(in_array($project->model, $this->config->project->waterfallList) && !isset($output['type'])) $isStage = true; + $parentStage = isset($output['parentStage']) ? $output['parentStage'] : 0; + $type = isset($output['type']) ? $output['type'] : ''; + if($parentStage) + { + $parent = $this->execution->fetchById((int)$parentStage); + if($parent->attribute != 'mix') + { + $this->app->loadLang('stage'); + foreach($this->lang->stage->typeList as $type => $label) + { + if($type != $parent->attribute) unset($this->lang->stage->typeList[$type]); + } + } + } + else + { + unset($this->lang->execution->typeList['kanban']); + unset($this->lang->execution->typeList['sprint']); + } + + $this->view->parentStage = $parentStage; $this->view->parentStages = $this->loadModel('programplan')->getParentStageList($projectID, 0, 0, 'withparent|noclosed|' . ($isStage ? 'stage' : 'notstage')); } @@ -1342,7 +1362,7 @@ class execution extends control } $executionIDList = $this->post->executionIDList; - $executions = $this->dao->select('*')->from(TABLE_EXECUTION)->where('id')->in($executionIDList)->fetchAll('id'); + $executions = $this->dao->select('*')->from(TABLE_EXECUTION)->where('id')->in($executionIDList)->fetchAll('id', false); $relatedProjects = $this->dao->select('id,project')->from(TABLE_PROJECT)->where('id')->in($executionIDList)->fetchPairs(); /* 获取执行所属的项目列表。*/ $projects = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->in($relatedProjects)->fetchAll('id'); /* 获取执行所属的项目列表中每个项目的项目信息。*/ @@ -1395,8 +1415,8 @@ class execution extends control $executionIdList = $this->post->executionIDList; if(is_string($executionIdList)) $executionIdList = explode(',', $executionIdList); - $filteredStages = $this->execution->batchChangeStatus($executionIdList, $status); - if(!$filteredStages) return $this->sendSuccess(array('load' => true)); + $message = $this->execution->batchChangeStatus($executionIdList, $status); + if(empty($message['byChild']) && empty($message['byDeliverable'])) return $this->sendSuccess(array('load' => true)); $alertMsg = ''; if($status == 'wait') @@ -1406,18 +1426,28 @@ class execution extends control if(empty($project) or (!empty($project) and strpos($project->model, 'waterfall') !== false)) { $executionLang = (empty($project) or (!empty($project) and $project->model == 'waterfallplus')) ? $this->lang->execution->common : $this->lang->stage->common; - $alertMsg = sprintf($this->lang->execution->hasStartedTaskOrSubStage, $executionLang, $filteredStages); + $alertMsg = sprintf($this->lang->execution->hasStartedTaskOrSubStage, $executionLang, $message['byChild']); } if(!empty($project) and strpos('agileplus,scrum', $project->model) !== false) { $executionLang = $project->model == 'scrum' ? $this->lang->executionCommon : $this->lang->execution->common; - $alertMsg = sprintf($this->lang->execution->hasStartedTask, $executionLang, $filteredStages); + $alertMsg = sprintf($this->lang->execution->hasStartedTask, $executionLang, $message['byChild']); + } + } + if($status == 'suspended') $alertMsg = sprintf($this->lang->execution->hasSuspendedOrClosedChildren, $message['byChild']); + if($status == 'closed') + { + if(!empty($message['byChild'])) + { + $alertMsg .= sprintf($this->lang->execution->hasNotClosedChildren, $message['byChild']); + } + elseif(!empty($message['byDeliverable'])) + { + $alertMsg .= sprintf($this->lang->execution->cannotCloseByDeliverable, $message['byDeliverable']); } } - if($status == 'suspended') $alertMsg = sprintf($this->lang->execution->hasSuspendedOrClosedChildren, $filteredStages); - if($status == 'closed') $alertMsg = sprintf($this->lang->execution->hasNotClosedChildren, $filteredStages); - return $this->sendSuccess(array('message' => $alertMsg, 'load' => true)); + return $this->send(array('load' => array('alert' => $alertMsg), 'result' => 'success')); } /** @@ -1646,7 +1676,11 @@ class execution extends control if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); $project = $this->loadModel('project')->getById($execution->project); - if(in_array($project->model, array('waterfall', 'waterfallplus', 'ipd'))) $this->loadModel('programplan')->computeProgress($executionID, 'close'); + if(in_array($project->model, array('waterfall', 'waterfallplus', 'ipd'))) + { + $result = $this->loadModel('programplan')->computeProgress($executionID, 'close'); + if(is_array($result)) return $this->send($result); + } $this->executeHooks($executionID); @@ -2873,6 +2907,7 @@ class execution extends control $this->app->loadLang('stage'); $this->app->loadLang('programplan'); $this->loadModel('product'); + $this->loadModel('project'); $this->loadModel('datatable'); $from = $this->app->tab; @@ -3050,7 +3085,7 @@ class execution extends control if($this->post->exportType == 'selected' && strpos(",$checkedItem,", ",pid{$execution->id},") === false) continue; $execution->PM = zget($users, $execution->PM); - $execution->status = isset($execution->delay) ? $executionLang->delayed : $this->processStatus('execution', $execution); + $execution->status = !empty($execution->delay) ? $executionLang->delayed : $this->processStatus('execution', $execution); $execution->progress .= '%'; $execution->name = isset($execution->title) ? $execution->title : $execution->name; $execution->type = zget($this->lang->execution->typeList, $execution->type, $this->lang->executionCommon); diff --git a/module/execution/js/batchedit.ui.js b/module/execution/js/batchedit.ui.js index 9360903740..18c91de382 100644 --- a/module/execution/js/batchedit.ui.js +++ b/module/execution/js/batchedit.ui.js @@ -25,7 +25,16 @@ window.renderRowData = function($row, index, row) options.disabled = row.grade > 1 && parentType != 'mix'; if(projectModel == 'ipd') options.disabled = true; } + $row.attr('data-parent', row.parent); + + $row.find('[data-name="lifetime"]').find('.picker-box').on('inited', function(e, info) + { + let $attribute = info[0]; + $attribute.render({items: stageItems, required: true, name: 'attribute[' + row.id + ']', disabled: row.grade > 1 && parentType != 'mix'}); + if(typeof row != 'undefined' && typeof row.hasDeliverable != 'undefined') $attribute.render({disabled: true}); + $(e.target).attr('data-parent', row.parent); + }); } $row.find('[data-name="lifetime"]').find('.picker-box').on('inited', function(e, info) { info[0].render(options); }); diff --git a/module/execution/js/create.ui.js b/module/execution/js/create.ui.js index 870fd16f71..3b31ea89b0 100644 --- a/module/execution/js/create.ui.js +++ b/module/execution/js/create.ui.js @@ -121,3 +121,10 @@ function toggleOpsTip() $(this).closest('.form-group').append('
      ' + typeDesc + '
      '); } } + +function setParentStage() +{ + const parentStage = $('input[name=parent]').val(); + const type = $('input[name=type]').val(); + loadPage($.createLink('execution', 'create', 'projectID=' + projectID + '&executionID=0©ExecutionID=&planID=0&confirm=no&productID=0&extra=type=' + type + ',parentStage=' + parentStage)); +} \ No newline at end of file diff --git a/module/execution/lang/de.php b/module/execution/lang/de.php index 2bbc46e4c9..853a3c9935 100644 --- a/module/execution/lang/de.php +++ b/module/execution/lang/de.php @@ -141,7 +141,7 @@ $lang->execution->kanbanNoLinkProduct = "Kanban not linked {$lang->productCommon $lang->execution->myTask = "My Task"; $lang->execution->list = "{$lang->executionCommon} List"; $lang->execution->allProject = 'All'; -$lang->execution->method = 'Management Method'; +$lang->execution->method = 'Method'; $lang->execution->sameAsParent = "Same as parent"; $lang->execution->selectStoryPlan = 'Select Plan'; $lang->execution->parentStage = 'Parent Stage'; diff --git a/module/execution/lang/en.php b/module/execution/lang/en.php index c3a89ca686..7bf9c3c25a 100644 --- a/module/execution/lang/en.php +++ b/module/execution/lang/en.php @@ -141,7 +141,7 @@ $lang->execution->kanbanNoLinkProduct = "Kanban not linked {$lang->productCommon $lang->execution->myTask = "My Task"; $lang->execution->list = 'List'; $lang->execution->allProject = 'All'; -$lang->execution->method = 'Management Method'; +$lang->execution->method = 'Method'; $lang->execution->sameAsParent = "Same as parent"; $lang->execution->selectStoryPlan = 'Select Plan'; $lang->execution->parentStage = 'Parent Stage'; diff --git a/module/execution/lang/fr.php b/module/execution/lang/fr.php index 9bef4392cf..becad61f4c 100644 --- a/module/execution/lang/fr.php +++ b/module/execution/lang/fr.php @@ -141,7 +141,7 @@ $lang->execution->kanbanNoLinkProduct = "Kanban not linked {$lang->productCommon $lang->execution->myTask = "My Task"; $lang->execution->list = "{$lang->executionCommon} List"; $lang->execution->allProject = 'Tous'; -$lang->execution->method = 'Management Method'; +$lang->execution->method = 'Method'; $lang->execution->sameAsParent = "Same as parent"; $lang->execution->selectStoryPlan = 'Select Plan'; $lang->execution->parentStage = 'Parent Stage'; diff --git a/module/execution/lang/zh-cn.php b/module/execution/lang/zh-cn.php index 92a7ce2294..8b5fb30479 100644 --- a/module/execution/lang/zh-cn.php +++ b/module/execution/lang/zh-cn.php @@ -158,7 +158,7 @@ $lang->execution->leftHours = '预计剩余'; $lang->execution->copyTeamTip = "可以选择复制{$lang->projectCommon}或{$lang->execution->common}团队的成员"; $lang->execution->daysGreaterProject = '可用工日不能大于执行的可用工日『%s』'; $lang->execution->errorHours = '可用工时/天不能大于『24』'; -$lang->execution->agileplusMethodTip = "融合敏捷{$lang->projectCommon}创建执行时,支持{$lang->executionCommon}和看板两种管理方法。"; +$lang->execution->agileplusMethodTip = "融合{$lang->projectCommon}创建执行时,支持{$lang->executionCommon}和看板两种管理方法。"; $lang->execution->typeTip = '“综合”类型的父阶段可以创建其它类型的子级,其它类型的父阶段只能创建同类型的子级'; $lang->execution->waterfallTip = "瀑布{$lang->projectCommon}和融合瀑布{$lang->projectCommon}中,"; $lang->execution->progressTip = '总进度 = 已消耗工时 / (已消耗工时 + 剩余工时)'; diff --git a/module/execution/model.php b/module/execution/model.php index 0dc85235f3..dc614c5a07 100755 --- a/module/execution/model.php +++ b/module/execution/model.php @@ -539,17 +539,24 @@ class executionModel extends model * @param array $executionIdList * @param string $status * @access public - * @return string 返回不符合条件被过滤了的执行,来提示执行下任务或子阶段已经开始,无法修改,已过滤。参见 story#41875。 + * @return array 返回不符合条件被过滤了的执行,来提示执行下任务或子阶段已经开始,无法修改,已过滤。参见 story#41875。 */ - public function batchChangeStatus(array $executionIdList, string $status): string + public function batchChangeStatus(array $executionIdList, string $status): array { /* Sort the IDs, the child stage comes first, and the parent stage follows. */ - $executionIdList = $this->dao->select('id')->from(TABLE_EXECUTION)->where('id')->in($executionIdList)->orderBy('grade_desc')->fetchPairs(); + $executionList = $this->dao->select('id,name,status,grade,deliverable')->from(TABLE_EXECUTION)->where('id')->in($executionIdList)->orderBy('grade_desc')->fetchAll('id'); $this->loadModel('programplan'); - $filteredStages = ''; - foreach($executionIdList as $executionID) + $message = array('byChild' => '', 'byDeliverable' => ''); + foreach($executionList as $executionID => $execution) { + $needCheckDeliverable = $status == 'closed' && $execution->status == 'doing' && $execution->grade == 1; + if(in_array($this->config->edition, array('max', 'ipd')) && $needCheckDeliverable && !$this->canCloseByDeliverable($execution)) + { + $message['byDeliverable'] .= '#' . $execution->id . ' ' . $execution->name . "\n"; + continue; + } + /* The state of the parent stage or the sibling stage may be affected by the child stage before the change, so it cannot be checked in advance. */ $selfAndChildrenList = $this->programplan->getSelfAndChildrenList($executionID); $selfAndChildren = $selfAndChildrenList[$executionID]; @@ -557,7 +564,7 @@ class executionModel extends model if($status == 'wait' and $execution->status != 'wait') { - $filteredStages .= $this->changeStatus2Wait($executionID, $selfAndChildren); + $message['byChild'] .= $this->changeStatus2Wait($executionID, $selfAndChildren); } if($status == 'doing' and $execution->status != 'doing') @@ -567,11 +574,12 @@ class executionModel extends model if(($status == 'suspended' and $execution->status != 'suspended') or ($status == 'closed' and $execution->status != 'closed')) { - $filteredStages .= $this->changeStatus2Inactive($executionID, $status, $selfAndChildren); + $message['byChild'] .= $this->changeStatus2Inactive($executionID, $status, $selfAndChildren); } } - return trim($filteredStages, ','); + $message['byChild'] = trim($message['byChild'], ','); + return $message; } /** @@ -906,9 +914,9 @@ class executionModel extends model * @param int $executionID * @param object $postData * @access public - * @return array|false + * @return int|false */ - public function close(int $executionID, object $postData): array|false + public function close(int $executionID, object $postData): int|false { $oldExecution = $this->fetchById($executionID); /* Save previous execution to variable for later compare. */ @@ -937,7 +945,7 @@ class executionModel extends model } $this->loadModel('score')->create('execution', 'close', $oldExecution); - return $changes; + return $actionID; } /** @@ -1452,7 +1460,7 @@ class executionModel extends model ->fi() ->orderBy($orderBy) ->page($pager, 't1.id') - ->fetchAll('id'); + ->fetchAll('id', false); } /** @@ -1481,6 +1489,7 @@ class executionModel extends model $today = helper::today(); $burns = $this->getBurnData($executions); $parentExecutions = $this->dao->select('parent,parent')->from(TABLE_EXECUTION)->where('parent')->ne(0)->andWhere('deleted')->eq(0)->fetchPairs(); + $statusGroup = $this->dao->select('parent,status')->from(TABLE_EXECUTION)->where('parent')->in(array_keys($executions))->fetchGroup('parent', 'status'); /* Get workingDays. */ $earliestEnd = $today; @@ -1503,6 +1512,13 @@ class executionModel extends model if(isset($parentExecutions[$execution->id])) $executions[$execution->id]->isParent = 1; if(empty($productID) && !empty($productList[$execution->id])) $execution->product = trim($productList[$execution->id]->product, ','); + /** 如果子执行都关闭了,则父执行可以手动关闭。 */ + if(isset($statusGroup[$execution->id])) + { + $childStatus = array_keys($statusGroup[$execution->id]); + if(count($childStatus) == 1 && $childStatus[0] == 'closed') $execution->parentCanClose = true; + } + /* Judge whether the execution is delayed. */ if($execution->status != 'done' && $execution->status != 'closed' && $execution->status != 'suspended' && !empty($workingDays)) { @@ -1615,7 +1631,7 @@ class executionModel extends model { if(!$project) return $executions; - if(isset($project->model) && in_array($project->model, array('waterfall', 'waterfallplus'))) + if(isset($project->model) && in_array($project->model, array('waterfall', 'waterfallplus', 'ipd'))) { $executionProducts = array(); if($project->hasProduct && ($project->stageBy == 'product')) @@ -3827,7 +3843,7 @@ class executionModel extends model $action = strtolower($action); if($action == 'start') return $execution->status == 'wait'; - if($action == 'close') return $execution->status != 'closed' && (!isset($execution->isParent) || (isset($execution->isParent) && !$execution->isParent)); + if($action == 'close') return $execution->status != 'closed' && (empty($execution->isParent) || !empty($execution->parentCanClose)); if($action == 'suspend') return $execution->status == 'wait' || $execution->status == 'doing'; if($action == 'putoff') return $execution->status == 'wait' || $execution->status == 'doing'; if($action == 'activate') return $execution->status == 'suspended' || $execution->status == 'closed'; @@ -4797,6 +4813,7 @@ class executionModel extends model $execution->id = 'pid' . (string)$execution->id; $execution->projectID = $execution->project; $execution->project = $execution->projectName; + $execution->rawParent = $execution->parent; $execution->parent = (isset($executionList[$execution->parent]) && $execution->parent && $execution->grade > 1) ? 'pid' . (string)$execution->parent : ''; $execution->hasChild = !empty($execution->isParent); $execution->isParent = !empty($execution->isParent) or !empty($execution->tasks); @@ -4841,6 +4858,8 @@ class executionModel extends model $execution->PMAvatar = zget($avatarList, $execution->PMAccount, ''); } + if(in_array($this->config->edition, array('max', 'ipd'))) $execution->deliverable = $this->project->countDeliverable($execution, 'execution'); + $rows[$execution->id] = $execution; /* Append tasks and child stages. */ diff --git a/module/execution/tao.php b/module/execution/tao.php index 984290a0fd..071f91c29d 100644 --- a/module/execution/tao.php +++ b/module/execution/tao.php @@ -142,8 +142,8 @@ class executionTao extends executionModel $executions[$executionID]->lastEditedBy = $this->app->user->account; $executions[$executionID]->lastEditedDate = helper::now(); - if(isset($postData->code)) $executions[$executionID]->code = $executionCode; - if(isset($postData->project)) $executions[$executionID]->project = zget($postData->project, $executionID, 0); + if(isset($postData->code)) $executions[$executionID]->code = $executionCode; + if(isset($postData->project)) $executions[$executionID]->project = zget($postData->project, $executionID, 0); if(isset($postData->attribute[$executionID])) $executions[$executionID]->attribute = zget($postData->attribute, $executionID, ''); if(isset($postData->lifetime[$executionID])) $executions[$executionID]->lifetime = $postData->lifetime[$executionID]; diff --git a/module/execution/test/tao/setkanbanmenu.php b/module/execution/test/tao/setkanbanmenu.php index 782884b17c..d5499a2938 100644 --- a/module/execution/test/tao/setkanbanmenu.php +++ b/module/execution/test/tao/setkanbanmenu.php @@ -11,7 +11,17 @@ title=测试executionModel->setKanbanMenu(); timeout=0 cid=1 +- 测试替换看板执行的二级菜单第kanban条的link属性 @看板|execution|kanban|executionID=%s +- 查看交付物菜单第deliverable条的link属性 @交付物|execution|deliverable|executionID=%s +- 查看构建菜单第build条的link属性 @构建|execution|build|executionID=%s +- 查看累积流图菜单第CFD条的link属性 @累积流图|execution|cfd|executionID=%s +- 查看设置菜单第settings条的link属性 @设置|execution|view|executionID=%s + */ $executionTester = new executionTest(); -r($executionTester->setKanbanMenuTest()) && p('kanban:link') && e('看板|execution|kanban|executionID=%s'); // 测试替换看板执行的二级菜单 +r($executionTester->setKanbanMenuTest()) && p('kanban:link') && e('看板|execution|kanban|executionID=%s'); // 测试替换看板执行的二级菜单 +r($executionTester->setKanbanMenuTest()) && p('deliverable:link') && e('交付物|execution|deliverable|executionID=%s'); // 查看交付物菜单 +r($executionTester->setKanbanMenuTest()) && p('build:link') && e('构建|execution|build|executionID=%s'); // 查看构建菜单 +r($executionTester->setKanbanMenuTest()) && p('CFD:link') && e('累积流图|execution|cfd|executionID=%s'); // 查看累积流图菜单 +r($executionTester->setKanbanMenuTest()) && p('settings:link') && e('设置|execution|view|executionID=%s'); // 查看设置菜单 \ No newline at end of file diff --git a/module/execution/ui/create.field.php b/module/execution/ui/create.field.php index 748ed9b788..81881441a0 100644 --- a/module/execution/ui/create.field.php +++ b/module/execution/ui/create.field.php @@ -57,6 +57,7 @@ $fields->field('code') $fields->field('type') ->required() + ->labelHint($isStage ? $lang->execution->typeTip : '') ->control($isStage ? 'picker' : 'checkBtnGroup') ->label($showExecutionExec ? $lang->execution->execType : $lang->execution->type) ->name($isStage ? 'attribute' : 'lifetime') diff --git a/module/execution/ui/create.html.php b/module/execution/ui/create.html.php index 28383812be..5572e6e7c2 100644 --- a/module/execution/ui/create.html.php +++ b/module/execution/ui/create.html.php @@ -68,6 +68,7 @@ formGridPanel on::change('[name=type]', 'setType'), on::change('[name=begin],[name=end]', 'computeWorkDays'), on::change('[name=teams]', 'loadMembers'), + on::change('[name=parent]', 'setParentStage'), on::change('#copyTeam', 'toggleCopyTeam'), on::click('[name=lifetime]', 'toggleOpsTip'), set::fields($fields) diff --git a/module/execution/ui/grouptask.html.php b/module/execution/ui/grouptask.html.php index cd1d997942..19ce09eb79 100644 --- a/module/execution/ui/grouptask.html.php +++ b/module/execution/ui/grouptask.html.php @@ -136,6 +136,7 @@ foreach($lang->execution->groups as $key => $value) ( 'text' => $value, 'url' => $link, + 'active' => $key == $groupBy, 'data-app' => $app->tab ); } @@ -416,7 +417,7 @@ $tbody = function() use($tasks, $lang, $groupBy, $users, $groupByList, $executio array ( 'url' => createLink('task', 'delete', "executionID={$task->execution}&taskID={$task->id}"), - 'data-confirm' => $lang->task->confirmDelete, + 'data-confirm' => $task->isParent ? $lang->task->confirmDeleteParent : $lang->task->confirmDelete, 'class' => 'btn ghost toolbar-item text-primary square size-sm ajax-submit', 'icon' => 'trash' ) diff --git a/module/execution/ui/testcase.html.php b/module/execution/ui/testcase.html.php index bf0a0db3dd..a63806e212 100644 --- a/module/execution/ui/testcase.html.php +++ b/module/execution/ui/testcase.html.php @@ -89,6 +89,7 @@ foreach($cases as $case) $cols = $this->loadModel('datatable')->getSetting('execution', 'testcase'); $cols['id']['name'] = $cols['id']['type'] = 'id'; +if(isset($cols['pri'])) $cols['pri']['priList'] = $lang->testcase->priList; dtable ( diff --git a/module/execution/zen.php b/module/execution/zen.php index 1f88c82b10..e7931f610a 100644 --- a/module/execution/zen.php +++ b/module/execution/zen.php @@ -553,7 +553,8 @@ class executionZen extends execution } elseif($groupBy == 'status') { - $groupTasks[$this->lang->task->statusList[$task->status]][] = $task; + $statusList = arrayUnion($this->lang->task->statusList, array('changed' => $this->lang->task->storyChange)); + $groupTasks[$statusList[$task->status]][] = $task; } elseif($groupBy == 'assignedTo') { diff --git a/module/file/model.php b/module/file/model.php index 611e7bc02e..5b4732dedc 100755 --- a/module/file/model.php +++ b/module/file/model.php @@ -185,7 +185,7 @@ class fileModel extends model $file['objectID'] = $objectID; $file['addedBy'] = $this->app->user->account; $file['addedDate'] = $now; - $file['extra'] = $extra; + if($extra) $file['extra'] = $extra; unset($file['tmpname']); $this->dao->insert(TABLE_FILE)->data($file)->exec(); $fileTitles[$this->dao->lastInsertId()] = $file['title']; @@ -279,6 +279,7 @@ class fileModel extends model $file['title'] = $purifier->purify($file['title']); $file['size'] = $size[$id]; $file['tmpname'] = $tmp_name[$id]; + $file['extra'] = !empty($extra[$id]) ? $extra[$id] : ''; $files[] = $file; } } @@ -464,12 +465,12 @@ class fileModel extends model /** * Set path name of the uploaded file to be saved. * - * @param int $fileID - * @param string $extension + * @param string|int $fileID + * @param string $extension * @access public * @return string */ - public function setPathName(int $fileID, string $extension): string + public function setPathName(string|int $fileID, string $extension): string { $sessionID = session_id(); $randString = substr($sessionID, mt_rand(0, strlen($sessionID) - 5), 3); diff --git a/module/group/lang/de.php b/module/group/lang/de.php index 4477bf77da..76c0719256 100644 --- a/module/group/lang/de.php +++ b/module/group/lang/de.php @@ -488,6 +488,7 @@ $lang->group->package->projectBuild = 'Project Build'; $lang->group->package->importCaseLib = 'Import Case Lib'; $lang->group->package->commonSetting = 'Common Setting'; $lang->group->package->stageSetting = 'Stage Setting'; +$lang->group->package->deliverable = 'Deliverable Setting'; $lang->group->package->classify = 'Classify'; $lang->group->package->cmcl = 'Cmcl'; $lang->group->package->auditcl = 'Auditcl'; @@ -623,5 +624,7 @@ $lang->group->package->application = 'Manage Application'; $lang->group->package->component = 'Component'; $lang->group->package->browseRule = 'Browse Rule'; $lang->group->package->manageRule = 'Manage Rule'; +$lang->group->package->executionDeliverable = 'Execution Deliverable'; +$lang->group->package->projectDeliverable = 'Project Deliverable'; include (dirname(__FILE__) . '/resource.php'); diff --git a/module/group/lang/en.php b/module/group/lang/en.php index ae33489df8..f6f517c0da 100644 --- a/module/group/lang/en.php +++ b/module/group/lang/en.php @@ -488,6 +488,7 @@ $lang->group->package->projectBuild = 'Project Build'; $lang->group->package->importCaseLib = 'Import Case Lib'; $lang->group->package->commonSetting = 'Common Setting'; $lang->group->package->stageSetting = 'Stage Setting'; +$lang->group->package->deliverable = 'Deliverable Setting'; $lang->group->package->classify = 'Classify'; $lang->group->package->cmcl = 'Cmcl'; $lang->group->package->auditcl = 'Auditcl'; @@ -623,5 +624,7 @@ $lang->group->package->application = 'Manage Application'; $lang->group->package->component = 'Component'; $lang->group->package->browseRule = 'Browse Rule'; $lang->group->package->manageRule = 'Manage Rule'; +$lang->group->package->executionDeliverable = 'Execution Deliverable'; +$lang->group->package->projectDeliverable = 'Project Deliverable'; include (dirname(__FILE__) . '/resource.php'); diff --git a/module/group/lang/fr.php b/module/group/lang/fr.php index db7a362453..261d5ddd46 100644 --- a/module/group/lang/fr.php +++ b/module/group/lang/fr.php @@ -488,6 +488,7 @@ $lang->group->package->projectBuild = 'Project Build'; $lang->group->package->importCaseLib = 'Import Case Lib'; $lang->group->package->commonSetting = 'Common Setting'; $lang->group->package->stageSetting = 'Stage Setting'; +$lang->group->package->deliverable = 'Deliverable Setting'; $lang->group->package->classify = 'Classify'; $lang->group->package->cmcl = 'Cmcl'; $lang->group->package->auditcl = 'Auditcl'; @@ -623,5 +624,7 @@ $lang->group->package->application = 'Manage Application'; $lang->group->package->component = 'Component'; $lang->group->package->browseRule = 'Browse Rule'; $lang->group->package->manageRule = 'Manage Rule'; +$lang->group->package->executionDeliverable = 'Execution Deliverable'; +$lang->group->package->projectDeliverable = 'Project Deliverable'; include (dirname(__FILE__) . '/resource.php'); diff --git a/module/group/lang/zh-cn.php b/module/group/lang/zh-cn.php index f302c6a070..a4bd06d6ab 100644 --- a/module/group/lang/zh-cn.php +++ b/module/group/lang/zh-cn.php @@ -488,6 +488,7 @@ $lang->group->package->projectBuild = '项目构建'; $lang->group->package->importCaseLib = '导入用例库'; $lang->group->package->commonSetting = '通用配置'; $lang->group->package->stageSetting = '阶段列表设置'; +$lang->group->package->deliverable = '交付物设置'; $lang->group->package->classify = '分类项设置'; $lang->group->package->cmcl = '审计设置'; $lang->group->package->auditcl = 'QA检查项设置'; @@ -623,5 +624,7 @@ $lang->group->package->application = '管理应用'; $lang->group->package->component = '组件'; $lang->group->package->browseRule = '浏览规则'; $lang->group->package->manageRule = '创建维护规则'; +$lang->group->package->executionDeliverable = '交付物'; +$lang->group->package->projectDeliverable = '交付物'; include (dirname(__FILE__) . '/resource.php'); diff --git a/module/group/packagemanager.php b/module/group/packagemanager.php index b79539aace..0b172feee9 100644 --- a/module/group/packagemanager.php +++ b/module/group/packagemanager.php @@ -65,6 +65,10 @@ $config->group->subset->project = new stdclass(); $config->group->subset->project->order = 170; $config->group->subset->project->nav = 'project'; +$config->group->subset->projectDeliverable = new stdclass(); +$config->group->subset->projectDeliverable->order = 171; +$config->group->subset->projectDeliverable->nav = 'project'; + $config->group->subset->projectplan = new stdclass(); $config->group->subset->projectplan->order = 180; $config->group->subset->projectplan->nav = 'project'; @@ -153,6 +157,10 @@ $config->group->subset->execution = new stdclass(); $config->group->subset->execution->order = 530; $config->group->subset->execution->nav = 'execution'; +$config->group->subset->executionDeliverable = new stdclass(); +$config->group->subset->executionDeliverable->order = 531; +$config->group->subset->executionDeliverable->nav = 'execution'; + $config->group->subset->task = new stdclass(); $config->group->subset->task->order = 540; $config->group->subset->task->nav = 'execution'; @@ -1010,6 +1018,7 @@ $config->group->package->manageProject->privs['project-activate'] = array( $config->group->package->manageProject->privs['project-updateOrder'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 7, 'depend' => array('project-browse'), 'recommend' => array('project-create', 'project-edit')); $config->group->package->manageProject->privs['project-manageProducts'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('project-browse'), 'recommend' => array('project-create', 'project-edit')); $config->group->package->manageProject->privs['project-programTitle'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('project-browse'), 'recommend' => array('program-browse')); +$config->group->package->manageProject->privs['project-workflowGroup'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('project-browse'), 'recommend' => array('program-browse')); $config->group->package->importProject = new stdclass(); $config->group->package->importProject->order = 15; @@ -1047,6 +1056,12 @@ $config->group->package->projectWhitelist->privs['project-whitelist'] = ar $config->group->package->projectWhitelist->privs['project-addWhitelist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 110, 'depend' => array('project-whitelist'), 'recommend' => array('project-unbindWhitelist')); $config->group->package->projectWhitelist->privs['project-unbindWhitelist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 115, 'depend' => array('project-whitelist'), 'recommend' => array('project-addWhitelist')); +$config->group->package->projectDeliverable = new stdclass(); +$config->group->package->projectDeliverable->order = 5; +$config->group->package->projectDeliverable->subset = 'projectDeliverable'; +$config->group->package->projectDeliverable->privs = array(); +$config->group->package->projectDeliverable->privs['project-deliverable'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array()); + $config->group->package->browseExecution = new stdclass(); $config->group->package->browseExecution->order = 5; $config->group->package->browseExecution->subset = 'execution'; @@ -1094,6 +1109,13 @@ $config->group->package->executionWhitelist->privs['execution-whitelist'] $config->group->package->executionWhitelist->privs['execution-addWhitelist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 245, 'depend' => array('execution-whitelist'), 'recommend' => array('execution-unbindWhitelist')); $config->group->package->executionWhitelist->privs['execution-unbindWhitelist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 250, 'depend' => array('execution-whitelist'), 'recommend' => array('execution-addWhitelist')); +$config->group->package->executionDeliverable = new stdclass(); +$config->group->package->executionDeliverable->order = 5; +$config->group->package->executionDeliverable->subset = 'executionDeliverable'; +$config->group->package->executionDeliverable->nav = 'execution'; +$config->group->package->executionDeliverable->privs = array(); +$config->group->package->executionDeliverable->privs['execution-deliverable'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array()); + $config->group->package->gantt = new stdclass(); $config->group->package->gantt->order = 5; $config->group->package->gantt->subset = 'executionview'; @@ -2114,8 +2136,10 @@ $config->group->package->programPlan = new stdclass(); $config->group->package->programPlan->order = 5; $config->group->package->programPlan->subset = 'programplan'; $config->group->package->programPlan->privs = array(); -$config->group->package->programPlan->privs['programplan-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('programplan-browse'), 'recommend' => array('programplan-edit')); -$config->group->package->programPlan->privs['programplan-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('programplan-browse'), 'recommend' => array('programplan-create')); +$config->group->package->programPlan->privs['programplan-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('programplan-browse'), 'recommend' => array('programplan-edit')); +$config->group->package->programPlan->privs['programplan-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('programplan-browse'), 'recommend' => array('programplan-create')); +$config->group->package->programPlan->privs['programplan-exportTemplate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('programplan-browse', 'project-execution'), 'recommend' => array()); +$config->group->package->programPlan->privs['programplan-import'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('programplan-browse', 'project-execution'), 'recommend' => array()); $config->group->package->browseDesign = new stdclass(); $config->group->package->browseDesign->order = 5; @@ -2565,7 +2589,7 @@ $config->group->package->workflowGroup = new stdclass(); $config->group->package->workflowGroup->order = 65; $config->group->package->workflowGroup->subset = 'workflow'; $config->group->package->workflowGroup->privs = array(); -$config->group->package->workflowGroup->privs['workflowgroup-product'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 5, 'depend' => array('workflow-browseFlow'), 'recommend' => array()); +$config->group->package->workflowGroup->privs['workflowgroup-product'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 5, 'depend' => array('workflow-browseFlow'), 'recommend' => array()); $config->group->package->workflowGroup->privs['workflowgroup-project'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 10, 'depend' => array('workflow-browseFlow'), 'recommend' => array()); $config->group->package->workflowGroup->privs['workflowgroup-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 15, 'depend' => array('workflow-browseFlow'), 'recommend' => array()); $config->group->package->workflowGroup->privs['workflowgroup-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 20, 'depend' => array('workflow-browseFlow'), 'recommend' => array()); @@ -2578,6 +2602,7 @@ $config->group->package->workflowGroup->privs['workflowgroup-setExclusive'] = $config->group->package->workflowGroup->privs['workflowgroup-activateFlow'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 55, 'depend' => array('workflow-browseFlow'), 'recommend' => array()); $config->group->package->workflowGroup->privs['workflowgroup-deactivateFlow'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 60, 'depend' => array('workflow-browseFlow'), 'recommend' => array()); $config->group->package->workflowGroup->privs['workflowgroup-rule'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 65, 'depend' => array('workflow-browseFlow'), 'recommend' => array()); +$config->group->package->workflowGroup->privs['workflowgroup-deliverable'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 70, 'depend' => array('workflowgroup-project'), 'recommend' => array()); $config->group->package->workflow = new stdclass(); $config->group->package->workflow->order = 5; @@ -3008,6 +3033,16 @@ $config->group->package->stageSetting->privs['stage-edit'] = array('editi $config->group->package->stageSetting->privs['stage-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('stage-create', 'stage-edit')); $config->group->package->stageSetting->privs['stage-plusBrowse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array(), 'recommend' => array()); +$config->group->package->deliverable = new stdclass(); +$config->group->package->deliverable->order = 20; +$config->group->package->deliverable->subset = 'modelconfig'; +$config->group->package->deliverable->privs = array(); +$config->group->package->deliverable->privs['deliverable-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array()); +$config->group->package->deliverable->privs['deliverable-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('deliverable-browse'), 'recommend' => array()); +$config->group->package->deliverable->privs['deliverable-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('deliverable-browse'), 'recommend' => array('deliverable-view', 'deliverable-browse')); +$config->group->package->deliverable->privs['deliverable-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('deliverable-browse'), 'recommend' => array('deliverable-view', 'deliverable-browse')); +$config->group->package->deliverable->privs['deliverable-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('deliverable-browse'), 'recommend' => array()); + $config->group->package->classify = new stdclass(); $config->group->package->classify->order = 30; $config->group->package->classify->subset = 'modelconfig'; diff --git a/module/index/js/index.ui.js b/module/index/js/index.ui.js index 90484461ad..6f07dd05c6 100644 --- a/module/index/js/index.ui.js +++ b/module/index/js/index.ui.js @@ -59,13 +59,13 @@ function showLog(code, name, moreTitles, trace, moreInfos) } } -function triggerAppEvent(code, event, args) +function triggerAppEvent(code, event, args, options) { const app = apps.openedMap[code]; if(!app) return; - if(DEBUG) showLog(code, 'Event', event, {args}); - event = event + '.apps'; + event = event.includes('.') ? event : `${event}.apps`; + if(DEBUG && (!options || options.silent !== true)) showLog(code, 'Event', event, {args}); if(!Array.isArray(args)) args = [args]; if(app.$app) app.$app.trigger(event, args); try @@ -214,6 +214,14 @@ function openApp(url, code, options) } openedApp.zIndex = ++apps.zIndex; openedApp.$app.show().css('z-index', openedApp.zIndex); + openedApp.getPageInfo = () => { + const getPageInfo = openedApp.iframe.contentWindow.getPageInfo; + return getPageInfo ? getPageInfo() : null; + }; + openedApp.getPerfData = () => { + const getPerfData = openedApp.iframe.contentWindow.getPerfData; + return getPerfData ? getPerfData() : null; + }; /* Update on app tabs bar */ const $tabs = $('#appTabs'); @@ -583,7 +591,7 @@ function logout(url) try { data = JSON.parse(data); - if(data.load) load = data.load; + if(data.load != 'login') load = data.load; } catch (error) {} location.href = load; @@ -1176,7 +1184,8 @@ $.apps = $.extend(apps, changeAppsTheme: changeAppsTheme, updateUserToolbar: updateUserToolbar, closeApp: closeApp, - toggleMenu: toggleMenu + toggleMenu: toggleMenu, + triggerAppEvent: triggerAppEvent, }); window.notifyMessage = function(data) diff --git a/module/index/ui/index.html.php b/module/index/ui/index.html.php index f7eb6744e6..074849983b 100644 --- a/module/index/ui/index.html.php +++ b/module/index/ui/index.html.php @@ -40,6 +40,7 @@ if(!empty($latestVersionList)) $versionItems = array(); foreach($latestVersionList as $versionNumber => $versionInfo) { + if(!isset($versionInfo['name'])) continue; $versionItems[] = div ( setClass('version-list py-2'), diff --git a/module/kanban/config.php b/module/kanban/config.php index 1e33b7bb6d..0957c0d161 100644 --- a/module/kanban/config.php +++ b/module/kanban/config.php @@ -25,7 +25,6 @@ $config->kanban->editcard = new stdclass(); $config->kanban->editregion = new stdclass(); $config->kanban->splitcolumn = new stdclass(); -$config->kanban->setwip->requiredFields = 'limit'; $config->kanban->setlane->requiredFields = 'name,type'; $config->kanban->setColumn->requiredFields = 'name'; $config->kanban->create->requiredFields = 'space,name'; diff --git a/module/kanban/model.php b/module/kanban/model.php index a9afd7e514..429a57f638 100755 --- a/module/kanban/model.php +++ b/module/kanban/model.php @@ -3096,7 +3096,6 @@ class kanbanModel extends model $this->dao->update(TABLE_KANBANCOLUMN)->data($WIP, 'noLimit') ->autoCheck() ->checkIF($WIP->limit != -1, 'limit', 'gt', 0) - ->batchcheck($this->config->kanban->setwip->requiredFields, 'notempty') ->where('id')->eq($columnID) ->exec(); diff --git a/module/misc/lang/de.php b/module/misc/lang/de.php index 57fbe38f9a..cdb9133131 100644 --- a/module/misc/lang/de.php +++ b/module/misc/lang/de.php @@ -114,6 +114,8 @@ $lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec $lang->misc->feature->promptLearnMore = 'https://www.zentao.net/book/zentaopms/1097.html'; /* Release Date. */ +$lang->misc->releaseDate['21.7'] = '2025-05-16'; +$lang->misc->releaseDate['21.6.1'] = '2025-04-30'; $lang->misc->releaseDate['21.6'] = '2025-04-11'; $lang->misc->releaseDate['21.6.beta'] = '2025-03-21'; $lang->misc->releaseDate['21.5'] = '2025-03-06'; @@ -246,6 +248,7 @@ $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; /* Release Detail. */ +$lang->misc->feature->all['21.6.1'][] = array('title' => 'Documentation Bug Resolution.', 'desc' => ''); $lang->misc->feature->all['21.6'][] = array('title' => 'Jira import optimization. Multi-user document collaboration.', 'desc' => ''); $lang->misc->feature->all['21.6.beta'][] = array('title' => 'Jira 2.0 import implementation and Confluence integration deployment.', 'desc' => ''); $lang->misc->feature->all['21.5'][] = array('title' => 'Performance optimization; Enhancements for the performance of file uploads in the comment section; Document optimization.', 'desc' => ''); diff --git a/module/misc/lang/en.php b/module/misc/lang/en.php index 58283a2b86..7f71ca8df9 100644 --- a/module/misc/lang/en.php +++ b/module/misc/lang/en.php @@ -114,6 +114,8 @@ $lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec $lang->misc->feature->promptLearnMore = 'https://www.zentao.net/book/zentaopms/1097.html'; /* Release Date. */ +$lang->misc->releaseDate['21.7'] = '2025-05-16'; +$lang->misc->releaseDate['21.6.1'] = '2025-04-30'; $lang->misc->releaseDate['21.6'] = '2025-04-11'; $lang->misc->releaseDate['21.6.beta'] = '2025-03-21'; $lang->misc->releaseDate['21.5'] = '2025-03-06'; @@ -246,6 +248,7 @@ $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; /* Release Detail. */ +$lang->misc->feature->all['21.6.1'][] = array('title' => 'Documentation Bug Resolution.', 'desc' => ''); $lang->misc->feature->all['21.6'][] = array('title' => 'Jira import optimization. Multi-user document collaboration.', 'desc' => ''); $lang->misc->feature->all['21.6.beta'][] = array('title' => 'Jira 2.0 import implementation and Confluence integration deployment.', 'desc' => ''); $lang->misc->feature->all['21.5'][] = array('title' => 'Performance optimization; Enhancements for the performance of file uploads in the comment section; Document optimization.', 'desc' => ''); diff --git a/module/misc/lang/fr.php b/module/misc/lang/fr.php index 4940101655..f76e8b99f6 100644 --- a/module/misc/lang/fr.php +++ b/module/misc/lang/fr.php @@ -114,6 +114,8 @@ $lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec $lang->misc->feature->promptLearnMore = 'https://www.zentao.net/book/zentaopms/1097.html'; /* Release Date. */ +$lang->misc->releaseDate['21.7'] = '2025-05-16'; +$lang->misc->releaseDate['21.6.1'] = '2025-04-30'; $lang->misc->releaseDate['21.6'] = '2025-04-11'; $lang->misc->releaseDate['21.6.beta'] = '2025-03-21'; $lang->misc->releaseDate['21.5'] = '2025-03-06'; @@ -246,6 +248,7 @@ $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; /* Release Detail. */ +$lang->misc->feature->all['21.6.1'][] = array('title' => 'Documentation Bug Resolution.', 'desc' => ''); $lang->misc->feature->all['21.6'][] = array('title' => 'Jira import optimization. Multi-user document collaboration.', 'desc' => ''); $lang->misc->feature->all['21.6.beta'][] = array('title' => 'Jira 2.0 import implementation and Confluence integration deployment.', 'desc' => ''); $lang->misc->feature->all['21.5'][] = array('title' => 'Performance optimization; Enhancements for the performance of file uploads in the comment section; Document optimization.', 'desc' => ''); diff --git a/module/misc/lang/zh-cn.php b/module/misc/lang/zh-cn.php index b868b96084..9dc058b50c 100644 --- a/module/misc/lang/zh-cn.php +++ b/module/misc/lang/zh-cn.php @@ -114,6 +114,8 @@ $lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec $lang->misc->feature->promptLearnMore = 'https://www.zentao.net/book/zentaopms/1097.html'; /* Release Date. */ +$lang->misc->releaseDate['21.7'] = '2025-05-16'; +$lang->misc->releaseDate['21.6.1'] = '2025-04-30'; $lang->misc->releaseDate['21.6'] = '2025-04-11'; $lang->misc->releaseDate['21.6.beta'] = '2025-03-21'; $lang->misc->releaseDate['21.5'] = '2025-03-06'; @@ -246,6 +248,8 @@ $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; /* Release Detail. */ +$lang->misc->feature->all['21.7'][] = array('title' => '', 'desc' => ''); +$lang->misc->feature->all['21.6.1'][] = array('title' => '修复文档相关Bug。', 'desc' => ''); $lang->misc->feature->all['21.6'][] = array('title' => 'Jira导入优化,文档多人协作。', 'desc' => ''); $lang->misc->feature->all['21.6.beta'][] = array('title' => 'Jira导入2.0版本,Confluence导入。', 'desc' => ''); $lang->misc->feature->all['21.5'][] = array('title' => '性能优化,备注支持上传附件性能优化,文档优化。', 'desc' => ''); diff --git a/module/pivot/control.php b/module/pivot/control.php index 364c5be06e..e4407f0e12 100644 --- a/module/pivot/control.php +++ b/module/pivot/control.php @@ -168,7 +168,6 @@ class pivot extends control $saveAs = zget($_POST, 'saveAs', ''); $sql = zget($_POST, 'sql', ''); - if(strpos($field, '_') !== false) $field = substr($field, strpos($field, '_') + 1); $options = $this->pivot->getSysOptions($type, $object, $field, $sql, $saveAs); /* 根据关键字过滤选项。*/ diff --git a/module/pivot/model.php b/module/pivot/model.php index 31c4c3377b..3c2e36c4f0 100644 --- a/module/pivot/model.php +++ b/module/pivot/model.php @@ -2305,7 +2305,8 @@ class pivotModel extends model static $workflowFields = array(); if(!isset($workflowFields[$object])) $workflowFields[$object] = $this->loadModel('workflowfield')->getList($object); - $fieldObject = zget($workflowFields[$object], $field, null); + $originalField = zget($_POST, 'originalField', $field); + $fieldObject = zget($workflowFields[$object], $originalField, null); if($fieldObject) { if($fieldObject->control == 'multi-select') $this->config->dataview->multipleMappingFields[] = $object . '-' . $field; diff --git a/module/pivot/zen.php b/module/pivot/zen.php index cfa6315594..a57be88353 100644 --- a/module/pivot/zen.php +++ b/module/pivot/zen.php @@ -514,11 +514,12 @@ class pivotZen extends pivot $fieldSetting = (array)$fieldSetting; $fieldType = $fieldSetting['type']; - $data['type'] = $fieldType; - $data['object'] = $fieldSetting['object']; - $data['field'] = $fieldType != 'options' && $fieldType != 'object' ? $field : $fieldSetting['field']; - $data['saveAs'] = zget($filter, 'saveAs', $field); - $data['sql'] = $sql; + $data['type'] = $fieldType; + $data['object'] = $fieldSetting['object']; + $data['field'] = $fieldType != 'options' && $fieldType != 'object' ? $field : $fieldSetting['field']; + $data['saveAs'] = zget($filter, 'saveAs', $field); + $data['sql'] = $sql; + $data['originalField'] = zget($fieldSetting, 'field', $data['field']); } return (object)array('url' => $url, 'method' => 'post', 'data' => $data); diff --git a/module/product/tao.php b/module/product/tao.php index 5ac4c683d7..0caa9521ca 100644 --- a/module/product/tao.php +++ b/module/product/tao.php @@ -557,7 +557,7 @@ class productTao extends productModel ->andWhere('t2.type')->eq('project') ->fetch('count'); case 'executions': - return $this->dao->select('COUNT(1) AS count') + return $this->dao->select('COUNT(DISTINCT(t1.project)) AS count') ->from(TABLE_PROJECTPRODUCT)->alias('t1') ->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id') ->where('t2.deleted')->eq('0') diff --git a/module/programplan/css/create.ui.css b/module/programplan/css/create.ui.css index 9489b4f9bc..191abd2b09 100644 --- a/module/programplan/css/create.ui.css +++ b/module/programplan/css/create.ui.css @@ -4,7 +4,6 @@ td .check-list {flex-direction:row;} th.form-batch-head[data-name=ACTIONS]{width:120px;} tr.disabled td[data-name="enabled"] .switch label{filter: unset;} .max-w-100px {max-width: 100px; overflow: hidden;} -.disabled, .disabled * {pointer-events: none; opacity: 0.8;} .disabled [data-name="enabled"] {pointer-events: all; cursor: pointer !important;} button.disabled {opacity: 0.5;} td[data-name="enabled"] {vertical-align: top !important;} diff --git a/module/programplan/js/create.ui.js b/module/programplan/js/create.ui.js index 5d783acbca..c11cd2028f 100644 --- a/module/programplan/js/create.ui.js +++ b/module/programplan/js/create.ui.js @@ -131,15 +131,11 @@ window.handleRenderRow = function($row, index, data) $row.attr('data-parent', '-1'); if($prevRow.length == 1) { - while($prevLevelRow.length == 1) - { - if($prevLevelRow.attr('data-level') == level - 1) break; - $prevLevelRow = $prevLevelRow.prev(); - } + if($prevLevelRow.attr('data-level') != level - 1) $prevLevelRow = $row.prevAll('tr[data-level="' + (level - 1) + '"]').first(); if($prevLevelRow.length == 1) $row.attr('data-parent', $prevLevelRow.attr('data-gid')); } - if($row.find('input[data-name="milestone"]:checked').length == 0) $row.find('input[data-name="milestone"]').eq(1).prop('checked', true); //里程碑默认选择“否”。 + if($row.find('input[data-name="milestone"]:checked').length == 0) $row.find('input[data-name="milestone"]').eq(1).prop('checked', true); //里程碑默认选择"否"。 if($prevLevelRow.length && $prevLevelRow.find('input[data-name="syncData"]').val() == '1') $row.find('input[data-name="syncData"]').val(1); /* 处理已有数据字段状态。隐藏的删除按钮,禁用管理方法字段。 */ @@ -149,12 +145,12 @@ window.handleRenderRow = function($row, index, data) $row.find('[data-name="type"]').find('.picker-box').on('inited', function(e, info){ info[0].render({disabled: true}); }); } - /* 如果管理方法不是“阶段”,禁用拆分子级按钮,禁用工作量占比字段。 */ + /* 如果管理方法不是"阶段",禁用拆分子级按钮,禁用工作量占比字段。 */ const $currentType = $row.find('[data-name="type"] input[name^=type]'); if((data != undefined && data.type != undefined && data.type != 'stage') || ($currentType.length && $currentType.val() != 'stage')) { $row.find('input[data-name="percent"]').prop('disabled', true); - $row.find('[data-name="ACTIONS"]').find('[data-type="addSub"]').addClass('disabled').prop('disabled', true); + $row.find('[data-name="ACTIONS"]').find('[data-type="addSub"]').prop('disabled', true).attr('title', addSubTip); } $row.find('[data-name="type"]').find('.picker-box').on('inited', function(e, info) @@ -207,12 +203,42 @@ window.handleRenderRow = function($row, index, data) } }); + /* Render type picker when move. */ + let $typePicker = $row.find('[data-name="type"]').find('.picker-box').zui('picker'); + if($typePicker != undefined && level > 0) + { + let $prevRow = $row.prev(); + let typeItems = []; + if($prevRow.length == 0 || $prevRow.attr('data-level') < level) + { + for(i in typeList) typeItems.push({'text': typeList[i], 'value': i}); + } + else + { + let type = $row.find('[data-name="type"]').find('[name^=type]').val(); + for(i in typeList) + { + if(type == 'stage' && i == 'stage') typeItems.push({'text': typeList[i], 'value': i}); + if(type != 'stage' && i != 'stage') typeItems.push({'text': typeList[i], 'value': i}); + } + } + + $typePicker.render({items: typeItems}); + } + + /* 已关闭且有交付物的阶段无法变更阶段类型。 */ + $row.find('[data-name="attribute"]').find('.picker-box').on('inited', function(e, info) + { + if(typeof data != 'undefined' && typeof data.hasDeliverable != 'undefined') info[0].render({disabled: true}); + }); + if(project.model == 'ipd') { if(planID == 0 && level == 0) { - $row.find('[data-name="ACTIONS"]').find('[data-type="sort"]').addClass('disabled').prop('disabled', true); - $row.find('[data-name="ACTIONS"]').find('[data-type="addSibling"]').addClass('disabled').prop('disabled', true); + $row.find('[data-name="ACTIONS"]').find('[data-type="sort"]').addClass('disabled').attr('title', sortableTip); + $row.find('[data-name="ACTIONS"]').find('[data-type="addSibling"]').prop('disabled', true).attr('title', addSiblingTip); + $row.find('[data-name="ACTIONS"]').find('[data-type="delete"]').prop('disabled', true); } $row.find('[data-name="attribute"]').find('.picker-box').on('inited', function(e, info){ info[0].render({disabled: true}); }); @@ -257,11 +283,7 @@ window.handleRenderRow = function($row, index, data) if($enabled.find('input.hidden').length > 0) $enabled.find('input.hidden').attr('name', $checkbox.attr('name')); let $rootRow = $row; - while($rootRow.length == 1) - { - if($rootRow.attr('data-level') == 0) break; - $rootRow = $rootRow.prev(); - } + if($rootRow.attr('data-level') != 0) $rootRow = $row.prevAll('tr[data-level="0"]').first(); if($rootRow.length == 1 && !$rootRow.find('td[data-name=enabled] input[type=checkbox]').prop('checked')) { $row.addClass('disabled'); @@ -414,7 +436,7 @@ window.changeType = function(obj) const $target = $(obj); let $row = $target.closest('tr'); $row.find('input[data-name="percent"]').prop('disabled', type != 'stage'); - $row.find('[data-name="ACTIONS"]').find('[data-type="addSub"]').toggleClass('disabled', type != 'stage').prop('disabled', type != 'stage'); + $row.find('[data-name="ACTIONS"]').find('[data-type="addSub"]').prop('disabled', type != 'stage').attr('title', type != 'stage' ? addSubTip : ''); let $nextRow = $row.next(); let level = $row.attr('data-level'); @@ -443,7 +465,7 @@ window.changeType = function(obj) if($nextRow.attr('data-level') != level) return; //只修改同级的管理方法。 $nextRow.find('input[data-name="percent"]').prop('disabled', type != 'stage'); - $nextRow.find('[data-name="ACTIONS"]').find('[data-type="addSub"]').toggleClass('disabled', type != 'stage').prop('disabled', type != 'stage'); + $nextRow.find('[data-name="ACTIONS"]').find('[data-type="addSub"]').prop('disabled', type != 'stage').attr('title', type != 'stage' ? addSubTip : ''); let $nextTypePicker = $nextRow.find('.picker-box[data-name=type]').zui('picker'); if($nextTypePicker == undefined) return; @@ -472,43 +494,35 @@ window.onMove = function(event, originEvent) return true; } -$(function() +window.onSort = function(e) { - window.waitDom('[data-zui-sortable]', function() - { - const $batchForm = $('[data-zui-batchform]').zui('batchForm'); - if(typeof $batchForm != 'undefined') - { - $batchForm._sortable._options.onSort = (e) => { - window.resetRows(); - $batchForm._rows = $batchForm._sortable.toArray().map(Number); - $batchForm.render(); - } - } - }); -}) + const gid = $(e.item).attr('data-gid'); + const $duplicates = $(`tr[data-gid='${gid}']`); -window.resetRows = function() + if($duplicates.length > 1) $duplicates.slice(1).remove(); + + const id = $(e.item).attr('data-parent'); + window.moveChildren(id); + + const $batchForm = $('[data-zui-batchform]').zui('batchForm'); + $batchForm._rows = $batchForm._sortable.toArray().map(Number); + $batchForm.render(); +} + +window.moveChildren = function(id, processedIds = new Set()) { - const $trs = $('.form-batch-table tbody tr'); + if(processedIds.has(id)) return; + processedIds.add(id); - $trs.each(function(index, element) + const $parent = $(`tr[data-gid='${id}']`); + const $children = $(`tr[data-parent='${id}']`).not('.sortable-empty-shadow'); + + if($children.length == 0) return; + const $reversedChildren = $($children.get().reverse()); + + $reversedChildren.each(function(index, element) { - let parent = $(element).attr('data-parent'); - if(parent == -1) return; - - const $parent = $(`tr[data-gid='${parent}']`); - const parentLevel = $parent.attr('data-level'); - - let $nextRow = $parent.next(); - while(true) - { - if($nextRow.length == 0) break; - if($nextRow.attr('data-level') <= parentLevel) break; - - $nextRow = $nextRow.next(); - } - - $nextRow.before($(element)); + $parent.after(element); + moveChildren($(element).attr('data-gid'), processedIds); }); } \ No newline at end of file diff --git a/module/programplan/model.php b/module/programplan/model.php index 25f0a28b56..8634d78d33 100755 --- a/module/programplan/model.php +++ b/module/programplan/model.php @@ -611,9 +611,9 @@ class programplanModel extends model * @param string $action * @param bool $isParent * @access public - * @return bool + * @return bool|array */ - public function computeProgress(int $stageID, string $action = '', bool $isParent = false): bool + public function computeProgress(int $stageID, string $action = '', bool $isParent = false): bool|array { $stage = $this->loadModel('execution')->fetchByID($stageID); if(empty($stage) || empty($stage->path)) return false; @@ -633,7 +633,7 @@ class programplanModel extends model /** Get the number of sub-stage associated start tasks and the number of sub-stages under the state. */ $statusCount = array(); $children = $this->execution->getChildExecutions($parent->id); - $allChildren = $this->dao->select('id')->from(TABLE_EXECUTION)->where('deleted')->eq(0)->andWhere('path')->like("{$parent->path}%")->fetchPairs(); + $allChildren = $this->dao->select('id')->from(TABLE_EXECUTION)->where('deleted')->eq(0)->andWhere('path')->like("{$parent->path}%")->andWhere('id')->ne($id)->fetchPairs(); $startTasks = $this->dao->select('count(1) as count')->from(TABLE_TASK)->where('deleted')->eq(0)->andWhere('execution')->in($allChildren)->andWhere('consumed')->ne(0)->fetch('count'); foreach($children as $childExecution) { @@ -647,6 +647,17 @@ class programplanModel extends model $newParent = $result['newParent'] ?? null; $parentAction = $result['parentAction'] ?? ''; + /* 如果当前是顶级阶段,并且由于交付物不能关闭,则跳转到顶级阶段的关闭页面。 */ + if(isset($newParent->status) && $newParent->status == 'closed') + { + $isTopStage = $parent->grade == 1 && $parent->type != 'project' && $stageID != $id && $parent->status == 'doing'; + if(in_array($this->config->edition, array('max', 'ipd')) && $isTopStage && !$this->execution->canCloseByDeliverable($parent)) + { + $url = helper::createLink('execution', 'close', "executionID={$parent->id}"); + return array('result' => 'fail', 'callback' => "zui.Modal.confirm('{$this->lang->execution->cannotAutoCloseParent}').then((res) => {if(res) {loadModal('$url', '.modal-dialog');} else {loadPage();}});"); + } + } + /** 更新状态以及记录日志。 */ /** Update status and save log. */ if(isset($newParent) && $newParent) diff --git a/module/programplan/tao.php b/module/programplan/tao.php index aee10c40f6..ed816fe635 100644 --- a/module/programplan/tao.php +++ b/module/programplan/tao.php @@ -276,13 +276,17 @@ class programplanTao extends programplanModel $taskTeams = $this->dao->select('task,account')->from(TABLE_TASKTEAM)->where('task')->in(array_keys($tasks))->fetchGroup('task', 'account'); $users = $this->loadModel('user')->getPairs('noletter'); + $firstTask = reset($tasks); + $projectID = $firstTask ? $firstTask->project : 0; + $taskDateLimit = $this->dao->select('taskDateLimit')->from(TABLE_PROJECT)->where('id')->eq($projectID)->fetch('taskDateLimit'); foreach($tasks as $task) { - $plan = zget($plans, $task->execution, null); - $dateLimit = $this->getTaskDateLimit($task, $plan); - $data = $this->buildTaskDataForGantt($task, $dateLimit); - $data->id = $task->execution . '-' . $task->id; - $data->parent = $task->parent > 0 && isset($tasks[$task->parent]) ? $task->execution . '-' . $task->parent : $task->execution; + $plan = zget($plans, $task->execution, null); + $dateLimit = $this->getTaskDateLimit($task, $plan, $taskDateLimit == 'limit' ? zget($tasks, $task->parent, null) : null); + $data = $this->buildTaskDataForGantt($task, $dateLimit); + $data->id = $task->execution . '-' . $task->id; + $data->parent = $task->parent > 0 && isset($tasks[$task->parent]) ? $task->execution . '-' . $task->parent : $task->execution; + $data->allowLinks = $plan->type == 'kanban' ? false : true; if(!isset($executions[$task->execution])) $executions[$task->execution] = $this->dao->select('status')->from(TABLE_EXECUTION)->where('id')->eq($task->execution)->fetch('status'); /* Determines if the object is delay. */ @@ -871,16 +875,23 @@ class programplanTao extends programplanModel * * @param object $task * @param object|null $execution + * @param object|null $parent * @access protected * @return array */ - protected function getTaskDateLimit(object $task, object|null $execution = null): array + protected function getTaskDateLimit(object $task, object|null $execution = null, object|null $parent = null): array { $estStart = helper::isZeroDate($task->estStarted) ? '' : $task->estStarted; $estEnd = helper::isZeroDate($task->deadline) ? '' : $task->deadline; $realBegan = helper::isZeroDate($task->realStarted) ? '' : $task->realStarted; $realEnd = (in_array($task->status, array('done', 'closed')) and !helper::isZeroDate($task->finishedDate)) ? $task->finishedDate : ''; + if($parent) + { + if(empty($estStart) && !helper::isZeroDate($parent->estStarted)) $estStart = $parent->estStarted; + if(empty($estEnd) && !helper::isZeroDate($parent->deadline)) $estEnd = $parent->deadline; + } + $start = $estStart; $end = $estEnd; if(empty($start) and $execution) $start = $execution->begin; diff --git a/module/programplan/ui/create.html.php b/module/programplan/ui/create.html.php index 4dc7d578c9..9461358ddf 100644 --- a/module/programplan/ui/create.html.php +++ b/module/programplan/ui/create.html.php @@ -137,9 +137,40 @@ $fnGenerateFields = function() use ($lang, $requiredFields, $showFields, $fields $field['hidden'] = false; $field['items'] = $lang->execution->typeList; } + + if($name == 'attribute' && in_array($project->model, array('waterfall', 'waterfallplus'))) + { + $field['tipIcon'] = 'help'; + $field['tip'] = $lang->execution->typeTip; + $field['tipProps'] = array + ( + 'id' => 'tooltipHover', + 'data-toggle' => 'tooltip', + 'data-placement' => 'right', + 'data-type' => 'white', + 'data-class-name' => 'text-gray border border-gray-300' + ); + } + if($name == 'milestone') $field['width'] = '100px'; if($name == 'enabled') $field['width'] = '80px'; - if($name == 'point') $field['width'] = '200px'; + if($name == 'point') + { + $field['width'] = '200px'; + $field['tipIcon'] = 'help'; + $field['tip'] = zget($lang->programplan, 'pointTip', ''); + $field['tipProps'] = array + ( + 'id' => 'tooltipHover', + 'data-toggle' => 'tooltip', + 'data-placement' => 'right', + 'data-type' => 'white', + 'data-class-name' => 'text-gray border border-gray-300' + ); + } + + if($name == 'name') $field['width'] = '240px'; + if(!isset($field['width'])) $field['width'] = '120px'; $items[] = $field; } @@ -233,6 +264,9 @@ jsVar('ipdStagePoint', $project->model == 'ipd' ? $config->review->ipdReviewP jsVar('attributeList', $project->model == 'ipd' ? $lang->stage->ipdTypeList : $lang->stage->typeList); jsVar('reviewedPoints', $project->model == 'ipd' ? $reviewedPoints : array()); jsVar('reviewedPointTip', $project->model == 'ipd' ? $lang->programplan->reviewedPointTip : ''); +jsVar('addSubTip', $lang->programplan->error->notStage); +jsVar('addSiblingTip', zget($lang->programplan, 'addSiblingTip', '')); +jsVar('sortableTip', zget($lang->programplan, 'sortableTip', '')); featureBar(li ( @@ -261,7 +295,7 @@ formBatchPanel set::customFields(array('list' => $customFields, 'show' => explode(',', $showFields), 'key' => 'createFields')), set::customUrlParams("module=programplan§ion=$section&key=$customKey"), set::items($fnGenerateFields()), - set::sortable(array('onMove' => jsRaw('window.onMove'))), + set::sortable(array('onMove' => jsRaw('window.onMove'), 'onSort' => jsRaw('window.onSort'))), set::data($fnGenerateDefaultData()), $app->session->projectPlanList ? set::actions(array('submit', array('text' => $lang->cancel, 'url' => $app->session->projectPlanList))) : null, on::change('[name^="enabled"]', 'changeEnabled(e.target)'), diff --git a/module/programplan/ui/edit.html.php b/module/programplan/ui/edit.html.php index 195582d4fa..aef5381878 100644 --- a/module/programplan/ui/edit.html.php +++ b/module/programplan/ui/edit.html.php @@ -45,6 +45,7 @@ formPanel set::name('parent'), set::items($parentStageList), set::value($plan->parent), + set::disabled($hasUploadedDeliverable), set::required(true), on::change('changeParentStage') ) @@ -95,7 +96,7 @@ formPanel ( setID('attributeType'), setClass('flex self-center w-full'), - $enableOptionalAttr ? picker + $enableOptionalAttr && empty($plan->hasDeliverable) ? picker ( setID('attribute'), set::name('attribute'), diff --git a/module/programplan/ui/ganttfields.html.php b/module/programplan/ui/ganttfields.html.php index ad2f036683..5c1cb850b5 100644 --- a/module/programplan/ui/ganttfields.html.php +++ b/module/programplan/ui/ganttfields.html.php @@ -32,6 +32,7 @@ $ganttLang->deleteRelation = $lang->execution->gantt->confirmDelete; $ganttLang->wrongRelation = $lang->execution->error->wrongGanttRelation; $ganttLang->wrongRelationSource = $lang->execution->error->wrongGanttRelationSource; $ganttLang->wrongRelationTarget = $lang->execution->error->wrongGanttRelationTarget; +$ganttLang->wrongKanbanTasks = $lang->execution->error->wrongKanbanTasks; $typeHtml = '' . $lang->programplan->ganttBrowseType[$ganttType] . ''; $typeHtml .= ''; diff --git a/module/programplan/zen.php b/module/programplan/zen.php index b6919ddebd..b70a6a39bb 100644 --- a/module/programplan/zen.php +++ b/module/programplan/zen.php @@ -76,6 +76,7 @@ class programplanZen extends programplan $plans = form::batchData($fields)->get(); $orders = $this->programplan->computeOrders(array(), $plans); $group = 0; + $levelGroup = array(); $prevLevel = 0; foreach($plans as $rowID => $plan) { @@ -114,13 +115,24 @@ class programplanZen extends programplan { if($plan->level == 0) { + $levelGroup = array(); $totalPercent[0] = isset($totalPercent[0]) ? $totalPercent[0] + $plan->percent : $plan->percent; } else { - if($plan->level != $prevLevel) $group ++; + if(isset($levelGroup[$plan->level])) + { + $group = $levelGroup[$plan->level]; + } + elseif($plan->level != $prevLevel) + { + $group++; + } + $totalPercent[$group] = isset($totalPercent[$group]) ? $totalPercent[$group] + $plan->percent : $plan->percent; } + + $levelGroup[$plan->level] = $group; } $prevLevel = $plan->level; @@ -135,7 +147,11 @@ class programplanZen extends programplan foreach($totalPercent as $group => $percent) { - if(!empty($this->config->setPercent) and $percent > 100) dao::$errors[] = $this->lang->programplan->error->percentOver; + if(!empty($this->config->setPercent) and $percent > 100) + { + dao::$errors["percent"] = $this->lang->programplan->error->percentOver; + break; + } } return $plans; @@ -281,7 +297,7 @@ class programplanZen extends programplan * @access protected * @return void */ - protected function buildEditView(object $plan) + public function buildEditView(object $plan) { $this->loadModel('project'); $this->loadModel('execution'); @@ -289,17 +305,19 @@ class programplanZen extends programplan $parentStage = $this->project->getByID($plan->parent, 'stage'); - $this->view->title = $this->lang->programplan->edit; - $this->view->isCreateTask = $this->programplan->isCreateTask($plan->id); - $this->view->plan = $plan; - $this->view->project = $this->project->getByID($plan->project); - $this->view->parentStageList = $this->programplan->getParentStageList($plan->project, $plan->id, $plan->product); - $this->view->enableOptionalAttr = empty($parentStage) || (!empty($parentStage) && $parentStage->attribute == 'mix'); - $this->view->isTopStage = $this->programplan->isTopStage($plan->id); - $this->view->isLeafStage = $this->programplan->checkLeafStage($plan->id); - $this->view->PMUsers = $this->loadModel('user')->getPairs('noclosed|nodeleted|pmfirst', $plan->PM); - $this->view->project = $this->project->getByID($plan->project); - $this->view->requiredFields = $this->config->execution->edit->requiredFields; + $this->view->title = $this->lang->programplan->edit; + $this->view->isCreateTask = $this->programplan->isCreateTask($plan->id); + $this->view->plan = $plan; + $this->view->project = $this->project->getByID($plan->project); + $this->view->parentStageList = $this->programplan->getParentStageList($plan->project, $plan->id, $plan->product); + $this->view->enableOptionalAttr = empty($parentStage) || (!empty($parentStage) && $parentStage->attribute == 'mix'); + $this->view->isTopStage = $this->programplan->isTopStage($plan->id); + $this->view->isLeafStage = $this->programplan->checkLeafStage($plan->id); + $this->view->PMUsers = $this->loadModel('user')->getPairs('noclosed|nodeleted|pmfirst', $plan->PM); + $this->view->project = $this->project->getByID($plan->project); + $this->view->requiredFields = $this->config->execution->edit->requiredFields; + $this->view->hasUploadedDeliverable = in_array($this->config->edition, array('max', 'ipd')) ? $this->execution->hasUploadedDeliverable($plan) : false; + $this->display(); } @@ -417,7 +435,7 @@ class programplanZen extends programplan /* Get data for gantt. */ $stages = array(); - if($type == 'gantt' ) $stages = $this->programplan->getDataForGantt($projectID, $productID, $baselineID, $selectCustom, false, $browseType, $queryID); + if($type == 'gantt') $stages = $this->programplan->getDataForGantt($projectID, $productID, $baselineID, $selectCustom, false, $browseType, $queryID); if($type == 'assignedTo') $stages = $this->programplan->getDataForGanttGroupByAssignedTo($projectID, $productID, $baselineID, $selectCustom, false, $browseType, $queryID); return $stages; diff --git a/module/project/config/dtable.php b/module/project/config/dtable.php index a50eff4b17..044546eae1 100755 --- a/module/project/config/dtable.php +++ b/module/project/config/dtable.php @@ -97,6 +97,17 @@ $config->project->dtable->fieldList['invested']['group'] = 5; $config->project->dtable->fieldList['invested']['show'] = true; $config->project->dtable->fieldList['invested']['sortType'] = false; +if(helper::hasFeature('deliverable') && in_array($config->edition, array('max', 'ipd'))) +{ + $config->project->dtable->fieldList['deliverable']['title'] = $lang->project->deliverableAbbr; + $config->project->dtable->fieldList['deliverable']['name'] = 'deliverable'; + $config->project->dtable->fieldList['deliverable']['type'] = 'html'; + $config->project->dtable->fieldList['deliverable']['width'] = '120px'; + $config->project->dtable->fieldList['deliverable']['group'] = 5; + $config->project->dtable->fieldList['deliverable']['show'] = true; + $config->project->dtable->fieldList['deliverable']['sortType'] = false; +} + $config->project->dtable->fieldList['begin']['title'] = $lang->project->begin; $config->project->dtable->fieldList['begin']['name'] = 'begin'; $config->project->dtable->fieldList['begin']['type'] = 'date'; @@ -163,7 +174,6 @@ $config->project->execution->dtable->fieldList['rawID']['show'] = true; $config->project->execution->dtable->fieldList['name']['title'] = $lang->nameAB; $config->project->execution->dtable->fieldList['name']['name'] = 'nameCol'; -$config->project->execution->dtable->fieldList['name']['type'] = 'title'; $config->project->execution->dtable->fieldList['name']['fixed'] = 'left'; $config->project->execution->dtable->fieldList['name']['flex'] = 1; $config->project->execution->dtable->fieldList['name']['type'] = 'nestedTitle'; @@ -189,6 +199,17 @@ $config->project->execution->dtable->fieldList['status']['width'] = '80'; $config->project->execution->dtable->fieldList['status']['group'] = '1'; $config->project->execution->dtable->fieldList['status']['show'] = true; +if(helper::hasFeature('deliverable') && in_array($config->edition, array('max', 'ipd'))) +{ + $config->project->execution->dtable->fieldList['deliverable']['title'] = $lang->project->deliverableAbbr; + $config->project->execution->dtable->fieldList['deliverable']['name'] = 'deliverable'; + $config->project->execution->dtable->fieldList['deliverable']['type'] = 'html'; + $config->project->execution->dtable->fieldList['deliverable']['width'] = '100px'; + $config->project->execution->dtable->fieldList['deliverable']['group'] = '1'; + $config->project->execution->dtable->fieldList['deliverable']['show'] = true; + $config->project->execution->dtable->fieldList['deliverable']['sortType'] = false; +} + $config->project->execution->dtable->fieldList['PM']['title'] = $lang->project->PM; $config->project->execution->dtable->fieldList['PM']['name'] = 'PM'; $config->project->execution->dtable->fieldList['PM']['type'] = 'avatarBtn'; diff --git a/module/project/config/form.php b/module/project/config/form.php index 552dff39b9..56bcdab02a 100755 --- a/module/project/config/form.php +++ b/module/project/config/form.php @@ -11,30 +11,32 @@ $config->project->form->activate = array(); $config->project->form->manageProducts = array(); -$config->project->form->create['parent'] = array('type' => 'int', 'required' => false, 'default' => 0); -$config->project->form->create['name'] = array('type' => 'string', 'required' => true, 'filter' => 'trim'); -$config->project->form->create['multiple'] = array('type' => 'string', 'required' => false); -$config->project->form->create['hasProduct'] = array('type' => 'string', 'required' => false, 'default' => ''); -$config->project->form->create['stageBy'] = array('type' => 'string', 'required' => false, 'default' => 'product'); -$config->project->form->create['PM'] = array('type' => 'string', 'required' => false, 'default' => ''); -$config->project->form->create['budget'] = array('type' => 'string', 'required' => false, 'default' => ''); -$config->project->form->create['budgetUnit'] = array('type' => 'string', 'required' => false, 'default' => 'CNY'); -$config->project->form->create['begin'] = array('type' => 'date', 'required' => true); -$config->project->form->create['end'] = array('type' => 'date', 'required' => false, 'default' => null); -$config->project->form->create['days'] = array('type' => 'int', 'required' => false, 'default' => 0); -$config->project->form->create['desc'] = array('type' => 'string', 'required' => false, 'default' => '', 'control' => 'editor'); -$config->project->form->create['acl'] = array('type' => 'string', 'required' => false, 'default' => ''); -$config->project->form->create['whitelist'] = array('type' => 'array', 'required' => false, 'default' => ''); -$config->project->form->create['auth'] = array('type' => 'array', 'required' => false, 'default' => ''); -$config->project->form->create['storyType'] = array('type' => 'array', 'required' => false, 'default' => ''); -$config->project->form->create['model'] = array('type' => 'string', 'required' => false, 'default' => ''); -$config->project->form->create['vision'] = array('type' => 'string', 'required' => false, 'default' => $config->vision); +$config->project->form->create['parent'] = array('type' => 'int', 'required' => false, 'default' => 0); +$config->project->form->create['name'] = array('type' => 'string', 'required' => true, 'filter' => 'trim'); +$config->project->form->create['multiple'] = array('type' => 'string', 'required' => false); +$config->project->form->create['hasProduct'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->project->form->create['stageBy'] = array('type' => 'string', 'required' => false, 'default' => 'product'); +$config->project->form->create['PM'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->project->form->create['budget'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->project->form->create['budgetUnit'] = array('type' => 'string', 'required' => false, 'default' => 'CNY'); +$config->project->form->create['begin'] = array('type' => 'date', 'required' => true); +$config->project->form->create['end'] = array('type' => 'date', 'required' => false, 'default' => null); +$config->project->form->create['days'] = array('type' => 'int', 'required' => false, 'default' => 0); +$config->project->form->create['desc'] = array('type' => 'string', 'required' => false, 'default' => '', 'control' => 'editor'); +$config->project->form->create['acl'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->project->form->create['whitelist'] = array('type' => 'array', 'required' => false, 'default' => ''); +$config->project->form->create['auth'] = array('type' => 'array', 'required' => false, 'default' => ''); +$config->project->form->create['taskDateLimit'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->project->form->create['storyType'] = array('type' => 'array', 'required' => false, 'default' => ''); +$config->project->form->create['model'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->project->form->create['vision'] = array('type' => 'string', 'required' => false, 'default' => $config->vision); if(isset($this->config->setCode) && $this->config->setCode == 1) $config->project->form->create['code'] = array('type' => 'string', 'required' => false, 'filter' => 'trim'); $config->project->form->edit = $config->project->form->create; -$config->project->form->edit['products'] = array('type' => 'array', 'required' => false, 'default' => array()); -$config->project->form->edit['branch'] = array('type' => 'array', 'required' => false, 'default' => array()); -$config->project->form->edit['plans'] = array('type' => 'array', 'required' => false, 'default' => array()); +$config->project->form->edit['products'] = array('type' => 'array', 'required' => false, 'default' => array()); +$config->project->form->edit['branch'] = array('type' => 'array', 'required' => false, 'default' => array()); +$config->project->form->edit['plans'] = array('type' => 'array', 'required' => false, 'default' => array()); +$config->project->form->edit['taskDateLimit'] = array('type' => 'string', 'required' => false, 'default' => array()); unset($config->project->form->edit['hasProduct']); unset($config->project->form->edit['stageBy']); unset($config->project->form->edit['multiple']); diff --git a/module/project/control.php b/module/project/control.php index 728681ffad..ac679da73a 100755 --- a/module/project/control.php +++ b/module/project/control.php @@ -533,8 +533,7 @@ class project extends control if(isInModal()) return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'load' => true, 'closeModal' => true)); - $locateLink = $this->session->projectList && $from != 'view' ? $this->session->projectList : $this->createLink('project', 'view', "projectID=$projectID"); - return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'load' => $locateLink)); + return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'load' => $this->createLink('project', 'view', "projectID=$projectID"))); } $this->projectZen->buildEditForm($projectID, $project, $from, $programID); @@ -653,7 +652,10 @@ class project extends control $this->executeHooks($projectID); list($userPairs, $userList) = $this->projectZen->buildUsers(); - if($this->config->edition != 'open') $this->view->workflowGroups = $this->loadModel('workflowgroup')->getPairs('project', $project->model, $project->hasProduct, 'all'); + if($this->config->edition != 'open' && !empty($project->workflowGroup)) + { + $this->view->workflowGroup = $this->loadModel('workflowgroup')->getByID((int)$project->workflowGroup); + } $this->view->title = $this->lang->project->view; $this->view->projectID = $projectID; diff --git a/module/project/js/execution.ui.js b/module/project/js/execution.ui.js index 768d160499..34c170f9c4 100644 --- a/module/project/js/execution.ui.js +++ b/module/project/js/execution.ui.js @@ -56,7 +56,6 @@ window.onRenderCell = function(result, {col, row}) result[0].props.children = data.type == 'point' ? '' : data.name; if(data.id.indexOf('tid') > -1 && data.type != 'point') { - result[0].props.title = data.rawName; result[0].props.children = data.rawName; result[0].props.href = $.createLink('task', 'view', 'taskID=' + data.rawID); html += data.prefixLabel; @@ -84,6 +83,7 @@ window.onRenderCell = function(result, {col, row}) } } + result[1].attrs.title = typeof data.rawName != 'undefined' && data.rawName ? data.rawName : data.name; if(html) result.unshift({className: 'flex items-center', html: html}); if(typeof data.delay != 'undefined' && data.delay && !['done', 'cancel', 'close'].includes(data.status) && data.type != 'point' && data.end != '' && data.end != '0000-00-00' && today > data.end) diff --git a/module/project/lang/de.php b/module/project/lang/de.php index 6df33fa2d7..5b45c36755 100644 --- a/module/project/lang/de.php +++ b/module/project/lang/de.php @@ -218,6 +218,7 @@ $lang->project->plan = 'Plan'; $lang->project->createKanban = 'Create Kanban'; $lang->project->kanban = 'Kanban'; $lang->project->moreActions = 'More Actions'; +$lang->project->taskDateLimit = 'Task Date Limit'; /* Project Category. */ $lang->project->projectTypeList = array(); @@ -362,6 +363,9 @@ $lang->project->featureBar['group']['all'] = 'All Groups'; $lang->project->aclList['open'] = "Open (accessible with {$lang->projectCommon} view permissions)"; $lang->project->aclList['private'] = "Private (For the {$lang->projectCommon} leader, team members and stakeholders only)"; +$lang->project->taskDateLimitList['limit'] = "Limit the task date (the task start and end date must be within the parent task's date range)"; +$lang->project->taskDateLimitList['auto'] = "Auto extend the parent task date (the parent task will be automatically extended according to the task start and end date)"; + $lang->project->multipleList['1'] = 'Yes'; $lang->project->multipleList['0'] = 'No'; diff --git a/module/project/lang/en.php b/module/project/lang/en.php index 6df33fa2d7..5b45c36755 100644 --- a/module/project/lang/en.php +++ b/module/project/lang/en.php @@ -218,6 +218,7 @@ $lang->project->plan = 'Plan'; $lang->project->createKanban = 'Create Kanban'; $lang->project->kanban = 'Kanban'; $lang->project->moreActions = 'More Actions'; +$lang->project->taskDateLimit = 'Task Date Limit'; /* Project Category. */ $lang->project->projectTypeList = array(); @@ -362,6 +363,9 @@ $lang->project->featureBar['group']['all'] = 'All Groups'; $lang->project->aclList['open'] = "Open (accessible with {$lang->projectCommon} view permissions)"; $lang->project->aclList['private'] = "Private (For the {$lang->projectCommon} leader, team members and stakeholders only)"; +$lang->project->taskDateLimitList['limit'] = "Limit the task date (the task start and end date must be within the parent task's date range)"; +$lang->project->taskDateLimitList['auto'] = "Auto extend the parent task date (the parent task will be automatically extended according to the task start and end date)"; + $lang->project->multipleList['1'] = 'Yes'; $lang->project->multipleList['0'] = 'No'; diff --git a/module/project/lang/fr.php b/module/project/lang/fr.php index 6df33fa2d7..5b45c36755 100644 --- a/module/project/lang/fr.php +++ b/module/project/lang/fr.php @@ -218,6 +218,7 @@ $lang->project->plan = 'Plan'; $lang->project->createKanban = 'Create Kanban'; $lang->project->kanban = 'Kanban'; $lang->project->moreActions = 'More Actions'; +$lang->project->taskDateLimit = 'Task Date Limit'; /* Project Category. */ $lang->project->projectTypeList = array(); @@ -362,6 +363,9 @@ $lang->project->featureBar['group']['all'] = 'All Groups'; $lang->project->aclList['open'] = "Open (accessible with {$lang->projectCommon} view permissions)"; $lang->project->aclList['private'] = "Private (For the {$lang->projectCommon} leader, team members and stakeholders only)"; +$lang->project->taskDateLimitList['limit'] = "Limit the task date (the task start and end date must be within the parent task's date range)"; +$lang->project->taskDateLimitList['auto'] = "Auto extend the parent task date (the parent task will be automatically extended according to the task start and end date)"; + $lang->project->multipleList['1'] = 'Yes'; $lang->project->multipleList['0'] = 'No'; diff --git a/module/project/lang/zh-cn.php b/module/project/lang/zh-cn.php index 2d02dbd4d6..ac702b6f51 100644 --- a/module/project/lang/zh-cn.php +++ b/module/project/lang/zh-cn.php @@ -218,6 +218,7 @@ $lang->project->plan = '所属计划'; $lang->project->createKanban = '添加看板'; $lang->project->kanban = '项目看板'; $lang->project->moreActions = '更多操作'; +$lang->project->taskDateLimit = '任务时间限制'; /* Project Category. */ $lang->project->projectTypeList = array(); @@ -362,6 +363,9 @@ $lang->project->featureBar['group']['all'] = '浏览分组'; $lang->project->aclList['open'] = "公开 (有{$lang->projectCommon}视图权限即可访问)"; $lang->project->aclList['private'] = "私有 (只有{$lang->projectCommon}负责人、团队成员和干系人可访问)"; +$lang->project->taskDateLimitList['limit'] = "限制子任务时间(子任务起止时间必须在父任务的范围内)"; +$lang->project->taskDateLimitList['auto'] = "自动延长父任务时间(父任务根据子任务的起止时间自动延长)"; + $lang->project->multipleList['1'] = '是'; $lang->project->multipleList['0'] = '否'; diff --git a/module/project/tao.php b/module/project/tao.php index b941368228..3ba79f722f 100755 --- a/module/project/tao.php +++ b/module/project/tao.php @@ -1050,6 +1050,7 @@ class projectTao extends projectModel include $this->app->getModulePath('', 'execution') . 'lang/' . $this->app->getClientLang() . '.php'; + if($projectModel == 'ipd') unset($lang->waterfall->menu->other['dropMenu']->deliverable); $lang->execution->typeList['sprint'] = $executionCommonLang; } elseif($projectModel == 'kanban') diff --git a/module/project/test/model/addplans.php b/module/project/test/model/addplans.php index 7cab569203..5f9e6c3418 100755 --- a/module/project/test/model/addplans.php +++ b/module/project/test/model/addplans.php @@ -8,7 +8,9 @@ zenData('product')->gen(100); zenData('productplan')->gen(100); $storyTable = zenData('story'); $storyTable->status->range('active'); +$storyTable->version->range('1'); $storyTable->gen(100); +zenData('storyspec')->gen(100); zenData('planstory')->gen(100); zenData('projectstory')->gen(0); @@ -20,6 +22,15 @@ title=测试 projectModel::addPlans(); timeout=0 cid=1 +- 将计划1,4,7下的需求关联到项目13,查看关联后的需求数 @16 +- 将计划1,4,7下的需求关联到项目13,查看关联后的需求ID/产品ID + - 第3条的story属性 @4 + - 第3条的product属性 @1 +- 将计划2,5,10,13下的需求关联到项目11,查看关联后的需求数 @8 +- 将计划2,5,10,13下的需求关联到项目11,查看关联后的需求ID/产品ID + - 第0条的story属性 @13 + - 第0条的product属性 @4 + */ $project = new Project(); @@ -32,4 +43,4 @@ r($project->addPlansTest(13, $plan)) && p('3:story,product') && e('4,1'); // 将 $plan = array(); $plan[1] = array(2, 5, 10, 13); r(count($project->addPlansTest(11, $plan))) && p('') && e('8'); // 将计划2,5,10,13下的需求关联到项目11,查看关联后的需求数 -r($project->addPlansTest(11, $plan)) && p('0:story,product') && e('13,4'); // 将计划2,5,10,13下的需求关联到项目11,查看关联后的需求ID/产品ID +r($project->addPlansTest(11, $plan)) && p('0:story,product') && e('13,4'); // 将计划2,5,10,13下的需求关联到项目11,查看关联后的需求ID/产品ID \ No newline at end of file diff --git a/module/project/test/model/batchupdate.php b/module/project/test/model/batchupdate.php index 91824daaf1..4ad7533a3a 100755 --- a/module/project/test/model/batchupdate.php +++ b/module/project/test/model/batchupdate.php @@ -29,6 +29,27 @@ title=测试taskModel->batchUpdate(); timeout=0 cid=1 +- 查看被编辑了的项目数量 @3 +- 查看被编辑了的项目11详情 + - 第1条的name属性 @批量修改项目11 + - 第1条的parent属性 @1 + - 第1条的PM属性 @user10 + - 第1条的begin属性 @2022-02-08 + - 第1条的acl属性 @open +- 查看被编辑了的项目12详情 + - 第2条的name属性 @批量修改项目12 + - 第2条的parent属性 @2 + - 第2条的PM属性 @user11 + - 第2条的begin属性 @2022-03-05 + - 第2条的acl属性 @private +- 查看被编辑了的项目13详情 + - 第3条的name属性 @批量修改项目13 + - 第3条的parent属性 @3 + - 第3条的PM属性 @user13 + - 第3条的begin属性 @2022-02-19 + - 第3条的acl属性 @program +- 异常情况第message[end]条的0属性 @ID4『计划完成』应当大于『2023-02-19』。 + */ $project = new Project(); @@ -40,7 +61,7 @@ $data[1]->parent = 1; $data[1]->PM = 'user10'; $data[1]->begin = '2022-02-08'; $data[1]->end = '2022-04-13'; -$data[1]->day = 10; +$data[1]->days = 10; $data[1]->acl = 'open'; $data[2] = new stdClass(); @@ -49,7 +70,7 @@ $data[2]->parent = 2; $data[2]->PM = 'user11'; $data[2]->begin = '2022-03-05'; $data[2]->end = '2022-04-13'; -$data[2]->day = 10; +$data[2]->days = 10; $data[2]->acl = 'private'; $data[3] = new stdClass(); @@ -58,7 +79,7 @@ $data[3]->parent = 3; $data[3]->PM = 'user13'; $data[3]->begin = '2022-02-19'; $data[3]->end = '2022-04-13'; -$data[3]->day = 14; +$data[3]->days = 14; $data[3]->acl = 'program'; $projects = $project->batchUpdate($data); @@ -79,4 +100,4 @@ $data[4]->day = 14; $data[4]->acl = 'program'; $projects = $project->batchUpdate($data); -r($projects) && p('message[end]:0') && e('ID4『计划完成』应当大于『2023-02-19』。'); // 异常情况 +r($projects) && p('message[end]:0') && e('ID4『计划完成』应当大于『2023-02-19』。'); // 异常情况 \ No newline at end of file diff --git a/module/project/test/model/getdisabledproducts.php b/module/project/test/model/getdisabledproducts.php index 2fd5c5cb4a..aa45dc5eb8 100644 --- a/module/project/test/model/getdisabledproducts.php +++ b/module/project/test/model/getdisabledproducts.php @@ -9,6 +9,13 @@ title=测试 projectModel->getDisabledProducts(); timeout=0 cid=1 +- 测试获取敏捷项目不可修改产品 @0 +- 测试获取以产品创建的瀑布项目不可修改产品属性2 @项目已经关联了该产品中的研发需求,不能取消关联,您可以取消关联研发需求后再操作。 +- 测试获取以产品创建的瀑布项目不可修改产品属性3 @该产品已经创建了阶段,如需解除与项目的关联,请删除已创建的阶段后再操作。 +- 测试获取以产品创建的瀑布项目不可修改产品属性4 @该产品已经创建了阶段并关联了研发需求,如需解除与项目的关联,请先解除研发需求的关联关系,然后删除已创建的阶段后再操作。 +- 测试获取以项目创建的瀑布项目不可修改产品属性5 @该产品的研发需求已经关联到了项目和执行中,请先解除研发需求与项目和执行的关联后再操作。 +- 测试获取以项目创建的瀑布项目不可修改产品属性6 @项目已经关联了该产品中的研发需求,不能取消关联,您可以取消关联研发需求后再操作。 + */ zenData('project')->loadYaml('project')->gen(10); @@ -24,4 +31,4 @@ r($projectTester->getDisabledProductsTest($projectIdList[1])) && p('2') && e(' r($projectTester->getDisabledProductsTest($projectIdList[2])) && p('3') && e('该产品已经创建了阶段,如需解除与项目的关联,请删除已创建的阶段后再操作。'); // 测试获取以产品创建的瀑布项目不可修改产品 r($projectTester->getDisabledProductsTest($projectIdList[3])) && p('4') && e('该产品已经创建了阶段并关联了研发需求,如需解除与项目的关联,请先解除研发需求的关联关系,然后删除已创建的阶段后再操作。'); // 测试获取以产品创建的瀑布项目不可修改产品 r($projectTester->getDisabledProductsTest($projectIdList[4])) && p('5') && e('该产品的研发需求已经关联到了项目和执行中,请先解除研发需求与项目和执行的关联后再操作。'); // 测试获取以项目创建的瀑布项目不可修改产品 -r($projectTester->getDisabledProductsTest($projectIdList[5])) && p('6') && e('项目已经关联了该产品中的研发需求,不能取消关联,您可以取消关联研发需求后再操作。'); // 测试获取以项目创建的瀑布项目不可修改产品 +r($projectTester->getDisabledProductsTest($projectIdList[5])) && p('6') && e('项目已经关联了该产品中的研发需求,不能取消关联,您可以取消关联研发需求后再操作。'); // 测试获取以项目创建的瀑布项目不可修改产品 \ No newline at end of file diff --git a/module/project/test/model/yaml/getdisabledproducts/project.yaml b/module/project/test/model/yaml/getdisabledproducts/project.yaml index 2cf2a1d34d..f1aaef5293 100644 --- a/module/project/test/model/yaml/getdisabledproducts/project.yaml +++ b/module/project/test/model/yaml/getdisabledproducts/project.yaml @@ -7,7 +7,7 @@ fields: - field: type range: project{6},stage{6} - field: stageBy - range: "product{4},project{2},[]{6}" + range: "product{4},project{2}" - field: project range: '0{6},3{2},4,5' - field: model diff --git a/module/project/test/tao/setmenubymodel.php b/module/project/test/tao/setmenubymodel.php index 37648e686f..391d2b8b4d 100644 --- a/module/project/test/tao/setmenubymodel.php +++ b/module/project/test/tao/setmenubymodel.php @@ -9,8 +9,16 @@ su('admin'); /** title=测试 projectModel::setMenuByModel(); +timeout=0 cid=1 -pid=1 + +- 项目不存在的情况 @迭代 +- 项目不存在的情况 @迭代 +- 敏捷项目 @迭代 +- 融合敏捷项目 @迭代 +- 融合瀑布项目 @阶段 +- 瀑布项目 @阶段 +- 看板项目 @项目看板 */ @@ -22,4 +30,4 @@ r($projectTester->setMenuByModelTest('scrum')) && p() && e('迭代'); r($projectTester->setMenuByModelTest('agileplus')) && p() && e('迭代'); // 融合敏捷项目 r($projectTester->setMenuByModelTest('waterfall')) && p() && e('阶段'); // 融合瀑布项目 r($projectTester->setMenuByModelTest('waterfallplus')) && p() && e('阶段'); // 瀑布项目 -r($projectTester->setMenuByModelTest('kanban')) && p() && e('项目看板'); // 看板项目 +r($projectTester->setMenuByModelTest('kanban')) && p() && e('项目看板'); // 看板项目 \ No newline at end of file diff --git a/module/project/ui/browsebycard.html.php b/module/project/ui/browsebycard.html.php index 67456d5ae4..e2b28d4efa 100644 --- a/module/project/ui/browsebycard.html.php +++ b/module/project/ui/browsebycard.html.php @@ -44,7 +44,7 @@ featureBar set::text($lang->project->mine), set::checked($this->cookie->involved ? 'checked' : '') ), - li(searchToggle(set::module('project'))) + li(searchToggle(set::module('project'), set::open($browseType == 'bysearch'))) ); /* zin: Define the toolbar on main menu. */ diff --git a/module/project/ui/browsebylist.html.php b/module/project/ui/browsebylist.html.php index f2ea2480d0..5d64b2314e 100644 --- a/module/project/ui/browsebylist.html.php +++ b/module/project/ui/browsebylist.html.php @@ -25,7 +25,7 @@ featureBar set::text($lang->project->mine), set::checked($this->cookie->involved ? 'checked' : '') ), - li(searchToggle(set::module('project'))) + li(searchToggle(set::module('project'), set::open($browseType == 'bysearch'))) ); /* zin: Define the toolbar on main menu. */ diff --git a/module/project/ui/close.html.php b/module/project/ui/close.html.php index c5d6fd2c23..bac2aa3438 100644 --- a/module/project/ui/close.html.php +++ b/module/project/ui/close.html.php @@ -10,25 +10,11 @@ declare(strict_types=1); */ namespace zin; -$beforeSubmit = jsRaw("() => -{ - zui.Modal.confirm('{$confirmTip}').then((res) => - { - if(res) - { - const formData = new FormData($('#zin_project_close_{$project->id}_form')[0]); - const url = $('#zin_project_close_{$project->id}_form').attr('action'); - $.ajaxSubmit({url: url, data: formData}); - } - }); - return false; -}"); - modalHeader(); formPanel ( set::formID("zin_project_close_{$project->id}_form"), - !empty($confirmTip) ? set::ajax(array('beforeSubmit' => $beforeSubmit)) : null, + !empty($confirmTip) ? set::ajax(array('beforeSubmit' => jsRaw("() => zui.Modal.confirm('{$confirmTip}')"))) : null, formGroup ( set::width('1/2'), diff --git a/module/project/ui/common.field.php b/module/project/ui/common.field.php index edb655bd7d..c57605e440 100644 --- a/module/project/ui/common.field.php +++ b/module/project/ui/common.field.php @@ -140,4 +140,5 @@ foreach($lang->story->typeList as $key => $text) $storyTypeList[] = array('text' => $text, 'value' => $key, 'disabled' => $disabled); } -$fields->field('storyType')->control(array('control' => 'checkBox', 'items' => $storyTypeList, 'name' => 'storyType[]')); +$fields->field('taskDateLimit')->control(array('control' => 'radioList', 'items' => $lang->project->taskDateLimitList, 'name' => 'taskDateLimit')); +$fields->field('storyType')->control(array('control' => 'checkBox', 'items' => $storyTypeList, 'name' => 'storyType[]')); \ No newline at end of file diff --git a/module/project/ui/create.field.php b/module/project/ui/create.field.php index 4f36dc7bfd..3e761971fe 100644 --- a/module/project/ui/create.field.php +++ b/module/project/ui/create.field.php @@ -60,6 +60,9 @@ $fields->field('acl') $fields->field('auth')->foldable()->value($copyProject ? data('copyProject.auth') : 'extend'); +$fields->field('taskDateLimit')->hidden(true)->value('auto'); + $storyType = in_array($model, array('waterfall', 'waterfallplus', 'ipd')) ? 'story,requirement' : 'story'; if($copyProject) $storyType = data('copyProject.storyType'); -$fields->field('storyType')->foldable()->value($storyType); +$fields->field('taskDateLimit')->width('full')->foldable()->value('auto'); +$fields->field('storyType')->width('full')->foldable()->value($storyType); diff --git a/module/project/ui/edit.field.php b/module/project/ui/edit.field.php index eca3c1a67a..86785a8fa2 100644 --- a/module/project/ui/edit.field.php +++ b/module/project/ui/edit.field.php @@ -21,4 +21,5 @@ if(strpos($config->project->edit->requiredFields, 'budget') === false) $fields-> $fields->field('budget')->value(data('project.budget') !== null && data('project.budget') == 0 ? '' : data('project.budget')); $fields->field('acl')->control(array('control' => 'aclBox', 'aclItems' => data('project.parent') ? $lang->project->subAclList : $lang->project->aclList, 'aclValue' => data('project.acl'), 'whitelistLabel' => $lang->project->whitelist, 'userValue' => data('project.whitelist'))); -$fields->field('storyType')->width('full')->value(data('project.storyType')); +$fields->field('taskDateLimit')->width('full')->value(data('project.taskDateLimit')); +$fields->field('storyType')->width('full')->value(data('project.storyType')); \ No newline at end of file diff --git a/module/project/ui/view.html.php b/module/project/ui/view.html.php index ee38c06624..e3e719c0ed 100644 --- a/module/project/ui/view.html.php +++ b/module/project/ui/view.html.php @@ -277,12 +277,12 @@ row ( setClass('flex mt-4 program'), $programDom ? div(setClass('clip programBox w-1/2'), $programDom) : null, - $config->edition != 'open' && $project->workflowGroup ? div + $config->edition != 'open' && !empty($project->workflowGroup) ? div ( setClass('clip w-1/2'), set::title($lang->project->workflowGroup), icon('flow', setClass('pr-1')), - zget($workflowGroups, $project->workflowGroup) + $workflowGroup->name ) : null ), div diff --git a/module/project/zen.php b/module/project/zen.php index ec118dcc37..dc54beeaa7 100755 --- a/module/project/zen.php +++ b/module/project/zen.php @@ -484,6 +484,12 @@ class projectZen extends project $this->view->programID = $programID; $this->view->disableParent = $disableParent; $this->view->groups = $this->loadModel('group')->getPairs(); + + if(in_array($this->config->edition, array('max', 'ipd')) && $this->project->checkUploadedDeliverable($project)) + { + $this->view->disableModel = true; + } + $this->display(); } @@ -1393,6 +1399,12 @@ class projectZen extends project $project->estimate = helper::formatHours($project->estimate); $project->consume = helper::formatHours($project->consume); $project->left = helper::formatHours($project->left); + + /* 交付物提交进度。 */ + if(in_array($this->config->edition, array('max', 'ipd'))) + { + $project->deliverable = $this->project->countDeliverable($project); + } } return array_values($projectList); diff --git a/module/story/control.php b/module/story/control.php index b8ffa115cb..d71c1818ca 100755 --- a/module/story/control.php +++ b/module/story/control.php @@ -70,9 +70,6 @@ class story extends control $storyData = $this->storyZen->buildStoryForCreate($objectID, $bugID, $storyType); if(!$storyData) return $this->send(array('result' => 'fail', 'message' => dao::getError())); - $response = $this->storyZen->checkRepeatStory($storyData, $objectID); - if($response) return $this->send($response); - /* Insert story data. */ $createFunction = empty($storyData->branches) ? 'create' : 'createTwins'; $storyID = $this->story->{$createFunction}($storyData, $objectID, $bugID, $extra, $todoID); @@ -144,9 +141,6 @@ class story extends control if(!empty($_POST)) { - $result = $this->loadModel('common')->removeDuplicate('story', $_POST, "product={$productID}"); - $_POST = $result['data']; - $stories = $this->storyZen->buildStoriesForBatchCreate($productID, $storyType); if(empty($stories)) return $this->sendError($this->lang->story->errorEmptyStory, true); if(dao::isError()) return $this->sendError(dao::getError()); diff --git a/module/story/lang/de.php b/module/story/lang/de.php index 4aae120834..715f1c7780 100644 --- a/module/story/lang/de.php +++ b/module/story/lang/de.php @@ -18,6 +18,7 @@ $lang->story->createStory = 'Create ' . $lang->story->story; $lang->story->createRequirement = 'Create ' . $lang->story->requirement; $lang->story->affectedStories = "Affected {$lang->story->story}"; +$lang->story->browse = "{$lang->SRCommon} List"; $lang->story->batchCreate = "Mehere hinzufügen"; $lang->story->change = "Ändern"; $lang->story->changed = 'Geändert'; diff --git a/module/story/lang/en.php b/module/story/lang/en.php index 58e543813c..58c8f29eec 100644 --- a/module/story/lang/en.php +++ b/module/story/lang/en.php @@ -18,6 +18,7 @@ $lang->story->createStory = 'Create ' . $lang->story->story; $lang->story->createRequirement = 'Create ' . $lang->story->requirement; $lang->story->affectedStories = "Affected {$lang->story->story}"; +$lang->story->browse = "{$lang->SRCommon} List"; $lang->story->batchCreate = "Batch Create"; $lang->story->change = "Change"; $lang->story->changed = 'Change'; diff --git a/module/story/lang/fr.php b/module/story/lang/fr.php index df707ddfde..664d5ad42b 100644 --- a/module/story/lang/fr.php +++ b/module/story/lang/fr.php @@ -18,6 +18,7 @@ $lang->story->createStory = 'Create ' . $lang->story->story; $lang->story->createRequirement = 'Create ' . $lang->story->requirement; $lang->story->affectedStories = "Affected {$lang->story->story}"; +$lang->story->browse = "{$lang->SRCommon} List"; $lang->story->batchCreate = "Créer par Lot"; $lang->story->change = "Changer"; $lang->story->changed = 'Changée'; diff --git a/module/story/lang/zh-cn.php b/module/story/lang/zh-cn.php index 3727d87cd6..753bb04682 100644 --- a/module/story/lang/zh-cn.php +++ b/module/story/lang/zh-cn.php @@ -18,6 +18,7 @@ $lang->story->createStory = '添加' . $lang->story->story; $lang->story->createRequirement = '添加' . $lang->story->requirement; $lang->story->affectedStories = "影响的{$lang->story->story}"; +$lang->story->browse = "{$lang->SRCommon}列表"; $lang->story->batchCreate = "批量创建"; $lang->story->change = "变更"; $lang->story->changed = "{$lang->SRCommon}变更"; diff --git a/module/story/model.php b/module/story/model.php index c58a416f70..44c65e9871 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -31,12 +31,14 @@ class storyModel extends model if($version == 0) $version = $story->version; $this->loadModel('file'); - $spec = $this->dao->select('title,spec,verify,files')->from(TABLE_STORYSPEC)->where('story')->eq($storyID)->andWhere('version')->eq($version)->fetch(); - $story->title = !empty($spec->title) ? $spec->title : ''; - $story->spec = !empty($spec->spec) ? $spec->spec : ''; - $story->verify = !empty($spec->verify) ? $spec->verify : ''; - $story->files = !empty($spec->files) ? $this->file->getByIdList($spec->files) : array(); - $story->stages = $this->dao->select('*')->from(TABLE_STORYSTAGE)->where('story')->eq($storyID)->fetchPairs('branch', 'stage'); + $spec = $this->dao->select('title,spec,verify,files,docs,docVersions')->from(TABLE_STORYSPEC)->where('story')->eq($storyID)->andWhere('version')->eq($version)->fetch(); + $story->title = !empty($spec->title) ? $spec->title : ''; + $story->spec = !empty($spec->spec) ? $spec->spec : ''; + $story->verify = !empty($spec->verify) ? $spec->verify : ''; + $story->files = !empty($spec->files) ? $this->file->getByIdList($spec->files) : array(); + $story->docs = $spec->docs; + $story->docVersions = json_decode($spec->docVersions, true); + $story->stages = $this->dao->select('*')->from(TABLE_STORYSTAGE)->where('story')->eq($storyID)->fetchPairs('branch', 'stage'); /* Clear the extra field to display file. */ foreach($story->files as $file) $file->extra = ''; @@ -833,11 +835,11 @@ class storyModel extends model /** * Update a story. * - * @param int $storyID + * @param int $storyID * @access public - * @return array the changes of the story. + * @return bool|int */ - public function update(int $storyID, object $story, string|bool $comment = ''): bool + public function update(int $storyID, object $story, string|bool $comment = ''): bool|int { $oldStory = $this->getByID($storyID); @@ -949,7 +951,7 @@ class storyModel extends model if(isset($story->closedReason) and $story->closedReason == 'done') $this->loadModel('score')->create('story', 'close'); if(!empty($oldStory->twins)) $this->syncTwins($oldStory->id, $oldStory->twins, $changes, 'Edited'); - return true; + return !empty($actionID) ? $actionID : false; } /** @@ -2741,7 +2743,6 @@ class storyModel extends model $allProduct = "`product` = 'all'"; $queryVar = in_array($type, array('requirement', 'epic')) ? "{$type}Query" : 'storyQuery'; - $storyQuery = $this->session->{$queryVar}; $queryProductID = $productID; if(strpos($storyQuery, $allProduct) !== false) @@ -4382,8 +4383,14 @@ class storyModel extends model $estimates = array(); foreach($data->account as $key => $account) { - if(!empty($data->estimate[$key]) and !is_numeric($data->estimate[$key])) dao::$errors['estimate'] = $this->lang->story->estimateMustBeNumber; - if(!empty($data->estimate[$key]) and $data->estimate[$key] < 0) dao::$errors['estimate'] = $this->lang->story->estimateMustBePlus; + if(!empty($data->estimate[$key]) and !is_numeric($data->estimate[$key])) + { + dao::$errors['estimate'] = $this->lang->story->estimateMustBeNumber; + } + elseif(!empty($data->estimate[$key]) and $data->estimate[$key] < 0) + { + dao::$errors['estimate'] = $this->lang->story->estimateMustBePlus; + } if(dao::isError()) return; $estimates[$account]['account'] = $account; @@ -4395,7 +4402,7 @@ class storyModel extends model $storyEstimate->story = $storyID; $storyEstimate->round = empty($lastRound) ? 1 : $lastRound + 1; $storyEstimate->estimate = json_encode($estimates); - $storyEstimate->average = $data->average; + $storyEstimate->average = (float)$data->average; $storyEstimate->openedBy = $this->app->user->account; $storyEstimate->openedDate = helper::now(); @@ -4612,7 +4619,7 @@ class storyModel extends model $story->closedDate = $now; $story->assignedTo = 'closed'; $story->assignedDate = $now; - $story->stage = $reason == 'done' ? 'released' : 'closed'; + $story->stage = $reason == 'done' && $oldStory->type == 'story' ? 'released' : 'closed'; $story->closedReason = $reason; } diff --git a/module/story/ui/change.html.php b/module/story/ui/change.html.php index 2f7f2f1b88..bb759547dc 100644 --- a/module/story/ui/change.html.php +++ b/module/story/ui/change.html.php @@ -158,6 +158,7 @@ foreach($fields as $field => $attr) } $formItems['file'] = section ( + setID('files'), set::width('full'), set::title($lang->attach), fileSelector($story->files ? set::defaultFiles(array_values($story->files)) : null) diff --git a/module/story/ui/edit.html.php b/module/story/ui/edit.html.php index 8ae743be5b..09f33d0351 100644 --- a/module/story/ui/edit.html.php +++ b/module/story/ui/edit.html.php @@ -188,13 +188,16 @@ detailBody }, $twins)) ) ), - $canEditContent || $story->files ? section - ( - set::title($lang->story->legendAttach), - $canEditContent ? fileSelector(set::defaultFiles($story->files)) : null - ) : null, section ( + setID('files'), + setClass(!$canEditContent && !$story->files ? 'hidden' : ''), + set::title($lang->story->legendAttach), + $canEditContent ? fileSelector(set::defaultFiles($story->files)) : null + ), + section + ( + setID('comment'), set::title($lang->story->comment), formGroup(editor(set::name('comment'), set::uid($uid))) ) diff --git a/module/story/ui/view.html.php b/module/story/ui/view.html.php index 9fe2e87af9..e4caa27449 100644 --- a/module/story/ui/view.html.php +++ b/module/story/ui/view.html.php @@ -80,6 +80,7 @@ if($story->files) 'control' => 'fileList', 'files' => $story->files, 'showDelete' => false, + 'padding' => false, 'object' => $story ); } diff --git a/module/story/zen.php b/module/story/zen.php index 0d2fb62929..0f27272362 100644 --- a/module/story/zen.php +++ b/module/story/zen.php @@ -784,6 +784,9 @@ class storyZen extends story unset($fields['relievedTwins']); unset($fields['deleteFiles']); unset($fields['renameFiles']); + unset($fields['docs']); + unset($fields['oldDocs']); + unset($fields['docVersions']); foreach(array_keys($fields) as $field) { @@ -1645,37 +1648,6 @@ class storyZen extends story return $stories; } - /** - * 检查需求是否重复。 - * Check repeat story. - * - * @param object $story - * @param int $objectID - * @param string $storyType - * @access protected - * @return array - */ - protected function checkRepeatStory(object $story, int $objectID, string $storyType = 'story'): array - { - /* Check repeat story. */ - $result = $this->loadModel('common')->removeDuplicate('story', $story, "product={$story->product}"); - if(empty($result['stop'])) return array(); - - $response['result'] = 'success'; - $response['message'] = sprintf($this->lang->duplicate, $this->lang->story->common); - $response['locate'] = $this->createLink('story', 'view', "storyID={$result['duplicate']}&version=0¶m=0&storyType=$storyType"); - $response['closeModal'] = true; - if($objectID) - { - $execution = $this->dao->findById((int)$objectID)->from(TABLE_EXECUTION)->fetch(); - $moduleName = $execution->type == 'project' ? 'projectstory' : 'execution'; - $param = $execution->type == 'project' ? "projectID=$objectID&productID={$story->product}" : "executionID=$objectID"; - $response['locate'] = $this->createLink($moduleName, 'story', $param); - } - - return $response; - } - /** * 如果是在弹窗中打开页面,获取跳转地址。 * Get response when open in modal. diff --git a/module/task/control.php b/module/task/control.php index 77f87bb402..cc8179ac7f 100755 --- a/module/task/control.php +++ b/module/task/control.php @@ -65,10 +65,6 @@ class task extends control $taskData = $this->taskZen->buildTaskForCreate($this->post->execution ? (int)$this->post->execution : $executionID); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); - /* Check whether a task with the same name is created within the specified time. */ - $duplicateTaskID = $this->taskZen->checkDuplicateName($taskData); - if($duplicateTaskID) return $this->send(array('result' => 'success', 'message' => sprintf($this->lang->duplicate, $this->lang->task->common), 'load' => $this->createLink('task', 'view', "taskID={$duplicateTaskID}"))); - $this->dao->begin(); if($this->post->type == 'test' && $this->post->selectTestStory == 'on') { diff --git a/module/task/js/activate.ui.js b/module/task/js/activate.ui.js index 539b377ded..f12ece1b86 100644 --- a/module/task/js/activate.ui.js +++ b/module/task/js/activate.ui.js @@ -163,7 +163,11 @@ function updateAssignedTo() index ++; }); - if(multiple && mode == 'linear' && $('#modalTeam tr.member-doing').length == 0 && $('#modalTeam tr.member-wait').length >= 1) assignedTo = assignedToItems[0].value; + if(multiple && mode == 'linear' && $('#modalTeam tr.member-doing').length == 0 && $('#modalTeam tr.member-wait').length >= 1) + { + index --; + assignedTo = assignedToItems.includes(index) ? assignedToItems[index].value : ''; + } $assignedToPicker.render({items: assignedToItems, disabled: true}); } @@ -177,9 +181,9 @@ function updateAssignedTo() function computeTotalLeft() { let totalLeft = 0; - $('.picker-box [name^=team]').each(function() + $('tr.member').each(function() { - let $leftBox = $(this).closest('tr').find('[name^=teamLeft]'); + let $leftBox = $(this).find('[name^=teamLeft]'); let left = parseFloat($leftBox.val()); if(!isNaN(left)) totalLeft += left; }); diff --git a/module/task/js/batchcreate.ui.js b/module/task/js/batchcreate.ui.js index 92b17bf40d..b0c415a230 100644 --- a/module/task/js/batchcreate.ui.js +++ b/module/task/js/batchcreate.ui.js @@ -156,37 +156,46 @@ $(document).off('change', '#formSettingBtn input[value=story]').on('change', '#f function checkBatchEstStartedAndDeadline(event) { + if(taskDateLimit != 'limit') return; + const $currentRow = $(event.target).closest('tr'); const field = $(event.target).closest('.form-batch-control').data('name'); const estStarted = $currentRow.find('[name^=estStarted]').val(); const deadline = $currentRow.find('[name^=deadline]').val(); + const level = $currentRow.attr('data-level'); - if(field == 'estStarted' && estStarted.length > 0 && parentEstStarted.length > 0 && estStarted < parentEstStarted) + let $nextRow = $currentRow.next(); + while($nextRow.length) { - const $estStartedTd = $currentRow.find('td[data-name=estStarted]'); - if($estStartedTd.find('.date-tip').length == 0 || $estStartedTd.find('.date-tip .form-tip').length > 0) - { - $estStartedTd.find('.date-tip').remove(); + let nextLevel = $nextRow.attr('data-level'); + if(nextLevel <= level) break; - let $datetip = $('
      '); - $datetip.append('
      ' + overParentEstStartedLang + '' + ignoreLang + '
      '); - $datetip.off('click', '.ignore-date').on('click', '.ignore-date', function(e){ignoreTip(e)}); - $estStartedTd.append($datetip); - } + if(field == 'estStarted') $nextRow.find('td[data-name=estStarted]').find('[id^=estStarted]').zui('datepicker').render({disabled: estStarted == ''}); + if(field == 'deadline') $nextRow.find('td[data-name=deadline]').find('[id^=deadline]').zui('datepicker').render({disabled: deadline == ''}); + + $nextRow = $nextRow.next(); } + if($currentRow.find('td[data-name=name]').find('input[name^=name]').val() == '') return; + + const $estStartedTd = $currentRow.find('td[data-name=estStarted]'); + $estStartedTd.find('.date-tip').remove(); + if(field == 'estStarted' && estStarted.length > 0 && parentEstStarted.length > 0 && estStarted < parentEstStarted) + { + let $datetip = $('
      '); + $datetip.append('
      ' + overParentEstStartedLang + '
      '); + $datetip.off('click', '.ignore-date').on('click', '.ignore-date', function(e){ignoreTip(e)}); + $estStartedTd.append($datetip); + } + + const $deadlineTd = $currentRow.find('td[data-name=deadline]'); + $deadlineTd.find('.date-tip').remove(); if(field == 'deadline' && deadline.length > 0 && parentDeadline.length > 0 && deadline > parentDeadline) { - const $deadlineTd = $currentRow.find('td[data-name=deadline]'); - if($deadlineTd.find('.date-tip').length == 0 || $deadlineTd.find('.date-tip .form-tip').length > 0) - { - $deadlineTd.find('.date-tip').remove(); - - let $datetip = $('
      '); - $datetip.append('
      ' + overParentDeadlineLang + '' + ignoreLang + '
      '); - $datetip.off('click', '.ignore-date').on('click', '.ignore-date', function(e){ignoreTip(e)}); - $deadlineTd.append($datetip); - } + let $datetip = $('
      '); + $datetip.append('
      ' + overParentDeadlineLang + '
      '); + $datetip.off('click', '.ignore-date').on('click', '.ignore-date', function(e){ignoreTip(e)}); + $deadlineTd.append($datetip); } } @@ -281,6 +290,27 @@ window.handleRenderRow = function($row, index) const $preAssignedTo = $prevRow.find('input[name^=assignedTo]').zui('picker'); if($preAssignedTo != undefined) $assignedTo.render({items: $preAssignedTo.options.items}); }) + + if(taskDateLimit == 'limit') + { + let disabledStarted = false; + let disabledDeadline = false; + if(parentID) + { + disabledStarted = parentEstStarted == ''; + disabledDeadline = parentDeadline == ''; + } + else if(parentID == 0 && level > 0) + { + const $prevLevelRow = $row.prevAll('tr[data-level="' + (level - 1) + '"]').first(); + const $prevLevelStarted = $prevLevelRow.find('td[data-name=estStarted]').find('input[name^=estStarted]'); + const $prevLevelDeadline = $prevLevelRow.find('td[data-name=deadline]').find('input[name^=deadline]'); + disabledStarted = $prevLevelStarted.val() == '' || $prevLevelStarted.prop('disabled'); + disabledDeadline = $prevLevelDeadline.val() == '' || $prevLevelDeadline.prop('disabled'); + } + $row.find('td[data-name=estStarted]').find('[id^=estStarted]').on('inited', function(e, info) { info[0].render({disabled: disabledStarted}); }) + $row.find('td[data-name=deadline]').find('[id^=deadline]').on('inited', function(e, info) { info[0].render({disabled: disabledDeadline}); }) + } }; $(function() diff --git a/module/task/js/batchedit.ui.js b/module/task/js/batchedit.ui.js index 4193418ff6..c4539c74f4 100644 --- a/module/task/js/batchedit.ui.js +++ b/module/task/js/batchedit.ui.js @@ -8,6 +8,8 @@ window.renderRowData = function($row, index, row) members[teamAccount] = users[teamAccount]; }); + $row.attr('data-parent', row.parent); + let taskMembers = []; if(row.mode != '' && teams[row.id] != undefined) { @@ -26,15 +28,25 @@ window.renderRowData = function($row, index, row) const taskUsers = []; let disabled = false; $row.find('.form-batch-input[data-name="assignedTo"]').empty(); - if(teams[row.id] != undefined && ((row.mode == 'linear' && row.status != 'done') || taskMembers[currentUser] == undefined)) - { - disabled = true; - } + if(teams[row.id] != undefined && ((row.mode == 'linear' && row.status != 'done') || taskMembers[currentUser] == undefined)) disabled = true; if(row.status == 'closed') disabled = true; if(row.assignedTo && taskMembers[row.assignedTo] == undefined) taskMembers[row.assignedTo] = users[row.assignedTo]; for(let account in taskMembers) taskUsers.push({value: account, text: taskMembers[account]}); + if(parentTasks[row.parent] != undefined && taskDateLimit == 'limit') + { + const parentTask = parentTasks[row.parent]; + $row.find('[id^="estStarted"]').on('inited', function(e, info) + { + if(parentTask.estStarted == '') info[0].render({disabled: true}); + }); + $row.find('[id^="deadline"]').on('inited', function(e, info) + { + if(parentTask.deadline == '') info[0].render({disabled: true}); + }); + } + $row.find('[data-name="assignedTo"]').find('.picker-box').on('inited', function(e, info) { const $assignedTo = info[0]; @@ -46,13 +58,7 @@ window.renderRowData = function($row, index, row) $assignedTo.render({items: taskUsers, disabled: disabled, toolbar: pickerToolbar}); }); - if(row.status == 'wait') - { - $row.find('[data-name="status"]').find('.picker-box').on('inited', function(e, info) - { - info[0].render({items: noPauseStatusList}); - }); - } + if(row.status == 'wait') $row.find('[data-name="status"]').find('.picker-box').on('inited', function(e, info) { info[0].render({items: noPauseStatusList}); }); if(teams[row.id] != undefined || row.isParent > 0) { @@ -173,51 +179,85 @@ window.statusChange = function(event) function checkBatchEstStartedAndDeadline(event) { - if(parentTasks.length == 0) return true; + if(taskDateLimit != 'limit') return; const $currentRow = $(event.target).closest('tr'); const taskID = $currentRow.find('[name^=id]').val(); const parentID = tasks[taskID].parent; - if(typeof parentTasks[parentID] == 'undefined' || !parentTasks[parentID]) return true; - const parentTask = parentTasks[parentID]; const field = $(event.target).closest('.form-batch-control').data('name'); const estStarted = $currentRow.find('[name^=estStarted]').val(); const deadline = $currentRow.find('[name^=deadline]').val(); + const parentTask = parentTasks[parentID] ? parentTasks[parentID] : {estStarted: '', deadline: ''}; if(field == 'estStarted') { - let parentEstStarted = typeof tasks[parentID] == 'undefined' || $(event.target).closest('tbody').find('[name="estStarted[' + parentID + ']"]').length == 0 ? parentTask.estStarted : $(event.target).closest('tbody').find('[name="estStarted[' + parentID + ']"]').val(); - if(estStarted.length > 0 && parentEstStarted.length > 0 && estStarted < parentEstStarted) - { - const $estStartedTd = $currentRow.find('td[data-name=estStarted]'); - if($estStartedTd.find('.date-tip').length == 0 || $estStartedTd.find('.date-tip .form-tip').length > 0) - { - $estStartedTd.find('.date-tip').remove(); + const $estStartedTd = $currentRow.find('td[data-name=estStarted]'); + $estStartedTd.find('.date-tip').remove(); - let $datetip = $('
      '); - $datetip.append('
      ' + overParentEstStartedLang.replace('%s', parentEstStarted) + '' + ignoreLang + '
      '); - $datetip.off('click', '.ignore-date').on('click', '.ignore-date', function(e){ignoreTip(e)}); - $estStartedTd.append($datetip); + const $childrenEstStarted = $(event.target).closest('tbody').find('tr[data-parent="' + taskID + '"]').find('[name^=estStarted]'); + + $childrenEstStarted.each(function() + { + let $childDatePicker = $(this).zui('datePicker'); + $childDatePicker.render({disabled: estStarted.length == 0}); + if(estStarted.length == 0) $childDatePicker.$.setValue(''); + + checkBatchEstStartedAndDeadline({target: this}); + }); + + if(estStarted.length > 0) + { + let $datetip = $('
      '); + let parentEstStarted = typeof tasks[parentID] == 'undefined' || $(event.target).closest('tbody').find('[name="estStarted[' + parentID + ']"]').length == 0 ? parentTask.estStarted : $(event.target).closest('tbody').find('[name="estStarted[' + parentID + ']"]').val(); + if(parentEstStarted.length > 0 && estStarted < parentEstStarted) $datetip.append('
      ' + overParentEstStartedLang.replace('%s', parentEstStarted) + '
      '); + + let childEstStarted = childrenDateLimit[taskID] ? childrenDateLimit[taskID].estStarted : ''; + $childrenEstStarted.each(function() + { + if(childEstStarted.length == 0 || ($(this).val().length > 0 && $(this).val() < childEstStarted)) childEstStarted = $(this).val(); + }); + if(childEstStarted.length > 0 && estStarted > childEstStarted) + { + $datetip.append('
      ' + overChildEstStartedLang.replace('%s', childEstStarted) + '' + ignoreLang + '
      '); + $datetip.off('click', '.ignore-child').on('click', '.ignore-child', function(e){ignoreTip(e)}); } + $estStartedTd.append($datetip); } } if(field == 'deadline') { - let parentDeadline = typeof tasks[parentID] == 'undefined' || $(event.target).closest('tbody').find('[name="deadline[' + parentID + ']"]').length == 0 ? parentTask.deadline : $(event.target).closest('tbody').find('[name="deadline[' + parentID + ']"]').val(); - if(deadline.length > 0 && parentDeadline.length > 0 && deadline > parentDeadline) - { - const $deadlineTd = $currentRow.find('td[data-name=deadline]'); - if($deadlineTd.find('.date-tip').length == 0 || $deadlineTd.find('.date-tip .form-tip').length > 0) - { - $deadlineTd.find('.date-tip').remove(); + const $deadlineTd = $currentRow.find('td[data-name=deadline]'); + $deadlineTd.find('.date-tip').remove(); - let $datetip = $('
      '); - $datetip.append('
      ' + overParentDeadlineLang.replace('%s', parentDeadline) + '' + ignoreLang + '
      '); - $datetip.off('click', '.ignore-date').on('click', '.ignore-date', function(e){ignoreTip(e)}); - $deadlineTd.append($datetip); + const $childrenDeadline = $(event.target).closest('tbody').find('tr[data-parent="' + taskID + '"]').find('[name^=deadline]'); + $childrenDeadline.each(function() + { + let $childDatePicker = $(this).zui('datePicker'); + $childDatePicker.render({disabled: deadline.length == 0}); + if(deadline.length == 0) $childDatePicker.$.setValue(''); + + checkBatchEstStartedAndDeadline({target: this}); + }); + if(deadline.length > 0) + { + let $datetip = $('
      '); + + let parentDeadline = typeof tasks[parentID] == 'undefined' || $(event.target).closest('tbody').find('[name="deadline[' + parentID + ']"]').length == 0 ? parentTask.deadline : $(event.target).closest('tbody').find('[name="deadline[' + parentID + ']"]').val(); + if(parentDeadline.length > 0 && deadline > parentDeadline) $datetip.append('
      ' + overParentDeadlineLang.replace('%s', parentDeadline) + '
      '); + + let childDeadline = childrenDateLimit[taskID] ? childrenDateLimit[taskID].deadline : ''; + $childrenDeadline.each(function() + { + if(childDeadline.length == 0 || ($(this).val().length > 0 && $(this).val() > childDeadline)) childDeadline = $(this).val(); + }); + if(childDeadline.length > 0 && deadline < childDeadline) + { + $datetip.append('
      ' + overChildDeadlineLang.replace('%s', childDeadline) + '' + ignoreLang + '
      '); + $datetip.off('click', '.ignore-child').on('click', '.ignore-child', function(e){ignoreTip(e)}); } + $deadlineTd.append($datetip); } } } diff --git a/module/task/js/create.ui.js b/module/task/js/create.ui.js index d4e59bb2b4..ea654a9118 100644 --- a/module/task/js/create.ui.js +++ b/module/task/js/create.ui.js @@ -1,4 +1,3 @@ -window.waitDom('#form-task-create [name=type]', function(){ typeChange();}) window.waitDom('#form-task-create [name=story]', function(){setPreview();}) window.waitDom('#form-task-create [name=story]', function(){setStoryRelated();}) @@ -644,8 +643,17 @@ overParentEstStartedLang = ''; overParentDeadlineLang = ''; window.getParentEstStartedAndDeadline = function() { - const parent = $('[name=parent]').val(); - if(!parent) return; + const $parent = $('[name=parent]'); + const parent = $parent.val(); + if(!parent) + { + if(taskDateLimit != 'limit') return; + + const $form = $parent.closest('form'); + $form.find('[name=estStarted]').zui('datePicker').render({disabled: false}); + $form.find('[name=deadline]').zui('datePicker').render({disabled: false}); + return; + } const link = $.createLink('task', 'ajaxGetTaskEstStartedAndDeadline', 'taskID=' + parent); $.getJSON(link, function(data) @@ -662,6 +670,8 @@ window.getParentEstStartedAndDeadline = function() window.checkEstStartedAndDeadline = function(event) { + if(taskDateLimit != 'limit') return; + const parent = $('[name=parent]').val(); if(!parent) return; @@ -672,31 +682,28 @@ window.checkEstStartedAndDeadline = function(event) const $deadline = $form.find('[name=deadline]'); const deadline = $deadline.val(); + const $estStartedDiv = $estStarted.closest('.form-group-wrapper'); + if(field == 'estStarted') $estStartedDiv.find('#estStartedTip').remove(); if(field == 'estStarted' && estStarted.length > 0 && parentEstStarted.length > 0 && estStarted < parentEstStarted) { - const $estStartedDiv = $estStarted.closest('.form-group'); - if($estStartedDiv.find('.date-tip').length == 0 || $estStartedDiv.find('.date-tip .form-tip').length > 0) - { - $estStartedDiv.find('.date-tip').remove(); - - let $datetip = $('
      '); - $datetip.append('
      ' + overParentEstStartedLang + '' + ignoreLang + '
      '); - $datetip.off('click', '.ignore-date').on('click', '.ignore-date', function(e){ignoreTip(e)}); - $estStartedDiv.append($datetip); - } + let $datetip = $('
      '); + $datetip.append('
      ' + overParentEstStartedLang + '
      '); + $estStartedDiv.append($datetip); } + const $deadlineDiv = $deadline.closest('.form-group-wrapper'); + if(field == 'deadline') $deadlineDiv.find('#deadlineTip').remove(); if(field == 'deadline' && deadline.length > 0 && parentDeadline.length > 0 && deadline > parentDeadline) { - const $deadlineDiv = $deadline.closest('.form-group'); - if($deadlineDiv.find('.date-tip').length == 0 || $deadlineDiv.find('.date-tip .form-tip').length > 0) - { - $deadlineDiv.find('.date-tip').remove(); - - let $datetip = $('
      '); - $datetip.append('
      ' + overParentDeadlineLang + '' + ignoreLang + '
      '); - $datetip.off('click', '.ignore-date').on('click', '.ignore-date', function(e){ignoreTip(e)}); - $deadlineDiv.append($datetip); - } + let $datetip = $('
      '); + $datetip.append('
      ' + overParentDeadlineLang + '
      '); + $deadlineDiv.append($datetip); } + + let $estStartedPicker = $estStarted.zui('datePicker'); + let $deadlinePicker = $deadline.zui('datePicker'); + $estStartedPicker.render({disabled: parentEstStarted == ''}); + $deadlinePicker.render({disabled: parentDeadline == ''}); + if(parentEstStarted == '') $estStartedPicker.$.setValue(''); + if(parentDeadline == '') $deadlinePicker.$.setValue(''); } diff --git a/module/task/js/edit.ui.js b/module/task/js/edit.ui.js index 1cf5ce55be..cd7ae4ed1e 100644 --- a/module/task/js/edit.ui.js +++ b/module/task/js/edit.ui.js @@ -273,6 +273,12 @@ window.renderRowData = function($row, index, row) $row.attr('data-consumed', row ? row.teamConsumed : 0); $row.attr('data-left', row ? row.teamLeft : 0); + if(['pause', 'cancel', 'closed'].includes(taskStatus)) + { + $row.find('[data-type=add]').addClass('hidden'); // 已暂停、已取消、已关闭的任务不允许添加成员 + $row.find('[data-type=delete]').addClass('hidden'); // 已暂停、已取消、已关闭的任务不允许删除成员 + } + /* 复制上一行的人员下拉。*/ $row.find('[data-name=team]').find('.picker-box').on('inited', function(e, info) { @@ -407,8 +413,17 @@ window.setStoryModule = function() getParentEstStartedAndDeadline = function() { - const parent = $('[name=parent]').val(); - if(!parent) return; + const $parent = $('[name=parent]'); + const parent = $parent.val(); + if(!parent) + { + if(taskDateLimit != 'limit') return; + + const $form = $parent.closest('form'); + $form.find('[name=estStarted]').zui('datePicker').render({disabled: false}); + $form.find('[name=deadline]').zui('datePicker').render({disabled: false}); + return; + } const link = $.createLink('task', 'ajaxGetTaskEstStartedAndDeadline', 'taskID=' + parent); $.getJSON(link, function(data) @@ -425,38 +440,53 @@ getParentEstStartedAndDeadline = function() function checkEstStartedAndDeadline(event) { + if(taskDateLimit != 'limit') return; + const $form = $(event.target).closest('form'); const field = $(event.target).attr('name') const $estStarted = $form.find('[name=estStarted]'); const estStarted = $estStarted.val(); const $deadline = $form.find('[name=deadline]'); const deadline = $deadline.val(); + const hasParent = $('[name=parent]').val() != ''; - if(field == 'estStarted' && estStarted.length > 0 && parentEstStarted.length > 0 && estStarted < parentEstStarted) + const $estStartedDiv = $estStarted.closest('.form-group'); + if(field == 'estStarted' && estStarted.length > 0) { - const $estStartedDiv = $estStarted.closest('.form-group'); - if($estStartedDiv.find('.date-tip').length == 0 || $estStartedDiv.find('.date-tip .form-tip').length > 0) - { - $estStartedDiv.find('.date-tip').remove(); + $estStartedDiv.find('#estStartedTip').remove(); + let $datetip = $('
      '); + if(hasParent && parentEstStarted.length > 0 && estStarted < parentEstStarted) $datetip.append('
      ' + overParentEstStartedLang + '
      '); - let $datetip = $('
      '); - $datetip.append('
      ' + overParentEstStartedLang + '' + ignoreLang + '
      '); - $datetip.off('click', '.ignore-date').on('click', '.ignore-date', function(e){ignoreTip(e)}); - $estStartedDiv.append($datetip); + if(childDateLimit['estStarted'].length > 0 && estStarted > childDateLimit['estStarted']) + { + $datetip.append('
      ' + overChildEstStartedLang + '' + ignoreLang + '
      '); + $datetip.off('click', '.ignore-child').on('click', '.ignore-child', function (e) { ignoreTip(e) }); } + $estStartedDiv.append($datetip); } - if(field == 'deadline' && deadline.length > 0 && parentDeadline.length > 0 && deadline > parentDeadline) + const $deadlineDiv = $deadline.closest('.form-group'); + if(field == 'deadline' && deadline.length > 0) { - const $deadlineDiv = $deadline.closest('.form-group'); - if($deadlineDiv.find('.date-tip').length == 0 || $deadlineDiv.find('.date-tip .form-tip').length > 0) - { - $deadlineDiv.find('.date-tip').remove(); + $deadlineDiv.find('#deadlineTip').remove(); + let $datetip = $('
      '); + if(hasParent && parentDeadline.length > 0 && deadline > parentDeadline) $datetip.append('
      ' + overParentDeadlineLang + '
      '); - let $datetip = $('
      '); - $datetip.append('
      ' + overParentDeadlineLang + '' + ignoreLang + '
      '); - $datetip.off('click', '.ignore-date').on('click', '.ignore-date', function(e){ignoreTip(e)}); - $deadlineDiv.append($datetip); + if(childDateLimit['deadline'].length > 0 && deadline < childDateLimit['deadline']) + { + $datetip.append('
      ' + overChildDeadlineLang + '' + ignoreLang + '
      '); + $datetip.off('click', '.ignore-child').on('click', '.ignore-child', function (e) { ignoreTip(e) }); } + $deadlineDiv.append($datetip); + } + + if(hasParent) + { + let $estStartedPicker = $estStarted.zui('datePicker'); + let $deadlinePicker = $deadline.zui('datePicker'); + $estStartedPicker.render({disabled: parentEstStarted == ''}); + $deadlinePicker.render({disabled: parentDeadline == ''}); + if(parentEstStarted == '') $estStartedPicker.$.setValue(''); + if(parentDeadline == '') $deadlinePicker.$.setValue(''); } } diff --git a/module/task/lang/de.php b/module/task/lang/de.php index ba80d1888f..e544b33c78 100644 --- a/module/task/lang/de.php +++ b/module/task/lang/de.php @@ -10,6 +10,7 @@ * @link https://www.zentao.net */ $lang->task->index = "Index"; +$lang->task->browse = "Aufgabenliste"; $lang->task->create = "Aufgabe erstellen"; $lang->task->batchCreate = "Mehere erstellen"; $lang->task->batchCreateChildren = "Mehere Teilaufgaben"; @@ -437,6 +438,8 @@ $lang->task->overEsEndDate = 'The %s schedule end time has exceeded, please mo $lang->task->overParentEsStarted = 'StartDate is less than the parent task\'s startDate: %s'; $lang->task->overParentDeadline = 'Deadline is greater than the parent task\'s deadline: %s'; +$lang->task->overChildEstStarted = "Existed child task's startDate is less than the task's startDate: %s"; +$lang->task->overChildDeadline = "Existed child task's deadline is greater than the task's deadline: %s"; $lang->task->disabledHint = new stdclass(); $lang->task->disabledHint->assignedConfirmStoryChange = 'Changes can only be confirmed by the assignee.'; diff --git a/module/task/lang/en.php b/module/task/lang/en.php index 3eaf16fa8c..df27a2403d 100755 --- a/module/task/lang/en.php +++ b/module/task/lang/en.php @@ -10,6 +10,7 @@ * @link https://www.zentao.net */ $lang->task->index = "Home"; +$lang->task->browse = "Task List"; $lang->task->create = "Create Task"; $lang->task->batchCreate = "Batch Create"; $lang->task->batchCreateChildren = "Batch Create Child Tasks"; @@ -437,6 +438,8 @@ $lang->task->overEsEndDate = 'The %s schedule end time has exceeded, please mo $lang->task->overParentEsStarted = 'StartDate is less than the parent task\'s startDate: %s'; $lang->task->overParentDeadline = 'Deadline is greater than the parent task\'s deadline: %s'; +$lang->task->overChildEstStarted = "Existed child task's startDate is less than the task's startDate: %s"; +$lang->task->overChildDeadline = "Existed child task's deadline is greater than the task's deadline: %s"; $lang->task->disabledHint = new stdclass(); $lang->task->disabledHint->assignedConfirmStoryChange = 'Changes can only be confirmed by the assignee.'; diff --git a/module/task/lang/fr.php b/module/task/lang/fr.php index 2a33173f1b..f6909f442c 100644 --- a/module/task/lang/fr.php +++ b/module/task/lang/fr.php @@ -10,6 +10,7 @@ * @link https://www.zentao.net */ $lang->task->index = "Accueil"; +$lang->task->browse = "Liste des Tâches"; $lang->task->create = "Créer Tâche"; $lang->task->batchCreate = "Créer par Lots"; $lang->task->batchCreateChildren = "Créer sous-tâches par lots"; @@ -437,6 +438,8 @@ $lang->task->overEsEndDate = 'The %s schedule end time has exceeded, please mo $lang->task->overParentEsStarted = 'StartDate is less than the parent task\'s startDate: %s'; $lang->task->overParentDeadline = 'Deadline is greater than the parent task\'s deadline: %s'; +$lang->task->overChildEstStarted = "Existed child task's startDate is less than the task's startDate: %s"; +$lang->task->overChildDeadline = "Existed child task's deadline is greater than the task's deadline: %s"; $lang->task->disabledHint = new stdclass(); $lang->task->disabledHint->assignedConfirmStoryChange = 'Changes can only be confirmed by the assignee.'; diff --git a/module/task/lang/zh-cn.php b/module/task/lang/zh-cn.php index d09ef454f5..26c167b100 100755 --- a/module/task/lang/zh-cn.php +++ b/module/task/lang/zh-cn.php @@ -10,6 +10,7 @@ * @link https://www.zentao.net */ $lang->task->index = "任务一览"; +$lang->task->browse = "任务列表"; $lang->task->create = "建任务"; $lang->task->batchCreate = "批量创建"; $lang->task->batchCreateChildren = "批量建子任务"; @@ -437,6 +438,8 @@ $lang->task->overEsEndDate = '已超出%s计划结束时间,请先修改%s $lang->task->overParentEsStarted = '任务的预计开始日期小于了父任务的预计开始日期:%s'; $lang->task->overParentDeadline = '任务的截止日期大于了父任务的截止日期:%s'; +$lang->task->overChildEstStarted = '存在子任务的预计开始日期小于了该任务的预计开始日期:%s'; +$lang->task->overChildDeadline = '存在子任务的截止日期超出了该任务的截止日期:%s'; $lang->task->disabledHint = new stdclass(); $lang->task->disabledHint->assignedConfirmStoryChange = '只有指派人才能确认变更'; diff --git a/module/task/model.php b/module/task/model.php index 6475c859bd..c9d8549132 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -43,8 +43,12 @@ class taskModel extends model if(!empty($oldTask->team)) { /* When activate and assigned to a team member, then update his left data in teamData. */ - $teamIndex = zget(array_flip($teamData->team), $task->assignedTo, ''); - if($teamIndex !== '') $teamData->teamLeft[$teamIndex] = $task->left; + $valueCount = array_count_values($teamData->team); + if(isset($valueCount[$task->assignedTo]) && $valueCount[$task->assignedTo] == 1) + { + $teamIndex = zget(array_flip($teamData->team), $task->assignedTo, ''); + $teamData->teamLeft[$teamIndex] = $task->left; + } $this->manageTaskTeam($oldTask->mode, $task, $teamData); $task = $this->computeMultipleHours($oldTask, $task); @@ -628,7 +632,7 @@ class taskModel extends model foreach($this->config->task->dateFields as $field) { if(in_array($field, explode(',', $this->config->task->batchedit->requiredFields))) continue; - if(empty($task->$field)) unset($task->$field); + if(isset($task->$field) && helper::isZeroDate($task->$field)) $task->$field = null; } /* Update a task.*/ @@ -749,26 +753,29 @@ class taskModel extends model * @param int $executionID * @param string $estStarted * @param string $deadline - * @param string $prefix + * @param int|null $rowID * @access public * @return false|void */ - public function checkEstStartedAndDeadline(int $executionID, string $estStarted, string $deadline, string $prefix = '') + public function checkEstStartedAndDeadline(int $executionID, string $estStarted, string $deadline, int|null $rowID = null) { + $beginIndex = $rowID === null ? 'estStarted' : "estStarted[$rowID]"; + $endIndex = $rowID === null ? 'deadline' : "deadline[$rowID]"; + $execution = $this->loadModel('execution')->getByID($executionID); if(empty($execution) || empty($this->config->limitTaskDate)) return false; if(empty($execution->multiple)) $this->lang->execution->common = $this->lang->project->common; if(!empty($estStarted) && !helper::isZeroDate($estStarted)) { - if($estStarted < $execution->begin) dao::$errors['estStarted'] = $prefix . sprintf($this->lang->task->error->beginLtExecution, $this->lang->execution->common, $execution->begin); - if($estStarted > $execution->end) dao::$errors['estStarted'] = $prefix . sprintf($this->lang->task->error->beginGtExecution, $this->lang->execution->common, $execution->end); + if($estStarted < $execution->begin) dao::$errors[$beginIndex] = sprintf($this->lang->task->error->beginLtExecution, $this->lang->execution->common, $execution->begin); + if($estStarted > $execution->end) dao::$errors[$beginIndex] = sprintf($this->lang->task->error->beginGtExecution, $this->lang->execution->common, $execution->end); } if(!empty($deadline) && !helper::isZeroDate($deadline)) { - if($deadline > $execution->end) dao::$errors['deadline'] = $prefix . sprintf($this->lang->task->error->endGtExecution, $this->lang->execution->common, $execution->end); - if($deadline < $execution->begin) dao::$errors['deadline'] = $prefix . sprintf($this->lang->task->error->endLtExecution, $this->lang->execution->common, $execution->begin); + if($deadline > $execution->end) dao::$errors[$endIndex] = sprintf($this->lang->task->error->endGtExecution, $this->lang->execution->common, $execution->end); + if($deadline < $execution->begin) dao::$errors[$endIndex] = sprintf($this->lang->task->error->endLtExecution, $this->lang->execution->common, $execution->begin); } } @@ -821,6 +828,11 @@ class taskModel extends model $tasks = $this->dao->select('estStarted, realStarted, deadline')->from(TABLE_TASK)->where('parent')->eq($taskID)->andWhere('status')->ne('cancel')->andWhere('deleted')->eq(0)->fetchAll(); if(empty($tasks)) return !dao::isError(); + /* Initialize task data and update it. */ + $parent = $this->fetchById($taskID); + $taskDateLimit = $this->dao->select('taskDateLimit')->from(TABLE_PROJECT)->where('id')->eq($parent->project)->fetch('taskDateLimit'); + if($taskDateLimit == 'limit') return !dao::isError(); + /* Compute the earliest estStarted, the earliest realStarted and the latest deadline. */ $earliestEstStarted = ''; $earliestRealStarted = ''; @@ -832,9 +844,6 @@ class taskModel extends model if(!helper::isZeroDate($task->deadline) && (empty($latestDeadline) || $latestDeadline < $task->deadline)) $latestDeadline = $task->deadline; } - /* Initialize task data and update it. */ - $parent = $this->fetchById($taskID); - $newTask = array(); if(!empty($earliestEstStarted) && !helper::isZeroDate($parent->estStarted) && $parent->estStarted > $earliestEstStarted) $newTask['estStarted'] = $earliestEstStarted; if(!empty($earliestRealStarted) && !helper::isZeroDate($parent->realStarted) && $parent->realStarted > $earliestRealStarted) $newTask['realStarted'] = $earliestRealStarted; @@ -973,7 +982,7 @@ class taskModel extends model /* Insert task data. */ if(empty($task->assignedTo)) unset($task->assignedDate); - $this->dao->insert(TABLE_TASK)->data($task) + $this->dao->insert(TABLE_TASK)->data($task, 'docVersions') ->checkIF($task->estimate != '', 'estimate', 'float') ->autoCheck() ->batchCheck($requiredFields, 'notempty') @@ -1814,15 +1823,17 @@ class taskModel extends model $taskPairs = array(); foreach($taskList as $taskID => $task) { - $prefix = $task->parent > 0 ? "[{$this->lang->task->childrenAB}] " : ''; - $task->name = empty($task->prefix) ? ($prefix . "$task->id:" . (empty($task->finishedByRealName) ? '' : "$task->finishedByRealName:") . "$task->name") : $task->name; + $prefix = $task->parent > 0 ? "[{$this->lang->task->childrenAB}] " : ''; + $finishedBy = !empty($task->finishedByRealName) ? "{$task->finishedByRealName}:" : ''; + $task->rawName = !empty($task->rawName) ? $task->rawName : $task->name; + $task->name = $task->parent > 0 ? "{$prefix}{$task->id}:{$finishedBy}{$task->rawName}" : $task->rawName; if(!empty($executionID) && $task->execution != $executionID) $task->name = $task->name . " [{$this->lang->task->otherExecution}]"; if(!empty($taskList[$task->parent])) { - $parent = $taskList[$task->parent]; - $parent->prefix = "[{$this->lang->task->parentAB}] "; - $parent->name = $parent->prefix . "$parent->id:" . (empty($parent->finishedByRealName) ? '' : "$parent->finishedByRealName:") . "$parent->name"; + $parent = $taskList[$task->parent]; + $parent->rawName = !empty($parent->rawName) ? $parent->rawName : $parent->name; + $parent->name = "[{$this->lang->task->parentAB}] " . "{$parent->id}:" . (empty($parent->finishedByRealName) ? '' : "$parent->finishedByRealName:") . $parent->rawName; } } foreach($taskList as $taskID => $task) $taskPairs[$taskID] = $task->name; @@ -2811,7 +2822,7 @@ class taskModel extends model } foreach($task as $field => $value) { - if(in_array($field, $this->config->task->dateFields) && helper::isZeroDate($value)) $task->$field = ''; + if(in_array($field, $this->config->task->dateFields) && helper::isZeroDate($value)) $task->$field = null; } $task->rawParent = $task->parent; @@ -2917,12 +2928,19 @@ class taskModel extends model if($field->type == 'date' || $field->type == 'datetime') $this->config->task->dateFields[] = $field->field; } } - foreach($this->config->task->dateFields as $field) if(empty($task->$field)) unset($task->$field); + foreach($this->config->task->dateFields as $field) + { + if(isset($task->$field) && helper::isZeroDate($task->$field)) $task->$field = null; + } $this->dao->update(TABLE_TASK)->data($task, 'team')->where('id')->eq($taskID)->exec(); if($task->parent > 0) $this->updateParentStatus($task->id); if($task->story) $this->loadModel('story')->setStage($task->story); - if($task->status != $oldStatus) $this->loadModel('kanban')->updateLane($task->execution, 'task', $taskID); + if($task->status != $oldStatus) + { + $this->loadModel('kanban')->updateLane($task->execution, 'task', $taskID); + if($this->config->edition != 'open' && $task->feedback) $this->loadModel('feedback')->updateStatus('task', $task->feedback, $task->status, $oldStatus, $task->id); + } if($task->status == 'done' && !dao::isError()) $this->loadModel('score')->create('task', 'finish', $taskID); } $this->loadModel('program')->refreshProjectStats($task->project); @@ -3247,6 +3265,21 @@ class taskModel extends model if($postData->type == 'task') { + $project = $this->dao->select('id,taskDateLimit')->from(TABLE_PROJECT)->where('id')->eq($oldObject->project)->fetch(); + if($project->taskDateLimit == 'limit') + { + $parentTasks = $this->dao->select('id,estStarted,deadline')->from(TABLE_TASK)->where('id')->in($oldObject->path)->andWhere('id')->ne($oldObject->id)->fetchAll('id'); + foreach(array_reverse(array_filter(explode(',', $oldObject->path))) as $taskID) + { + if(!isset($parentTasks[$taskID])) continue; + + $parentTask = $parentTasks[$taskID]; + if(!helper::isZeroDate($parentTask->estStarted) && $parentTask->estStarted > $postData->startDate) dao::$errors[] = sprintf($this->lang->task->overParentEsStarted, $parentTask->estStarted); + if(!helper::isZeroDate($parentTask->deadline) && $parentTask->deadline < $postData->endDate) dao::$errors[] = sprintf($this->lang->task->overParentDeadline, $parentTask->deadline); + if(dao::isError()) return false; + } + } + $oldObject->estStarted = $postData->startDate; $oldObject->deadline = $postData->endDate; unset($oldObject->openedDate); @@ -3724,7 +3757,7 @@ class taskModel extends model */ public function getChildTasksByList(array $taskIdList): array|false { - $childTasks = $this->dao->select('id,parent')->from(TABLE_TASK)->where('parent')->in($taskIdList)->andWhere('deleted')->eq('0')->fetchGroup('parent', 'id'); + $childTasks = $this->dao->select('id,parent,path,estStarted,deadline')->from(TABLE_TASK)->where('parent')->in($taskIdList)->andWhere('deleted')->eq('0')->fetchGroup('parent', 'id'); $nonStoryChildTasks = $this->dao->select('id,parent')->from(TABLE_TASK)->where('parent')->in($taskIdList)->andWhere('story')->eq('0')->andWhere('deleted')->eq('0')->fetchGroup('parent', 'id'); return array($childTasks, $nonStoryChildTasks); } diff --git a/module/task/tao.php b/module/task/tao.php index f6c85fb6b2..92c11be73d 100644 --- a/module/task/tao.php +++ b/module/task/tao.php @@ -448,7 +448,7 @@ class taskTao extends taskModel $task->lastEditedDate = helper::now(); } - $this->dao->update(TABLE_TASK)->data($task, 'deleteFiles,renameFiles,files') + $this->dao->update(TABLE_TASK)->data($task, 'deleteFiles,renameFiles,files,docVersions,oldDocs,docs') ->autoCheck() ->batchCheckIF($task->status != 'cancel', $requiredFields, 'notempty') ->checkIF(!helper::isZeroDate($task->deadline), 'deadline', 'ge', $task->estStarted) @@ -611,7 +611,7 @@ class taskTao extends taskModel { return $this->dao->select('id,account')->from(TABLE_TASKTEAM) ->where('task')->eq($taskID) - ->andWhere('status')->eq('done') + ->andWhere('status')->in('done,closed') ->beginIF($team)->andWhere('account')->in($team)->fi() ->fetchPairs('id', 'account'); } diff --git a/module/task/test/model/recordworkhour.php b/module/task/test/model/recordworkhour.php index ca5681dc79..a93e5a3cf3 100755 --- a/module/task/test/model/recordworkhour.php +++ b/module/task/test/model/recordworkhour.php @@ -10,6 +10,49 @@ title=测试记录任务的工时 timeout=0 cid=1 +- 任务未开始时记录工时,查看已消耗工时,应该在之前消耗的基础上增加测试设置的消耗值 + - 属性field @consumed + - 属性old @3 + - 属性new @8 +- 任务未开始时记录工时,查看状态是否变化,应该从未开始变为开始 + - 属性field @status + - 属性old @wait + - 属性new @doing +- 任务未开始时记录工时,查看指派给是否变化,应该从之前用户变为当前用户 + - 属性field @assignedTo + - 属性old @user1 + - 属性new @admin +- 不在多人任务团队中的用户记录工时,直接返回false @0 +- 在多人任务团队中的用户记录工时,查看返回的最初预计工时 + - 属性field @estimate + - 属性old @1 + - 属性new @25 +- 在多人任务团队中的用户记录工时,查看返回的消耗工时 + - 属性field @consumed + - 属性old @4 + - 属性new @2 +- 在多人任务团队中的用户记录工时,查看返回的剩余工时 + - 属性field @left + - 属性old @2 + - 属性new @21 +- 通过记录日志直接完成任务的情况 + - 第0条的field属性 @consumed + - 第0条的old属性 @5 + - 第0条的new属性 @10 +- 正常记录工时 + - 第2条的field属性 @status + - 第2条的old属性 @done + - 第2条的new属性 @doing +- 正常记录工时 + - 第2条的field属性 @status + - 第2条的old属性 @cancel + - 第2条的new属性 @doing +- 正常记录工时 + - 第2条的field属性 @status + - 第2条的old属性 @closed + - 第2条的new属性 @doing +- 无消耗时返回提示信息,因为没有填写消耗所以应该提示填写耗时属性consumed[1] @请填写"耗时" + */ $execution = zenData('project'); @@ -100,4 +143,4 @@ r($task->recordWorkhourTest(3, $finishTaskEffort)) && p('0:field,old,new' r($task->recordWorkhourTest(4, $normalTaskEffort)) && p('2:field,old,new') && e('status,done,doing'); // 正常记录工时 r($task->recordWorkhourTest(6, $normalTaskEffort)) && p('2:field,old,new') && e('status,cancel,doing'); // 正常记录工时 r($task->recordWorkhourTest(7, $normalTaskEffort)) && p('2:field,old,new') && e('status,closed,doing'); // 正常记录工时 -r($task->recordWorkhourTest(5, $noconsumedTaskEffort)) && p('consumed[1]') && e('请填写"耗时"'); // 无消耗时返回提示信息,因为没有填写消耗所以应该提示填写耗时 +r($task->recordWorkhourTest(5, $noconsumedTaskEffort)) && p('consumed[1]') && e('请填写"耗时"'); // 无消耗时返回提示信息,因为没有填写消耗所以应该提示填写耗时 \ No newline at end of file diff --git a/module/task/test/tao/getfinishedusers.php b/module/task/test/tao/getfinishedusers.php index fbecddebea..548244f21b 100755 --- a/module/task/test/tao/getfinishedusers.php +++ b/module/task/test/tao/getfinishedusers.php @@ -21,6 +21,22 @@ title=taskModel->getFinishedUsers(); timeout=0 cid=1 +- 测试普通任务获取多人任务的完成者 @0 +- 测试父任务获取多人任务的完成者 @0 +- 测试子任务获取多人任务的完成者 @0 +- 测试串行任务获取多人任务的完成者属性3 @user2 +- 测试并行任务获取多人任务的完成者属性4 @admin +- 测试普通任务获取指定人员多人任务的完成者 @0 +- 测试父任务获取指定人员多人任务的完成者 @0 +- 测试子任务获取指定人员多人任务的完成者 @0 +- 测试串行任务指定人员获取多人任务的完成者属性3 @user2 +- 测试并行任务指定人员获取多人任务的完成者属性4 @admin +- 测试普通任务获取指定不存在人员多人任务的完成者 @0 +- 测试父任务获取指定不存在人员多人任务的完成者 @0 +- 测试子任务获取指定不存在人员多人任务的完成者 @0 +- 测试串行任务指定不存在人员获取多人任务的完成者 @0 +- 测试并行任务指定不存在人员获取多人任务的完成者 @0 + */ $taskIdList = array(1, 6, 7, 8, 9); @@ -46,4 +62,4 @@ r($taskModule->getFinishedUsers($taskIdList[0], $memberList[1])) && p() && e('0' r($taskModule->getFinishedUsers($taskIdList[1], $memberList[1])) && p() && e('0'); // 测试父任务获取指定不存在人员多人任务的完成者 r($taskModule->getFinishedUsers($taskIdList[2], $memberList[1])) && p() && e('0'); // 测试子任务获取指定不存在人员多人任务的完成者 r($taskModule->getFinishedUsers($taskIdList[3], $memberList[1])) && p() && e('0'); // 测试串行任务指定不存在人员获取多人任务的完成者 -r($taskModule->getFinishedUsers($taskIdList[4], $memberList[1])) && p() && e('0'); // 测试并行任务指定不存在人员获取多人任务的完成者 +r($taskModule->getFinishedUsers($taskIdList[4], $memberList[1])) && p() && e('0'); // 测试并行任务指定不存在人员获取多人任务的完成者 \ No newline at end of file diff --git a/module/task/ui/batchcreate.html.php b/module/task/ui/batchcreate.html.php index 9a22456b53..9227d8db9f 100644 --- a/module/task/ui/batchcreate.html.php +++ b/module/task/ui/batchcreate.html.php @@ -24,6 +24,7 @@ jsVar('overParentEstStartedLang', isset($parentTask) ? sprintf($lang->task->over jsVar('overParentDeadlineLang', isset($parentTask) ? sprintf($lang->task->overParentDeadline, $parentTask->deadline) : ''); jsVar('taskHasConsumed', $taskConsumed > 0); jsVar('langAddChildTask', $lang->task->addChildTask); +jsVar('taskDateLimit', $project->taskDateLimit); /* zin: Set variables to define picker options for form. */ $storyItem = ''; diff --git a/module/task/ui/batchedit.html.php b/module/task/ui/batchedit.html.php index 86b24479ba..8a159656c3 100644 --- a/module/task/ui/batchedit.html.php +++ b/module/task/ui/batchedit.html.php @@ -27,6 +27,7 @@ jsVar('moduleGroup', $moduleGroup); jsVar('executionID', $executionID); jsVar('childTasks', $childTasks); jsVar('nonStoryChildTasks', $nonStoryChildTasks); +jsVar('childrenDateLimit', $childrenDateLimit); jsVar('tasks', $tasks); jsVar('noPauseStatusList', $noPauseStatusList); jsVar('stories', $stories); @@ -37,7 +38,10 @@ jsVar('noSprintPairs', $noSprintPairs); jsVar('ignoreLang', $lang->project->ignore); jsVar('overParentEstStartedLang', $lang->task->overParentEsStarted); jsVar('overParentDeadlineLang', $lang->task->overParentDeadline); +jsVar('overChildEstStartedLang', $lang->task->overChildEstStarted); +jsVar('overChildDeadlineLang', $lang->task->overChildDeadline); jsVar('manageTeamMemberText', $lang->execution->manageTeamMember); +jsVar('taskDateLimit', empty($project) ? '' : $project->taskDateLimit); /* ====== Define the page structure with zin widgets ====== */ formBatchPanel diff --git a/module/task/ui/create.field.php b/module/task/ui/create.field.php index 25d5a59a74..47bc2f44b9 100644 --- a/module/task/ui/create.field.php +++ b/module/task/ui/create.field.php @@ -204,7 +204,7 @@ if(!isAjaxRequest('modal')) ->items(empty(data('features.story')) ? array('toTaskList' => $lang->task->afterChoices['toTaskList']) : $config->task->afterOptions); } -if(!empty(data('features.story')) && empty(data('storyID'))) $fields->field('type')->checkbox(array('text' => $lang->task->selectTestStory, 'name' => 'selectTestStory')); +if(!empty(data('features.story')) && empty(data('storyID'))) $fields->field('type')->checkbox(array('text' => $lang->task->selectTestStory, 'name' => 'selectTestStory', 'typeClass' => 'hidden checkbox')); /* Set hidden control. */ $fields->field('storyEstimate') diff --git a/module/task/ui/create.html.php b/module/task/ui/create.html.php index abdb3a52e7..0ef6939158 100644 --- a/module/task/ui/create.html.php +++ b/module/task/ui/create.html.php @@ -29,6 +29,7 @@ jsVar('showFields', $showFields); jsVar('canViewStory', common::hasPriv('execution', 'storyView')); jsVar('ignoreLang', $lang->project->ignore); jsVar('assignedToOptions', $assignedToOptions); +jsVar('taskDateLimit', $project->taskDateLimit); if(!empty($task->team)) { diff --git a/module/task/ui/edit.html.php b/module/task/ui/edit.html.php index 7335ac6a22..604bb54ed3 100644 --- a/module/task/ui/edit.html.php +++ b/module/task/ui/edit.html.php @@ -34,9 +34,13 @@ jsVar('leftNotEmpty', sprintf($lang->error->gt, $lang->task->left, '0')); jsVar('requiredFields', $config->task->edit->requiredFields); jsVar('+parentEstStarted', !empty($parentTask) ? $parentTask->estStarted : ''); jsVar('+parentDeadline', !empty($parentTask) ? $parentTask->deadline : ''); +jsVar('childDateLimit', $childDateLimit); jsVar('ignoreLang', $lang->project->ignore); jsVar('+overParentEstStartedLang', !empty($parentTask) ? sprintf($lang->task->overParentEsStarted, $parentTask->estStarted) : ''); jsVar('+overParentDeadlineLang', !empty($parentTask) ? sprintf($lang->task->overParentDeadline, $parentTask->deadline) : ''); +jsVar('+overChildEstStartedLang', sprintf($lang->task->overChildEstStarted, $childDateLimit['estStarted'])); +jsVar('+overChildDeadlineLang', sprintf($lang->task->overChildDeadline, $childDateLimit['deadline'])); +jsVar('taskDateLimit', empty($project) ? '' : $project->taskDateLimit); $confirmSyncTip = ''; if(!empty($syncChildren) && !empty($task->children)) $confirmSyncTip = sprintf($lang->task->syncStoryToChildrenTip, 'ID' . implode(', ID', $syncChildren)); @@ -172,6 +176,7 @@ detailBody ) : null, section ( + setID('files'), set::title($lang->files), fileSelector($task->files ? set::defaultFiles(array_values($task->files)) : null) ), @@ -462,6 +467,7 @@ detailBody datePicker ( set::name('estStarted'), + set::disabled($project && $project->taskDateLimit == 'limit' && !empty($parentTask) && helper::isZeroDate($parentTask->estStarted) ? true : false), on::change('checkEstStartedAndDeadline'), helper::isZeroDate($task->estStarted) ? null : set::value($task->estStarted) ) @@ -476,6 +482,7 @@ detailBody datePicker ( set::name('deadline'), + set::disabled($project && $project->taskDateLimit == 'limit' && !empty($parentTask) && helper::isZeroDate($parentTask->deadline) ? true : false), on::change('checkEstStartedAndDeadline'), helper::isZeroDate($task->deadline) ? null : set::value($task->deadline) ) diff --git a/module/task/ui/taskteam.html.php b/module/task/ui/taskteam.html.php index 6ccb8c2d14..7344f17bb8 100644 --- a/module/task/ui/taskteam.html.php +++ b/module/task/ui/taskteam.html.php @@ -124,11 +124,11 @@ if(!empty($task->team)) ( set::width('100px'), setClass('center'), - btnGroup + $memberDisabled ? null : btnGroup ( set::items(array( - array('icon' => 'plus', 'class' => 'btn ghost btn-add', 'disabled' => $memberDisabled), - array('icon' => 'trash', 'class' => 'btn ghost btn-delete', 'disabled' => $memberDisabled), + array('icon' => 'plus', 'class' => 'btn ghost btn-add'), + array('icon' => 'trash', 'class' => 'btn ghost btn-delete') )) ) ) diff --git a/module/task/zen.php b/module/task/zen.php index 5a64a353ab..0e8fd1089b 100644 --- a/module/task/zen.php +++ b/module/task/zen.php @@ -70,6 +70,7 @@ class taskZen extends task $this->view->showFields = $this->config->task->custom->createFields; $this->view->gobackLink = (isset($output['from']) && $output['from'] == 'global') ? $this->createLink('execution', 'task', "executionID={$executionID}") : ''; $this->view->execution = $execution; + $this->view->project = $this->loadModel('project')->fetchById($execution->project); $this->view->storyID = $storyID; $this->view->blockID = helper::isAjaxRequest('modal') ? $this->loadModel('block')->getSpecifiedBlockID('my', 'assigntome', 'assigntome') : 0; $this->view->hideStory = $this->task->isNoStoryExecution($execution); @@ -195,6 +196,7 @@ class taskZen extends task $this->view->title = $execution->name . $this->lang->hyphen . $this->lang->task->batchEdit; $this->view->execution = $execution; + $this->view->project = $this->loadModel('project')->fetchById($execution->project); $this->view->modules = $this->tree->getTaskOptionMenu($executionID, 0, !empty($this->config->task->allModule) ? 'allModule' : ''); } else @@ -232,7 +234,7 @@ class taskZen extends task $executionTeams = array(); $executionIdList = array_unique(array_column($tasks, 'execution')); $executionTeamList = $this->execution->getMembersByIdList($executionIdList); - foreach($executionIdList as $id) $executionTeams[$id] = array_column((array)$executionTeamList[$id], 'account'); + foreach($executionIdList as $id) $executionTeams[$id] = array_column((array)zget($executionTeamList, $id, array()), 'account'); $moduleGroup = array(); if(!$executionID) @@ -247,6 +249,18 @@ class taskZen extends task } list($childTasks, $nonStoryChildTasks) = $this->task->getChildTasksByList(array_keys($tasks)); + $childrenDateLimit = array(); + foreach($childTasks as $parent => $children) + { + $childDateLimit = array('estStarted' => '', 'deadline' => ''); + foreach($children as $child) + { + if(!helper::isZeroDate($child->estStarted) && (empty($childDateLimit['estStarted']) || $childDateLimit['estStarted'] > $child->estStarted)) $childDateLimit['estStarted'] = $child->estStarted; + if(!helper::isZeroDate($child->deadline) && (empty($childDateLimit['deadline']) || $childDateLimit['deadline'] < $child->deadline)) $childDateLimit['deadline'] = $child->deadline; + } + $childrenDateLimit[$parent] = $childDateLimit; + } + $storyPairs = $this->story->getExecutionStoryPairs($executionID, 0, 'all', '', 'full', 'active', 'story', false);; $storyList = $this->story->getByList(array_keys($storyPairs)); $stories = array(); @@ -268,6 +282,7 @@ class taskZen extends task $this->view->moduleGroup = $moduleGroup; $this->view->childTasks = $childTasks; $this->view->nonStoryChildTasks = $nonStoryChildTasks; + $this->view->childrenDateLimit = $childrenDateLimit; $this->view->stories = $stories; $this->view->parentTasks = $this->task->getByIdList($parentTaskIdList); $this->view->noSprintPairs = $this->loadModel('project')->getProjectExecutionPairs(); @@ -301,7 +316,7 @@ class taskZen extends task $executions = !empty($task->project) ? $this->execution->getByProject($task->project, 'all', 0, true) : array(); /* Get task members. */ - $taskMembers = array(); + $taskMembers = $this->view->members; if(!empty($task->team)) { foreach($task->members as $teamAccount) @@ -310,10 +325,6 @@ class taskZen extends task $taskMembers[$teamAccount] = $this->view->members[$teamAccount]; } } - else - { - $taskMembers = $this->view->members; - } /* Get execution stories. */ $moduleID = $task->module; @@ -324,29 +335,34 @@ class taskZen extends task } $stories = $this->story->getExecutionStoryPairs($this->view->execution->id, 0, 'all', $moduleID, 'full', 'active', 'story', false); - $syncChildren = array(); + $syncChildren = array(); + $childDateLimit = array('estStarted' => '', 'deadline' => ''); if(!empty($task->children)) { foreach($task->children as $child) { if(empty($child->story)) $syncChildren[] = $child->id; + if(!helper::isZeroDate($child->estStarted) && (empty($childDateLimit['estStarted']) || $childDateLimit['estStarted'] > $child->estStarted)) $childDateLimit['estStarted'] = $child->estStarted; + if(!helper::isZeroDate($child->deadline) && (empty($childDateLimit['deadline']) || $childDateLimit['deadline'] < $child->deadline)) $childDateLimit['deadline'] = $child->deadline; } } if($this->view->execution->multiple) $manageLink = common::hasPriv('execution', 'manageMembers') ? $this->createLink('execution', 'manageMembers', "execution={$this->view->execution->id}") : ''; if(!$this->view->execution->multiple) $manageLink = common::hasPriv('project', 'manageMembers') ? $this->createLink('project', 'manageMembers', "projectID={$this->view->execution->project}") : ''; - $this->view->title = $this->lang->task->edit . 'TASK' . $this->lang->hyphen . $this->view->task->name; - $this->view->stories = $this->story->addGradeLabel($stories); - $this->view->tasks = $tasks; - $this->view->taskMembers = $taskMembers; - $this->view->users = $this->loadModel('user')->getPairs('nodeleted|noclosed', "{$task->openedBy},{$task->canceledBy},{$task->closedBy}"); - $this->view->showAllModule = isset($this->config->execution->task->allModule) ? $this->config->execution->task->allModule : ''; - $this->view->modules = $this->tree->getTaskOptionMenu($task->execution, 0, $this->view->showAllModule ? 'allModule' : ''); - $this->view->executions = $executions; - $this->view->syncChildren = $syncChildren; - $this->view->parentTask = !empty($task->parent) ? $this->task->getById($task->parent) : null; - $this->view->manageLink = $manageLink; + $this->view->title = $this->lang->task->edit . 'TASK' . $this->lang->hyphen . $this->view->task->name; + $this->view->stories = $this->story->addGradeLabel($stories); + $this->view->tasks = $tasks; + $this->view->taskMembers = $taskMembers; + $this->view->users = $this->loadModel('user')->getPairs('nodeleted|noclosed', "{$task->openedBy},{$task->canceledBy},{$task->closedBy}"); + $this->view->showAllModule = isset($this->config->execution->task->allModule) ? $this->config->execution->task->allModule : ''; + $this->view->modules = $this->tree->getTaskOptionMenu($task->execution, 0, $this->view->showAllModule ? 'allModule' : ''); + $this->view->executions = $executions; + $this->view->syncChildren = $syncChildren; + $this->view->childDateLimit = $childDateLimit; + $this->view->parentTask = !empty($task->parent) ? $this->task->getById($task->parent) : null; + $this->view->manageLink = $manageLink; + $this->view->project = $task->project ? $this->loadModel('project')->fetchById($task->project) : null; $this->display(); } @@ -437,6 +453,7 @@ class taskZen extends task $this->view->title = $this->lang->task->batchCreate; $this->view->execution = $execution; + $this->view->project = $this->loadModel('project')->fetchById($execution->project); $this->view->modules = $modules; $this->view->parent = $taskID; $this->view->storyID = $storyID; @@ -558,12 +575,13 @@ class taskZen extends task ->stripTags($this->config->task->editor->edit['id'], $this->config->allowedTags) ->get(); + $project = $this->loadModel('project')->fetchById($oldTask->project); + $parents = $this->getParentEstStartedAndDeadline(array($task->parent)); + $this->checkLegallyDate($task, $project->taskDateLimit == 'limit', isset($parents[$task->parent]) ? $parents[$task->parent] : null); + $team = $this->post->team ? array_filter($this->post->team) : array(); - if($task->mode && empty($team)) - { - dao::$errors['assignedTo'] = $this->lang->task->teamNotEmpty; - return false; - } + if($task->mode && empty($team)) dao::$errors['assignedTo'] = $this->lang->task->teamNotEmpty; + if(dao::isError()) return false; return $this->loadModel('file')->processImgURL($task, $this->config->task->editor->edit['id'], (string)$this->post->uid); } @@ -650,10 +668,6 @@ class taskZen extends task if($task->assignedTo) $task->assignedDate = helper::now(); } - /* Remove data with the same task name. */ - $tasks = $this->removeDuplicateForBatchCreate($execution->id, $tasks); - if(dao::isError()) return false; - /* Check if the input post data meets the requirements. */ $this->checkBatchCreateTask($execution->id, $tasks); if(dao::isError()) return false; @@ -1010,6 +1024,31 @@ class taskZen extends task $this->setMenu($this->view->execution->id); } + /** + * 检查任务的开始时间和截止时间是否合法。 + * Check if the start and end time of the task is legal. + * + * @param object $task + * @param bool $isDateLimit + * @param object $parent + * @param int|null $rowID + * @access public + * @return void + */ + public function checkLegallyDate(object $task, bool $isDateLimit, object|null $parent, int|null $rowID = null): void + { + $beginIndex = $rowID === null ? 'estStarted' : "estStarted[$rowID]"; + $endIndex = $rowID === null ? 'deadline' : "deadline[$rowID]"; + + $beginIsZeroDate = helper::isZeroDate($task->estStarted); + $endIsZeroDate = helper::isZeroDate($task->deadline); + if(!$beginIsZeroDate and !$endIsZeroDate and $task->deadline < $task->estStarted) dao::$errors[$endIndex] = $this->lang->task->error->deadlineSmall; + + if(!$isDateLimit || empty($parent)) return; + if(!$beginIsZeroDate && !helper::isZeroDate($parent->estStarted) && $task->estStarted < $parent->estStarted) dao::$errors[$beginIndex] = sprintf($this->lang->task->overParentEsStarted, $parent->estStarted); + if(!$endIsZeroDate && !helper::isZeroDate($parent->deadline) && $task->deadline > $parent->deadline) dao::$errors[$endIndex] = sprintf($this->lang->task->overParentDeadline, $parent->deadline); + } + /** * 检查传入的创建数据是否符合要求。 * Check if the input post meets the requirements. @@ -1022,17 +1061,9 @@ class taskZen extends task protected function checkCreateTask(object $task, array $team): bool { /* Check if the estimate is positive. */ - if($task->estimate < 0) - { - dao::$errors['estimate'] = $this->lang->task->error->recordMinus; - return false; - } - - if($this->post->multiple && empty($team)) - { - dao::$errors['assignedTo'] = $this->lang->task->teamNotEmpty; - return false; - } + if($task->estimate < 0) dao::$errors['estimate'] = $this->lang->task->error->recordMinus; + if($this->post->multiple && empty($team)) dao::$errors['assignedTo'] = $this->lang->task->teamNotEmpty; + if(dao::isError()) return false; /* If the task start and end date must be between the execution start and end date, check if the task start and end date accord with the conditions. */ if(!empty($this->config->limitTaskDate)) @@ -1041,12 +1072,9 @@ class taskZen extends task if(dao::isError()) return false; } - /* Check start and end date. */ - if(!helper::isZeroDate($task->deadline) && $task->estStarted > $task->deadline) - { - dao::$errors['deadline'] = $this->lang->task->error->deadlineSmall; - return false; - } + $project = $this->dao->findById($task->project)->from(TABLE_PROJECT)->fetch(); + $parents = $this->getParentEstStartedAndDeadline(array($task->parent)); + $this->checkLegallyDate($task, $project->taskDateLimit == 'limit', isset($parents[$task->parent]) ? $parents[$task->parent] : null); return !dao::isError(); } @@ -1064,26 +1092,26 @@ class taskZen extends task { /* Set required fields. */ $requiredFields = $this->config->task->create->requiredFields; - $execution = $this->loadModel('execution')->getById($executionID); + $execution = $this->loadModel('execution')->fetchById($executionID); if($this->task->isNoStoryExecution($execution)) $requiredFields = str_replace(',story,', ',', ',' . $requiredFields . ','); $requiredFields = array_filter(explode(',', $requiredFields)); + $levels = array(); + $project = $this->loadModel('project')->fetchById($execution->project); + $parentIdList = array_filter(array_column($tasks, 'parent', 'parent')); + $parents = $this->getParentEstStartedAndDeadline($parentIdList); foreach($tasks as $rowIndex => $task) { - if(mb_strlen($task->name) > 255) - { - dao::$errors["name[$rowIndex]"] = sprintf($this->lang->task->error->length, 255); - } + $levels[$task->level] = $rowIndex; + + if(mb_strlen($task->name) > 255) dao::$errors["name[$rowIndex]"] = sprintf($this->lang->task->error->length, 255); if(!empty($this->post->estimate[$rowIndex]) and !preg_match("/^[0-9]+(.[0-9]+)?$/", (string)$this->post->estimate[$rowIndex])) { dao::$errors["estimate[$rowIndex]"] = $this->lang->task->error->estimateNumber; } /* If the task start and end date must be between the execution start and end date, check if the task start and end date accord with the conditions. */ - if(!empty($this->config->limitTaskDate)) - { - $this->task->checkEstStartedAndDeadline($executionID, (string)$task->estStarted, (string)$task->deadline); - } + if(!empty($this->config->limitTaskDate)) $this->task->checkEstStartedAndDeadline($executionID, (string)$task->estStarted, (string)$task->deadline); /* Check start and end date. */ if(!helper::isZeroDate($task->deadline) && $task->deadline < $task->estStarted) @@ -1091,24 +1119,21 @@ class taskZen extends task dao::$errors["deadline[$rowIndex]"] = $this->lang->task->error->deadlineSmall; } + $parentTask = isset($parents[$task->parent]) ? $parents[$task->parent] : null; + if($task->level > 0 && isset($levels[$task->level - 1])) $parentTask = zget($tasks, $levels[$task->level - 1], null); + $this->checkLegallyDate($task, $project->taskDateLimit == 'limit', $parentTask, $rowIndex); + /* Check if the estimate is positive. */ - if($task->estimate < 0) - { - dao::$errors["estimate[$rowIndex]"] = $this->lang->task->error->recordMinus; - } + if($task->estimate < 0) dao::$errors["estimate[$rowIndex]"] = $this->lang->task->error->recordMinus; /* Check if the required fields are empty. */ foreach($requiredFields as $field) { - if(empty($task->$field)) - { - dao::$errors[$field . "[$rowIndex]"] = sprintf($this->lang->error->notempty, $this->lang->task->$field); - } + if(empty($task->$field)) dao::$errors[$field . "[$rowIndex]"] = sprintf($this->lang->error->notempty, $this->lang->task->$field); } } - if(dao::isError()) return false; - return true; + return !dao::isError(); } /** @@ -1122,6 +1147,10 @@ class taskZen extends task */ protected function checkBatchEditTask(array $tasks, array $oldTasks): bool { + $oldTask = reset($oldTasks); + $project = $this->loadModel('project')->fetchById($oldTask->project); + $parentIdList = array_filter(array_column($tasks, 'parent', 'parent')); + $parents = $this->getParentEstStartedAndDeadline($parentIdList); foreach($tasks as $taskID => $task) { $oldTask = $oldTasks[$taskID]; @@ -1135,33 +1164,16 @@ class taskZen extends task if($task->consumed < 0 ) dao::$errors["consumed[{$taskID}]"] = (array)sprintf($this->lang->task->error->recordMinus, $this->lang->task->consumedThisTime); if($task->left < 0) dao::$errors["left[$taskID]"] = (array)sprintf($this->lang->task->error->recordMinus, $this->lang->task->leftAB); - if(!empty($this->config->limitTaskDate)) $this->task->checkEstStartedAndDeadline($oldTask->execution, (string)$task->estStarted, (string)$task->deadline, "task:{$taskID} "); + if(!empty($this->config->limitTaskDate)) $this->task->checkEstStartedAndDeadline($oldTask->execution, (string)$task->estStarted, (string)$task->deadline, $taskID); if($task->status == 'cancel') continue; if($task->status == 'done' && !$task->consumed) dao::$errors["consumed[{$taskID}]"] = (array)sprintf($this->lang->error->notempty, $this->lang->task->consumedThisTime); - if(!empty($task->deadline) && $task->estStarted > $task->deadline) dao::$errors["deadline[{$taskID}]"] = (array)$this->lang->task->error->deadlineSmall; + + $this->checkLegallyDate($task, $project->taskDateLimit == 'limit', isset($parents[$task->parent]) ? $parents[$task->parent] : null, $taskID); } return !dao::isError(); } - /** - * 检查规定时间内是否创建了同名任务。 - * Check whether a task with the same name is created within the specified time. - * - * @param object $task - * @access protected - * @return int - */ - protected function checkDuplicateName($task): int - { - /* Check duplicate task. */ - if($task->type == 'affair' || !$task->name) return 0; - $sql = "execution={$task->execution} AND story=" . (int)$task->story . (isset($task->feedback) ? " AND feedback=" . (int)$task->feedback : ''); - $result = $this->loadModel('common')->removeDuplicate('task', $task, $sql); - if($result['stop']) return zget($result, 'duplicate', 0); - return 0; - } - /** * 检查关联需求的测试类型任务数据格式是否符合要求。 * Check if the test type task data format of the linked stories meets the requirements. @@ -1507,11 +1519,11 @@ class taskZen extends task unset($task->team); } - if($task->isParent) + if($task->isParent && strpos($task->name, "[{$this->lang->task->parentAB}]") === false) { $task->name = '[' . $this->lang->task->parentAB . '] ' . $task->name; } - elseif($task->parent > 0) + elseif($task->parent > 0 && strpos($task->name, "[{$this->lang->task->childrenAB}]") === false) { $task->name = '[' . $this->lang->task->childrenAB . '] ' . $task->name; } @@ -1911,55 +1923,6 @@ class taskZen extends task return $response; } - /** - * 在批量创建之前移除post数据中重复的数据。 - * Remove the duplicate data before batch create tasks. - * - * @param int $executionID - * @param array $tasks - * @access protected - * @return array - */ - protected function removeDuplicateForBatchCreate(int $executionID, array $tasks): array - { - /* 1. 检查表单是否有重复。 Check duplicate in form data. */ - $duplicateTasks = array(); - $storyIdList = array(); - foreach($tasks as $rowIndex => $task) - { - if(empty($task->story)) continue; - - /* 事务型任务可能有多个指派人,不需要检查是否重名。 Tasks of Affair type no need to check duplicate name. */ - if($task->type == 'affair') continue; - - /* 表单的任务名称+不能有重复。 The name of post tasks must be unique. */ - - /* 检查Post传过来的任务有没有重复数据,不能有相同需求的同名任务。 Check whether the post tasks have duplicate data. */ - $duplicateKey = (string)$task->story . '-' . $task->name; - if(isset($duplicateTasks[$duplicateKey])) - { - dao::$errors["name[$rowIndex]"] = sprintf($this->lang->duplicate, $this->lang->task->common) . ' ' . $task->name; - return array(); - } - $duplicateTasks[$duplicateKey] = array('rowIndex' => $rowIndex, 'name' => $task->name); - $storyIdList[$task->story] = $task->story; - } - - /* 2. 检查数据库是否有重复数据。 Check duplicate in db. */ - $existTasks = $this->task->getListByStories($storyIdList, $executionID); - foreach($existTasks as $task) - { - $duplicateKey = (string)$task->story . '-' . $task->name; - if(isset($duplicateTasks[$duplicateKey])) - { - $rowIndex = $duplicateTasks[$duplicateKey]['rowIndex']; - unset($tasks[$rowIndex]); - } - } - - return $tasks; - } - /** * 通过传入的对象ID设置任务信息。 * Set task through the input object ID. @@ -2118,4 +2081,39 @@ class taskZen extends task return $options; } + + /** + * 获取父任务的开始时间和截止时间。 + * Get the start and end time of the parent task. + * + * @param array $parentIdList + * @access protected + * @return array + */ + protected function getParentEstStartedAndDeadline(array $parentIdList): array + { + $pathPairs = $this->dao->select('id,path')->from(TABLE_TASK)->where('id')->in($parentIdList)->fetchPairs(); + if(empty($pathPairs)) return array(); + + $allParentIdList = array_filter(array_unique(explode(',', implode(',', $pathPairs)))); + $allParents = $this->dao->select('id,estStarted,deadline')->from(TABLE_TASK)->where('id')->in($allParentIdList)->fetchAll('id'); + $parents = array(); + foreach($pathPairs as $parentID => $path) + { + $parent = new stdClass(); + $parent->estStarted = null; + $parent->deadline = null; + foreach(array_reverse(array_filter(explode(',', $path))) as $taskID) + { + if(!isset($allParents[$taskID])) continue; + + $task = $allParents[$taskID]; + if(empty($parent->estStarted) && !helper::isZeroDate($task->estStarted)) $parent->estStarted = $task->estStarted; + if(empty($parent->deadline) && !helper::isZeroDate($task->deadline)) $parent->deadline = $task->deadline; + if(!empty($parent->estStarted) && !empty($parent->deadline)) break; + } + $parents[$parentID] = $parent; + } + return $parents; + } } diff --git a/module/testcase/js/importfromlib.ui.js b/module/testcase/js/importfromlib.ui.js index 16c3e5438f..c2dbd2967a 100644 --- a/module/testcase/js/importfromlib.ui.js +++ b/module/testcase/js/importfromlib.ui.js @@ -52,7 +52,7 @@ $(document).off('click', '.import-btn').on('click', '.import-btn', function() checkedList.forEach((id) => { formData.append(`caseIdList[${id}]`, id); - formData.append(`branch[${id}]`, dtableData[`branch[${id}]`]); + formData.append(`branch[${id}]`, typeof dtableData[`branch[${id}]`] == 'undefined' ? 0 : dtableData[`branch[${id}]`]); formData.append(`module[${id}]`, dtableData[`module[${id}]`]); }); diff --git a/module/testcase/model.php b/module/testcase/model.php index 5ffc615c41..609d7e3f66 100755 --- a/module/testcase/model.php +++ b/module/testcase/model.php @@ -2054,8 +2054,9 @@ class testcaseModel extends model { $browseType = $this->session->caseBrowseType && $this->session->caseBrowseType != 'bysearch' ? $this->session->caseBrowseType : 'all'; - $stmt = $this->dao->select('t1.*')->from(TABLE_CASE)->alias('t1'); + $stmt = $this->dao->select('t1.*,t3.title as storyTitle')->from(TABLE_CASE)->alias('t1'); if($this->app->tab == 'project') $stmt = $stmt->leftJoin(TABLE_PROJECTCASE)->alias('t2')->on('t1.id=t2.case'); + $stmt->leftJoin(TABLE_STORY)->alias('t3')->on('t1.story = t3.id'); $caseList = $stmt->where('t1.deleted')->eq('0') ->andWhere('t1.scene')->ne(0) diff --git a/module/testcase/test/model/getscenegroupcases.php b/module/testcase/test/model/getscenegroupcases.php index e71a2936ca..22bd49eab3 100644 --- a/module/testcase/test/model/getscenegroupcases.php +++ b/module/testcase/test/model/getscenegroupcases.php @@ -16,6 +16,27 @@ title=测试 testcaseModel->getSceneGroupCases(); cid=1 pid=1 +- 获取产品 1 分支 all 模块 0 用例类型 空 id_desc 的场景分组 @4: 4; 3: 3; 2: 2; 1: 1; +- 获取产品 1 分支 0 模块 0 用例类型 空 id_desc 的场景分组 @4: 4; 3: 3; 2: 2; 1: 1; +- 获取产品 1 分支 all 模块 1 用例类型 空 id_desc 的场景分组 @0 +- 获取产品 1 分支 all 模块 0 用例类型 install id_desc 的场景分组 @4: 4; +- 获取产品 1 分支 all 模块 0 用例类型 空 id_asc 的场景分组 @1: 1; 2: 2; 3: 3; 4: 4; +- 获取产品 1 分支 all 模块 0 用例类型 intall id_asc 的场景分组 @4: 4; +- 获取产品 1 分支 0 模块 1 用例类型 空 id_desc 的场景分组 @0 +- 获取产品 1 分支 0 模块 0 用例类型 install id_desc 的场景分组 @4: 4; +- 获取产品 1 分支 0 模块 0 用例类型 空 id_asc 的场景分组 @1: 1; 2: 2; 3: 3; 4: 4; +- 获取产品 1 分支 0 模块 0 用例类型 install id_asc 的场景分组 @4: 4; +- 获取产品 1 分支 all 模块 0 用例类型 空 id_desc 的场景分组 @8: 8; 7: 7; 6: 6; 5: 5; +- 获取产品 1 分支 0 模块 0 用例类型 空 id_desc 的场景分组 @8: 8; 7: 7; 6: 6; 5: 5; +- 获取产品 1 分支 all 模块 1 用例类型 空 id_desc 的场景分组 @0 +- 获取产品 1 分支 all 模块 0 用例类型 install id_desc 的场景分组 @0 +- 获取产品 1 分支 all 模块 0 用例类型 空 id_asc 的场景分组 @5: 5; 6: 6; 7: 7; 8: 8; +- 获取产品 1 分支 all 模块 0 用例类型 intall id_asc 的场景分组 @0 +- 获取产品 1 分支 0 模块 1 用例类型 空 id_desc 的场景分组 @0 +- 获取产品 1 分支 0 模块 0 用例类型 install id_desc 的场景分组 @0 +- 获取产品 1 分支 0 模块 0 用例类型 空 id_asc 的场景分组 @5: 5; 6: 6; 7: 7; 8: 8; +- 获取产品 1 分支 0 模块 0 用例类型 install id_asc 的场景分组 @0 + */ $productIdList = array(1, 2); diff --git a/module/testcase/ui/browse.html.php b/module/testcase/ui/browse.html.php index 62a883a8b3..b9c18a3642 100644 --- a/module/testcase/ui/browse.html.php +++ b/module/testcase/ui/browse.html.php @@ -22,7 +22,7 @@ jsVar('isFromDoc', $isFromDoc); $topSceneCount = count(array_filter(array_map(function($case){return $case->isScene && $case->grade == 1;}, $cases))); $canBatchRun = $canModify && hasPriv('testtask', 'batchRun') && !$isOnlyScene; -$canBatchEdit = $canModify && hasPriv('testcase', 'batchEdit') && !$isOnlyScene; +$canBatchEdit = $canModify && hasPriv('testcase', 'batchEdit') && !$isOnlyScene && $productID; $canBatchReview = $canModify && hasPriv('testcase', 'batchReview') && !$isOnlyScene && ($config->testcase->needReview || !empty($config->testcase->forceReview)); $canBatchDelete = $canModify && hasPriv('testcase', 'batchDelete') && !$isOnlyScene; $canBatchChangeType = $canModify && hasPriv('testcase', 'batchChangeType') && !$isOnlyScene; diff --git a/module/testcase/zen.php b/module/testcase/zen.php index 0dcf3fabb5..ba9f980ce3 100755 --- a/module/testcase/zen.php +++ b/module/testcase/zen.php @@ -1807,15 +1807,6 @@ class testcaseZen extends testcase } if(dao::isError()) return false; - $param = ''; - if(!empty($case->lib)) $param = "lib={$case->lib}"; - if(!empty($case->product)) $param = "product={$case->product}"; - - $result = $this->loadModel('common')->removeDuplicate('case', $case, $param); - if($result && $result['stop']) - { - return $this->send(array('result' => 'fail', 'message' => sprintf($this->lang->duplicate, $this->lang->testcase->common), 'load' => $this->createLink('testcase', 'view', "caseID={$result['duplicate']}"))); - } return true; } @@ -1824,25 +1815,15 @@ class testcaseZen extends testcase * Check testcases for batch creating. * * @param array $testcases - * @param int $productID * @access protected * @return array */ - protected function checkTestcasesForBatchCreate(array $testcases, int $productID): array + protected function checkTestcasesForBatchCreate(array $testcases): array { $this->loadModel('common'); $requiredErrors = array(); foreach($testcases as $i => $testcase) { - /* 检查重复项。 */ - /* Check duplicate. */ - $result = $this->common->removeDuplicate('testcase', $testcase, "product={$productID}"); - if(zget($result, 'stop', false) !== false) - { - unset($testcases[$i]); - continue; - } - /* 检验必填项。 */ /* Check reuqired. */ foreach(explode(',', $this->config->testcase->create->requiredFields) as $field) diff --git a/module/testtask/ui/results.html.php b/module/testtask/ui/results.html.php index f8def48dc4..4712358a3b 100644 --- a/module/testtask/ui/results.html.php +++ b/module/testtask/ui/results.html.php @@ -95,7 +95,7 @@ foreach($results as $i => $result) $fileCount = count($stepResult['files']); $itemTds[] = div ( - setClass('text-left flex border-r'), + setClass('text-left flex border-r break-all'), width('calc(25% + 2px)'), isset($stepResult['expect']) ? html(nl2br($stepResult['expect'])) : '' ); @@ -169,7 +169,7 @@ foreach($results as $i => $result) setClass('step-item-id mr-2'), zget($stepResult, 'name', '') ), - div(html(nl2br(zget($stepResult, 'desc', '')))) + div(setClass('wrap break-all'), html(nl2br(zget($stepResult, 'desc', '')))) ) ), $itemTds diff --git a/module/testtask/ui/runcase.html.php b/module/testtask/ui/runcase.html.php index eb74178347..8aa63bc82e 100644 --- a/module/testtask/ui/runcase.html.php +++ b/module/testtask/ui/runcase.html.php @@ -137,12 +137,12 @@ if($confirm != 'yes') setClass('step-item-id mr-2'), $step->name ), - div(html(html_entity_decode(nl2br(zget($step, 'desc', ''))))) + div(setClass('wrap break-all'), html(html_entity_decode(nl2br(zget($step, 'desc', ''))))) ) ), h::td ( - setClass('text-left border'), + setClass('text-left border break-all'), html(html_entity_decode(nl2br(zget($step, 'expect')))) ), h::td diff --git a/module/testtask/zen.php b/module/testtask/zen.php index 7ff5913dd6..551f62b7fc 100644 --- a/module/testtask/zen.php +++ b/module/testtask/zen.php @@ -121,6 +121,7 @@ class testtaskZen extends testtask $searchConfig['params']['module']['values'] = $this->loadModel('tree')->getOptionMenu($product->id, 'case', 0, $task->branch); $searchConfig['params']['scene']['values'] = $this->testcase->getSceneMenu($product->id); $searchConfig['params']['product']['values'] = array($product->id => $product->name); + $searchConfig['params']['lib']['values'] = $this->loadModel('caselib')->getLibraries(); $build = $this->loadModel('build')->getByID((int)$task->build); if($build) diff --git a/module/transfer/tao.php b/module/transfer/tao.php index b86762f803..bfe5c740a3 100644 --- a/module/transfer/tao.php +++ b/module/transfer/tao.php @@ -117,6 +117,12 @@ class transferTao extends transferModel $linkFieldName = $linkField . 'List'; $tmpFieldName = array(); + if(isset($_POST['cascade'][$field])) + { + $lists[$fieldName] = $_POST['cascade'][$field]; + continue; + } + if(empty($lists[$fieldName]) || empty($lists[$linkFieldName])) continue; /* 根据字段名获取表名。*/ @@ -133,11 +139,7 @@ class transferTao extends transferModel /* 将获取到的数据替换到lists中。*/ /* Replace data to lists. */ - foreach($fieldDatas as $id => $linkFieldID) - { - $tmpFieldName[$linkFieldID][$id] = $lists[$fieldName][$id]; - } - + foreach($fieldDatas as $id => $linkFieldID) $tmpFieldName[$linkFieldID][$id] = $lists[$fieldName][$id]; $lists[$fieldName] = $tmpFieldName; } diff --git a/module/transfer/ui/exporttemplate.html.php b/module/transfer/ui/exporttemplate.html.php index f0df1e702f..9bf1ba68e7 100644 --- a/module/transfer/ui/exporttemplate.html.php +++ b/module/transfer/ui/exporttemplate.html.php @@ -42,7 +42,7 @@ form set::required(true), set::value('xlsx'), set::control('picker'), - set::items(array('xlsx' => 'xlsx', 'xls' => 'xls')) + set::items(array('xlsx' => 'xlsx')) ), set::actions(array('submit')) ); diff --git a/module/transfer/ui/import.html.php b/module/transfer/ui/import.html.php index cbf556678e..5a29070e0f 100644 --- a/module/transfer/ui/import.html.php +++ b/module/transfer/ui/import.html.php @@ -22,6 +22,6 @@ formPanel set::items($typeList) ) : null, input(set::type('file'), set::name('file')), - span(setClass('label secondary'), $lang->transfer->importNotice) + span(setClass('label secondary h-auto'), $lang->transfer->importNotice) ); h::js('$.cookie.set("maxImport", 0, {expires:config.cookieLife, path:config.webRoot});'); diff --git a/module/tutorial/model.php b/module/tutorial/model.php index 0bacf79939..acb2d40b54 100644 --- a/module/tutorial/model.php +++ b/module/tutorial/model.php @@ -186,6 +186,7 @@ class tutorialModel extends model $project->charter = 0; $project->market = 1; $project->budgetUnit = 'CNY'; + $project->deliverable = ''; list($guide, $guideTask, $guideStepIndex) = empty($_SERVER['HTTP_X_ZIN_TUTORIAL']) ? array('', '', '') : explode('-', $_SERVER['HTTP_X_ZIN_TUTORIAL']); if($guide && strpos($guide, 'scrumProjectManage') !== false) @@ -306,6 +307,7 @@ class tutorialModel extends model $execution->type = 'sprint'; $execution->projectName = ''; $execution->projectModel = 'scrum'; + $execution->deliverable = ''; if($browseType && $browseType != 'all') $execution->name .= '-' . $browseType; diff --git a/module/upgrade/config.php b/module/upgrade/config.php index a78a9cef29..172c5af02d 100644 --- a/module/upgrade/config.php +++ b/module/upgrade/config.php @@ -65,7 +65,9 @@ $config->upgrade->maxVersion['max6_3'] = '21_3'; $config->upgrade->maxVersion['max6_4'] = '21_4'; $config->upgrade->maxVersion['max6_5'] = '21_5'; $config->upgrade->maxVersion['max6_6_beta'] = '21_6_beta'; -$config->upgrade->maxVersion['max6_6'] = '21_6'; // max insert position. +$config->upgrade->maxVersion['max6_6'] = '21_6'; +$config->upgrade->maxVersion['max6_6_1'] = '21_6_1'; +$config->upgrade->maxVersion['max6_7'] = '21_7'; // max insert position. $config->upgrade->bizVersion = array(); $config->upgrade->bizVersion['biz1_0'] = '9_5_1'; @@ -169,7 +171,9 @@ $config->upgrade->bizVersion['biz11_3'] = '21_3'; $config->upgrade->bizVersion['biz11_4'] = '21_4'; $config->upgrade->bizVersion['biz11_5'] = '21_5'; $config->upgrade->bizVersion['biz11_6_beta'] = '21_6_beta'; -$config->upgrade->bizVersion['biz11_6'] = '21_6'; // biz insert position. +$config->upgrade->bizVersion['biz11_6'] = '21_6'; +$config->upgrade->bizVersion['biz11_6_1'] = '21_6_1'; +$config->upgrade->bizVersion['biz11_7'] = '21_7'; // biz insert position. $config->upgrade->proVersion = array(); $config->upgrade->proVersion['pro1_0'] = '3_1'; @@ -310,7 +314,9 @@ $config->upgrade->ipdVersion['ipd3_3'] = '21_3'; $config->upgrade->ipdVersion['ipd3_4'] = '21_4'; $config->upgrade->ipdVersion['ipd3_5'] = '21_5'; $config->upgrade->ipdVersion['ipd3_6_beta'] = '21_6_beta'; -$config->upgrade->ipdVersion['ipd3_6'] = '21_6'; // ipd insert position. +$config->upgrade->ipdVersion['ipd3_6'] = '21_6'; +$config->upgrade->ipdVersion['ipd3_6_1'] = '21_6_1'; +$config->upgrade->ipdVersion['ipd3_7'] = '21_7'; // ipd insert position. $config->upgrade->lowerTables = array(); $config->upgrade->lowerTables[$config->db->prefix . 'caseStep'] = $config->db->prefix . 'casestep'; @@ -1470,6 +1476,13 @@ $config->delete['21_6_beta'][] = 'extension/ipd/common/ext/lang/en/effort.php'; $config->delete['21_6_beta'][] = 'extension/ipd/common/ext/lang/fr/effort.php'; $config->delete['21_6_beta'][] = 'extension/ipd/common/ext/lang/zh-cn/effort.php'; +$config->delete['21_6_beta'][] = 'extension/ipd/project/ext/model/class/zentaoipd.class.php'; +$config->delete['21_6_beta'][] = 'extension/max/project/ext/model/class/zentaoipd.class.php'; +$config->delete['21_6_beta'][] = 'extension/biz/project/ext/model/class/zentaoipd.class.php'; +$config->delete['21_6_beta'][] = 'extension/ipd/project/ext/model/zentaoipd.php'; +$config->delete['21_6_beta'][] = 'extension/max/project/ext/model/zentaoipd.php'; +$config->delete['21_6_beta'][] = 'extension/biz/project/ext/model/zentaoipd.php'; + $config->upgrade->openModules = array('action', 'admin', 'ai', 'bi', 'aiapp', 'api', 'automation', 'backup', 'block', 'branch', 'budget', 'bug', 'build', 'cache', 'caselib', 'chart', 'ci', 'client', 'common', 'company', 'compile', 'convert', 'cron', 'custom', 'datatable', 'dataview', 'dept', 'design', 'dev', 'dimension', 'doc', 'durationestimation', 'entry', 'execution', 'extension', 'file', 'git', 'gitlab', 'group', 'holiday', 'im', 'index', 'index.html', 'install', 'issue', 'jenkins', 'job', 'kanban', 'license', 'mail', 'message', 'metric', 'misc', 'mr', 'my', 'personnel', 'pipeline', 'product', 'productplan', 'productset', 'program', 'programplan', 'project', 'projectbuild', 'projectplan', 'projectrelease', 'projectstory', 'pivot', 'qa', 'release', 'repo', 'report', 'risk', 'score', 'screen', 'search', 'setting', 'sonarqube', 'sso', 'stage', 'stakeholder', 'story', 'subject', 'svn', 'task', 'testcase', 'testreport', 'testsuite', 'testtask', 'todo', 'tree', 'tutorial', 'upgrade', 'user', 'webhook', 'weekly', 'workestimation', 'gitea', 'gogs', 'transfer', 'zahost', 'zanode', 'editor', 'charter', 'roadmap', 'account', 'cne', 'host', 'instance', 'ops', 'serverroom', 'space', 'store', 'system', 'solution', 'demand', 'gitfox', 'epic', 'requirement', 'mark'); $config->upgrade->unsetModules = array('design', 'program', 'programplan', 'projectbuild', 'projectrelease', 'stage', 'stakeholder', 'product', 'branch', 'productplan', 'release', 'build', 'qa', 'bug', 'testcase', 'testtask', 'testreport', 'testsuite', 'caselib', 'automation', 'repo', 'ci', 'compile', 'jenkins', 'job', 'svn', 'gitlab', 'sonarqube', 'mr', 'git', 'report', 'sqlbuilder', 'feedback', 'faq', 'attend', 'holiday', 'leave', 'makeup', 'overtime', 'lieu', 'ops', 'host', 'serverroom', 'account', 'domain', 'service', 'deploy', 'conference', 'traincourse', 'pssp', 'baseline', 'classify', 'cm', 'cmcl', 'auditcl', 'reviewcl', 'process', 'activity', 'zoutput', 'auditplan', 'nc', 'subject', 'weekly', 'workestimation', 'issue', 'durationestimation', 'risk', 'opportunity', 'trainplan', 'gapanalysis', 'researchplan', 'researchreport', 'meeting', 'meetingroom', 'budget', 'reviewissue', 'reviewsetting', 'review', 'milestone', 'measurement', 'measrecord', 'assetlib', 'setting', 'im', 'client', 'ldap', 'dev', 'api', 'gitea', 'gogs', 'zanode', 'zahost'); diff --git a/module/upgrade/config/upgradeflow.php b/module/upgrade/config/upgradeflow.php index 8321d4d14f..09d1ba509a 100644 --- a/module/upgrade/config/upgradeflow.php +++ b/module/upgrade/config/upgradeflow.php @@ -109,6 +109,7 @@ $config->upgrade->execFlow['21_1'] = array('functions' => 'processCacheCo $config->upgrade->execFlow['21_2'] = array('functions' => 'importBuildinWorkflow,addCharterApprovalFlow,processCharterFileConfig,processCharterStatus', 'params' => array('importBuildinWorkflow' => array('rnd', 'charter'))); $config->upgrade->execFlow['21_3'] = array('functions' => 'createDevOpsChartModule'); $config->upgrade->execFlow['21_6_beta'] = array('functions' => 'convertCharset,processCharterBranch'); +$config->upgrade->execFlow['21_6_1'] = array('xxsqls' => "$appRoot/db/upgradexuanxuan9.1.2.sql"); if(!empty($config->isINT)) { diff --git a/module/upgrade/lang/version.php b/module/upgrade/lang/version.php index 76a5635e92..d9ebf20c59 100644 --- a/module/upgrade/lang/version.php +++ b/module/upgrade/lang/version.php @@ -210,7 +210,9 @@ $lang->upgrade->fromVersions['21_3'] = '21.3'; $lang->upgrade->fromVersions['21_4'] = '21.4'; $lang->upgrade->fromVersions['21_5'] = '21.5'; $lang->upgrade->fromVersions['21_6_beta'] = '21.6.beta'; -$lang->upgrade->fromVersions['21_6'] = '21.6'; // pms insert position. +$lang->upgrade->fromVersions['21_6'] = '21.6'; +$lang->upgrade->fromVersions['21_6_1'] = '21.6.1'; +$lang->upgrade->fromVersions['21_7'] = '21.7'; // pms insert position. global $config; /* Lite. */ @@ -421,7 +423,9 @@ $lang->upgrade->fromVersions['biz11_3'] = 'Biz11.3'; $lang->upgrade->fromVersions['biz11_4'] = 'Biz11.4'; $lang->upgrade->fromVersions['biz11_5'] = 'Biz11.5'; $lang->upgrade->fromVersions['biz11_6_beta'] = 'Biz11.6.beta'; -$lang->upgrade->fromVersions['biz11_6'] = 'Biz11.6'; // biz insert position. +$lang->upgrade->fromVersions['biz11_6'] = 'Biz11.6'; +$lang->upgrade->fromVersions['biz11_6_1'] = 'Biz11.6.1'; +$lang->upgrade->fromVersions['biz11_7'] = 'Biz11.7'; // biz insert position. /* Max. */ $lang->upgrade->fromVersions['max2_0_beta4'] = 'Max2.0.beta4'; @@ -490,7 +494,9 @@ $lang->upgrade->fromVersions['max6_3'] = 'Max6.3'; $lang->upgrade->fromVersions['max6_4'] = 'Max6.4'; $lang->upgrade->fromVersions['max6_5'] = 'Max6.5'; $lang->upgrade->fromVersions['max6_6_beta'] = 'Max6.6.beta'; -$lang->upgrade->fromVersions['max6_6'] = 'Max6.6'; // max insert position. +$lang->upgrade->fromVersions['max6_6'] = 'Max6.6'; +$lang->upgrade->fromVersions['max6_6_1'] = 'Max6.6.1'; +$lang->upgrade->fromVersions['max6_7'] = 'Max6.7'; // max insert position. /* Ipd */ $lang->upgrade->fromVersions['ipd1_0_beta1'] = 'Ipd1.0.beta1'; @@ -520,4 +526,6 @@ $lang->upgrade->fromVersions['ipd3_2'] = 'Ipd3.2'; $lang->upgrade->fromVersions['ipd3_3'] = 'Ipd3.3'; $lang->upgrade->fromVersions['ipd3_4'] = 'Ipd3.4'; $lang->upgrade->fromVersions['ipd3_5'] = 'Ipd3.5'; -$lang->upgrade->fromVersions['ipd3_6_beta'] = 'Ipd3.6.beta'; // ipd insert position. +$lang->upgrade->fromVersions['ipd3_6_beta'] = 'Ipd3.6.beta'; +$lang->upgrade->fromVersions['ipd3_6'] = 'Ipd3.6'; +$lang->upgrade->fromVersions['ipd3_6_1'] = 'Ipd3.6.1'; // ipd insert position. diff --git a/module/upgrade/model.php b/module/upgrade/model.php index 8fb68c29d5..ce2a3f3898 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -10667,6 +10667,7 @@ class upgradeModel extends model ->andWhere('t2.rawContent')->in(null) ->andWhere('t1.templateType')->eq('') ->andWhere('t1.template')->eq('') + ->andWhere('t2.fromVersion')->eq(0) ->fetchAll('id', false); $newDocs = array(); @@ -10717,7 +10718,7 @@ class upgradeModel extends model $this->dao->insert(TABLE_DOCCONTENT)->data($newDocContent)->exec(); $this->dao->update(TABLE_DOC)->set('version')->eq($newDocContent->version)->where('id')->eq($docID)->exec(); - $this->loadModel('action')->create('doc', $docID, 'convertDoc', sprintf($this->lang->doc->docConvertComment, "#$docContent->version", '', 'system')); + $this->loadModel('action')->create('doc', $docID, 'convertDoc', sprintf($this->lang->doc->docConvertComment, "#$docContent->version", ''), '', 'system'); } elseif($docContent->type == 'doc') { diff --git a/module/user/model.php b/module/user/model.php index 59ecf85f6e..768d7652ce 100644 --- a/module/user/model.php +++ b/module/user/model.php @@ -753,7 +753,11 @@ class userModel extends model /* 如果权限组发生变化,则删除原有的权限组,重新创建并更新用户视图。*/ /* If the group changed, delete the old group, create new group and update user view. */ - $this->dao->delete()->from(TABLE_USERGROUP)->where('account')->eq($user->account)->exec(); + $projectGroups = $this->dao->select('id')->from(TABLE_GROUP)->where('project')->ne(0)->fetchPairs(); + $this->dao->delete()->from(TABLE_USERGROUP) + ->where('account')->eq($user->account) + ->andWhere('`group`')->notin($projectGroups) + ->exec(); if($newGroups) $this->createUserGroup($newGroups, $user->account); return !dao::isError(); @@ -1294,6 +1298,7 @@ class userModel extends model */ public function getProjects(string $account, string $status = 'all', string $orderBy = 'id_desc', object $pager = null): array { + $this->loadModel('project'); $projects = $this->userTao->fetchProjects($account, $status, $orderBy, $pager); if(!$projects) return array(); @@ -1313,6 +1318,8 @@ class userModel extends model $project->storyPoints = $projectStory ? round($projectStory->estimate, 1) : 0; $project->storyCount = $projectStory ? $projectStory->count : 0; $project->executionCount = zget($projectExecutionCount, $project->id, 0); + + if(in_array($this->config->edition, array('max', 'ipd'))) $project->deliverable = $this->project->countDeliverable($project); } return $projects; @@ -2124,7 +2131,7 @@ class userModel extends model $userView->sprints = rtrim($userView->sprints, ',') . ',' . join(',', $openedSprints); $canViewSprints = $this->dao->select('executions')->from(TABLE_PROJECTADMIN)->where('account')->eq($account)->fetch('executions'); - if($canViewSprints) $userView->sprints .= ',' . $canViewSprints; + if($canViewSprints != 'all') $userView->sprints .= ',' . $canViewSprints; return $userView; } diff --git a/test/data/deliverable.yaml b/test/data/deliverable.yaml new file mode 100644 index 0000000000..ee40d120cc --- /dev/null +++ b/test/data/deliverable.yaml @@ -0,0 +1,34 @@ +title: table zt_deliverable +desc: "交付物" +author: Sun Guangming +version: "1.0" +fields: + - field: id + note: "ID" + range: 1-1000 + - field: name + fields: + - field: name1 + range: '交付物' + - field: name2 + range: 1-1000 + - field: module + range: project,execution + - field: method + range: create,close + - field: model + fields: + - field: model1 + range: product,project + postfix: "_" + - field: model2 + range: waterfall,scrum + postfix: "_" + - field: model3 + range: mix,request,design,dev,qa,release,review + - field: type + range: doc,file + - field: files + range: 1-10 + - field: desc + range: '交付物描述' \ No newline at end of file diff --git a/www/index.php b/www/index.php index 97a9fdd47c..ece29b3777 100644 --- a/www/index.php +++ b/www/index.php @@ -70,8 +70,6 @@ if(file_exists('install.php') or file_exists('upgrade.php')) } } -/* If client device is mobile and version is pro, set the default view as mthml. */ -if($app->clientDevice == 'mobile' and (strpos($config->version, 'pro') === 0 or strpos($config->version, 'biz') === 0 or strpos($config->version, 'max') === 0) and $config->default->view == 'html') $config->default->view = 'mhtml'; if(!empty($_GET['display']) && $_GET['display'] == 'card') $config->default->view = 'xhtml'; try diff --git a/www/js/zui3/zen-editor/index.esm.js b/www/js/zui3/zen-editor/index.esm.js index 445e82690a..c0365080ee 100644 --- a/www/js/zui3/zen-editor/index.esm.js +++ b/www/js/zui3/zen-editor/index.esm.js @@ -1 +1 @@ -export{M as MonacoEditor,Z as ZenEditor}from"./p-eb7120ba.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; \ No newline at end of file +export{M as MonacoEditor,Z as ZenEditor}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; \ No newline at end of file diff --git a/www/js/zui3/zen-editor/p-90996b5e.js b/www/js/zui3/zen-editor/p-0a0c3f37.js similarity index 98% rename from www/js/zui3/zen-editor/p-90996b5e.js rename to www/js/zui3/zen-editor/p-0a0c3f37.js index ea38873a94..cbaf9daf93 100644 --- a/www/js/zui3/zen-editor/p-90996b5e.js +++ b/www/js/zui3/zen-editor/p-0a0c3f37.js @@ -1,4 +1,4 @@ -import{m as e}from"./p-eb7120ba.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) diff --git a/www/js/zui3/zen-editor/p-bea1c390.js b/www/js/zui3/zen-editor/p-13eec5c0.js similarity index 99% rename from www/js/zui3/zen-editor/p-bea1c390.js rename to www/js/zui3/zen-editor/p-13eec5c0.js index 43c3a0581d..f8051b8eaf 100644 --- a/www/js/zui3/zen-editor/p-bea1c390.js +++ b/www/js/zui3/zen-editor/p-13eec5c0.js @@ -1,4 +1,4 @@ -import{m as t}from"./p-eb7120ba.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as t}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) diff --git a/www/js/zui3/zen-editor/p-6ddeb7f5.js b/www/js/zui3/zen-editor/p-1779e198.js similarity index 89% rename from www/js/zui3/zen-editor/p-6ddeb7f5.js rename to www/js/zui3/zen-editor/p-1779e198.js index 5e00cc64b1..2c5fa65ee2 100644 --- a/www/js/zui3/zen-editor/p-6ddeb7f5.js +++ b/www/js/zui3/zen-editor/p-1779e198.js @@ -1,4 +1,4 @@ -import{conf as e,language as t}from"./p-636798a4.js";import"./p-eb7120ba.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{conf as e,language as t}from"./p-468cbb6a.js";import"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) diff --git a/www/js/zui3/zen-editor/p-c48a9f49.js b/www/js/zui3/zen-editor/p-41e690f7.js similarity index 99% rename from www/js/zui3/zen-editor/p-c48a9f49.js rename to www/js/zui3/zen-editor/p-41e690f7.js index 42686808e1..74c3222942 100644 --- a/www/js/zui3/zen-editor/p-c48a9f49.js +++ b/www/js/zui3/zen-editor/p-41e690f7.js @@ -1,4 +1,4 @@ -import{m as t}from"./p-eb7120ba.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as t}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) diff --git a/www/js/zui3/zen-editor/p-636798a4.js b/www/js/zui3/zen-editor/p-468cbb6a.js similarity index 98% rename from www/js/zui3/zen-editor/p-636798a4.js rename to www/js/zui3/zen-editor/p-468cbb6a.js index e7cc3a7c58..179136d042 100644 --- a/www/js/zui3/zen-editor/p-636798a4.js +++ b/www/js/zui3/zen-editor/p-468cbb6a.js @@ -1,4 +1,4 @@ -import{m as e}from"./p-eb7120ba.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) diff --git a/www/js/zui3/zen-editor/p-fffb499f.js b/www/js/zui3/zen-editor/p-653d3561.js similarity index 98% rename from www/js/zui3/zen-editor/p-fffb499f.js rename to www/js/zui3/zen-editor/p-653d3561.js index 03570e42f0..04013f9dae 100644 --- a/www/js/zui3/zen-editor/p-fffb499f.js +++ b/www/js/zui3/zen-editor/p-653d3561.js @@ -1,7 +1,7 @@ -import{m as e}from"./p-eb7120ba.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/var t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,_=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,i=(e,i,r,a)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let s of _(i))o.call(e,s)||s===r||t(e,s,{get:()=>i[s],enumerable:!(a=n(i,s))||a.enumerable});return e},r={};i(r,e,"default");var a=["assign","flush","ftl","return","global","import","include","break","continue","local","nested","nt","setting","stop","t","lt","rt","fallback"],s=["attempt","autoesc","autoEsc","compress","comment","escape","noescape","function","if","list","items","sep","macro","noparse","noParse","noautoesc","noAutoEsc","outputformat","switch","visit","recurse"],u={close:">",id:"angle",open:"<"},c={close:"\\]",id:"bracket",open:"\\["},d={close:"[>\\]]",id:"auto",open:"[<\\[]"},l={close:"\\}",id:"dollar",open1:"\\$",open2:"\\{"},k={close:"\\]",id:"bracket",open1:"\\[",open2:"="};function p(e){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],comments:{blockComment:[`${e.open}--`,`--${e.close}`]},autoCloseBefore:"\n\r\t }]),.:;=",autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:new RegExp(`${e.open}#(?:${s.join("|")})([^/${e.close}]*(?!/)${e.close})[^${e.open}]*$`),end:new RegExp(`${e.open}/#(?:${s.join("|")})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`${e.open}#(?!(?:${a.join("|")}))([a-zA-Z_]+)([^/${e.close}]*(?!/)${e.close})[^${e.open}]*$`),afterText:new RegExp(`^${e.open}/#([a-zA-Z_]+)[\\r\\n\\t ]*${e.close}$`),action:{indentAction:r.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`${e.open}#(?!(?:${a.join("|")}))([a-zA-Z_]+)([^/${e.close}]*(?!/)${e.close})[^${e.open}]*$`),action:{indentAction:r.languages.IndentAction.Indent}}]}}function g(){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],autoCloseBefore:"\n\r\t }]),.:;=",autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:new RegExp(`[<\\[]#(?:${s.join("|")})([^/>\\]]*(?!/)[>\\]])[^<\\[]*$`),end:new RegExp(`[<\\[]/#(?:${s.join("|")})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`[<\\[]#(?!(?:${a.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),afterText:new RegExp("^[<\\[]/#([a-zA-Z_]+)[\\r\\n\\t ]*[>\\]]$"),action:{indentAction:r.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`[<\\[]#(?!(?:${a.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),action:{indentAction:r.languages.IndentAction.Indent}}]}}function A(e,t){const n=`_${e.id}_${t.id}`,_=e=>e.replace(/__id__/g,n),o=e=>{const t=e.source.replace(/__id__/g,n);return new RegExp(t,e.flags)};return{unicode:!0,includeLF:!1,start:_("default__id__"),ignoreCase:!1,defaultToken:"invalid",tokenPostfix:".freemarker2",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],[_("open__id__")]:new RegExp(e.open),[_("close__id__")]:new RegExp(e.close),[_("iOpen1__id__")]:new RegExp(t.open1),[_("iOpen2__id__")]:new RegExp(t.open2),[_("iClose__id__")]:new RegExp(t.close),[_("startTag__id__")]:o(/(@open__id__)(#)/),[_("endTag__id__")]:o(/(@open__id__)(\/#)/),[_("startOrEndTag__id__")]:o(/(@open__id__)(\/?#)/),[_("closeTag1__id__")]:o(/((?:@blank)*)(@close__id__)/),[_("closeTag2__id__")]:o(/((?:@blank)*\/?)(@close__id__)/),blank:/[ \t\n\r]/,keywords:["false","true","in","as","using"],directiveStartCloseTag1:/attempt|recover|sep|auto[eE]sc|no(?:autoe|AutoE)sc|compress|default|no[eE]scape|comment|no[pP]arse/,directiveStartCloseTag2:/else|break|continue|return|stop|flush|t|lt|rt|nt|nested|recurse|fallback|ftl/,directiveStartBlank:/if|else[iI]f|list|for[eE]ach|switch|case|assign|global|local|include|import|function|macro|transform|visit|stop|return|call|setting|output[fF]ormat|nested|recurse|escape|ftl|items/,directiveEndCloseTag1:/if|list|items|sep|recover|attempt|for[eE]ach|local|global|assign|function|macro|output[fF]ormat|auto[eE]sc|no(?:autoe|AutoE)sc|compress|transform|switch|escape|no[eE]scape/,escapedChar:/\\(?:[ntrfbgla\\'"\{=]|(?:x[0-9A-Fa-f]{1,4}))/,asciiDigit:/[0-9]/,integer:/[0-9]+/,nonEscapedIdStartChar:/[\$@-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u1FFF\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183-\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3006\u3031-\u3035\u303B-\u303C\u3040-\u318F\u31A0-\u31BA\u31F0-\u31FF\u3300-\u337F\u3400-\u4DB5\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,escapedIdChar:/\\[\-\.:#]/,idStartChar:/(?:@nonEscapedIdStartChar)|(?:@escapedIdChar)/,id:/(?:@idStartChar)(?:(?:@idStartChar)|(?:@asciiDigit))*/,specialHashKeys:/\*\*|\*|false|true|in|as|using/,namedSymbols:/<=|>=|\\lte|\\lt|<|\\gte|\\gt|>|&&|\\and|->|->|==|!=|\+=|-=|\*=|\/=|%=|\+\+|--|<=|&&|\|\||:|\.\.\.|\.\.\*|\.\.<|\.\.!|\?\?|=|<|\+|-|\*|\/|%|\||\.\.|\?|!|&|\.|,|;/,arrows:["->","->"],delimiters:[";",":",",","."],stringOperators:["lte","lt","gte","gt"],noParseTags:["noparse","noParse","comment"],tokenizer:{[_("default__id__")]:[{include:_("@directive_token__id__")},{include:_("@interpolation_and_text_token__id__")}],[_("fmExpression__id__.directive")]:[{include:_("@blank_and_expression_comment_token__id__")},{include:_("@directive_end_token__id__")},{include:_("@expression_token__id__")}],[_("fmExpression__id__.interpolation")]:[{include:_("@blank_and_expression_comment_token__id__")},{include:_("@expression_token__id__")},{include:_("@greater_operators_token__id__")}],[_("inParen__id__.plain")]:[{include:_("@blank_and_expression_comment_token__id__")},{include:_("@directive_end_token__id__")},{include:_("@expression_token__id__")}],[_("inParen__id__.gt")]:[{include:_("@blank_and_expression_comment_token__id__")},{include:_("@expression_token__id__")},{include:_("@greater_operators_token__id__")}],[_("noSpaceExpression__id__")]:[{include:_("@no_space_expression_end_token__id__")},{include:_("@directive_end_token__id__")},{include:_("@expression_token__id__")}],[_("unifiedCall__id__")]:[{include:_("@unified_call_token__id__")}],[_("singleString__id__")]:[{include:_("@string_single_token__id__")}],[_("doubleString__id__")]:[{include:_("@string_double_token__id__")}],[_("rawSingleString__id__")]:[{include:_("@string_single_raw_token__id__")}],[_("rawDoubleString__id__")]:[{include:_("@string_double_raw_token__id__")}],[_("expressionComment__id__")]:[{include:_("@expression_comment_token__id__")}],[_("noParse__id__")]:[{include:_("@no_parse_token__id__")}],[_("terseComment__id__")]:[{include:_("@terse_comment_token__id__")}],[_("directive_token__id__")]:[[o(/(?:@startTag__id__)(@directiveStartCloseTag1)(?:@closeTag1__id__)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{cases:{"@noParseTags":{token:"tag",next:_("@noParse__id__.$3")},"@default":{token:"tag"}}},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(?:@startTag__id__)(@directiveStartCloseTag2)(?:@closeTag2__id__)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(?:@startTag__id__)(@directiveStartBlank)(@blank)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"",next:_("@fmExpression__id__.directive")}]],[o(/(?:@endTag__id__)(@directiveEndCloseTag1)(?:@closeTag1__id__)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(@open__id__)(@)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive",next:_("@unifiedCall__id__")}]],[o(/(@open__id__)(\/@)((?:(?:@id)(?:\.(?:@id))*)?)(?:@closeTag1__id__)/),[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(@open__id__)#--/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:{token:"comment",next:_("@terseComment__id__")}],[o(/(?:@startOrEndTag__id__)([a-zA-Z_]+)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag.invalid",next:_("@fmExpression__id__.directive")}]]],[_("interpolation_and_text_token__id__")]:[[o(/(@iOpen1__id__)(@iOpen2__id__)/),[{token:"bracket"===t.id?"@brackets.interpolation":"delimiter.interpolation"},{token:"bracket"===t.id?"delimiter.interpolation":"@brackets.interpolation",next:_("@fmExpression__id__.interpolation")}]],[/[\$#<\[\{]|(?:@blank)+|[^\$<#\[\{\n\r\t ]+/,{token:"source"}]],[_("string_single_token__id__")]:[[/[^'\\]/,{token:"string"}],[/@escapedChar/,{token:"string.escape"}],[/'/,{token:"string",next:"@pop"}]],[_("string_double_token__id__")]:[[/[^"\\]/,{token:"string"}],[/@escapedChar/,{token:"string.escape"}],[/"/,{token:"string",next:"@pop"}]],[_("string_single_raw_token__id__")]:[[/[^']+/,{token:"string.raw"}],[/'/,{token:"string.raw",next:"@pop"}]],[_("string_double_raw_token__id__")]:[[/[^"]+/,{token:"string.raw"}],[/"/,{token:"string.raw",next:"@pop"}]],[_("expression_token__id__")]:[[/(r?)(['"])/,{cases:{"r'":[{token:"keyword"},{token:"string.raw",next:_("@rawSingleString__id__")}],'r"':[{token:"keyword"},{token:"string.raw",next:_("@rawDoubleString__id__")}],"'":[{token:"source"},{token:"string",next:_("@singleString__id__")}],'"':[{token:"source"},{token:"string",next:_("@doubleString__id__")}]}}],[/(?:@integer)(?:\.(?:@integer))?/,{cases:{"(?:@integer)":{token:"number"},"@default":{token:"number.float"}}}],[/(\.)(@blank*)(@specialHashKeys)/,[{token:"delimiter"},{token:""},{token:"identifier"}]],[/(?:@namedSymbols)/,{cases:{"@arrows":{token:"meta.arrow"},"@delimiters":{token:"delimiter"},"@default":{token:"operators"}}}],[/@id/,{cases:{"@keywords":{token:"keyword.$0"},"@stringOperators":{token:"operators"},"@default":{token:"identifier"}}}],[/[\[\]\(\)\{\}]/,{cases:{"\\[":{cases:{"$S2==gt":{token:"@brackets",next:_("@inParen__id__.gt")},"@default":{token:"@brackets",next:_("@inParen__id__.plain")}}},"\\]":{cases:{..."bracket"===t.id?{"$S2==interpolation":{token:"@brackets.interpolation",next:"@popall"}}:{},..."bracket"===e.id?{"$S2==directive":{token:"@brackets.directive",next:"@popall"}}:{},[_("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}},"\\(":{token:"@brackets",next:_("@inParen__id__.gt")},"\\)":{cases:{[_("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}},"\\{":{cases:{"$S2==gt":{token:"@brackets",next:_("@inParen__id__.gt")},"@default":{token:"@brackets",next:_("@inParen__id__.plain")}}},"\\}":{cases:{..."bracket"===t.id?{}:{"$S2==interpolation":{token:"@brackets.interpolation",next:"@popall"}},[_("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}}}}],[/\$\{/,{token:"delimiter.invalid"}]],[_("blank_and_expression_comment_token__id__")]:[[/(?:@blank)+/,{token:""}],[/[<\[][#!]--/,{token:"comment",next:_("@expressionComment__id__")}]],[_("directive_end_token__id__")]:[[/>/,"bracket"===e.id?{token:"operators"}:{token:"@brackets.directive",next:"@popall"}],[o(/(\/)(@close__id__)/),[{token:"delimiter.directive"},{token:"@brackets.directive",next:"@popall"}]]],[_("greater_operators_token__id__")]:[[/>/,{token:"operators"}],[/>=/,{token:"operators"}]],[_("no_space_expression_end_token__id__")]:[[/(?:@blank)+/,{token:"",switchTo:_("@fmExpression__id__.directive")}]],[_("unified_call_token__id__")]:[[/(@id)((?:@blank)+)/,[{token:"tag"},{token:"",next:_("@fmExpression__id__.directive")}]],[o(/(@id)(\/?)(@close__id__)/),[{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive",next:"@popall"}]],[/./,{token:"@rematch",next:_("@noSpaceExpression__id__")}]],[_("no_parse_token__id__")]:[[o(/(@open__id__)(\/#?)([a-zA-Z]+)((?:@blank)*)(@close__id__)/),{cases:{"$S2==$3":[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:""},{token:"@brackets.directive",next:"@popall"}],"$S2==comment":[{token:"comment"},{token:"comment"},{token:"comment"},{token:"comment"},{token:"comment"}],"@default":[{token:"source"},{token:"source"},{token:"source"},{token:"source"},{token:"source"}]}}],[/[^<\[\-]+|[<\[\-]/,{cases:{"$S2==comment":{token:"comment"},"@default":{token:"source"}}}]],[_("expression_comment_token__id__")]:[[/--[>\]]/,{token:"comment",next:"@pop"}],[/[^\->\]]+|[>\]\-]/,{token:"comment"}]],[_("terse_comment_token__id__")]:[[o(/--(?:@close__id__)/),{token:"comment",next:"@popall"}],[/[^<\[\-]+|[<\[\-]/,{token:"comment"}]]}}}function m(e){const t=A(u,e),n=A(c,e),_=A(d,e);return{...t,...n,..._,unicode:!0,includeLF:!1,start:`default_auto_${e.id}`,ignoreCase:!1,defaultToken:"invalid",tokenPostfix:".freemarker2",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{...t.tokenizer,...n.tokenizer,..._.tokenizer}}}var F={conf:p(u),language:A(u,l)},f={conf:p(c),language:A(c,l)},b={conf:p(u),language:A(u,k)},x={conf:p(c),language:A(c,k)},$={conf:g(),language:m(l)},E={conf:g(),language:m(k)};export{b as TagAngleInterpolationBracket,F as TagAngleInterpolationDollar,E as TagAutoInterpolationBracket,$ as TagAutoInterpolationDollar,x as TagBracketInterpolationBracket,f as TagBracketInterpolationDollar} \ No newline at end of file + *-----------------------------------------------------------------------------*/var t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,_=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,i=(e,i,r,a)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let s of _(i))o.call(e,s)||s===r||t(e,s,{get:()=>i[s],enumerable:!(a=n(i,s))||a.enumerable});return e},r={};i(r,e,"default");var a=["assign","flush","ftl","return","global","import","include","break","continue","local","nested","nt","setting","stop","t","lt","rt","fallback"],s=["attempt","autoesc","autoEsc","compress","comment","escape","noescape","function","if","list","items","sep","macro","noparse","noParse","noautoesc","noAutoEsc","outputformat","switch","visit","recurse"],u={close:">",id:"angle",open:"<"},c={close:"\\]",id:"bracket",open:"\\["},d={close:"[>\\]]",id:"auto",open:"[<\\[]"},l={close:"\\}",id:"dollar",open1:"\\$",open2:"\\{"},k={close:"\\]",id:"bracket",open1:"\\[",open2:"="};function p(e){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],comments:{blockComment:[`${e.open}--`,`--${e.close}`]},autoCloseBefore:"\n\r\t }]),.:;=",autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:new RegExp(`${e.open}#(?:${s.join("|")})([^/${e.close}]*(?!/)${e.close})[^${e.open}]*$`),end:new RegExp(`${e.open}/#(?:${s.join("|")})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`${e.open}#(?!(?:${a.join("|")}))([a-zA-Z_]+)([^/${e.close}]*(?!/)${e.close})[^${e.open}]*$`),afterText:new RegExp(`^${e.open}/#([a-zA-Z_]+)[\\r\\n\\t ]*${e.close}$`),action:{indentAction:r.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`${e.open}#(?!(?:${a.join("|")}))([a-zA-Z_]+)([^/${e.close}]*(?!/)${e.close})[^${e.open}]*$`),action:{indentAction:r.languages.IndentAction.Indent}}]}}function g(){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],autoCloseBefore:"\n\r\t }]),.:;=",autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:new RegExp(`[<\\[]#(?:${s.join("|")})([^/>\\]]*(?!/)[>\\]])[^<\\[]*$`),end:new RegExp(`[<\\[]/#(?:${s.join("|")})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`[<\\[]#(?!(?:${a.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),afterText:new RegExp("^[<\\[]/#([a-zA-Z_]+)[\\r\\n\\t ]*[>\\]]$"),action:{indentAction:r.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`[<\\[]#(?!(?:${a.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),action:{indentAction:r.languages.IndentAction.Indent}}]}}function A(e,t){const n=`_${e.id}_${t.id}`,_=e=>e.replace(/__id__/g,n),o=e=>{const t=e.source.replace(/__id__/g,n);return new RegExp(t,e.flags)};return{unicode:!0,includeLF:!1,start:_("default__id__"),ignoreCase:!1,defaultToken:"invalid",tokenPostfix:".freemarker2",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],[_("open__id__")]:new RegExp(e.open),[_("close__id__")]:new RegExp(e.close),[_("iOpen1__id__")]:new RegExp(t.open1),[_("iOpen2__id__")]:new RegExp(t.open2),[_("iClose__id__")]:new RegExp(t.close),[_("startTag__id__")]:o(/(@open__id__)(#)/),[_("endTag__id__")]:o(/(@open__id__)(\/#)/),[_("startOrEndTag__id__")]:o(/(@open__id__)(\/?#)/),[_("closeTag1__id__")]:o(/((?:@blank)*)(@close__id__)/),[_("closeTag2__id__")]:o(/((?:@blank)*\/?)(@close__id__)/),blank:/[ \t\n\r]/,keywords:["false","true","in","as","using"],directiveStartCloseTag1:/attempt|recover|sep|auto[eE]sc|no(?:autoe|AutoE)sc|compress|default|no[eE]scape|comment|no[pP]arse/,directiveStartCloseTag2:/else|break|continue|return|stop|flush|t|lt|rt|nt|nested|recurse|fallback|ftl/,directiveStartBlank:/if|else[iI]f|list|for[eE]ach|switch|case|assign|global|local|include|import|function|macro|transform|visit|stop|return|call|setting|output[fF]ormat|nested|recurse|escape|ftl|items/,directiveEndCloseTag1:/if|list|items|sep|recover|attempt|for[eE]ach|local|global|assign|function|macro|output[fF]ormat|auto[eE]sc|no(?:autoe|AutoE)sc|compress|transform|switch|escape|no[eE]scape/,escapedChar:/\\(?:[ntrfbgla\\'"\{=]|(?:x[0-9A-Fa-f]{1,4}))/,asciiDigit:/[0-9]/,integer:/[0-9]+/,nonEscapedIdStartChar:/[\$@-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u1FFF\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183-\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3006\u3031-\u3035\u303B-\u303C\u3040-\u318F\u31A0-\u31BA\u31F0-\u31FF\u3300-\u337F\u3400-\u4DB5\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,escapedIdChar:/\\[\-\.:#]/,idStartChar:/(?:@nonEscapedIdStartChar)|(?:@escapedIdChar)/,id:/(?:@idStartChar)(?:(?:@idStartChar)|(?:@asciiDigit))*/,specialHashKeys:/\*\*|\*|false|true|in|as|using/,namedSymbols:/<=|>=|\\lte|\\lt|<|\\gte|\\gt|>|&&|\\and|->|->|==|!=|\+=|-=|\*=|\/=|%=|\+\+|--|<=|&&|\|\||:|\.\.\.|\.\.\*|\.\.<|\.\.!|\?\?|=|<|\+|-|\*|\/|%|\||\.\.|\?|!|&|\.|,|;/,arrows:["->","->"],delimiters:[";",":",",","."],stringOperators:["lte","lt","gte","gt"],noParseTags:["noparse","noParse","comment"],tokenizer:{[_("default__id__")]:[{include:_("@directive_token__id__")},{include:_("@interpolation_and_text_token__id__")}],[_("fmExpression__id__.directive")]:[{include:_("@blank_and_expression_comment_token__id__")},{include:_("@directive_end_token__id__")},{include:_("@expression_token__id__")}],[_("fmExpression__id__.interpolation")]:[{include:_("@blank_and_expression_comment_token__id__")},{include:_("@expression_token__id__")},{include:_("@greater_operators_token__id__")}],[_("inParen__id__.plain")]:[{include:_("@blank_and_expression_comment_token__id__")},{include:_("@directive_end_token__id__")},{include:_("@expression_token__id__")}],[_("inParen__id__.gt")]:[{include:_("@blank_and_expression_comment_token__id__")},{include:_("@expression_token__id__")},{include:_("@greater_operators_token__id__")}],[_("noSpaceExpression__id__")]:[{include:_("@no_space_expression_end_token__id__")},{include:_("@directive_end_token__id__")},{include:_("@expression_token__id__")}],[_("unifiedCall__id__")]:[{include:_("@unified_call_token__id__")}],[_("singleString__id__")]:[{include:_("@string_single_token__id__")}],[_("doubleString__id__")]:[{include:_("@string_double_token__id__")}],[_("rawSingleString__id__")]:[{include:_("@string_single_raw_token__id__")}],[_("rawDoubleString__id__")]:[{include:_("@string_double_raw_token__id__")}],[_("expressionComment__id__")]:[{include:_("@expression_comment_token__id__")}],[_("noParse__id__")]:[{include:_("@no_parse_token__id__")}],[_("terseComment__id__")]:[{include:_("@terse_comment_token__id__")}],[_("directive_token__id__")]:[[o(/(?:@startTag__id__)(@directiveStartCloseTag1)(?:@closeTag1__id__)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{cases:{"@noParseTags":{token:"tag",next:_("@noParse__id__.$3")},"@default":{token:"tag"}}},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(?:@startTag__id__)(@directiveStartCloseTag2)(?:@closeTag2__id__)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(?:@startTag__id__)(@directiveStartBlank)(@blank)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"",next:_("@fmExpression__id__.directive")}]],[o(/(?:@endTag__id__)(@directiveEndCloseTag1)(?:@closeTag1__id__)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(@open__id__)(@)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive",next:_("@unifiedCall__id__")}]],[o(/(@open__id__)(\/@)((?:(?:@id)(?:\.(?:@id))*)?)(?:@closeTag1__id__)/),[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(@open__id__)#--/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:{token:"comment",next:_("@terseComment__id__")}],[o(/(?:@startOrEndTag__id__)([a-zA-Z_]+)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag.invalid",next:_("@fmExpression__id__.directive")}]]],[_("interpolation_and_text_token__id__")]:[[o(/(@iOpen1__id__)(@iOpen2__id__)/),[{token:"bracket"===t.id?"@brackets.interpolation":"delimiter.interpolation"},{token:"bracket"===t.id?"delimiter.interpolation":"@brackets.interpolation",next:_("@fmExpression__id__.interpolation")}]],[/[\$#<\[\{]|(?:@blank)+|[^\$<#\[\{\n\r\t ]+/,{token:"source"}]],[_("string_single_token__id__")]:[[/[^'\\]/,{token:"string"}],[/@escapedChar/,{token:"string.escape"}],[/'/,{token:"string",next:"@pop"}]],[_("string_double_token__id__")]:[[/[^"\\]/,{token:"string"}],[/@escapedChar/,{token:"string.escape"}],[/"/,{token:"string",next:"@pop"}]],[_("string_single_raw_token__id__")]:[[/[^']+/,{token:"string.raw"}],[/'/,{token:"string.raw",next:"@pop"}]],[_("string_double_raw_token__id__")]:[[/[^"]+/,{token:"string.raw"}],[/"/,{token:"string.raw",next:"@pop"}]],[_("expression_token__id__")]:[[/(r?)(['"])/,{cases:{"r'":[{token:"keyword"},{token:"string.raw",next:_("@rawSingleString__id__")}],'r"':[{token:"keyword"},{token:"string.raw",next:_("@rawDoubleString__id__")}],"'":[{token:"source"},{token:"string",next:_("@singleString__id__")}],'"':[{token:"source"},{token:"string",next:_("@doubleString__id__")}]}}],[/(?:@integer)(?:\.(?:@integer))?/,{cases:{"(?:@integer)":{token:"number"},"@default":{token:"number.float"}}}],[/(\.)(@blank*)(@specialHashKeys)/,[{token:"delimiter"},{token:""},{token:"identifier"}]],[/(?:@namedSymbols)/,{cases:{"@arrows":{token:"meta.arrow"},"@delimiters":{token:"delimiter"},"@default":{token:"operators"}}}],[/@id/,{cases:{"@keywords":{token:"keyword.$0"},"@stringOperators":{token:"operators"},"@default":{token:"identifier"}}}],[/[\[\]\(\)\{\}]/,{cases:{"\\[":{cases:{"$S2==gt":{token:"@brackets",next:_("@inParen__id__.gt")},"@default":{token:"@brackets",next:_("@inParen__id__.plain")}}},"\\]":{cases:{..."bracket"===t.id?{"$S2==interpolation":{token:"@brackets.interpolation",next:"@popall"}}:{},..."bracket"===e.id?{"$S2==directive":{token:"@brackets.directive",next:"@popall"}}:{},[_("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}},"\\(":{token:"@brackets",next:_("@inParen__id__.gt")},"\\)":{cases:{[_("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}},"\\{":{cases:{"$S2==gt":{token:"@brackets",next:_("@inParen__id__.gt")},"@default":{token:"@brackets",next:_("@inParen__id__.plain")}}},"\\}":{cases:{..."bracket"===t.id?{}:{"$S2==interpolation":{token:"@brackets.interpolation",next:"@popall"}},[_("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}}}}],[/\$\{/,{token:"delimiter.invalid"}]],[_("blank_and_expression_comment_token__id__")]:[[/(?:@blank)+/,{token:""}],[/[<\[][#!]--/,{token:"comment",next:_("@expressionComment__id__")}]],[_("directive_end_token__id__")]:[[/>/,"bracket"===e.id?{token:"operators"}:{token:"@brackets.directive",next:"@popall"}],[o(/(\/)(@close__id__)/),[{token:"delimiter.directive"},{token:"@brackets.directive",next:"@popall"}]]],[_("greater_operators_token__id__")]:[[/>/,{token:"operators"}],[/>=/,{token:"operators"}]],[_("no_space_expression_end_token__id__")]:[[/(?:@blank)+/,{token:"",switchTo:_("@fmExpression__id__.directive")}]],[_("unified_call_token__id__")]:[[/(@id)((?:@blank)+)/,[{token:"tag"},{token:"",next:_("@fmExpression__id__.directive")}]],[o(/(@id)(\/?)(@close__id__)/),[{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive",next:"@popall"}]],[/./,{token:"@rematch",next:_("@noSpaceExpression__id__")}]],[_("no_parse_token__id__")]:[[o(/(@open__id__)(\/#?)([a-zA-Z]+)((?:@blank)*)(@close__id__)/),{cases:{"$S2==$3":[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:""},{token:"@brackets.directive",next:"@popall"}],"$S2==comment":[{token:"comment"},{token:"comment"},{token:"comment"},{token:"comment"},{token:"comment"}],"@default":[{token:"source"},{token:"source"},{token:"source"},{token:"source"},{token:"source"}]}}],[/[^<\[\-]+|[<\[\-]/,{cases:{"$S2==comment":{token:"comment"},"@default":{token:"source"}}}]],[_("expression_comment_token__id__")]:[[/--[>\]]/,{token:"comment",next:"@pop"}],[/[^\->\]]+|[>\]\-]/,{token:"comment"}]],[_("terse_comment_token__id__")]:[[o(/--(?:@close__id__)/),{token:"comment",next:"@popall"}],[/[^<\[\-]+|[<\[\-]/,{token:"comment"}]]}}}function m(e){const t=A(u,e),n=A(c,e),_=A(d,e);return{...t,...n,..._,unicode:!0,includeLF:!1,start:`default_auto_${e.id}`,ignoreCase:!1,defaultToken:"invalid",tokenPostfix:".freemarker2",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{...t.tokenizer,...n.tokenizer,..._.tokenizer}}}var f={conf:p(u),language:A(u,l)},F={conf:p(c),language:A(c,l)},b={conf:p(u),language:A(u,k)},x={conf:p(c),language:A(c,k)},$={conf:g(),language:m(l)},E={conf:g(),language:m(k)};export{b as TagAngleInterpolationBracket,f as TagAngleInterpolationDollar,E as TagAutoInterpolationBracket,$ as TagAutoInterpolationDollar,x as TagBracketInterpolationBracket,F as TagBracketInterpolationDollar} \ No newline at end of file diff --git a/www/js/zui3/zen-editor/p-144a358f.js b/www/js/zui3/zen-editor/p-69409066.js similarity index 98% rename from www/js/zui3/zen-editor/p-144a358f.js rename to www/js/zui3/zen-editor/p-69409066.js index 64a1af0893..caefe4cf6c 100644 --- a/www/js/zui3/zen-editor/p-144a358f.js +++ b/www/js/zui3/zen-editor/p-69409066.js @@ -1,4 +1,4 @@ -import{m as e}from"./p-eb7120ba.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) diff --git a/www/js/zui3/zen-editor/p-3a1e2af7.js b/www/js/zui3/zen-editor/p-6aacc7a8.js similarity index 99% rename from www/js/zui3/zen-editor/p-3a1e2af7.js rename to www/js/zui3/zen-editor/p-6aacc7a8.js index ea279b35d1..aeba40dbf3 100644 --- a/www/js/zui3/zen-editor/p-3a1e2af7.js +++ b/www/js/zui3/zen-editor/p-6aacc7a8.js @@ -1,4 +1,4 @@ -import{m as t}from"./p-eb7120ba.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as t}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) diff --git a/www/js/zui3/zen-editor/p-66189762.js b/www/js/zui3/zen-editor/p-6e41e876.js similarity index 98% rename from www/js/zui3/zen-editor/p-66189762.js rename to www/js/zui3/zen-editor/p-6e41e876.js index d15e713b7b..ad7fd104b2 100644 --- a/www/js/zui3/zen-editor/p-66189762.js +++ b/www/js/zui3/zen-editor/p-6e41e876.js @@ -1,4 +1,4 @@ -import{m as e}from"./p-eb7120ba.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) diff --git a/www/js/zui3/zen-editor/p-2e5b4139.js b/www/js/zui3/zen-editor/p-86068437.js similarity index 99% rename from www/js/zui3/zen-editor/p-2e5b4139.js rename to www/js/zui3/zen-editor/p-86068437.js index 0868f5a028..572c55f5dc 100644 --- a/www/js/zui3/zen-editor/p-2e5b4139.js +++ b/www/js/zui3/zen-editor/p-86068437.js @@ -1,4 +1,4 @@ -import{t,m as e}from"./p-eb7120ba.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{t,m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) diff --git a/www/js/zui3/zen-editor/p-47792246.js b/www/js/zui3/zen-editor/p-9db7a80f.js similarity index 98% rename from www/js/zui3/zen-editor/p-47792246.js rename to www/js/zui3/zen-editor/p-9db7a80f.js index 7a9d94778d..b4a48e4e20 100644 --- a/www/js/zui3/zen-editor/p-47792246.js +++ b/www/js/zui3/zen-editor/p-9db7a80f.js @@ -1,4 +1,4 @@ -import{m as e}from"./p-eb7120ba.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) diff --git a/www/js/zui3/zen-editor/p-eb7120ba.js b/www/js/zui3/zen-editor/p-aa688caf.js similarity index 90% rename from www/js/zui3/zen-editor/p-eb7120ba.js rename to www/js/zui3/zen-editor/p-aa688caf.js index fff0cc169a..c7c4d83b1b 100644 --- a/www/js/zui3/zen-editor/p-eb7120ba.js +++ b/www/js/zui3/zen-editor/p-aa688caf.js @@ -1,4 +1,4 @@ -import{r as t,f as i,h as e,F as s,g as n,c as o,H as r}from"./p-7900c24a.js";import{L as h}from"./p-986e5fe7.js";const c=class{constructor(i){t(this,i),i.$hostElement$["s-ei"]?this.internals=i.$hostElement$["s-ei"]:(this.internals=i.$hostElement$.attachInternals(),i.$hostElement$["s-ei"]=this.internals),this.lastValue="",this.updateInputValue=()=>{const t=this.markdown?this.editor.storage.markdown.getMarkdown():this.editor.getHTML().replace(/

      <\/p>$/,"");this.value=t,this.jsonContent=this.editor.getJSON(),this.internals.setFormValue(t)},this.handleBlur=()=>{const{value:t="",lastValue:i=""}=this;i!==t&&(this.lastValue=t,this.element.dispatchEvent(new Event("change",{bubbles:!0})))},this.toggleFullscreen=()=>{Boolean(document.fullscreenElement)?document.exitFullscreen().then((()=>{})).catch((t=>{alert(h.format("error.fullscreen.exit",t.message,t.name))})):this.element.requestFullscreen().then((()=>{})).catch((t=>{alert(h.format("error.fullscreen.enter",t.message,t.name))}))},this.handleEditorDidLoad=t=>{this.editor=t.detail,this.updateInputValue(),this.lastValue=this.value},this.name="",this.readonly=!1,this.uploadUrl="",this.placeholder="",this.fullscreenable=!1,this.resizable=!1,this.exposeEditor=!1,this.size="sm",this.hideUI=!1,this.hideMenubar=!1,this.menubarMode="full",this.slashMenu=!1,this.bubbleMenu=!1,this.preferHardBreak=!1,this.neglectDefaultTextStyle=!1,this.markdown=!1,this.locale=void 0,this.css=void 0,this.collaborative=!1,this.hocuspocus="",this.docName="",this.username="",this.userColor="#ffcc00",this.value=void 0,this.editor=null,this.isFullscreen=!1,this.rendered=!1}setHTML(t,i=!0){if(i){const i=`${t}`,e=(new window.DOMParser).parseFromString(i,"text/html").body;e.querySelectorAll("br").forEach((t=>{t.remove()})),t=e.innerHTML}return this.editor.chain().setContent(t).run(),this.updateInputValue(),Promise.resolve()}insertHTML(t){return Promise.resolve(this.editor.chain().focus().insertContent(t).run())}getHTML(){return Promise.resolve(this.editor.getHTML())}getText(){return Promise.resolve(this.editor.getText())}focusEditor(){return Promise.resolve(this.editor.commands.focus())}blurEditor(){return Promise.resolve(this.editor.commands.blur())}setReadonly(t){return this.readonly=t,Promise.resolve(this.editor.setEditable(!t))}onCSSChange(){Boolean(this.css)&&(Boolean(this.styles)||(this.styles=new CSSStyleSheet),this.styles.replaceSync(this.css),i(this))}componentWillLoad(){Boolean(this.css)&&(this.styles=new CSSStyleSheet,this.styles.replaceSync(this.css))}componentDidRender(){this.rendered||(this.rendered=!0)}componentDidLoad(){Boolean(this.styles&&this.element.shadowRoot)&&(this.element.shadowRoot.adoptedStyleSheets=[...this.element.shadowRoot.adoptedStyleSheets,this.styles]),this.element.addEventListener("fullscreenchange",(()=>{this.isFullscreen=Boolean(document.fullscreenElement)}))}render(){var t,i,n;return"full"===this.size&&(this.resizable=!1),e(s,{key:"4b7429083df6a727991f25a8a48edbf68036c54f"},Boolean(this.editor)?null:e("div",{class:`editor-skeleton ${this.size}`}),this.rendered&&e("zen-editor-core",{key:"a8e56a79cbbba7021898597df867f242cf9eae47",name:this.name,readonly:this.readonly,uploadUrl:this.uploadUrl,placeholder:this.placeholder,resizable:this.resizable,exposeEditor:this.exposeEditor,size:this.size,hideUI:this.hideUI,hideMenubar:this.hideMenubar,menubarMode:this.menubarMode,slashMenu:this.slashMenu,bubbleMenu:this.bubbleMenu,preferHardBreak:this.preferHardBreak,neglectDefaultTextStyle:this.neglectDefaultTextStyle,markdown:this.markdown,locale:this.locale,collaborative:this.collaborative,hocuspocus:this.hocuspocus,docName:this.docName,username:this.username,userColor:this.userColor,updateInputValue:this.updateInputValue,toggleFullscreen:this.toggleFullscreen,fullscreenable:this.fullscreenable,isFullscreen:this.isFullscreen,onEditorDidLoad:this.handleEditorDidLoad,styles:this.styles,initialContent:null===(t=this.element.querySelector('[slot="content"]'))||void 0===t?void 0:t.innerHTML,extraMenubarItems:null===(i=this.element.querySelector('[slot="menubar-items"]'))||void 0===i?void 0:i.innerHTML,value:null!==(n=this.jsonContent)&&void 0!==n?n:this.value,style:{display:Boolean(this.editor)?"block":"none",height:"auto"!==this.size?"100%":void 0},onBlur:this.handleBlur}))}static get formAssociated(){return!0}get element(){return n(this)}static get watchers(){return{css:["onCSSChange"]}}};function a(t,i=0){return t[t.length-(1+i)]}function l(t,i,e=((t,i)=>t===i)){if(t===i)return!0;if(!t||!i)return!1;if(t.length!==i.length)return!1;for(let s=0,n=t.length;s0))return s;o=s-1}}return-(n+1)}(t.length)}function d(t,i,e){if((t|=0)>=i.length)throw new TypeError("invalid index");const s=i[Math.floor(i.length*Math.random())],n=[],o=[],r=[];for(const t of i){const i=e(t,s);i<0?n.push(t):i>0?o.push(t):r.push(t)}return t!!t))}function w(t){let i=0;for(let e=0;e0}function y(t,i=(t=>t)){const e=new Set;return t.filter((t=>{const s=i(t);return!e.has(s)&&(e.add(s),!0)}))}function k(t,i){return t.length>0?t[0]:i}function x(t,i){let e="number"==typeof i?t:0;"number"==typeof i?e=t:(e=0,i=t);const s=[];if(e<=i)for(let t=e;ti;t--)s.push(t);return s}function C(t,i,e){const s=t.slice(0,i),n=t.slice(i);return s.concat(e,n)}function S(t,i){const e=t.indexOf(i);e>-1&&(t.splice(e,1),t.unshift(i))}function D(t,i){const e=t.indexOf(i);e>-1&&(t.splice(e,1),t.push(i))}function E(t,i){for(const e of i)t.push(e)}function A(t){return Array.isArray(t)?t:[t]}function M(t,i,e,s){const n=L(t,i);let o=t.splice(n,e);return void 0===o&&(o=[]),function(t,i,e){const s=L(t,i),n=t.length,o=e.length;t.length=n+o;for(let i=n-1;i>=s;i--)t[i+o]=t[i];for(let i=0;ii(t(e),t(s))}c.style=".editor-skeleton{background-color:#f3f3f3;border:1px solid #e6e6e6;border-radius:0.25em;animation:pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.5}}.editor-skeleton.sm{height:9em}.editor-skeleton.lg{height:16em}.editor-skeleton.full{height:100%}",function(t){t.isLessThan=function(t){return t<0},t.isLessThanOrEqual=function(t){return t<=0},t.isGreaterThan=function(t){return t>0},t.isNeitherLessOrGreaterThan=function(t){return 0===t},t.greaterThan=1,t.lessThan=-1,t.neitherLessOrGreaterThan=0}(F||(F={}));const R=(t,i)=>t-i,O=(t,i)=>R(t?1:0,i?1:0);function I(t){return(i,e)=>-t(i,e)}class _{constructor(t){this.items=t,this.firstIdx=0,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(t){let i=this.firstIdx;for(;i=0&&t(this.items[i]);)i--;const e=i===this.lastIdx?null:this.items.slice(i+1,this.lastIdx+1);return this.lastIdx=i,e}peek(){if(0!==this.length)return this.items[this.firstIdx]}dequeue(){const t=this.items[this.firstIdx];return this.firstIdx++,t}takeCount(t){const i=this.items.slice(this.firstIdx,this.firstIdx+t);return this.firstIdx+=t,i}}class N{constructor(t){this.iterate=t}toArray(){const t=[];return this.iterate((i=>(t.push(i),!0))),t}filter(t){return new N((i=>this.iterate((e=>!t(e)||i(e)))))}map(t){return new N((i=>this.iterate((e=>i(t(e))))))}findLast(t){let i;return this.iterate((e=>(t(e)&&(i=e),!0))),i}findLastMaxBy(t){let i,e=!0;return this.iterate((s=>((e||F.isGreaterThan(t(s,i)))&&(e=!1,i=s),!0))),i}}function B(t){return"string"==typeof t}function P(t){return!("object"!=typeof t||null===t||Array.isArray(t)||t instanceof RegExp||t instanceof Date)}function $(t){const i=Object.getPrototypeOf(Uint8Array);return"object"==typeof t&&t instanceof i}function W(t){return"number"==typeof t&&!isNaN(t)}function j(t){return!!t&&"function"==typeof t[Symbol.iterator]}function z(t){return!0===t||!1===t}function H(t){return void 0===t}function V(t){return!U(t)}function U(t){return H(t)||null===t}function q(t,i){if(!t)throw new Error(i?`Unexpected type, expected '${i}'`:"Unexpected type")}function K(t){if(U(t))throw new Error("Assertion Failed: argument is undefined or null");return t}function G(t){return"function"==typeof t}function Z(t,i){if(B(i)){if(typeof t!==i)throw new Error(`argument does not match constraint: typeof ${i}`)}else if(G(i)){try{if(t instanceof i)return}catch(t){}if(!U(t)&&t.constructor===i)return;if(1===i.length&&!0===i.call(void 0,t))return;throw new Error("argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}function Q(t){if(!t||"object"!=typeof t)return t;if(t instanceof RegExp)return t;const i=Array.isArray(t)?[]:{};return Object.entries(t).forEach((([t,e])=>{i[t]=e&&"object"==typeof e?Q(e):e})),i}N.empty=new N((()=>{}));const J=Object.prototype.hasOwnProperty;function Y(t,i){return X(t,i,new Set)}function X(t,i,e){if(U(t))return t;const s=i(t);if(void 0!==s)return s;if(Array.isArray(t)){const s=[];for(const n of t)s.push(X(n,i,e));return s}if(P(t)){if(e.has(t))throw new Error("Cannot clone recursive data-structure");e.add(t);const s={};for(const n in t)J.call(t,n)&&(s[n]=X(t[n],i,e));return e.delete(t),s}return t}function tt(t,i,e=!0){return P(t)?(P(i)&&Object.keys(i).forEach((s=>{s in t?e&&(P(t[s])&&P(i[s])?tt(t[s],i[s],e):t[s]=i[s]):t[s]=i[s]})),t):i}function it(t,i){if(t===i)return!0;if(null==t||null==i)return!1;if(typeof t!=typeof i)return!1;if("object"!=typeof t)return!1;if(Array.isArray(t)!==Array.isArray(i))return!1;let e,s;if(Array.isArray(t)){if(t.length!==i.length)return!1;for(e=0;e=0;function nt(t,i){let e;return e=0===i.length?t:t.replace(/\{(\d+)\}/g,((t,e)=>{const s=i[e[0]];let n=t;return"string"==typeof s?n=s:"number"!=typeof s&&"boolean"!=typeof s&&null!=s||(n=String(s)),n})),st&&(e="["+e.replace(/[aouei]/g,"$&$&")+"]"),e}function ot(t,i,...e){return nt(i,e)}function rt(t,i,...e){const s=nt(i,e);return{value:s,original:s}}var ht;const ct="en";let at,lt,ut=!1,dt=!1,ft=!1,pt=!1,gt=!1,mt=!1,wt=!1,vt=ct;const bt=globalThis;let yt;void 0!==bt.vscode&&void 0!==bt.vscode.process?yt=bt.vscode.process:"undefined"!=typeof process&&(yt=process);const kt="string"==typeof(null===(ht=null==yt?void 0:yt.versions)||void 0===ht?void 0:ht.electron);if("object"!=typeof navigator||kt&&"renderer"===(null==yt?void 0:yt.type))if("object"==typeof yt){ut="win32"===yt.platform,dt="darwin"===yt.platform,ft="linux"===yt.platform,at=ct,vt=ct;const t=yt.env.VSCODE_NLS_CONFIG;if(t)try{const i=JSON.parse(t);at=i.locale,vt=i.availableLanguages["*"]||ct}catch(t){}pt=!0}else console.error("Unable to resolve platform.");else lt=navigator.userAgent,ut=lt.indexOf("Windows")>=0,dt=lt.indexOf("Macintosh")>=0,mt=(lt.indexOf("Macintosh")>=0||lt.indexOf("iPad")>=0||lt.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,ft=lt.indexOf("Linux")>=0,wt=(null==lt?void 0:lt.indexOf("Mobi"))>=0,gt=!0,ot(0,"_"),at=ct,vt=at;const xt=ut,Ct=dt,St=ft,Dt=pt,Et=gt,At=gt&&"function"==typeof bt.importScripts?bt.origin:void 0,Mt=mt,Lt=wt,Ft=lt,Tt=vt,Rt="function"==typeof bt.postMessage&&!bt.importScripts,Ot=(()=>{if(Rt){const t=[];bt.addEventListener("message",(i=>{if(i.data&&i.data.vscodeScheduleAsyncWork)for(let e=0,s=t.length;e{const s=++i;t.push({id:s,callback:e}),bt.postMessage({vscodeScheduleAsyncWork:s},"*")}}return t=>setTimeout(t)})(),It=dt||mt?2:ut?1:3;let _t=!0,Nt=!1;function Bt(){if(!Nt){Nt=!0;const t=new Uint8Array(2);t[0]=1,t[1]=2;const i=new Uint16Array(t.buffer);_t=513===i[0]}return _t}const Pt=!!(Ft&&Ft.indexOf("Chrome")>=0),$t=!!(Ft&&Ft.indexOf("Firefox")>=0),Wt=!!(!Pt&&Ft&&Ft.indexOf("Safari")>=0),jt=!!(Ft&&Ft.indexOf("Edg/")>=0);Ft&&Ft.indexOf("Android");const zt={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}};var Ht;!function(t){function i(t){return t&&"object"==typeof t&&"function"==typeof t[Symbol.iterator]}t.is=i;const e=Object.freeze([]);function*s(t){yield t}t.empty=function(){return e},t.single=s,t.wrap=function(t){return i(t)?t:s(t)},t.from=function(t){return t||e},t.reverse=function*(t){for(let i=t.length-1;i>=0;i--)yield t[i]},t.isEmpty=function(t){return!t||!0===t[Symbol.iterator]().next().done},t.first=function(t){return t[Symbol.iterator]().next().value},t.some=function(t,i){for(const e of t)if(i(e))return!0;return!1},t.find=function(t,i){for(const e of t)if(i(e))return e},t.filter=function*(t,i){for(const e of t)i(e)&&(yield e)},t.map=function*(t,i){let e=0;for(const s of t)yield i(s,e++)},t.concat=function*(...t){for(const i of t)yield*i},t.reduce=function(t,i,e){let s=e;for(const e of t)s=i(s,e);return s},t.slice=function*(t,i,e=t.length){for(i<0&&(i+=t.length),e<0?e+=t.length:e>t.length&&(e=t.length);in}]}}(Ht||(Ht={}));class Vt{constructor(t){this.element=t,this.next=Vt.Undefined,this.prev=Vt.Undefined}}Vt.Undefined=new Vt(void 0);class Ut{constructor(){this._first=Vt.Undefined,this._last=Vt.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===Vt.Undefined}clear(){let t=this._first;for(;t!==Vt.Undefined;){const i=t.next;t.prev=Vt.Undefined,t.next=Vt.Undefined,t=i}this._first=Vt.Undefined,this._last=Vt.Undefined,this._size=0}unshift(t){return this._insert(t,!1)}push(t){return this._insert(t,!0)}_insert(t,i){const e=new Vt(t);if(this._first===Vt.Undefined)this._first=e,this._last=e;else if(i){const t=this._last;this._last=e,e.prev=t,t.next=e}else{const t=this._first;this._first=e,e.next=t,t.prev=e}this._size+=1;let s=!1;return()=>{s||(s=!0,this._remove(e))}}shift(){if(this._first!==Vt.Undefined){const t=this._first.element;return this._remove(this._first),t}}pop(){if(this._last!==Vt.Undefined){const t=this._last.element;return this._remove(this._last),t}}_remove(t){if(t.prev!==Vt.Undefined&&t.next!==Vt.Undefined){const i=t.prev;i.next=t.next,t.next.prev=i}else t.prev===Vt.Undefined&&t.next===Vt.Undefined?(this._first=Vt.Undefined,this._last=Vt.Undefined):t.next===Vt.Undefined?(this._last=this._last.prev,this._last.next=Vt.Undefined):t.prev===Vt.Undefined&&(this._first=this._first.next,this._first.prev=Vt.Undefined);this._size-=1}*[Symbol.iterator](){let t=this._first;for(;t!==Vt.Undefined;)yield t.element,t=t.next}}const qt="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?",Kt=function(t=""){let i="(-?\\d*\\.\\d\\w*)|([^";for(const e of qt)t.indexOf(e)>=0||(i+="\\"+e);return i+="\\s]+)",new RegExp(i,"g")}();function Gt(t){let i=Kt;if(t&&t instanceof RegExp)if(t.global)i=t;else{let e="g";t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),i=new RegExp(t.source,e)}return i.lastIndex=0,i}const Zt=new Ut;function Qt(t,i,e,s,n){if(i=Gt(i),n||(n=Ht.first(Zt)),e.length>n.maxLen){let o=t-n.maxLen/2;return o<0?o=0:s+=o,Qt(t,i,e=e.substring(o,t+n.maxLen/2),s,n)}const o=Date.now(),r=t-1-s;let h=-1,c=null;for(let t=1;!(Date.now()-o>=n.timeBudget);t++){const s=r-n.windowSize*t;i.lastIndex=Math.max(0,s);const o=Jt(i,e,r,h);if(!o&&c)break;if(c=o,s<=0)break;h=s}if(c){const t={word:c[0],startColumn:s+1+c.index,endColumn:s+1+c.index+c[0].length};return i.lastIndex=0,t}return null}function Jt(t,i,e,s){let n;for(;n=t.exec(i);){const i=n.index||0;if(i<=e&&t.lastIndex>=e)return n;if(s>0&&i>s)return null}return null}Zt.unshift({maxLen:1e3,windowSize:15,timeBudget:150});class Yt{constructor(t){this._values=t}hasChanged(t){return this._values[t]}}class Xt{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}}class ti{constructor(t,i,e,s){this.id=t,this.name=i,this.defaultValue=e,this.schema=s}applyUpdate(t,i){return ei(t,i)}compute(t,i,e){return e}}class ii{constructor(t,i){this.newValue=t,this.didChange=i}}function ei(t,i){if("object"!=typeof t||"object"!=typeof i||!t||!i)return new ii(i,t!==i);if(Array.isArray(t)||Array.isArray(i)){const e=Array.isArray(t)&&Array.isArray(i)&&l(t,i);return new ii(i,!e)}let e=!1;for(const s in i)if(i.hasOwnProperty(s)){const n=ei(t[s],i[s]);n.didChange&&(t[s]=n.newValue,e=!0)}return new ii(t,e)}class si{constructor(t){this.schema=void 0,this.id=t,this.name="_never_",this.defaultValue=void 0}applyUpdate(t,i){return ei(t,i)}validate(t){return this.defaultValue}}class ni{constructor(t,i,e,s){this.id=t,this.name=i,this.defaultValue=e,this.schema=s}applyUpdate(t,i){return ei(t,i)}validate(t){return void 0===t?this.defaultValue:t}compute(t,i,e){return e}}function oi(t,i){return void 0===t?i:"false"!==t&&Boolean(t)}class ri extends ni{constructor(t,i,e,s){void 0!==s&&(s.type="boolean",s.default=e),super(t,i,e,s)}validate(t){return oi(t,this.defaultValue)}}function hi(t,i,e,s){if(void 0===t)return i;let n=parseInt(t,10);return isNaN(n)?i:(n=Math.max(e,n),n=Math.min(s,n),0|n)}class ci extends ni{static clampedInt(t,i,e,s){return hi(t,i,e,s)}constructor(t,i,e,s,n,o){void 0!==o&&(o.type="integer",o.default=e,o.minimum=s,o.maximum=n),super(t,i,e,o),this.minimum=s,this.maximum=n}validate(t){return ci.clampedInt(t,this.defaultValue,this.minimum,this.maximum)}}function ai(t,i,e,s){if(void 0===t)return i;const n=li.float(t,i);return li.clamp(n,e,s)}class li extends ni{static clamp(t,i,e){return te?e:t}static float(t,i){if("number"==typeof t)return t;if(void 0===t)return i;const e=parseFloat(t);return isNaN(e)?i:e}constructor(t,i,e,s,n){void 0!==n&&(n.type="number",n.default=e),super(t,i,e,n),this.validationFn=s}validate(t){return this.validationFn(li.float(t,this.defaultValue))}}class ui extends ni{static string(t,i){return"string"!=typeof t?i:t}constructor(t,i,e,s){void 0!==s&&(s.type="string",s.default=e),super(t,i,e,s)}validate(t){return ui.string(t,this.defaultValue)}}function di(t,i,e,s){return"string"!=typeof t?i:s&&t in s?s[t]:-1===e.indexOf(t)?i:t}class fi extends ni{constructor(t,i,e,s,n){void 0!==n&&(n.type="string",n.enum=s,n.default=e),super(t,i,e,n),this._allowedValues=s}validate(t){return di(t,this.defaultValue,this._allowedValues)}}class pi extends ti{constructor(t,i,e,s,n,o,r){void 0!==r&&(r.type="string",r.enum=n,r.default=s),super(t,i,e,r),this._allowedValues=n,this._convert=o}validate(t){return"string"!=typeof t||-1===this._allowedValues.indexOf(t)?this.defaultValue:this._convert(t)}}var gi,mi;!function(t){t[t.Line=1]="Line",t[t.Block=2]="Block",t[t.Underline=3]="Underline",t[t.LineThin=4]="LineThin",t[t.BlockOutline=5]="BlockOutline",t[t.UnderlineThin=6]="UnderlineThin"}(gi||(gi={}));class wi extends ti{constructor(){super(51,"fontLigatures",wi.OFF,{anyOf:[{type:"boolean",description:ot(0,"Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.")},{type:"string",description:ot(0,"Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:ot(0,"Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property."),default:!1})}validate(t){return void 0===t?this.defaultValue:"string"==typeof t?"false"===t?wi.OFF:"true"===t?wi.ON:t:Boolean(t)?wi.ON:wi.OFF}}wi.OFF='"liga" off, "calt" off',wi.ON='"liga" on, "calt" on';class vi extends ti{constructor(){super(54,"fontVariations",vi.OFF,{anyOf:[{type:"boolean",description:ot(0,"Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.")},{type:"string",description:ot(0,"Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.")}],description:ot(0,"Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property."),default:!1})}validate(t){return void 0===t?this.defaultValue:"string"==typeof t?"false"===t?vi.OFF:"true"===t?vi.TRANSLATE:t:Boolean(t)?vi.TRANSLATE:vi.OFF}compute(t,i,e){return t.fontInfo.fontVariationSettings}}vi.OFF="normal",vi.TRANSLATE="translate";class bi extends ti{constructor(){super(53,"fontWeight",Ri.fontWeight,{anyOf:[{type:"number",minimum:bi.MINIMUM_VALUE,maximum:bi.MAXIMUM_VALUE,errorMessage:ot(0,'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.')},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:bi.SUGGESTION_VALUES}],default:Ri.fontWeight,description:ot(0,'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')})}validate(t){return"normal"===t||"bold"===t?t:String(ci.clampedInt(t,Ri.fontWeight,bi.MINIMUM_VALUE,bi.MAXIMUM_VALUE))}}bi.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"],bi.MINIMUM_VALUE=1,bi.MAXIMUM_VALUE=1e3;class yi extends si{constructor(){super(143)}compute(t,i,e){return yi.computeLayout(i,{memory:t.memory,outerWidth:t.outerWidth,outerHeight:t.outerHeight,isDominatedByLongLines:t.isDominatedByLongLines,lineHeight:t.fontInfo.lineHeight,viewLineCount:t.viewLineCount,lineNumbersDigitCount:t.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:t.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:t.fontInfo.maxDigitWidth,pixelRatio:t.pixelRatio,glyphMarginDecorationLaneCount:t.glyphMarginDecorationLaneCount})}static computeContainedMinimapLineCount(t){const i=t.height/t.lineHeight,e=Math.floor(t.paddingTop/t.lineHeight);let s=Math.floor(t.paddingBottom/t.lineHeight);t.scrollBeyondLastLine&&(s=Math.max(s,i-1));const n=(e+t.viewLineCount+s)/(t.pixelRatio*t.height);return{typicalViewportLineCount:i,extraLinesBeforeFirstLine:e,extraLinesBeyondLastLine:s,desiredRatio:n,minimapLineCount:Math.floor(t.viewLineCount/n)}}static _computeMinimapLayout(t,i){const e=t.outerWidth,s=t.outerHeight,n=t.pixelRatio;if(!t.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(n*s),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:s};const o=i.stableMinimapLayoutInput,r=o&&t.outerHeight===o.outerHeight&&t.lineHeight===o.lineHeight&&t.typicalHalfwidthCharacterWidth===o.typicalHalfwidthCharacterWidth&&t.pixelRatio===o.pixelRatio&&t.scrollBeyondLastLine===o.scrollBeyondLastLine&&t.paddingTop===o.paddingTop&&t.paddingBottom===o.paddingBottom&&t.minimap.enabled===o.minimap.enabled&&t.minimap.side===o.minimap.side&&t.minimap.size===o.minimap.size&&t.minimap.showSlider===o.minimap.showSlider&&t.minimap.renderCharacters===o.minimap.renderCharacters&&t.minimap.maxColumn===o.minimap.maxColumn&&t.minimap.scale===o.minimap.scale&&t.verticalScrollbarWidth===o.verticalScrollbarWidth&&t.isViewportWrapping===o.isViewportWrapping,h=t.lineHeight,c=t.typicalHalfwidthCharacterWidth,a=t.scrollBeyondLastLine,l=t.minimap.renderCharacters;let u=n>=2?Math.round(2*t.minimap.scale):t.minimap.scale;const d=t.minimap.maxColumn,f=t.minimap.size,p=t.minimap.side,g=t.verticalScrollbarWidth,m=t.viewLineCount,w=t.remainingWidth,v=t.isViewportWrapping,b=l?2:3;let y=Math.floor(n*s);const k=y/n;let x=!1,C=!1,S=b*u,D=u/n,E=1;if("fill"===f||"fit"===f){const{typicalViewportLineCount:e,extraLinesBeforeFirstLine:o,extraLinesBeyondLastLine:c,desiredRatio:l,minimapLineCount:d}=yi.computeContainedMinimapLineCount({viewLineCount:m,scrollBeyondLastLine:a,paddingTop:t.paddingTop,paddingBottom:t.paddingBottom,height:s,lineHeight:h,pixelRatio:n});if(m/d>1)x=!0,C=!0,u=1,S=1,D=u/n;else{let s=!1,a=u+1;if("fit"===f){const t=Math.ceil((o+m+c)*S);v&&r&&w<=i.stableFitRemainingWidth?(s=!0,a=i.stableFitMaxMinimapScale):s=t>y}if("fill"===f||s){x=!0;const s=u;S=Math.min(h*n,Math.max(1,Math.floor(1/l))),v&&r&&w<=i.stableFitRemainingWidth&&(a=i.stableFitMaxMinimapScale),u=Math.min(a,Math.max(1,Math.floor(S/b))),u>s&&(E=Math.min(2,u/s)),D=u/n/E,y=Math.ceil(Math.max(e,o+m+c)*S),v?(i.stableMinimapLayoutInput=t,i.stableFitRemainingWidth=w,i.stableFitMaxMinimapScale=u):(i.stableMinimapLayoutInput=null,i.stableFitRemainingWidth=0)}}}const A=Math.floor(d*D),M=Math.min(A,Math.max(0,Math.floor((w-g-2)*D/(c+D)))+8);let L=Math.floor(n*M);const F=L/n;return L=Math.floor(L*E),{renderMinimap:l?1:2,minimapLeft:"left"===p?0:e-M-g,minimapWidth:M,minimapHeightIsEditorHeight:x,minimapIsSampling:C,minimapScale:u,minimapLineHeight:S,minimapCanvasInnerWidth:L,minimapCanvasInnerHeight:y,minimapCanvasOuterWidth:F,minimapCanvasOuterHeight:k}}static computeLayout(t,i){const e=0|i.outerWidth,s=0|i.outerHeight,n=0|i.lineHeight,o=0|i.lineNumbersDigitCount,r=i.typicalHalfwidthCharacterWidth,h=i.maxDigitWidth,c=i.pixelRatio,a=i.viewLineCount,l=t.get(135),u="inherit"===l?t.get(134):l,d="inherit"===u?t.get(130):u,f=t.get(133),p=i.isDominatedByLongLines,g=t.get(57),m=0!==t.get(67).renderType,w=t.get(68),v=t.get(104),b=t.get(83),y=t.get(72),k=t.get(102),x=k.verticalScrollbarSize,C=k.verticalHasArrows,S=k.arrowSize,D=k.horizontalScrollbarSize,E=t.get(43),A="never"!==t.get(109);let M=t.get(65);E&&A&&(M+=16);let L=0;if(m){const t=Math.max(o,w);L=Math.round(t*h)}let F=0;g&&(F=n*i.glyphMarginDecorationLaneCount);let T=0,R=T+F,O=R+L,I=O+M;const _=e-F-L-M;let N=!1,B=!1,P=-1;"inherit"===u&&p?(N=!0,B=!0):"on"===d||"bounded"===d?B=!0:"wordWrapColumn"===d&&(P=f);const $=yi._computeMinimapLayout({outerWidth:e,outerHeight:s,lineHeight:n,typicalHalfwidthCharacterWidth:r,pixelRatio:c,scrollBeyondLastLine:v,paddingTop:b.top,paddingBottom:b.bottom,minimap:y,verticalScrollbarWidth:x,viewLineCount:a,remainingWidth:_,isViewportWrapping:B},i.memory||new Xt);0!==$.renderMinimap&&0===$.minimapLeft&&(T+=$.minimapWidth,R+=$.minimapWidth,O+=$.minimapWidth,I+=$.minimapWidth);const W=_-$.minimapWidth,j=Math.max(1,Math.floor((W-x-2)/r)),z=C?S:0;return B&&(P=Math.max(1,j),"bounded"===d&&(P=Math.min(P,f))),{width:e,height:s,glyphMarginLeft:T,glyphMarginWidth:F,glyphMarginDecorationLaneCount:i.glyphMarginDecorationLaneCount,lineNumbersLeft:R,lineNumbersWidth:L,decorationsLeft:O,decorationsWidth:M,contentLeft:I,contentWidth:W,minimap:$,viewportColumn:j,isWordWrapMinified:N,isViewportWrapping:B,wrappingColumn:P,verticalScrollbarWidth:x,horizontalScrollbarHeight:D,overviewRuler:{top:z,width:x,height:s-2*z,right:0}}}}function ki(t){const i=t.get(97);return"editable"===i?t.get(90):"on"!==i}function xi(t,i){if("string"!=typeof t)return i;switch(t){case"hidden":return 2;case"visible":return 3;default:return 1}}!function(t){t.Off="off",t.OnCode="onCode",t.On="on"}(mi||(mi={}));const Ci="inUntrustedWorkspace",Si="editor.unicodeHighlight.allowedCharacters",Di="editor.unicodeHighlight.invisibleCharacters",Ei="editor.unicodeHighlight.nonBasicASCII",Ai="editor.unicodeHighlight.ambiguousCharacters",Mi="editor.unicodeHighlight.includeComments",Li="editor.unicodeHighlight.includeStrings",Fi="editor.unicodeHighlight.allowedLocales";function Ti(t,i,e){const s=e.indexOf(t);return-1===s?i:e[s]}const Ri={fontFamily:Ct?"Menlo, Monaco, 'Courier New', monospace":St?"'Droid Sans Mono', 'monospace', monospace":"Consolas, 'Courier New', monospace",fontWeight:"normal",fontSize:Ct?12:14,lineHeight:0,letterSpacing:0},Oi=[];function Ii(t){return Oi[t.id]=t,t}const _i={acceptSuggestionOnCommitCharacter:Ii(new ri(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:ot(0,"Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.")})),acceptSuggestionOnEnter:Ii(new fi(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",ot(0,"Only accept a suggestion with `Enter` when it makes a textual change."),""],markdownDescription:ot(0,"Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.")})),accessibilitySupport:Ii(new class extends ti{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[ot(0,"Use platform APIs to detect when a Screen Reader is attached."),ot(0,"Optimize for usage with a Screen Reader."),ot(0,"Assume a screen reader is not attached.")],default:"auto",tags:["accessibility"],description:ot(0,"Controls if the UI should run in a mode where it is optimized for screen readers.")})}validate(t){switch(t){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(t,i,e){return 0===e?t.accessibilitySupport:e}}),accessibilityPageSize:Ii(new ci(3,"accessibilityPageSize",10,1,1073741824,{description:ot(0,"Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default."),tags:["accessibility"]})),ariaLabel:Ii(new ui(4,"ariaLabel",ot(0,"Editor content"))),ariaRequired:Ii(new ri(5,"ariaRequired",!1,void 0)),screenReaderAnnounceInlineSuggestion:Ii(new ri(8,"screenReaderAnnounceInlineSuggestion",!0,{description:ot(0,"Control whether inline suggestions are announced by a screen reader."),tags:["accessibility"]})),autoClosingBrackets:Ii(new fi(6,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",ot(0,"Use language configurations to determine when to autoclose brackets."),ot(0,"Autoclose brackets only when the cursor is to the left of whitespace."),""],description:ot(0,"Controls whether the editor should automatically close brackets after the user adds an opening bracket.")})),autoClosingComments:Ii(new fi(7,"autoClosingComments","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",ot(0,"Use language configurations to determine when to autoclose comments."),ot(0,"Autoclose comments only when the cursor is to the left of whitespace."),""],description:ot(0,"Controls whether the editor should automatically close comments after the user adds an opening comment.")})),autoClosingDelete:Ii(new fi(9,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",ot(0,"Remove adjacent closing quotes or brackets only if they were automatically inserted."),""],description:ot(0,"Controls whether the editor should remove adjacent closing quotes or brackets when deleting.")})),autoClosingOvertype:Ii(new fi(10,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",ot(0,"Type over closing quotes or brackets only if they were automatically inserted."),""],description:ot(0,"Controls whether the editor should type over closing quotes or brackets.")})),autoClosingQuotes:Ii(new fi(11,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",ot(0,"Use language configurations to determine when to autoclose quotes."),ot(0,"Autoclose quotes only when the cursor is to the left of whitespace."),""],description:ot(0,"Controls whether the editor should automatically close quotes after the user adds an opening quote.")})),autoIndent:Ii(new pi(12,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],(function(t){switch(t){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}),{enumDescriptions:[ot(0,"The editor will not insert indentation automatically."),ot(0,"The editor will keep the current line's indentation."),ot(0,"The editor will keep the current line's indentation and honor language defined brackets."),ot(0,"The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."),ot(0,"The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.")],description:ot(0,"Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")})),automaticLayout:Ii(new ri(13,"automaticLayout",!1)),autoSurround:Ii(new fi(14,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[ot(0,"Use language configurations to determine when to automatically surround selections."),ot(0,"Surround with quotes but not brackets."),ot(0,"Surround with brackets but not quotes."),""],description:ot(0,"Controls whether the editor should automatically surround selections when typing quotes or brackets.")})),bracketPairColorization:Ii(new class extends ti{constructor(){const t={enabled:zt.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:zt.bracketPairColorizationOptions.independentColorPoolPerBracketType};super(15,"bracketPairColorization",t,{"editor.bracketPairColorization.enabled":{type:"boolean",default:t.enabled,markdownDescription:ot(0,"Controls whether bracket pair colorization is enabled or not. Use {0} to override the bracket highlight colors.","`#workbench.colorCustomizations#`")},"editor.bracketPairColorization.independentColorPoolPerBracketType":{type:"boolean",default:t.independentColorPoolPerBracketType,description:ot(0,"Controls whether each bracket type has its own independent color pool.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{enabled:oi(i.enabled,this.defaultValue.enabled),independentColorPoolPerBracketType:oi(i.independentColorPoolPerBracketType,this.defaultValue.independentColorPoolPerBracketType)}}}),bracketPairGuides:Ii(new class extends ti{constructor(){const t={bracketPairs:!1,bracketPairsHorizontal:"active",highlightActiveBracketPair:!0,indentation:!0,highlightActiveIndentation:!0};super(16,"guides",t,{"editor.guides.bracketPairs":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[ot(0,"Enables bracket pair guides."),ot(0,"Enables bracket pair guides only for the active bracket pair."),ot(0,"Disables bracket pair guides.")],default:t.bracketPairs,description:ot(0,"Controls whether bracket pair guides are enabled or not.")},"editor.guides.bracketPairsHorizontal":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[ot(0,"Enables horizontal guides as addition to vertical bracket pair guides."),ot(0,"Enables horizontal guides only for the active bracket pair."),ot(0,"Disables horizontal bracket pair guides.")],default:t.bracketPairsHorizontal,description:ot(0,"Controls whether horizontal bracket pair guides are enabled or not.")},"editor.guides.highlightActiveBracketPair":{type:"boolean",default:t.highlightActiveBracketPair,description:ot(0,"Controls whether the editor should highlight the active bracket pair.")},"editor.guides.indentation":{type:"boolean",default:t.indentation,description:ot(0,"Controls whether the editor should render indent guides.")},"editor.guides.highlightActiveIndentation":{type:["boolean","string"],enum:[!0,"always",!1],enumDescriptions:[ot(0,"Highlights the active indent guide."),ot(0,"Highlights the active indent guide even if bracket guides are highlighted."),ot(0,"Do not highlight the active indent guide.")],default:t.highlightActiveIndentation,description:ot(0,"Controls whether the editor should highlight the active indent guide.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{bracketPairs:Ti(i.bracketPairs,this.defaultValue.bracketPairs,[!0,!1,"active"]),bracketPairsHorizontal:Ti(i.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[!0,!1,"active"]),highlightActiveBracketPair:oi(i.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:oi(i.indentation,this.defaultValue.indentation),highlightActiveIndentation:Ti(i.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation,[!0,!1,"always"])}}}),stickyTabStops:Ii(new ri(115,"stickyTabStops",!1,{description:ot(0,"Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.")})),codeLens:Ii(new ri(17,"codeLens",!0,{description:ot(0,"Controls whether the editor shows CodeLens.")})),codeLensFontFamily:Ii(new ui(18,"codeLensFontFamily","",{description:ot(0,"Controls the font family for CodeLens.")})),codeLensFontSize:Ii(new ci(19,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:ot(0,"Controls the font size in pixels for CodeLens. When set to 0, 90% of `#editor.fontSize#` is used.")})),colorDecorators:Ii(new ri(20,"colorDecorators",!0,{description:ot(0,"Controls whether the editor should render the inline color decorators and color picker.")})),colorDecoratorActivatedOn:Ii(new fi(146,"colorDecoratorsActivatedOn","clickAndHover",["clickAndHover","hover","click"],{enumDescriptions:[ot(0,"Make the color picker appear both on click and hover of the color decorator"),ot(0,"Make the color picker appear on hover of the color decorator"),ot(0,"Make the color picker appear on click of the color decorator")],description:ot(0,"Controls the condition to make a color picker appear from a color decorator")})),colorDecoratorsLimit:Ii(new ci(21,"colorDecoratorsLimit",500,1,1e6,{markdownDescription:ot(0,"Controls the max number of color decorators that can be rendered in an editor at once.")})),columnSelection:Ii(new ri(22,"columnSelection",!1,{description:ot(0,"Enable that the selection with the mouse and keys is doing column selection.")})),comments:Ii(new class extends ti{constructor(){const t={insertSpace:!0,ignoreEmptyLines:!0};super(23,"comments",t,{"editor.comments.insertSpace":{type:"boolean",default:t.insertSpace,description:ot(0,"Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:t.ignoreEmptyLines,description:ot(0,"Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{insertSpace:oi(i.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:oi(i.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}),contextmenu:Ii(new ri(24,"contextmenu",!0)),copyWithSyntaxHighlighting:Ii(new ri(25,"copyWithSyntaxHighlighting",!0,{description:ot(0,"Controls whether syntax highlighting should be copied into the clipboard.")})),cursorBlinking:Ii(new pi(26,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],(function(t){switch(t){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}),{description:ot(0,"Control the cursor animation style.")})),cursorSmoothCaretAnimation:Ii(new fi(27,"cursorSmoothCaretAnimation","off",["off","explicit","on"],{enumDescriptions:[ot(0,"Smooth caret animation is disabled."),ot(0,"Smooth caret animation is enabled only when the user moves the cursor with an explicit gesture."),ot(0,"Smooth caret animation is always enabled.")],description:ot(0,"Controls whether the smooth caret animation should be enabled.")})),cursorStyle:Ii(new pi(28,"cursorStyle",gi.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],(function(t){switch(t){case"line":return gi.Line;case"block":return gi.Block;case"underline":return gi.Underline;case"line-thin":return gi.LineThin;case"block-outline":return gi.BlockOutline;case"underline-thin":return gi.UnderlineThin}}),{description:ot(0,"Controls the cursor style.")})),cursorSurroundingLines:Ii(new ci(29,"cursorSurroundingLines",0,0,1073741824,{description:ot(0,"Controls the minimal number of visible leading lines (minimum 0) and trailing lines (minimum 1) surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.")})),cursorSurroundingLinesStyle:Ii(new fi(30,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[ot(0,"`cursorSurroundingLines` is enforced only when triggered via the keyboard or API."),ot(0,"`cursorSurroundingLines` is enforced always.")],markdownDescription:ot(0,"Controls when `#cursorSurroundingLines#` should be enforced.")})),cursorWidth:Ii(new ci(31,"cursorWidth",0,0,1073741824,{markdownDescription:ot(0,"Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")})),disableLayerHinting:Ii(new ri(32,"disableLayerHinting",!1)),disableMonospaceOptimizations:Ii(new ri(33,"disableMonospaceOptimizations",!1)),domReadOnly:Ii(new ri(34,"domReadOnly",!1)),dragAndDrop:Ii(new ri(35,"dragAndDrop",!0,{description:ot(0,"Controls whether the editor should allow moving selections via drag and drop.")})),emptySelectionClipboard:Ii(new class extends ri{constructor(){super(37,"emptySelectionClipboard",!0,{description:ot(0,"Controls whether copying without a selection copies the current line.")})}compute(t,i,e){return e&&t.emptySelectionClipboard}}),dropIntoEditor:Ii(new class extends ti{constructor(){const t={enabled:!0,showDropSelector:"afterDrop"};super(36,"dropIntoEditor",t,{"editor.dropIntoEditor.enabled":{type:"boolean",default:t.enabled,markdownDescription:ot(0,"Controls whether you can drag and drop a file into a text editor by holding down `Shift`-key (instead of opening the file in an editor).")},"editor.dropIntoEditor.showDropSelector":{type:"string",markdownDescription:ot(0,"Controls if a widget is shown when dropping files into the editor. This widget lets you control how the file is dropped."),enum:["afterDrop","never"],enumDescriptions:[ot(0,"Show the drop selector widget after a file is dropped into the editor."),ot(0,"Never show the drop selector widget. Instead the default drop provider is always used.")],default:"afterDrop"}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{enabled:oi(i.enabled,this.defaultValue.enabled),showDropSelector:di(i.showDropSelector,this.defaultValue.showDropSelector,["afterDrop","never"])}}}),stickyScroll:Ii(new class extends ti{constructor(){const t={enabled:!1,maxLineCount:5,defaultModel:"outlineModel",scrollWithEditor:!0};super(114,"stickyScroll",t,{"editor.stickyScroll.enabled":{type:"boolean",default:t.enabled,description:ot(0,"Shows the nested current scopes during the scroll at the top of the editor.")},"editor.stickyScroll.maxLineCount":{type:"number",default:t.maxLineCount,minimum:1,maximum:10,description:ot(0,"Defines the maximum number of sticky lines to show.")},"editor.stickyScroll.defaultModel":{type:"string",enum:["outlineModel","foldingProviderModel","indentationModel"],default:t.defaultModel,description:ot(0,"Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.")},"editor.stickyScroll.scrollWithEditor":{type:"boolean",default:t.scrollWithEditor,description:ot(0,"Enable scrolling of Sticky Scroll with the editor's horizontal scrollbar.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{enabled:oi(i.enabled,this.defaultValue.enabled),maxLineCount:ci.clampedInt(i.maxLineCount,this.defaultValue.maxLineCount,1,10),defaultModel:di(i.defaultModel,this.defaultValue.defaultModel,["outlineModel","foldingProviderModel","indentationModel"]),scrollWithEditor:oi(i.scrollWithEditor,this.defaultValue.scrollWithEditor)}}}),experimentalWhitespaceRendering:Ii(new fi(38,"experimentalWhitespaceRendering","svg",["svg","font","off"],{enumDescriptions:[ot(0,"Use a new rendering method with svgs."),ot(0,"Use a new rendering method with font characters."),ot(0,"Use the stable rendering method.")],description:ot(0,"Controls whether whitespace is rendered with a new, experimental method.")})),extraEditorClassName:Ii(new ui(39,"extraEditorClassName","")),fastScrollSensitivity:Ii(new li(40,"fastScrollSensitivity",5,(t=>t<=0?5:t),{markdownDescription:ot(0,"Scrolling speed multiplier when pressing `Alt`.")})),find:Ii(new class extends ti{constructor(){const t={cursorMoveOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0};super(41,"find",t,{"editor.find.cursorMoveOnType":{type:"boolean",default:t.cursorMoveOnType,description:ot(0,"Controls whether the cursor should jump to find matches while typing.")},"editor.find.seedSearchStringFromSelection":{type:"string",enum:["never","always","selection"],default:t.seedSearchStringFromSelection,enumDescriptions:[ot(0,"Never seed search string from the editor selection."),ot(0,"Always seed search string from the editor selection, including word at cursor position."),ot(0,"Only seed search string from the editor selection.")],description:ot(0,"Controls whether the search string in the Find Widget is seeded from the editor selection.")},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:t.autoFindInSelection,enumDescriptions:[ot(0,"Never turn on Find in Selection automatically (default)."),ot(0,"Always turn on Find in Selection automatically."),ot(0,"Turn on Find in Selection automatically when multiple lines of content are selected.")],description:ot(0,"Controls the condition for turning on Find in Selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:t.globalFindClipboard,description:ot(0,"Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:Ct},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:t.addExtraSpaceOnTop,description:ot(0,"Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.")},"editor.find.loop":{type:"boolean",default:t.loop,description:ot(0,"Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{cursorMoveOnType:oi(i.cursorMoveOnType,this.defaultValue.cursorMoveOnType),seedSearchStringFromSelection:"boolean"==typeof t.seedSearchStringFromSelection?t.seedSearchStringFromSelection?"always":"never":di(i.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:"boolean"==typeof t.autoFindInSelection?t.autoFindInSelection?"always":"never":di(i.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:oi(i.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:oi(i.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:oi(i.loop,this.defaultValue.loop)}}}),fixedOverflowWidgets:Ii(new ri(42,"fixedOverflowWidgets",!1)),folding:Ii(new ri(43,"folding",!0,{description:ot(0,"Controls whether the editor has code folding enabled.")})),foldingStrategy:Ii(new fi(44,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[ot(0,"Use a language-specific folding strategy if available, else the indentation-based one."),ot(0,"Use the indentation-based folding strategy.")],description:ot(0,"Controls the strategy for computing folding ranges.")})),foldingHighlight:Ii(new ri(45,"foldingHighlight",!0,{description:ot(0,"Controls whether the editor should highlight folded ranges.")})),foldingImportsByDefault:Ii(new ri(46,"foldingImportsByDefault",!1,{description:ot(0,"Controls whether the editor automatically collapses import ranges.")})),foldingMaximumRegions:Ii(new ci(47,"foldingMaximumRegions",5e3,10,65e3,{description:ot(0,"The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.")})),unfoldOnClickAfterEndOfLine:Ii(new ri(48,"unfoldOnClickAfterEndOfLine",!1,{description:ot(0,"Controls whether clicking on the empty content after a folded line will unfold the line.")})),fontFamily:Ii(new ui(49,"fontFamily",Ri.fontFamily,{description:ot(0,"Controls the font family.")})),fontInfo:Ii(new class extends si{constructor(){super(50)}compute(t,i,e){return t.fontInfo}}),fontLigatures2:Ii(new wi),fontSize:Ii(new class extends ni{constructor(){super(52,"fontSize",Ri.fontSize,{type:"number",minimum:6,maximum:100,default:Ri.fontSize,description:ot(0,"Controls the font size in pixels.")})}validate(t){const i=li.float(t,this.defaultValue);return 0===i?Ri.fontSize:li.clamp(i,6,100)}compute(t,i,e){return t.fontInfo.fontSize}}),fontWeight:Ii(new bi),fontVariations:Ii(new vi),formatOnPaste:Ii(new ri(55,"formatOnPaste",!1,{description:ot(0,"Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.")})),formatOnType:Ii(new ri(56,"formatOnType",!1,{description:ot(0,"Controls whether the editor should automatically format the line after typing.")})),glyphMargin:Ii(new ri(57,"glyphMargin",!0,{description:ot(0,"Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")})),gotoLocation:Ii(new class extends ti{constructor(){const t={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:""},i={type:"string",enum:["peek","gotoAndPeek","goto"],default:t.multiple,enumDescriptions:[ot(0,"Show Peek view of the results (default)"),ot(0,"Go to the primary result and show a Peek view"),ot(0,"Go to the primary result and enable Peek-less navigation to others")]},e=["","editor.action.referenceSearch.trigger","editor.action.goToReferences","editor.action.peekImplementation","editor.action.goToImplementation","editor.action.peekTypeDefinition","editor.action.goToTypeDefinition","editor.action.peekDeclaration","editor.action.revealDeclaration","editor.action.peekDefinition","editor.action.revealDefinitionAside","editor.action.revealDefinition"];super(58,"gotoLocation",t,{"editor.gotoLocation.multiple":{deprecationMessage:ot(0,"This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")},"editor.gotoLocation.multipleDefinitions":{description:ot(0,"Controls the behavior the 'Go to Definition'-command when multiple target locations exist."),...i},"editor.gotoLocation.multipleTypeDefinitions":{description:ot(0,"Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist."),...i},"editor.gotoLocation.multipleDeclarations":{description:ot(0,"Controls the behavior the 'Go to Declaration'-command when multiple target locations exist."),...i},"editor.gotoLocation.multipleImplementations":{description:ot(0,"Controls the behavior the 'Go to Implementations'-command when multiple target locations exist."),...i},"editor.gotoLocation.multipleReferences":{description:ot(0,"Controls the behavior the 'Go to References'-command when multiple target locations exist."),...i},"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:t.alternativeDefinitionCommand,enum:e,description:ot(0,"Alternative command id that is being executed when the result of 'Go to Definition' is the current location.")},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:t.alternativeTypeDefinitionCommand,enum:e,description:ot(0,"Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.")},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:t.alternativeDeclarationCommand,enum:e,description:ot(0,"Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.")},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:t.alternativeImplementationCommand,enum:e,description:ot(0,"Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.")},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:t.alternativeReferenceCommand,enum:e,description:ot(0,"Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})}validate(t){var i,e,s,n,o;if(!t||"object"!=typeof t)return this.defaultValue;const r=t;return{multiple:di(r.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:null!==(i=r.multipleDefinitions)&&void 0!==i?i:di(r.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:null!==(e=r.multipleTypeDefinitions)&&void 0!==e?e:di(r.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:null!==(s=r.multipleDeclarations)&&void 0!==s?s:di(r.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:null!==(n=r.multipleImplementations)&&void 0!==n?n:di(r.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:null!==(o=r.multipleReferences)&&void 0!==o?o:di(r.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:ui.string(r.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:ui.string(r.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:ui.string(r.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:ui.string(r.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:ui.string(r.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}}}),hideCursorInOverviewRuler:Ii(new ri(59,"hideCursorInOverviewRuler",!1,{description:ot(0,"Controls whether the cursor should be hidden in the overview ruler.")})),hover:Ii(new class extends ti{constructor(){const t={enabled:!0,delay:300,hidingDelay:300,sticky:!0,above:!0};super(60,"hover",t,{"editor.hover.enabled":{type:"boolean",default:t.enabled,description:ot(0,"Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:t.delay,minimum:0,maximum:1e4,description:ot(0,"Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:t.sticky,description:ot(0,"Controls whether the hover should remain visible when mouse is moved over it.")},"editor.hover.hidingDelay":{type:"integer",minimum:0,default:t.hidingDelay,description:ot(0,"Controls the delay in milliseconds after which the hover is hidden. Requires `editor.hover.sticky` to be enabled.")},"editor.hover.above":{type:"boolean",default:t.above,description:ot(0,"Prefer showing hovers above the line, if there's space.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{enabled:oi(i.enabled,this.defaultValue.enabled),delay:ci.clampedInt(i.delay,this.defaultValue.delay,0,1e4),sticky:oi(i.sticky,this.defaultValue.sticky),hidingDelay:ci.clampedInt(i.hidingDelay,this.defaultValue.hidingDelay,0,6e5),above:oi(i.above,this.defaultValue.above)}}}),inDiffEditor:Ii(new ri(61,"inDiffEditor",!1)),letterSpacing:Ii(new li(63,"letterSpacing",Ri.letterSpacing,(t=>li.clamp(t,-5,20)),{description:ot(0,"Controls the letter spacing in pixels.")})),lightbulb:Ii(new class extends ti{constructor(){const t={enabled:!0,experimental:{showAiIcon:mi.Off}};super(64,"lightbulb",t,{"editor.lightbulb.enabled":{type:"boolean",default:t.enabled,description:ot(0,"Enables the Code Action lightbulb in the editor.")},"editor.lightbulb.experimental.showAiIcon":{type:"string",enum:[mi.Off,mi.OnCode,mi.On],default:t.experimental.showAiIcon,enumDescriptions:[ot(0,"Don not show the AI icon."),ot(0,"Show an AI icon when the code action menu contains an AI action, but only on code."),ot(0,"Show an AI icon when the code action menu contains an AI action, on code and empty lines.")],description:ot(0,"Show an AI icon along with the lightbulb when the code action menu contains an AI action.")}})}validate(t){var i,e;if(!t||"object"!=typeof t)return this.defaultValue;const s=t;return{enabled:oi(s.enabled,this.defaultValue.enabled),experimental:{showAiIcon:di(null===(i=s.experimental)||void 0===i?void 0:i.showAiIcon,null===(e=this.defaultValue.experimental)||void 0===e?void 0:e.showAiIcon,[mi.Off,mi.OnCode,mi.On])}}}}),lineDecorationsWidth:Ii(new class extends ti{constructor(){super(65,"lineDecorationsWidth",10)}validate(t){return"string"==typeof t&&/^\d+(\.\d+)?ch$/.test(t)?-parseFloat(t.substring(0,t.length-2)):ci.clampedInt(t,this.defaultValue,0,1e3)}compute(t,i,e){return e<0?ci.clampedInt(-e*t.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):e}}),lineHeight:Ii(new class extends li{constructor(){super(66,"lineHeight",Ri.lineHeight,(t=>li.clamp(t,0,150)),{markdownDescription:ot(0,"Controls the line height. \n - Use 0 to automatically compute the line height from the font size.\n - Values between 0 and 8 will be used as a multiplier with the font size.\n - Values greater than or equal to 8 will be used as effective values.")})}compute(t,i,e){return t.fontInfo.lineHeight}}),lineNumbers:Ii(new class extends ti{constructor(){super(67,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[ot(0,"Line numbers are not rendered."),ot(0,"Line numbers are rendered as absolute number."),ot(0,"Line numbers are rendered as distance in lines to cursor position."),ot(0,"Line numbers are rendered every 10 lines.")],default:"on",description:ot(0,"Controls the display of line numbers.")})}validate(t){let i=this.defaultValue.renderType,e=this.defaultValue.renderFn;return void 0!==t&&("function"==typeof t?(i=4,e=t):i="interval"===t?3:"relative"===t?2:"on"===t?1:0),{renderType:i,renderFn:e}}}),lineNumbersMinChars:Ii(new ci(68,"lineNumbersMinChars",5,1,300)),linkedEditing:Ii(new ri(69,"linkedEditing",!1,{description:ot(0,"Controls whether the editor has linked editing enabled. Depending on the language, related symbols such as HTML tags, are updated while editing.")})),links:Ii(new ri(70,"links",!0,{description:ot(0,"Controls whether the editor should detect links and make them clickable.")})),matchBrackets:Ii(new fi(71,"matchBrackets","always",["always","near","never"],{description:ot(0,"Highlight matching brackets.")})),minimap:Ii(new class extends ti{constructor(){const t={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",autohide:!1,renderCharacters:!0,maxColumn:120,scale:1};super(72,"minimap",t,{"editor.minimap.enabled":{type:"boolean",default:t.enabled,description:ot(0,"Controls whether the minimap is shown.")},"editor.minimap.autohide":{type:"boolean",default:t.autohide,description:ot(0,"Controls whether the minimap is hidden automatically.")},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[ot(0,"The minimap has the same size as the editor contents (and might scroll)."),ot(0,"The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."),ot(0,"The minimap will shrink as necessary to never be larger than the editor (no scrolling).")],default:t.size,description:ot(0,"Controls the size of the minimap.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:t.side,description:ot(0,"Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:t.showSlider,description:ot(0,"Controls when the minimap slider is shown.")},"editor.minimap.scale":{type:"number",default:t.scale,minimum:1,maximum:3,enum:[1,2,3],description:ot(0,"Scale of content drawn in the minimap: 1, 2 or 3.")},"editor.minimap.renderCharacters":{type:"boolean",default:t.renderCharacters,description:ot(0,"Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:t.maxColumn,description:ot(0,"Limit the width of the minimap to render at most a certain number of columns.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{enabled:oi(i.enabled,this.defaultValue.enabled),autohide:oi(i.autohide,this.defaultValue.autohide),size:di(i.size,this.defaultValue.size,["proportional","fill","fit"]),side:di(i.side,this.defaultValue.side,["right","left"]),showSlider:di(i.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:oi(i.renderCharacters,this.defaultValue.renderCharacters),scale:ci.clampedInt(i.scale,1,1,3),maxColumn:ci.clampedInt(i.maxColumn,this.defaultValue.maxColumn,1,1e4)}}}),mouseStyle:Ii(new fi(73,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:Ii(new li(74,"mouseWheelScrollSensitivity",1,(t=>0===t?1:t),{markdownDescription:ot(0,"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")})),mouseWheelZoom:Ii(new ri(75,"mouseWheelZoom",!1,{markdownDescription:ot(0,"Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")})),multiCursorMergeOverlapping:Ii(new ri(76,"multiCursorMergeOverlapping",!0,{description:ot(0,"Merge multiple cursors when they are overlapping.")})),multiCursorModifier:Ii(new pi(77,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],(function(t){return"ctrlCmd"===t?Ct?"metaKey":"ctrlKey":"altKey"}),{markdownEnumDescriptions:[ot(0,"Maps to `Control` on Windows and Linux and to `Command` on macOS."),ot(0,"Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],markdownDescription:ot(0,"The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the [multicursor modifier](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).")})),multiCursorPaste:Ii(new fi(78,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[ot(0,"Each cursor pastes a single line of the text."),ot(0,"Each cursor pastes the full text.")],markdownDescription:ot(0,"Controls pasting when the line count of the pasted text matches the cursor count.")})),multiCursorLimit:Ii(new ci(79,"multiCursorLimit",1e4,1,1e5,{markdownDescription:ot(0,"Controls the max number of cursors that can be in an active editor at once.")})),occurrencesHighlight:Ii(new fi(80,"occurrencesHighlight","singleFile",["off","singleFile","multiFile"],{markdownEnumDescriptions:[ot(0,"Does not highlight occurrences."),ot(0,"Highlights occurrences only in the current file."),ot(0,"Experimental: Highlights occurrences across all valid open files.")],markdownDescription:ot(0,"Controls whether occurrences should be highlighted across open files.")})),overviewRulerBorder:Ii(new ri(81,"overviewRulerBorder",!0,{description:ot(0,"Controls whether a border should be drawn around the overview ruler.")})),overviewRulerLanes:Ii(new ci(82,"overviewRulerLanes",3,0,3)),padding:Ii(new class extends ti{constructor(){super(83,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:ot(0,"Controls the amount of space between the top edge of the editor and the first line.")},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:ot(0,"Controls the amount of space between the bottom edge of the editor and the last line.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{top:ci.clampedInt(i.top,0,0,1e3),bottom:ci.clampedInt(i.bottom,0,0,1e3)}}}),pasteAs:Ii(new class extends ti{constructor(){const t={enabled:!0,showPasteSelector:"afterPaste"};super(84,"pasteAs",t,{"editor.pasteAs.enabled":{type:"boolean",default:t.enabled,markdownDescription:ot(0,"Controls whether you can paste content in different ways.")},"editor.pasteAs.showPasteSelector":{type:"string",markdownDescription:ot(0,"Controls if a widget is shown when pasting content in to the editor. This widget lets you control how the file is pasted."),enum:["afterPaste","never"],enumDescriptions:[ot(0,"Show the paste selector widget after content is pasted into the editor."),ot(0,"Never show the paste selector widget. Instead the default pasting behavior is always used.")],default:"afterPaste"}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{enabled:oi(i.enabled,this.defaultValue.enabled),showPasteSelector:di(i.showPasteSelector,this.defaultValue.showPasteSelector,["afterPaste","never"])}}}),parameterHints:Ii(new class extends ti{constructor(){const t={enabled:!0,cycle:!0};super(85,"parameterHints",t,{"editor.parameterHints.enabled":{type:"boolean",default:t.enabled,description:ot(0,"Enables a pop-up that shows parameter documentation and type information as you type.")},"editor.parameterHints.cycle":{type:"boolean",default:t.cycle,description:ot(0,"Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{enabled:oi(i.enabled,this.defaultValue.enabled),cycle:oi(i.cycle,this.defaultValue.cycle)}}}),peekWidgetDefaultFocus:Ii(new fi(86,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[ot(0,"Focus the tree when opening peek"),ot(0,"Focus the editor when opening peek")],description:ot(0,"Controls whether to focus the inline editor or the tree in the peek widget.")})),definitionLinkOpensInPeek:Ii(new ri(87,"definitionLinkOpensInPeek",!1,{description:ot(0,"Controls whether the Go to Definition mouse gesture always opens the peek widget.")})),quickSuggestions:Ii(new class extends ti{constructor(){const t={other:"on",comments:"off",strings:"off"},i=[{type:"boolean"},{type:"string",enum:["on","inline","off"],enumDescriptions:[ot(0,"Quick suggestions show inside the suggest widget"),ot(0,"Quick suggestions show as ghost text"),ot(0,"Quick suggestions are disabled")]}];super(88,"quickSuggestions",t,{type:"object",additionalProperties:!1,properties:{strings:{anyOf:i,default:t.strings,description:ot(0,"Enable quick suggestions inside strings.")},comments:{anyOf:i,default:t.comments,description:ot(0,"Enable quick suggestions inside comments.")},other:{anyOf:i,default:t.other,description:ot(0,"Enable quick suggestions outside of strings and comments.")}},default:t,markdownDescription:ot(0,"Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the '{0}'-setting which controls if suggestions are triggered by special characters.","#editor.suggestOnTriggerCharacters#")}),this.defaultValue=t}validate(t){if("boolean"==typeof t){const i=t?"on":"off";return{comments:i,strings:i,other:i}}if(!t||"object"!=typeof t)return this.defaultValue;const{other:i,comments:e,strings:s}=t,n=["on","inline","off"];let o,r,h;return o="boolean"==typeof i?i?"on":"off":di(i,this.defaultValue.other,n),r="boolean"==typeof e?e?"on":"off":di(e,this.defaultValue.comments,n),h="boolean"==typeof s?s?"on":"off":di(s,this.defaultValue.strings,n),{other:o,comments:r,strings:h}}}),quickSuggestionsDelay:Ii(new ci(89,"quickSuggestionsDelay",10,0,1073741824,{description:ot(0,"Controls the delay in milliseconds after which quick suggestions will show up.")})),readOnly:Ii(new ri(90,"readOnly",!1)),readOnlyMessage:Ii(new class extends ti{constructor(){super(91,"readOnlyMessage",void 0)}validate(t){return t&&"object"==typeof t?t:this.defaultValue}}),renameOnType:Ii(new ri(92,"renameOnType",!1,{description:ot(0,"Controls whether the editor auto renames on type."),markdownDeprecationMessage:ot(0,"Deprecated, use `editor.linkedEditing` instead.")})),renderControlCharacters:Ii(new ri(93,"renderControlCharacters",!0,{description:ot(0,"Controls whether the editor should render control characters."),restricted:!0})),renderFinalNewline:Ii(new fi(94,"renderFinalNewline",St?"dimmed":"on",["off","on","dimmed"],{description:ot(0,"Render last line number when the file ends with a newline.")})),renderLineHighlight:Ii(new fi(95,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",ot(0,"Highlights both the gutter and the current line.")],description:ot(0,"Controls how the editor should render the current line highlight.")})),renderLineHighlightOnlyWhenFocus:Ii(new ri(96,"renderLineHighlightOnlyWhenFocus",!1,{description:ot(0,"Controls if the editor should render the current line highlight only when the editor is focused.")})),renderValidationDecorations:Ii(new fi(97,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:Ii(new fi(98,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",ot(0,"Render whitespace characters except for single spaces between words."),ot(0,"Render whitespace characters only on selected text."),ot(0,"Render only trailing whitespace characters."),""],description:ot(0,"Controls how the editor should render whitespace characters.")})),revealHorizontalRightPadding:Ii(new ci(99,"revealHorizontalRightPadding",15,0,1e3)),roundedSelection:Ii(new ri(100,"roundedSelection",!0,{description:ot(0,"Controls whether selections should have rounded corners.")})),rulers:Ii(new class extends ti{constructor(){const t=[],i={type:"number",description:ot(0,"Number of monospace characters at which this editor ruler will render.")};super(101,"rulers",t,{type:"array",items:{anyOf:[i,{type:["object"],properties:{column:i,color:{type:"string",description:ot(0,"Color of this editor ruler."),format:"color-hex"}}}]},default:t,description:ot(0,"Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.")})}validate(t){if(Array.isArray(t)){const i=[];for(const e of t)if("number"==typeof e)i.push({column:ci.clampedInt(e,0,0,1e4),color:null});else if(e&&"object"==typeof e){const t=e;i.push({column:ci.clampedInt(t.column,0,0,1e4),color:t.color})}return i.sort(((t,i)=>t.column-i.column)),i}return this.defaultValue}}),scrollbar:Ii(new class extends ti{constructor(){const t={vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0,scrollByPage:!1,ignoreHorizontalScrollbarInContentHeight:!1};super(102,"scrollbar",t,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[ot(0,"The vertical scrollbar will be visible only when necessary."),ot(0,"The vertical scrollbar will always be visible."),ot(0,"The vertical scrollbar will always be hidden.")],default:"auto",description:ot(0,"Controls the visibility of the vertical scrollbar.")},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[ot(0,"The horizontal scrollbar will be visible only when necessary."),ot(0,"The horizontal scrollbar will always be visible."),ot(0,"The horizontal scrollbar will always be hidden.")],default:"auto",description:ot(0,"Controls the visibility of the horizontal scrollbar.")},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:t.verticalScrollbarSize,description:ot(0,"The width of the vertical scrollbar.")},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:t.horizontalScrollbarSize,description:ot(0,"The height of the horizontal scrollbar.")},"editor.scrollbar.scrollByPage":{type:"boolean",default:t.scrollByPage,description:ot(0,"Controls whether clicks scroll by page or jump to click position.")},"editor.scrollbar.ignoreHorizontalScrollbarInContentHeight":{type:"boolean",default:t.ignoreHorizontalScrollbarInContentHeight,description:ot(0,"When set, the horizontal scrollbar will not increase the size of the editor's content.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t,e=ci.clampedInt(i.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),s=ci.clampedInt(i.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:ci.clampedInt(i.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:xi(i.vertical,this.defaultValue.vertical),horizontal:xi(i.horizontal,this.defaultValue.horizontal),useShadows:oi(i.useShadows,this.defaultValue.useShadows),verticalHasArrows:oi(i.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:oi(i.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:oi(i.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:oi(i.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:e,horizontalSliderSize:ci.clampedInt(i.horizontalSliderSize,e,0,1e3),verticalScrollbarSize:s,verticalSliderSize:ci.clampedInt(i.verticalSliderSize,s,0,1e3),scrollByPage:oi(i.scrollByPage,this.defaultValue.scrollByPage),ignoreHorizontalScrollbarInContentHeight:oi(i.ignoreHorizontalScrollbarInContentHeight,this.defaultValue.ignoreHorizontalScrollbarInContentHeight)}}}),scrollBeyondLastColumn:Ii(new ci(103,"scrollBeyondLastColumn",4,0,1073741824,{description:ot(0,"Controls the number of extra characters beyond which the editor will scroll horizontally.")})),scrollBeyondLastLine:Ii(new ri(104,"scrollBeyondLastLine",!0,{description:ot(0,"Controls whether the editor will scroll beyond the last line.")})),scrollPredominantAxis:Ii(new ri(105,"scrollPredominantAxis",!0,{description:ot(0,"Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.")})),selectionClipboard:Ii(new ri(106,"selectionClipboard",!0,{description:ot(0,"Controls whether the Linux primary clipboard should be supported."),included:St})),selectionHighlight:Ii(new ri(107,"selectionHighlight",!0,{description:ot(0,"Controls whether the editor should highlight matches similar to the selection.")})),selectOnLineNumbers:Ii(new ri(108,"selectOnLineNumbers",!0)),showFoldingControls:Ii(new fi(109,"showFoldingControls","mouseover",["always","never","mouseover"],{enumDescriptions:[ot(0,"Always show the folding controls."),ot(0,"Never show the folding controls and reduce the gutter size."),ot(0,"Only show the folding controls when the mouse is over the gutter.")],description:ot(0,"Controls when the folding controls on the gutter are shown.")})),showUnused:Ii(new ri(110,"showUnused",!0,{description:ot(0,"Controls fading out of unused code.")})),showDeprecated:Ii(new ri(138,"showDeprecated",!0,{description:ot(0,"Controls strikethrough deprecated variables.")})),inlayHints:Ii(new class extends ti{constructor(){const t={enabled:"on",fontSize:0,fontFamily:"",padding:!1};super(139,"inlayHints",t,{"editor.inlayHints.enabled":{type:"string",default:t.enabled,description:ot(0,"Enables the inlay hints in the editor."),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[ot(0,"Inlay hints are enabled"),ot(0,"Inlay hints are showing by default and hide when holding {0}",Ct?"Ctrl+Option":"Ctrl+Alt"),ot(0,"Inlay hints are hidden by default and show when holding {0}",Ct?"Ctrl+Option":"Ctrl+Alt"),ot(0,"Inlay hints are disabled")]},"editor.inlayHints.fontSize":{type:"number",default:t.fontSize,markdownDescription:ot(0,"Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.","`#editor.fontSize#`","`5`")},"editor.inlayHints.fontFamily":{type:"string",default:t.fontFamily,markdownDescription:ot(0,"Controls font family of inlay hints in the editor. When set to empty, the {0} is used.","`#editor.fontFamily#`")},"editor.inlayHints.padding":{type:"boolean",default:t.padding,description:ot(0,"Enables the padding around the inlay hints in the editor.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return"boolean"==typeof i.enabled&&(i.enabled=i.enabled?"on":"off"),{enabled:di(i.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:ci.clampedInt(i.fontSize,this.defaultValue.fontSize,0,100),fontFamily:ui.string(i.fontFamily,this.defaultValue.fontFamily),padding:oi(i.padding,this.defaultValue.padding)}}}),snippetSuggestions:Ii(new fi(111,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[ot(0,"Show snippet suggestions on top of other suggestions."),ot(0,"Show snippet suggestions below other suggestions."),ot(0,"Show snippets suggestions with other suggestions."),ot(0,"Do not show snippet suggestions.")],description:ot(0,"Controls whether snippets are shown with other suggestions and how they are sorted.")})),smartSelect:Ii(new class extends ti{constructor(){super(112,"smartSelect",{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:ot(0,"Whether leading and trailing whitespace should always be selected."),default:!0,type:"boolean"},"editor.smartSelect.selectSubwords":{description:ot(0,"Whether subwords (like 'foo' in 'fooBar' or 'foo_bar') should be selected."),default:!0,type:"boolean"}})}validate(t){return t&&"object"==typeof t?{selectLeadingAndTrailingWhitespace:oi(t.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace),selectSubwords:oi(t.selectSubwords,this.defaultValue.selectSubwords)}:this.defaultValue}}),smoothScrolling:Ii(new ri(113,"smoothScrolling",!1,{description:ot(0,"Controls whether the editor will scroll using an animation.")})),stopRenderingLineAfter:Ii(new ci(116,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:Ii(new class extends ti{constructor(){const t={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!1,localityBonus:!1,shareSuggestSelections:!1,selectionMode:"always",showIcons:!0,showStatusBar:!1,preview:!1,previewMode:"subwordSmart",showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showDeprecated:!0,matchOnWordStartOnly:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0};super(117,"suggest",t,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[ot(0,"Insert suggestion without overwriting text right of the cursor."),ot(0,"Insert suggestion and overwrite text right of the cursor.")],default:t.insertMode,description:ot(0,"Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.")},"editor.suggest.filterGraceful":{type:"boolean",default:t.filterGraceful,description:ot(0,"Controls whether filtering and sorting suggestions accounts for small typos.")},"editor.suggest.localityBonus":{type:"boolean",default:t.localityBonus,description:ot(0,"Controls whether sorting favors words that appear close to the cursor.")},"editor.suggest.shareSuggestSelections":{type:"boolean",default:t.shareSuggestSelections,markdownDescription:ot(0,"Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).")},"editor.suggest.selectionMode":{type:"string",enum:["always","never","whenTriggerCharacter","whenQuickSuggestion"],enumDescriptions:[ot(0,"Always select a suggestion when automatically triggering IntelliSense."),ot(0,"Never select a suggestion when automatically triggering IntelliSense."),ot(0,"Select a suggestion only when triggering IntelliSense from a trigger character."),ot(0,"Select a suggestion only when triggering IntelliSense as you type.")],default:t.selectionMode,markdownDescription:ot(0,"Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions (`#editor.quickSuggestions#` and `#editor.suggestOnTriggerCharacters#`) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:t.snippetsPreventQuickSuggestions,description:ot(0,"Controls whether an active snippet prevents quick suggestions.")},"editor.suggest.showIcons":{type:"boolean",default:t.showIcons,description:ot(0,"Controls whether to show or hide icons in suggestions.")},"editor.suggest.showStatusBar":{type:"boolean",default:t.showStatusBar,description:ot(0,"Controls the visibility of the status bar at the bottom of the suggest widget.")},"editor.suggest.preview":{type:"boolean",default:t.preview,description:ot(0,"Controls whether to preview the suggestion outcome in the editor.")},"editor.suggest.showInlineDetails":{type:"boolean",default:t.showInlineDetails,description:ot(0,"Controls whether suggest details show inline with the label or only in the details widget.")},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:ot(0,"This setting is deprecated. The suggest widget can now be resized.")},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:ot(0,"This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.")},"editor.suggest.showMethods":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `method`-suggestions.")},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `function`-suggestions.")},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `constructor`-suggestions.")},"editor.suggest.showDeprecated":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `deprecated`-suggestions.")},"editor.suggest.matchOnWordStartOnly":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense filtering requires that the first character matches on a word start. For example, `c` on `Console` or `WebContext` but _not_ on `description`. When disabled IntelliSense will show more results but still sorts them by match quality.")},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `field`-suggestions.")},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `variable`-suggestions.")},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `class`-suggestions.")},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `struct`-suggestions.")},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `interface`-suggestions.")},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `module`-suggestions.")},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `property`-suggestions.")},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `event`-suggestions.")},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `operator`-suggestions.")},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `unit`-suggestions.")},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `value`-suggestions.")},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `constant`-suggestions.")},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `enum`-suggestions.")},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `enumMember`-suggestions.")},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `keyword`-suggestions.")},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `text`-suggestions.")},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `color`-suggestions.")},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `file`-suggestions.")},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `reference`-suggestions.")},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `customcolor`-suggestions.")},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `folder`-suggestions.")},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `typeParameter`-suggestions.")},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `snippet`-suggestions.")},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `user`-suggestions.")},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `issues`-suggestions.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{insertMode:di(i.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:oi(i.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:oi(i.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:oi(i.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:oi(i.shareSuggestSelections,this.defaultValue.shareSuggestSelections),selectionMode:di(i.selectionMode,this.defaultValue.selectionMode,["always","never","whenQuickSuggestion","whenTriggerCharacter"]),showIcons:oi(i.showIcons,this.defaultValue.showIcons),showStatusBar:oi(i.showStatusBar,this.defaultValue.showStatusBar),preview:oi(i.preview,this.defaultValue.preview),previewMode:di(i.previewMode,this.defaultValue.previewMode,["prefix","subword","subwordSmart"]),showInlineDetails:oi(i.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:oi(i.showMethods,this.defaultValue.showMethods),showFunctions:oi(i.showFunctions,this.defaultValue.showFunctions),showConstructors:oi(i.showConstructors,this.defaultValue.showConstructors),showDeprecated:oi(i.showDeprecated,this.defaultValue.showDeprecated),matchOnWordStartOnly:oi(i.matchOnWordStartOnly,this.defaultValue.matchOnWordStartOnly),showFields:oi(i.showFields,this.defaultValue.showFields),showVariables:oi(i.showVariables,this.defaultValue.showVariables),showClasses:oi(i.showClasses,this.defaultValue.showClasses),showStructs:oi(i.showStructs,this.defaultValue.showStructs),showInterfaces:oi(i.showInterfaces,this.defaultValue.showInterfaces),showModules:oi(i.showModules,this.defaultValue.showModules),showProperties:oi(i.showProperties,this.defaultValue.showProperties),showEvents:oi(i.showEvents,this.defaultValue.showEvents),showOperators:oi(i.showOperators,this.defaultValue.showOperators),showUnits:oi(i.showUnits,this.defaultValue.showUnits),showValues:oi(i.showValues,this.defaultValue.showValues),showConstants:oi(i.showConstants,this.defaultValue.showConstants),showEnums:oi(i.showEnums,this.defaultValue.showEnums),showEnumMembers:oi(i.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:oi(i.showKeywords,this.defaultValue.showKeywords),showWords:oi(i.showWords,this.defaultValue.showWords),showColors:oi(i.showColors,this.defaultValue.showColors),showFiles:oi(i.showFiles,this.defaultValue.showFiles),showReferences:oi(i.showReferences,this.defaultValue.showReferences),showFolders:oi(i.showFolders,this.defaultValue.showFolders),showTypeParameters:oi(i.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:oi(i.showSnippets,this.defaultValue.showSnippets),showUsers:oi(i.showUsers,this.defaultValue.showUsers),showIssues:oi(i.showIssues,this.defaultValue.showIssues)}}}),inlineSuggest:Ii(new class extends ti{constructor(){const t={enabled:!0,mode:"subwordSmart",showToolbar:"onHover",suppressSuggestions:!1,keepOnBlur:!1};super(62,"inlineSuggest",t,{"editor.inlineSuggest.enabled":{type:"boolean",default:t.enabled,description:ot(0,"Controls whether to automatically show inline suggestions in the editor.")},"editor.inlineSuggest.showToolbar":{type:"string",default:t.showToolbar,enum:["always","onHover","never"],enumDescriptions:[ot(0,"Show the inline suggestion toolbar whenever an inline suggestion is shown."),ot(0,"Show the inline suggestion toolbar when hovering over an inline suggestion."),ot(0,"Never show the inline suggestion toolbar.")],description:ot(0,"Controls when to show the inline suggestion toolbar.")},"editor.inlineSuggest.suppressSuggestions":{type:"boolean",default:t.suppressSuggestions,description:ot(0,"Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{enabled:oi(i.enabled,this.defaultValue.enabled),mode:di(i.mode,this.defaultValue.mode,["prefix","subword","subwordSmart"]),showToolbar:di(i.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),suppressSuggestions:oi(i.suppressSuggestions,this.defaultValue.suppressSuggestions),keepOnBlur:oi(i.keepOnBlur,this.defaultValue.keepOnBlur)}}}),inlineCompletionsAccessibilityVerbose:Ii(new ri(147,"inlineCompletionsAccessibilityVerbose",!1,{description:ot(0,"Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.")})),suggestFontSize:Ii(new ci(118,"suggestFontSize",0,0,1e3,{markdownDescription:ot(0,"Font size for the suggest widget. When set to {0}, the value of {1} is used.","`0`","`#editor.fontSize#`")})),suggestLineHeight:Ii(new ci(119,"suggestLineHeight",0,0,1e3,{markdownDescription:ot(0,"Line height for the suggest widget. When set to {0}, the value of {1} is used. The minimum value is 8.","`0`","`#editor.lineHeight#`")})),suggestOnTriggerCharacters:Ii(new ri(120,"suggestOnTriggerCharacters",!0,{description:ot(0,"Controls whether suggestions should automatically show up when typing trigger characters.")})),suggestSelection:Ii(new fi(121,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[ot(0,"Always select the first suggestion."),ot(0,"Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."),ot(0,"Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")],description:ot(0,"Controls how suggestions are pre-selected when showing the suggest list.")})),tabCompletion:Ii(new fi(122,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[ot(0,"Tab complete will insert the best matching suggestion when pressing tab."),ot(0,"Disable tab completions."),ot(0,"Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.")],description:ot(0,"Enables tab completions.")})),tabIndex:Ii(new ci(123,"tabIndex",0,-1,1073741824)),unicodeHighlight:Ii(new class extends ti{constructor(){const t={nonBasicASCII:Ci,invisibleCharacters:!0,ambiguousCharacters:!0,includeComments:Ci,includeStrings:!0,allowedCharacters:{},allowedLocales:{_os:!0,_vscode:!0}};super(124,"unicodeHighlight",t,{[Ei]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Ci],default:t.nonBasicASCII,description:ot(0,"Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.")},[Di]:{restricted:!0,type:"boolean",default:t.invisibleCharacters,description:ot(0,"Controls whether characters that just reserve space or have no width at all are highlighted.")},[Ai]:{restricted:!0,type:"boolean",default:t.ambiguousCharacters,description:ot(0,"Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.")},[Mi]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Ci],default:t.includeComments,description:ot(0,"Controls whether characters in comments should also be subject to Unicode highlighting.")},[Li]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Ci],default:t.includeStrings,description:ot(0,"Controls whether characters in strings should also be subject to Unicode highlighting.")},[Si]:{restricted:!0,type:"object",default:t.allowedCharacters,description:ot(0,"Defines allowed characters that are not being highlighted."),additionalProperties:{type:"boolean"}},[Fi]:{restricted:!0,type:"object",additionalProperties:{type:"boolean"},default:t.allowedLocales,description:ot(0,"Unicode characters that are common in allowed locales are not being highlighted.")}})}applyUpdate(t,i){let e=!1;i.allowedCharacters&&t&&(it(t.allowedCharacters,i.allowedCharacters)||(t={...t,allowedCharacters:i.allowedCharacters},e=!0)),i.allowedLocales&&t&&(it(t.allowedLocales,i.allowedLocales)||(t={...t,allowedLocales:i.allowedLocales},e=!0));const s=super.applyUpdate(t,i);return e?new ii(s.newValue,!0):s}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{nonBasicASCII:Ti(i.nonBasicASCII,Ci,[!0,!1,Ci]),invisibleCharacters:oi(i.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:oi(i.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:Ti(i.includeComments,Ci,[!0,!1,Ci]),includeStrings:Ti(i.includeStrings,Ci,[!0,!1,Ci]),allowedCharacters:this.validateBooleanMap(t.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(t.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(t,i){if("object"!=typeof t||!t)return i;const e={};for(const[i,s]of Object.entries(t))!0===s&&(e[i]=!0);return e}}),unusualLineTerminators:Ii(new fi(125,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[ot(0,"Unusual line terminators are automatically removed."),ot(0,"Unusual line terminators are ignored."),ot(0,"Unusual line terminators prompt to be removed.")],description:ot(0,"Remove unusual line terminators that might cause problems.")})),useShadowDOM:Ii(new ri(126,"useShadowDOM",!0)),useTabStops:Ii(new ri(127,"useTabStops",!0,{description:ot(0,"Inserting and deleting whitespace follows tab stops.")})),wordBreak:Ii(new fi(128,"wordBreak","normal",["normal","keepAll"],{markdownEnumDescriptions:[ot(0,"Use the default line break rule."),ot(0,"Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.")],description:ot(0,"Controls the word break rules used for Chinese/Japanese/Korean (CJK) text.")})),wordSeparators:Ii(new ui(129,"wordSeparators",qt,{description:ot(0,"Characters that will be used as word separators when doing word related navigations or operations.")})),wordWrap:Ii(new fi(130,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[ot(0,"Lines will never wrap."),ot(0,"Lines will wrap at the viewport width."),ot(0,"Lines will wrap at `#editor.wordWrapColumn#`."),ot(0,"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.")],description:ot(0,"Controls how lines should wrap.")})),wordWrapBreakAfterCharacters:Ii(new ui(131,"wordWrapBreakAfterCharacters"," \t})]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」")),wordWrapBreakBeforeCharacters:Ii(new ui(132,"wordWrapBreakBeforeCharacters","([{‘“〈《「『【〔([{「£¥$£¥++")),wordWrapColumn:Ii(new ci(133,"wordWrapColumn",80,1,1073741824,{markdownDescription:ot(0,"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.")})),wordWrapOverride1:Ii(new fi(134,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:Ii(new fi(135,"wordWrapOverride2","inherit",["off","on","inherit"])),editorClassName:Ii(new class extends si{constructor(){super(140)}compute(t,i,e){const s=["monaco-editor"];return i.get(39)&&s.push(i.get(39)),t.extraEditorClassName&&s.push(t.extraEditorClassName),"default"===i.get(73)?s.push("mouse-default"):"copy"===i.get(73)&&s.push("mouse-copy"),i.get(110)&&s.push("showUnused"),i.get(138)&&s.push("showDeprecated"),s.join(" ")}}),defaultColorDecorators:Ii(new ri(145,"defaultColorDecorators",!1,{markdownDescription:ot(0,"Controls whether inline color decorations should be shown using the default document color provider")})),pixelRatio:Ii(new class extends si{constructor(){super(141)}compute(t,i,e){return t.pixelRatio}}),tabFocusMode:Ii(new ri(142,"tabFocusMode",!1,{markdownDescription:ot(0,"Controls whether the editor receives tabs or defers them to the workbench for navigation.")})),layoutInfo:Ii(new yi),wrappingInfo:Ii(new class extends si{constructor(){super(144)}compute(t,i,e){const s=i.get(143);return{isDominatedByLongLines:t.isDominatedByLongLines,isWordWrapMinified:s.isWordWrapMinified,isViewportWrapping:s.isViewportWrapping,wrappingColumn:s.wrappingColumn}}}),wrappingIndent:Ii(new class extends ti{constructor(){super(136,"wrappingIndent",1,{"editor.wrappingIndent":{type:"string",enum:["none","same","indent","deepIndent"],enumDescriptions:[ot(0,"No indentation. Wrapped lines begin at column 1."),ot(0,"Wrapped lines get the same indentation as the parent."),ot(0,"Wrapped lines get +1 indentation toward the parent."),ot(0,"Wrapped lines get +2 indentation toward the parent.")],description:ot(0,"Controls the indentation of wrapped lines."),default:"same"}})}validate(t){switch(t){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}return 1}compute(t,i,e){return 2===i.get(2)?0:e}}),wrappingStrategy:Ii(new class extends ti{constructor(){super(137,"wrappingStrategy","simple",{"editor.wrappingStrategy":{enumDescriptions:[ot(0,"Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width."),ot(0,"Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.")],type:"string",enum:["simple","advanced"],default:"simple",description:ot(0,"Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.")}})}validate(t){return di(t,"simple",["simple","advanced"])}compute(t,i,e){return 2===i.get(2)?"advanced":e}})},Ni=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(t){setTimeout((()=>{if(t.stack){if(qi.isErrorNoTelemetry(t))throw new qi(t.message+"\n\n"+t.stack);throw new Error(t.message+"\n\n"+t.stack)}throw t}),0)}}emit(t){this.listeners.forEach((i=>{i(t)}))}onUnexpectedError(t){this.unexpectedErrorHandler(t),this.emit(t)}onUnexpectedExternalError(t){this.unexpectedErrorHandler(t)}};function Bi(t){ji(t)||Ni.onUnexpectedError(t)}function Pi(t){ji(t)||Ni.onUnexpectedExternalError(t)}function $i(t){if(t instanceof Error){const{name:i,message:e}=t;return{$isError:!0,name:i,message:e,stack:t.stacktrace||t.stack,noTelemetry:qi.isErrorNoTelemetry(t)}}return t}const Wi="Canceled";function ji(t){return t instanceof zi||t instanceof Error&&t.name===Wi&&t.message===Wi}class zi extends Error{constructor(){super(Wi),this.name=this.message}}function Hi(t){return t?new Error(`Illegal argument: ${t}`):new Error("Illegal argument")}function Vi(t){return t?new Error(`Illegal state: ${t}`):new Error("Illegal state")}class Ui extends Error{constructor(t){super("NotSupported"),t&&(this.message=t)}}class qi extends Error{constructor(t){super(t),this.name="CodeExpectedError"}static fromError(t){if(t instanceof qi)return t;const i=new qi;return i.message=t.message,i.stack=t.stack,i}static isErrorNoTelemetry(t){return"CodeExpectedError"===t.name}}class Ki extends Error{constructor(t){super(t||"An unexpected bug occurred."),Object.setPrototypeOf(this,Ki.prototype)}}function Gi(t,i){const e=this;let s,n=!1;return function(){if(n)return s;if(n=!0,i)try{s=t.apply(e,arguments)}finally{i()}else s=t.apply(e,arguments);return s}}function Zi(t){return"function"==typeof t.dispose&&0===t.dispose.length}function Qi(t){if(Ht.is(t)){const i=[];for(const e of t)if(e)try{e.dispose()}catch(t){i.push(t)}if(1===i.length)throw i[0];if(i.length>1)throw new AggregateError(i,"Encountered errors while disposing of store");return Array.isArray(t)?[]:t}if(t)return t.dispose(),t}function Ji(...t){return Yi((()=>Qi(t)))}function Yi(t){return{dispose:Gi((()=>{t()}))}}class Xi{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(0!==this._toDispose.size)try{Qi(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?Xi.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(t),t}deleteAndLeak(t){t&&this._toDispose.has(t)&&this._toDispose.delete(t)}}Xi.DISABLE_DISPOSED_WARNING=!1;class te{constructor(){this._store=new Xi}dispose(){this._store.dispose()}_register(t){if(t===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(t)}}te.None=Object.freeze({dispose(){}});class ie{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(t){var i;this._isDisposed||t===this._value||(null===(i=this._value)||void 0===i||i.dispose(),this._value=t)}clear(){this.value=void 0}dispose(){var t;this._isDisposed=!0,null===(t=this._value)||void 0===t||t.dispose(),this._value=void 0}}class ee{constructor(t){this._disposable=t,this._counter=1}acquire(){return this._counter++,this}release(){return 0==--this._counter&&this._disposable.dispose(),this}}class se{constructor(t){this.object=t}dispose(){}}class ne{constructor(){this._store=new Map,this._isDisposed=!1}dispose(){this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{Qi(this._store.values())}finally{this._store.clear()}}get(t){return this._store.get(t)}set(t,i,e=!1){var s;this._isDisposed&&console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),e||null===(s=this._store.get(t))||void 0===s||s.dispose(),this._store.set(t,i)}deleteAndDispose(t){var i;null===(i=this._store.get(t))||void 0===i||i.dispose(),this._store.delete(t)}[Symbol.iterator](){return this._store[Symbol.iterator]()}}const oe=globalThis.performance&&"function"==typeof globalThis.performance.now;class re{static create(t){return new re(t)}constructor(t){this._now=oe&&!1===t?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}elapsed(){return-1!==this._stopTime?this._stopTime-this._startTime:this._now()-this._startTime}}var he;!function(t){function i(t){return(i,e=null,s)=>{let n,o=!1;return n=t((t=>{if(!o)return n?n.dispose():o=!0,i.call(e,t)}),null,s),o&&n.dispose(),n}}function e(t,i,e){return n(((e,s=null,n)=>t((t=>e.call(s,i(t))),null,n)),e)}function s(t,i,e){return n(((e,s=null,n)=>t((t=>i(t)&&e.call(s,t)),null,n)),e)}function n(t,i){let e;const s=new de({onWillAddFirstListener(){e=t(s.fire,s)},onDidRemoveLastListener(){null==e||e.dispose()}});return null==i||i.add(s),s.event}function o(t,i,e=100,s=!1,n=!1,o,r){let h,c,a,l,u=0;const d=new de({leakWarningThreshold:o,onWillAddFirstListener(){h=t((t=>{u++,c=i(c,t),s&&!a&&(d.fire(c),c=void 0),l=()=>{const t=c;c=void 0,a=void 0,(!s||u>1)&&d.fire(t),u=0},"number"==typeof e?(clearTimeout(a),a=setTimeout(l,e)):void 0===a&&(a=0,queueMicrotask(l))}))},onWillRemoveListener(){n&&u>0&&(null==l||l())},onDidRemoveLastListener(){l=void 0,h.dispose()}});return null==r||r.add(d),d.event}t.None=()=>te.None,t.defer=function(t,i){return o(t,(()=>{}),0,void 0,!0,void 0,i)},t.once=i,t.map=e,t.forEach=function(t,i,e){return n(((e,s=null,n)=>t((t=>{i(t),e.call(s,t)}),null,n)),e)},t.filter=s,t.signal=function(t){return t},t.any=function(...t){return(i,e=null,s)=>{return n=Ji(...t.map((t=>t((t=>i.call(e,t)))))),(o=s)instanceof Array?o.push(n):o&&o.add(n),n;var n,o}},t.reduce=function(t,i,s,n){let o=s;return e(t,(t=>(o=i(o,t),o)),n)},t.debounce=o,t.accumulate=function(i,e=0,s){return t.debounce(i,((t,i)=>t?(t.push(i),t):[i]),e,void 0,!0,void 0,s)},t.latch=function(t,i=((t,i)=>t===i),e){let n,o=!0;return s(t,(t=>{const e=o||!i(t,n);return o=!1,n=t,e}),e)},t.split=function(i,e,s){return[t.filter(i,e,s),t.filter(i,(t=>!e(t)),s)]},t.buffer=function(t,i=!1,e=[],s){let n=e.slice(),o=t((t=>{n?n.push(t):h.fire(t)}));s&&s.add(o);const r=()=>{null==n||n.forEach((t=>h.fire(t))),n=null},h=new de({onWillAddFirstListener(){o||(o=t((t=>h.fire(t))),s&&s.add(o))},onDidAddFirstListener(){n&&(i?setTimeout(r):r())},onDidRemoveLastListener(){o&&o.dispose(),o=null}});return s&&s.add(h),h.event},t.chain=function(t,i){return(e,s,n)=>{const o=i(new h);return t((function(t){const i=o.evaluate(t);i!==r&&e.call(s,i)}),void 0,n)}};const r=Symbol("HaltChainable");class h{constructor(){this.steps=[]}map(t){return this.steps.push(t),this}forEach(t){return this.steps.push((i=>(t(i),i))),this}filter(t){return this.steps.push((i=>t(i)?i:r)),this}reduce(t,i){let e=i;return this.steps.push((i=>(e=t(e,i),e))),this}latch(t=((t,i)=>t===i)){let i,e=!0;return this.steps.push((s=>{const n=e||!t(s,i);return e=!1,i=s,n?s:r})),this}evaluate(t){for(const i of this.steps)if((t=i(t))===r)break;return t}}t.fromNodeEventEmitter=function(t,i,e=(t=>t)){const s=(...t)=>n.fire(e(...t)),n=new de({onWillAddFirstListener:()=>t.on(i,s),onDidRemoveLastListener:()=>t.removeListener(i,s)});return n.event},t.fromDOMEventEmitter=function(t,i,e=(t=>t)){const s=(...t)=>n.fire(e(...t)),n=new de({onWillAddFirstListener:()=>t.addEventListener(i,s),onDidRemoveLastListener:()=>t.removeEventListener(i,s)});return n.event},t.toPromise=function(t){return new Promise((e=>i(t)(e)))},t.fromPromise=function(t){const i=new de;return t.then((t=>{i.fire(t)}),(()=>{i.fire(void 0)})).finally((()=>{i.dispose()})),i.event},t.runAndSubscribe=function(t,i,e){return i(e),t((t=>i(t)))},t.runAndSubscribeWithStore=function(t,i){let e=null;function s(t){null==e||e.dispose(),e=new Xi,i(t,e)}s(void 0);const n=t((t=>s(t)));return Yi((()=>{n.dispose(),null==e||e.dispose()}))};class c{constructor(t,i){this._observable=t,this._counter=0,this._hasChanged=!1,this.emitter=new de({onWillAddFirstListener:()=>{t.addObserver(this)},onDidRemoveLastListener:()=>{t.removeObserver(this)}}),i&&i.add(this.emitter)}beginUpdate(t){this._counter++}handlePossibleChange(t){}handleChange(t,i){this._hasChanged=!0}endUpdate(t){this._counter--,0===this._counter&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}t.fromObservable=function(t,i){return new c(t,i).emitter.event},t.fromObservableLight=function(t){return(i,e,s)=>{let n=0,o=!1;const r={beginUpdate(){n++},endUpdate(){n--,0===n&&(t.reportChanges(),o&&(o=!1,i.call(e)))},handlePossibleChange(){},handleChange(){o=!0}};t.addObserver(r),t.reportChanges();const h={dispose(){t.removeObserver(r)}};return s instanceof Xi?s.add(h):Array.isArray(s)&&s.push(h),h}}}(he||(he={}));class ce{constructor(t){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${t}_${ce._idPool++}`,ce.all.add(this)}start(t){this._stopWatch=new re,this.listenerCount=t}stop(){if(this._stopWatch){const t=this._stopWatch.elapsed();this.durations.push(t),this.elapsedOverall+=t,this.invocationCount+=1,this._stopWatch=void 0}}}ce.all=new Set,ce._idPool=0;class ae{constructor(t,i=Math.random().toString(18).slice(2,5)){this.threshold=t,this.name=i,this._warnCountdown=0}dispose(){var t;null===(t=this._stacks)||void 0===t||t.clear()}check(t,i){const e=this.threshold;if(e<=0||i{const i=this._stacks.get(t.value)||0;this._stacks.set(t.value,i-1)}}}class le{static create(){var t;return new le(null!==(t=(new Error).stack)&&void 0!==t?t:"")}constructor(t){this.value=t}print(){console.warn(this.value.split("\n").slice(2).join("\n"))}}class ue{constructor(t){this.value=t}}class de{constructor(t){var i,e,s,n,o;this._size=0,this._options=t,this._leakageMon=(null===(i=this._options)||void 0===i?void 0:i.leakWarningThreshold)?new ae(null!==(s=null===(e=this._options)||void 0===e?void 0:e.leakWarningThreshold)&&void 0!==s?s:-1):void 0,this._perfMon=(null===(n=this._options)||void 0===n?void 0:n._profName)?new ce(this._options._profName):void 0,this._deliveryQueue=null===(o=this._options)||void 0===o?void 0:o.deliveryQueue}dispose(){var t,i,e,s;this._disposed||(this._disposed=!0,(null===(t=this._deliveryQueue)||void 0===t?void 0:t.current)===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),null===(e=null===(i=this._options)||void 0===i?void 0:i.onDidRemoveLastListener)||void 0===e||e.call(i),null===(s=this._leakageMon)||void 0===s||s.dispose())}get event(){var t;return null!==(t=this._event)&&void 0!==t||(this._event=(t,i,e)=>{var s,n,o,r,h;if(this._leakageMon&&this._size>3*this._leakageMon.threshold)return console.warn(`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far`),te.None;if(this._disposed)return te.None;i&&(t=t.bind(i));const c=new ue(t);let a;this._leakageMon&&this._size>=Math.ceil(.2*this._leakageMon.threshold)&&(c.stack=le.create(),a=this._leakageMon.check(c.stack,this._size+1)),this._listeners?this._listeners instanceof ue?(null!==(h=this._deliveryQueue)&&void 0!==h||(this._deliveryQueue=new fe),this._listeners=[this._listeners,c]):this._listeners.push(c):(null===(n=null===(s=this._options)||void 0===s?void 0:s.onWillAddFirstListener)||void 0===n||n.call(s,this),this._listeners=c,null===(r=null===(o=this._options)||void 0===o?void 0:o.onDidAddFirstListener)||void 0===r||r.call(o,this)),this._size++;const l=Yi((()=>{null==a||a(),this._removeListener(c)}));return e instanceof Xi?e.add(l):Array.isArray(e)&&e.push(l),l}),this._event}_removeListener(t){var i,e,s,n;if(null===(e=null===(i=this._options)||void 0===i?void 0:i.onWillRemoveListener)||void 0===e||e.call(i,this),!this._listeners)return;if(1===this._size)return this._listeners=void 0,null===(n=null===(s=this._options)||void 0===s?void 0:s.onDidRemoveLastListener)||void 0===n||n.call(s,this),void(this._size=0);const o=this._listeners,r=o.indexOf(t);if(-1===r)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,o[r]=void 0;const h=this._deliveryQueue.current===this;if(2*this._size<=o.length){let t=0;for(let i=0;i0}}class fe{constructor(){this.i=-1,this.end=0}enqueue(t,i,e){this.i=0,this.end=e,this.current=t,this.value=i}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}class pe extends de{constructor(t){super(t),this._isPaused=0,this._eventQueue=new Ut,this._mergeFn=null==t?void 0:t.merge}pause(){this._isPaused++}resume(){if(0!==this._isPaused&&0==--this._isPaused)if(this._mergeFn){if(this._eventQueue.size>0){const t=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(t))}}else for(;!this._isPaused&&0!==this._eventQueue.size;)super.fire(this._eventQueue.shift())}fire(t){this._size&&(0!==this._isPaused?this._eventQueue.push(t):super.fire(t))}}class ge extends pe{constructor(t){var i;super(t),this._delay=null!==(i=t.delay)&&void 0!==i?i:100}fire(t){this._handle||(this.pause(),this._handle=setTimeout((()=>{this._handle=void 0,this.resume()}),this._delay)),super.fire(t)}}class me extends de{constructor(t){super(t),this._queuedEvents=[],this._mergeFn=null==t?void 0:t.merge}fire(t){this.hasListeners()&&(this._queuedEvents.push(t),1===this._queuedEvents.length&&queueMicrotask((()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach((t=>super.fire(t))),this._queuedEvents=[]})))}}class we{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new de({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(t){const i={event:t,listener:null};return this.events.push(i),this.hasListeners&&this.hook(i),Yi(Gi((()=>{this.hasListeners&&this.unhook(i);const t=this.events.indexOf(i);this.events.splice(t,1)})))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach((t=>this.hook(t)))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach((t=>this.unhook(t)))}hook(t){t.listener=t.event((t=>this.emitter.fire(t)))}unhook(t){t.listener&&t.listener.dispose(),t.listener=null}dispose(){this.emitter.dispose()}}class ve{constructor(){this.buffers=[]}wrapEvent(t){return(i,e,s)=>t((t=>{const s=this.buffers[this.buffers.length-1];s?s.push((()=>i.call(e,t))):i.call(e,t)}),void 0,s)}bufferEvents(t){const i=[];this.buffers.push(i);const e=t();return this.buffers.pop(),i.forEach((t=>t())),e}}class be{constructor(){this.listening=!1,this.inputEvent=he.None,this.inputEventListener=te.None,this.emitter=new de({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(t){this.inputEvent=t,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=t(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}const ye=Object.freeze((function(t,i){const e=setTimeout(t.bind(i),0);return{dispose(){clearTimeout(e)}}}));var ke;!function(t){t.isCancellationToken=function(i){return i===t.None||i===t.Cancelled||i instanceof xe||!(!i||"object"!=typeof i)&&"boolean"==typeof i.isCancellationRequested&&"function"==typeof i.onCancellationRequested},t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:he.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:ye})}(ke||(ke={}));class xe{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?ye:(this._emitter||(this._emitter=new de),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}class Ce{constructor(t){this._token=void 0,this._parentListener=void 0,this._parentListener=t&&t.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new xe),this._token}cancel(){this._token?this._token instanceof xe&&this._token.cancel():this._token=ke.Cancelled}dispose(t=!1){var i;t&&this.cancel(),null===(i=this._parentListener)||void 0===i||i.dispose(),this._token?this._token instanceof xe&&this._token.dispose():this._token=ke.None}}class Se{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(t,i){this._keyCodeToStr[t]=i,this._strToKeyCode[i.toLowerCase()]=t}keyCodeToStr(t){return this._keyCodeToStr[t]}strToKeyCode(t){return this._strToKeyCode[t.toLowerCase()]||0}}const De=new Se,Ee=new Se,Ae=new Se,Me=new Array(230),Le={},Fe=[],Te=Object.create(null),Re=Object.create(null),Oe=[],Ie=[];for(let t=0;t<=193;t++)Oe[t]=-1;for(let t=0;t<=132;t++)Ie[t]=-1;var _e;function Ne(t,i){return(t|(65535&i)<<16>>>0)>>>0}let Be;!function(){const t="",i=[[1,0,"None",0,"unknown",0,"VK_UNKNOWN",t,t],[1,1,"Hyper",0,t,0,t,t,t],[1,2,"Super",0,t,0,t,t,t],[1,3,"Fn",0,t,0,t,t,t],[1,4,"FnLock",0,t,0,t,t,t],[1,5,"Suspend",0,t,0,t,t,t],[1,6,"Resume",0,t,0,t,t,t],[1,7,"Turbo",0,t,0,t,t,t],[1,8,"Sleep",0,t,0,"VK_SLEEP",t,t],[1,9,"WakeUp",0,t,0,t,t,t],[0,10,"KeyA",31,"A",65,"VK_A",t,t],[0,11,"KeyB",32,"B",66,"VK_B",t,t],[0,12,"KeyC",33,"C",67,"VK_C",t,t],[0,13,"KeyD",34,"D",68,"VK_D",t,t],[0,14,"KeyE",35,"E",69,"VK_E",t,t],[0,15,"KeyF",36,"F",70,"VK_F",t,t],[0,16,"KeyG",37,"G",71,"VK_G",t,t],[0,17,"KeyH",38,"H",72,"VK_H",t,t],[0,18,"KeyI",39,"I",73,"VK_I",t,t],[0,19,"KeyJ",40,"J",74,"VK_J",t,t],[0,20,"KeyK",41,"K",75,"VK_K",t,t],[0,21,"KeyL",42,"L",76,"VK_L",t,t],[0,22,"KeyM",43,"M",77,"VK_M",t,t],[0,23,"KeyN",44,"N",78,"VK_N",t,t],[0,24,"KeyO",45,"O",79,"VK_O",t,t],[0,25,"KeyP",46,"P",80,"VK_P",t,t],[0,26,"KeyQ",47,"Q",81,"VK_Q",t,t],[0,27,"KeyR",48,"R",82,"VK_R",t,t],[0,28,"KeyS",49,"S",83,"VK_S",t,t],[0,29,"KeyT",50,"T",84,"VK_T",t,t],[0,30,"KeyU",51,"U",85,"VK_U",t,t],[0,31,"KeyV",52,"V",86,"VK_V",t,t],[0,32,"KeyW",53,"W",87,"VK_W",t,t],[0,33,"KeyX",54,"X",88,"VK_X",t,t],[0,34,"KeyY",55,"Y",89,"VK_Y",t,t],[0,35,"KeyZ",56,"Z",90,"VK_Z",t,t],[0,36,"Digit1",22,"1",49,"VK_1",t,t],[0,37,"Digit2",23,"2",50,"VK_2",t,t],[0,38,"Digit3",24,"3",51,"VK_3",t,t],[0,39,"Digit4",25,"4",52,"VK_4",t,t],[0,40,"Digit5",26,"5",53,"VK_5",t,t],[0,41,"Digit6",27,"6",54,"VK_6",t,t],[0,42,"Digit7",28,"7",55,"VK_7",t,t],[0,43,"Digit8",29,"8",56,"VK_8",t,t],[0,44,"Digit9",30,"9",57,"VK_9",t,t],[0,45,"Digit0",21,"0",48,"VK_0",t,t],[1,46,"Enter",3,"Enter",13,"VK_RETURN",t,t],[1,47,"Escape",9,"Escape",27,"VK_ESCAPE",t,t],[1,48,"Backspace",1,"Backspace",8,"VK_BACK",t,t],[1,49,"Tab",2,"Tab",9,"VK_TAB",t,t],[1,50,"Space",10,"Space",32,"VK_SPACE",t,t],[0,51,"Minus",88,"-",189,"VK_OEM_MINUS","-","OEM_MINUS"],[0,52,"Equal",86,"=",187,"VK_OEM_PLUS","=","OEM_PLUS"],[0,53,"BracketLeft",92,"[",219,"VK_OEM_4","[","OEM_4"],[0,54,"BracketRight",94,"]",221,"VK_OEM_6","]","OEM_6"],[0,55,"Backslash",93,"\\",220,"VK_OEM_5","\\","OEM_5"],[0,56,"IntlHash",0,t,0,t,t,t],[0,57,"Semicolon",85,";",186,"VK_OEM_1",";","OEM_1"],[0,58,"Quote",95,"'",222,"VK_OEM_7","'","OEM_7"],[0,59,"Backquote",91,"`",192,"VK_OEM_3","`","OEM_3"],[0,60,"Comma",87,",",188,"VK_OEM_COMMA",",","OEM_COMMA"],[0,61,"Period",89,".",190,"VK_OEM_PERIOD",".","OEM_PERIOD"],[0,62,"Slash",90,"/",191,"VK_OEM_2","/","OEM_2"],[1,63,"CapsLock",8,"CapsLock",20,"VK_CAPITAL",t,t],[1,64,"F1",59,"F1",112,"VK_F1",t,t],[1,65,"F2",60,"F2",113,"VK_F2",t,t],[1,66,"F3",61,"F3",114,"VK_F3",t,t],[1,67,"F4",62,"F4",115,"VK_F4",t,t],[1,68,"F5",63,"F5",116,"VK_F5",t,t],[1,69,"F6",64,"F6",117,"VK_F6",t,t],[1,70,"F7",65,"F7",118,"VK_F7",t,t],[1,71,"F8",66,"F8",119,"VK_F8",t,t],[1,72,"F9",67,"F9",120,"VK_F9",t,t],[1,73,"F10",68,"F10",121,"VK_F10",t,t],[1,74,"F11",69,"F11",122,"VK_F11",t,t],[1,75,"F12",70,"F12",123,"VK_F12",t,t],[1,76,"PrintScreen",0,t,0,t,t,t],[1,77,"ScrollLock",84,"ScrollLock",145,"VK_SCROLL",t,t],[1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE",t,t],[1,79,"Insert",19,"Insert",45,"VK_INSERT",t,t],[1,80,"Home",14,"Home",36,"VK_HOME",t,t],[1,81,"PageUp",11,"PageUp",33,"VK_PRIOR",t,t],[1,82,"Delete",20,"Delete",46,"VK_DELETE",t,t],[1,83,"End",13,"End",35,"VK_END",t,t],[1,84,"PageDown",12,"PageDown",34,"VK_NEXT",t,t],[1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",t],[1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",t],[1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",t],[1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",t],[1,89,"NumLock",83,"NumLock",144,"VK_NUMLOCK",t,t],[1,90,"NumpadDivide",113,"NumPad_Divide",111,"VK_DIVIDE",t,t],[1,91,"NumpadMultiply",108,"NumPad_Multiply",106,"VK_MULTIPLY",t,t],[1,92,"NumpadSubtract",111,"NumPad_Subtract",109,"VK_SUBTRACT",t,t],[1,93,"NumpadAdd",109,"NumPad_Add",107,"VK_ADD",t,t],[1,94,"NumpadEnter",3,t,0,t,t,t],[1,95,"Numpad1",99,"NumPad1",97,"VK_NUMPAD1",t,t],[1,96,"Numpad2",100,"NumPad2",98,"VK_NUMPAD2",t,t],[1,97,"Numpad3",101,"NumPad3",99,"VK_NUMPAD3",t,t],[1,98,"Numpad4",102,"NumPad4",100,"VK_NUMPAD4",t,t],[1,99,"Numpad5",103,"NumPad5",101,"VK_NUMPAD5",t,t],[1,100,"Numpad6",104,"NumPad6",102,"VK_NUMPAD6",t,t],[1,101,"Numpad7",105,"NumPad7",103,"VK_NUMPAD7",t,t],[1,102,"Numpad8",106,"NumPad8",104,"VK_NUMPAD8",t,t],[1,103,"Numpad9",107,"NumPad9",105,"VK_NUMPAD9",t,t],[1,104,"Numpad0",98,"NumPad0",96,"VK_NUMPAD0",t,t],[1,105,"NumpadDecimal",112,"NumPad_Decimal",110,"VK_DECIMAL",t,t],[0,106,"IntlBackslash",97,"OEM_102",226,"VK_OEM_102",t,t],[1,107,"ContextMenu",58,"ContextMenu",93,t,t,t],[1,108,"Power",0,t,0,t,t,t],[1,109,"NumpadEqual",0,t,0,t,t,t],[1,110,"F13",71,"F13",124,"VK_F13",t,t],[1,111,"F14",72,"F14",125,"VK_F14",t,t],[1,112,"F15",73,"F15",126,"VK_F15",t,t],[1,113,"F16",74,"F16",127,"VK_F16",t,t],[1,114,"F17",75,"F17",128,"VK_F17",t,t],[1,115,"F18",76,"F18",129,"VK_F18",t,t],[1,116,"F19",77,"F19",130,"VK_F19",t,t],[1,117,"F20",78,"F20",131,"VK_F20",t,t],[1,118,"F21",79,"F21",132,"VK_F21",t,t],[1,119,"F22",80,"F22",133,"VK_F22",t,t],[1,120,"F23",81,"F23",134,"VK_F23",t,t],[1,121,"F24",82,"F24",135,"VK_F24",t,t],[1,122,"Open",0,t,0,t,t,t],[1,123,"Help",0,t,0,t,t,t],[1,124,"Select",0,t,0,t,t,t],[1,125,"Again",0,t,0,t,t,t],[1,126,"Undo",0,t,0,t,t,t],[1,127,"Cut",0,t,0,t,t,t],[1,128,"Copy",0,t,0,t,t,t],[1,129,"Paste",0,t,0,t,t,t],[1,130,"Find",0,t,0,t,t,t],[1,131,"AudioVolumeMute",117,"AudioVolumeMute",173,"VK_VOLUME_MUTE",t,t],[1,132,"AudioVolumeUp",118,"AudioVolumeUp",175,"VK_VOLUME_UP",t,t],[1,133,"AudioVolumeDown",119,"AudioVolumeDown",174,"VK_VOLUME_DOWN",t,t],[1,134,"NumpadComma",110,"NumPad_Separator",108,"VK_SEPARATOR",t,t],[0,135,"IntlRo",115,"ABNT_C1",193,"VK_ABNT_C1",t,t],[1,136,"KanaMode",0,t,0,t,t,t],[0,137,"IntlYen",0,t,0,t,t,t],[1,138,"Convert",0,t,0,t,t,t],[1,139,"NonConvert",0,t,0,t,t,t],[1,140,"Lang1",0,t,0,t,t,t],[1,141,"Lang2",0,t,0,t,t,t],[1,142,"Lang3",0,t,0,t,t,t],[1,143,"Lang4",0,t,0,t,t,t],[1,144,"Lang5",0,t,0,t,t,t],[1,145,"Abort",0,t,0,t,t,t],[1,146,"Props",0,t,0,t,t,t],[1,147,"NumpadParenLeft",0,t,0,t,t,t],[1,148,"NumpadParenRight",0,t,0,t,t,t],[1,149,"NumpadBackspace",0,t,0,t,t,t],[1,150,"NumpadMemoryStore",0,t,0,t,t,t],[1,151,"NumpadMemoryRecall",0,t,0,t,t,t],[1,152,"NumpadMemoryClear",0,t,0,t,t,t],[1,153,"NumpadMemoryAdd",0,t,0,t,t,t],[1,154,"NumpadMemorySubtract",0,t,0,t,t,t],[1,155,"NumpadClear",131,"Clear",12,"VK_CLEAR",t,t],[1,156,"NumpadClearEntry",0,t,0,t,t,t],[1,0,t,5,"Ctrl",17,"VK_CONTROL",t,t],[1,0,t,4,"Shift",16,"VK_SHIFT",t,t],[1,0,t,6,"Alt",18,"VK_MENU",t,t],[1,0,t,57,"Meta",91,"VK_COMMAND",t,t],[1,157,"ControlLeft",5,t,0,"VK_LCONTROL",t,t],[1,158,"ShiftLeft",4,t,0,"VK_LSHIFT",t,t],[1,159,"AltLeft",6,t,0,"VK_LMENU",t,t],[1,160,"MetaLeft",57,t,0,"VK_LWIN",t,t],[1,161,"ControlRight",5,t,0,"VK_RCONTROL",t,t],[1,162,"ShiftRight",4,t,0,"VK_RSHIFT",t,t],[1,163,"AltRight",6,t,0,"VK_RMENU",t,t],[1,164,"MetaRight",57,t,0,"VK_RWIN",t,t],[1,165,"BrightnessUp",0,t,0,t,t,t],[1,166,"BrightnessDown",0,t,0,t,t,t],[1,167,"MediaPlay",0,t,0,t,t,t],[1,168,"MediaRecord",0,t,0,t,t,t],[1,169,"MediaFastForward",0,t,0,t,t,t],[1,170,"MediaRewind",0,t,0,t,t,t],[1,171,"MediaTrackNext",124,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK",t,t],[1,172,"MediaTrackPrevious",125,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK",t,t],[1,173,"MediaStop",126,"MediaStop",178,"VK_MEDIA_STOP",t,t],[1,174,"Eject",0,t,0,t,t,t],[1,175,"MediaPlayPause",127,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE",t,t],[1,176,"MediaSelect",128,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT",t,t],[1,177,"LaunchMail",129,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL",t,t],[1,178,"LaunchApp2",130,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2",t,t],[1,179,"LaunchApp1",0,t,0,"VK_MEDIA_LAUNCH_APP1",t,t],[1,180,"SelectTask",0,t,0,t,t,t],[1,181,"LaunchScreenSaver",0,t,0,t,t,t],[1,182,"BrowserSearch",120,"BrowserSearch",170,"VK_BROWSER_SEARCH",t,t],[1,183,"BrowserHome",121,"BrowserHome",172,"VK_BROWSER_HOME",t,t],[1,184,"BrowserBack",122,"BrowserBack",166,"VK_BROWSER_BACK",t,t],[1,185,"BrowserForward",123,"BrowserForward",167,"VK_BROWSER_FORWARD",t,t],[1,186,"BrowserStop",0,t,0,"VK_BROWSER_STOP",t,t],[1,187,"BrowserRefresh",0,t,0,"VK_BROWSER_REFRESH",t,t],[1,188,"BrowserFavorites",0,t,0,"VK_BROWSER_FAVORITES",t,t],[1,189,"ZoomToggle",0,t,0,t,t,t],[1,190,"MailReply",0,t,0,t,t,t],[1,191,"MailForward",0,t,0,t,t,t],[1,192,"MailSend",0,t,0,t,t,t],[1,0,t,114,"KeyInComposition",229,t,t,t],[1,0,t,116,"ABNT_C2",194,"VK_ABNT_C2",t,t],[1,0,t,96,"OEM_8",223,"VK_OEM_8",t,t],[1,0,t,0,t,0,"VK_KANA",t,t],[1,0,t,0,t,0,"VK_HANGUL",t,t],[1,0,t,0,t,0,"VK_JUNJA",t,t],[1,0,t,0,t,0,"VK_FINAL",t,t],[1,0,t,0,t,0,"VK_HANJA",t,t],[1,0,t,0,t,0,"VK_KANJI",t,t],[1,0,t,0,t,0,"VK_CONVERT",t,t],[1,0,t,0,t,0,"VK_NONCONVERT",t,t],[1,0,t,0,t,0,"VK_ACCEPT",t,t],[1,0,t,0,t,0,"VK_MODECHANGE",t,t],[1,0,t,0,t,0,"VK_SELECT",t,t],[1,0,t,0,t,0,"VK_PRINT",t,t],[1,0,t,0,t,0,"VK_EXECUTE",t,t],[1,0,t,0,t,0,"VK_SNAPSHOT",t,t],[1,0,t,0,t,0,"VK_HELP",t,t],[1,0,t,0,t,0,"VK_APPS",t,t],[1,0,t,0,t,0,"VK_PROCESSKEY",t,t],[1,0,t,0,t,0,"VK_PACKET",t,t],[1,0,t,0,t,0,"VK_DBE_SBCSCHAR",t,t],[1,0,t,0,t,0,"VK_DBE_DBCSCHAR",t,t],[1,0,t,0,t,0,"VK_ATTN",t,t],[1,0,t,0,t,0,"VK_CRSEL",t,t],[1,0,t,0,t,0,"VK_EXSEL",t,t],[1,0,t,0,t,0,"VK_EREOF",t,t],[1,0,t,0,t,0,"VK_PLAY",t,t],[1,0,t,0,t,0,"VK_ZOOM",t,t],[1,0,t,0,t,0,"VK_NONAME",t,t],[1,0,t,0,t,0,"VK_PA1",t,t],[1,0,t,0,t,0,"VK_OEM_CLEAR",t,t]],e=[],s=[];for(const t of i){const[i,n,o,r,h,c,a,l,u]=t;if(s[n]||(s[n]=!0,Fe[n]=o,Te[o]=n,Re[o.toLowerCase()]=n,i&&(Oe[n]=r,0!==r&&3!==r&&5!==r&&4!==r&&6!==r&&57!==r&&(Ie[r]=n))),!e[r]){if(e[r]=!0,!h)throw new Error(`String representation missing for key code ${r} around scan code ${o}`);De.define(r,h),Ee.define(r,l||h),Ae.define(r,u||l||h)}c&&(Me[c]=r),a&&(Le[a]=r)}Ie[3]=46}(),function(t){t.toString=function(t){return De.keyCodeToStr(t)},t.fromString=function(t){return De.strToKeyCode(t)},t.toUserSettingsUS=function(t){return Ee.keyCodeToStr(t)},t.toUserSettingsGeneral=function(t){return Ae.keyCodeToStr(t)},t.fromUserSettings=function(t){return Ee.strToKeyCode(t)||Ae.strToKeyCode(t)},t.toElectronAccelerator=function(t){if(t>=98&&t<=113)return null;switch(t){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return De.keyCodeToStr(t)}}(_e||(_e={}));const Pe=globalThis.vscode;if(void 0!==Pe&&void 0!==Pe.process){const t=Pe.process;Be={get platform(){return t.platform},get arch(){return t.arch},get env(){return t.env},cwd:()=>t.cwd()}}else Be="undefined"!=typeof process?{get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd:()=>process.env.VSCODE_CWD||process.cwd()}:{get platform(){return xt?"win32":Ct?"darwin":"linux"},get arch(){},get env(){return{}},cwd:()=>"/"};const $e=Be.cwd,We=Be.env,je=Be.platform,ze=46,He=47,Ve=92,Ue=58;class qe extends Error{constructor(t,i,e){let s;"string"==typeof i&&0===i.indexOf("not ")?(s="must not be",i=i.replace(/^not /,"")):s="must be";const n=-1!==t.indexOf(".")?"property":"argument";let o=`The "${t}" ${n} ${s} of type ${i}`;o+=". Received type "+typeof e,super(o),this.code="ERR_INVALID_ARG_TYPE"}}function Ke(t,i){if("string"!=typeof t)throw new qe(i,"string",t)}const Ge="win32"===je;function Ze(t){return t===He||t===Ve}function Qe(t){return t===He}function Je(t){return t>=65&&t<=90||t>=97&&t<=122}function Ye(t,i,e,s){let n="",o=0,r=-1,h=0,c=0;for(let a=0;a<=t.length;++a){if(a2){const t=n.lastIndexOf(e);-1===t?(n="",o=0):(n=n.slice(0,t),o=n.length-1-n.lastIndexOf(e)),r=a,h=0;continue}if(0!==n.length){n="",o=0,r=a,h=0;continue}}i&&(n+=n.length>0?`${e}..`:"..",o=2)}else n.length>0?n+=`${e}${t.slice(r+1,a)}`:n=t.slice(r+1,a),o=a-r-1;r=a,h=0}else c===ze&&-1!==h?++h:h=-1}return n}function Xe(t,i){!function(t){if(null===t||"object"!=typeof t)throw new qe("pathObject","Object",t)}(i);const e=i.dir||i.root,s=i.base||`${i.name||""}${i.ext||""}`;return e?e===i.root?`${e}${s}`:`${e}${t}${s}`:s}const ts={resolve(...t){let i="",e="",s=!1;for(let n=t.length-1;n>=-1;n--){let o;if(n>=0){if(o=t[n],Ke(o,"path"),0===o.length)continue}else 0===i.length?o=$e():(o=We[`=${i}`]||$e(),(void 0===o||o.slice(0,2).toLowerCase()!==i.toLowerCase()&&o.charCodeAt(2)===Ve)&&(o=`${i}\\`));const r=o.length;let h=0,c="",a=!1;const l=o.charCodeAt(0);if(1===r)Ze(l)&&(h=1,a=!0);else if(Ze(l))if(a=!0,Ze(o.charCodeAt(1))){let t=2,i=t;for(;t2&&Ze(o.charCodeAt(2))&&(a=!0,h=3));if(c.length>0)if(i.length>0){if(c.toLowerCase()!==i.toLowerCase())continue}else i=c;if(s){if(i.length>0)break}else if(e=`${o.slice(h)}\\${e}`,s=a,a&&i.length>0)break}return e=Ye(e,!s,"\\",Ze),s?`${i}\\${e}`:`${i}${e}`||"."},normalize(t){Ke(t,"path");const i=t.length;if(0===i)return".";let e,s=0,n=!1;const o=t.charCodeAt(0);if(1===i)return Qe(o)?"\\":t;if(Ze(o))if(n=!0,Ze(t.charCodeAt(1))){let n=2,o=n;for(;n2&&Ze(t.charCodeAt(2))&&(n=!0,s=3));let r=s0&&Ze(t.charCodeAt(i-1))&&(r+="\\"),void 0===e?n?`\\${r}`:r:n?`${e}\\${r}`:`${e}${r}`},isAbsolute(t){Ke(t,"path");const i=t.length;if(0===i)return!1;const e=t.charCodeAt(0);return Ze(e)||i>2&&Je(e)&&t.charCodeAt(1)===Ue&&Ze(t.charCodeAt(2))},join(...t){if(0===t.length)return".";let i,e;for(let s=0;s0&&(void 0===i?i=e=n:i+=`\\${n}`)}if(void 0===i)return".";let s=!0,n=0;if("string"==typeof e&&Ze(e.charCodeAt(0))){++n;const t=e.length;t>1&&Ze(e.charCodeAt(1))&&(++n,t>2&&(Ze(e.charCodeAt(2))?++n:s=!1))}if(s){for(;n=2&&(i=`\\${i.slice(n)}`)}return ts.normalize(i)},relative(t,i){if(Ke(t,"from"),Ke(i,"to"),t===i)return"";const e=ts.resolve(t),s=ts.resolve(i);if(e===s)return"";if((t=e.toLowerCase())===(i=s.toLowerCase()))return"";let n=0;for(;nn&&t.charCodeAt(o-1)===Ve;)o--;const r=o-n;let h=0;for(;hh&&i.charCodeAt(c-1)===Ve;)c--;const a=c-h,l=rl){if(i.charCodeAt(h+d)===Ve)return s.slice(h+d+1);if(2===d)return s.slice(h+d)}r>l&&(t.charCodeAt(n+d)===Ve?u=d:2===d&&(u=3)),-1===u&&(u=0)}let f="";for(d=n+u+1;d<=o;++d)d!==o&&t.charCodeAt(d)!==Ve||(f+=0===f.length?"..":"\\..");return h+=u,f.length>0?`${f}${s.slice(h,c)}`:(s.charCodeAt(h)===Ve&&++h,s.slice(h,c))},toNamespacedPath(t){if("string"!=typeof t||0===t.length)return t;const i=ts.resolve(t);if(i.length<=2)return t;if(i.charCodeAt(0)===Ve){if(i.charCodeAt(1)===Ve){const t=i.charCodeAt(2);if(63!==t&&t!==ze)return`\\\\?\\UNC\\${i.slice(2)}`}}else if(Je(i.charCodeAt(0))&&i.charCodeAt(1)===Ue&&i.charCodeAt(2)===Ve)return`\\\\?\\${i}`;return t},dirname(t){Ke(t,"path");const i=t.length;if(0===i)return".";let e=-1,s=0;const n=t.charCodeAt(0);if(1===i)return Ze(n)?t:".";if(Ze(n)){if(e=s=1,Ze(t.charCodeAt(1))){let n=2,o=n;for(;n2&&Ze(t.charCodeAt(2))?3:2,s=e);let o=-1,r=!0;for(let e=i-1;e>=s;--e)if(Ze(t.charCodeAt(e))){if(!r){o=e;break}}else r=!1;if(-1===o){if(-1===e)return".";o=e}return t.slice(0,o)},basename(t,i){void 0!==i&&Ke(i,"ext"),Ke(t,"path");let e,s=0,n=-1,o=!0;if(t.length>=2&&Je(t.charCodeAt(0))&&t.charCodeAt(1)===Ue&&(s=2),void 0!==i&&i.length>0&&i.length<=t.length){if(i===t)return"";let r=i.length-1,h=-1;for(e=t.length-1;e>=s;--e){const c=t.charCodeAt(e);if(Ze(c)){if(!o){s=e+1;break}}else-1===h&&(o=!1,h=e+1),r>=0&&(c===i.charCodeAt(r)?-1==--r&&(n=e):(r=-1,n=h))}return s===n?n=h:-1===n&&(n=t.length),t.slice(s,n)}for(e=t.length-1;e>=s;--e)if(Ze(t.charCodeAt(e))){if(!o){s=e+1;break}}else-1===n&&(o=!1,n=e+1);return-1===n?"":t.slice(s,n)},extname(t){Ke(t,"path");let i=0,e=-1,s=0,n=-1,o=!0,r=0;t.length>=2&&t.charCodeAt(1)===Ue&&Je(t.charCodeAt(0))&&(i=s=2);for(let h=t.length-1;h>=i;--h){const i=t.charCodeAt(h);if(Ze(i)){if(!o){s=h+1;break}}else-1===n&&(o=!1,n=h+1),i===ze?-1===e?e=h:1!==r&&(r=1):-1!==e&&(r=-1)}return-1===e||-1===n||0===r||1===r&&e===n-1&&e===s+1?"":t.slice(e,n)},format:Xe.bind(null,"\\"),parse(t){Ke(t,"path");const i={root:"",dir:"",base:"",ext:"",name:""};if(0===t.length)return i;const e=t.length;let s=0,n=t.charCodeAt(0);if(1===e)return Ze(n)?(i.root=i.dir=t,i):(i.base=i.name=t,i);if(Ze(n)){if(s=1,Ze(t.charCodeAt(1))){let i=2,n=i;for(;i0&&(i.root=t.slice(0,s));let o=-1,r=s,h=-1,c=!0,a=t.length-1,l=0;for(;a>=s;--a)if(n=t.charCodeAt(a),Ze(n)){if(!c){r=a+1;break}}else-1===h&&(c=!1,h=a+1),n===ze?-1===o?o=a:1!==l&&(l=1):-1!==o&&(l=-1);return-1!==h&&(-1===o||0===l||1===l&&o===h-1&&o===r+1?i.base=i.name=t.slice(r,h):(i.name=t.slice(r,o),i.base=t.slice(r,h),i.ext=t.slice(o,h))),i.dir=r>0&&r!==s?t.slice(0,r-1):i.root,i},sep:"\\",delimiter:";",win32:null,posix:null},is=(()=>{if(Ge){const t=/\\/g;return()=>{const i=$e().replace(t,"/");return i.slice(i.indexOf("/"))}}return()=>$e()})(),es={resolve(...t){let i="",e=!1;for(let s=t.length-1;s>=-1&&!e;s--){const n=s>=0?t[s]:is();Ke(n,"path"),0!==n.length&&(i=`${n}/${i}`,e=n.charCodeAt(0)===He)}return i=Ye(i,!e,"/",Qe),e?`/${i}`:i.length>0?i:"."},normalize(t){if(Ke(t,"path"),0===t.length)return".";const i=t.charCodeAt(0)===He,e=t.charCodeAt(t.length-1)===He;return 0===(t=Ye(t,!i,"/",Qe)).length?i?"/":e?"./":".":(e&&(t+="/"),i?`/${t}`:t)},isAbsolute:t=>(Ke(t,"path"),t.length>0&&t.charCodeAt(0)===He),join(...t){if(0===t.length)return".";let i;for(let e=0;e0&&(void 0===i?i=s:i+=`/${s}`)}return void 0===i?".":es.normalize(i)},relative(t,i){if(Ke(t,"from"),Ke(i,"to"),t===i)return"";if((t=es.resolve(t))===(i=es.resolve(i)))return"";const e=t.length,s=e-1,n=i.length-1,o=so){if(i.charCodeAt(1+h)===He)return i.slice(1+h+1);if(0===h)return i.slice(1+h)}else s>o&&(t.charCodeAt(1+h)===He?r=h:0===h&&(r=0));let c="";for(h=1+r+1;h<=e;++h)h!==e&&t.charCodeAt(h)!==He||(c+=0===c.length?"..":"/..");return`${c}${i.slice(1+r)}`},toNamespacedPath:t=>t,dirname(t){if(Ke(t,"path"),0===t.length)return".";const i=t.charCodeAt(0)===He;let e=-1,s=!0;for(let i=t.length-1;i>=1;--i)if(t.charCodeAt(i)===He){if(!s){e=i;break}}else s=!1;return-1===e?i?"/":".":i&&1===e?"//":t.slice(0,e)},basename(t,i){void 0!==i&&Ke(i,"ext"),Ke(t,"path");let e,s=0,n=-1,o=!0;if(void 0!==i&&i.length>0&&i.length<=t.length){if(i===t)return"";let r=i.length-1,h=-1;for(e=t.length-1;e>=0;--e){const c=t.charCodeAt(e);if(c===He){if(!o){s=e+1;break}}else-1===h&&(o=!1,h=e+1),r>=0&&(c===i.charCodeAt(r)?-1==--r&&(n=e):(r=-1,n=h))}return s===n?n=h:-1===n&&(n=t.length),t.slice(s,n)}for(e=t.length-1;e>=0;--e)if(t.charCodeAt(e)===He){if(!o){s=e+1;break}}else-1===n&&(o=!1,n=e+1);return-1===n?"":t.slice(s,n)},extname(t){Ke(t,"path");let i=-1,e=0,s=-1,n=!0,o=0;for(let r=t.length-1;r>=0;--r){const h=t.charCodeAt(r);if(h!==He)-1===s&&(n=!1,s=r+1),h===ze?-1===i?i=r:1!==o&&(o=1):-1!==i&&(o=-1);else if(!n){e=r+1;break}}return-1===i||-1===s||0===o||1===o&&i===s-1&&i===e+1?"":t.slice(i,s)},format:Xe.bind(null,"/"),parse(t){Ke(t,"path");const i={root:"",dir:"",base:"",ext:"",name:""};if(0===t.length)return i;const e=t.charCodeAt(0)===He;let s;e?(i.root="/",s=1):s=0;let n=-1,o=0,r=-1,h=!0,c=t.length-1,a=0;for(;c>=s;--c){const i=t.charCodeAt(c);if(i!==He)-1===r&&(h=!1,r=c+1),i===ze?-1===n?n=c:1!==a&&(a=1):-1!==n&&(a=-1);else if(!h){o=c+1;break}}if(-1!==r){const s=0===o&&e?1:o;-1===n||0===a||1===a&&n===r-1&&n===o+1?i.base=i.name=t.slice(s,r):(i.name=t.slice(s,n),i.base=t.slice(s,r),i.ext=t.slice(n,r))}return o>0?i.dir=t.slice(0,o-1):e&&(i.dir="/"),i},sep:"/",delimiter:":",win32:null,posix:null};es.win32=ts.win32=ts,es.posix=ts.posix=es;const ss=Ge?ts.normalize:es.normalize,ns=Ge?ts.resolve:es.resolve,os=Ge?ts.relative:es.relative,rs=Ge?ts.dirname:es.dirname,hs=Ge?ts.basename:es.basename,cs=Ge?ts.extname:es.extname,as=Ge?ts.sep:es.sep,ls=/^\w[\w\d+.-]*$/,us=/^\//,ds=/^\/\//,fs="",ps="/",gs=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class ms{static isUri(t){return t instanceof ms||!!t&&"string"==typeof t.authority&&"string"==typeof t.fragment&&"string"==typeof t.path&&"string"==typeof t.query&&"string"==typeof t.scheme&&"string"==typeof t.fsPath&&"function"==typeof t.with&&"function"==typeof t.toString}constructor(t,i,e,s,n,o=!1){"object"==typeof t?(this.scheme=t.scheme||fs,this.authority=t.authority||fs,this.path=t.path||fs,this.query=t.query||fs,this.fragment=t.fragment||fs):(this.scheme=function(t,i){return t||i?t:"file"}(t,o),this.authority=i||fs,this.path=function(t,i){switch(t){case"https":case"http":case"file":i?i[0]!==ps&&(i=ps+i):i=ps}return i}(this.scheme,e||fs),this.query=s||fs,this.fragment=n||fs,function(t,i){if(!t.scheme&&i)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${t.authority}", path: "${t.path}", query: "${t.query}", fragment: "${t.fragment}"}`);if(t.scheme&&!ls.test(t.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(t.path)if(t.authority){if(!us.test(t.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(ds.test(t.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}(this,o))}get fsPath(){return xs(this,!1)}with(t){if(!t)return this;let{scheme:i,authority:e,path:s,query:n,fragment:o}=t;return void 0===i?i=this.scheme:null===i&&(i=fs),void 0===e?e=this.authority:null===e&&(e=fs),void 0===s?s=this.path:null===s&&(s=fs),void 0===n?n=this.query:null===n&&(n=fs),void 0===o?o=this.fragment:null===o&&(o=fs),i===this.scheme&&e===this.authority&&s===this.path&&n===this.query&&o===this.fragment?this:new vs(i,e,s,n,o)}static parse(t,i=!1){const e=gs.exec(t);return e?new vs(e[2]||fs,Es(e[4]||fs),Es(e[5]||fs),Es(e[7]||fs),Es(e[9]||fs),i):new vs(fs,fs,fs,fs,fs)}static file(t){let i=fs;if(xt&&(t=t.replace(/\\/g,ps)),t[0]===ps&&t[1]===ps){const e=t.indexOf(ps,2);-1===e?(i=t.substring(2),t=ps):(i=t.substring(2,e),t=t.substring(e)||ps)}return new vs("file",i,t,fs,fs)}static from(t,i){return new vs(t.scheme,t.authority,t.path,t.query,t.fragment,i)}static joinPath(t,...i){if(!t.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let e;return e=xt&&"file"===t.scheme?ms.file(ts.join(xs(t,!0),...i)).path:es.join(t.path,...i),t.with({path:e})}toString(t=!1){return Cs(this,t)}toJSON(){return this}static revive(t){var i,e;if(t){if(t instanceof ms)return t;{const s=new vs(t);return s._formatted=null!==(i=t.external)&&void 0!==i?i:null,s._fsPath=t._sep===ws&&null!==(e=t.fsPath)&&void 0!==e?e:null,s}}return t}}const ws=xt?1:void 0;class vs extends ms{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=xs(this,!1)),this._fsPath}toString(t=!1){return t?Cs(this,!0):(this._formatted||(this._formatted=Cs(this,!1)),this._formatted)}toJSON(){const t={$mid:1};return this._fsPath&&(t.fsPath=this._fsPath,t._sep=ws),this._formatted&&(t.external=this._formatted),this.path&&(t.path=this.path),this.scheme&&(t.scheme=this.scheme),this.authority&&(t.authority=this.authority),this.query&&(t.query=this.query),this.fragment&&(t.fragment=this.fragment),t}}const bs={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function ys(t,i,e){let s,n=-1;for(let o=0;o=97&&r<=122||r>=65&&r<=90||r>=48&&r<=57||45===r||46===r||95===r||126===r||i&&47===r||e&&91===r||e&&93===r||e&&58===r)-1!==n&&(s+=encodeURIComponent(t.substring(n,o)),n=-1),void 0!==s&&(s+=t.charAt(o));else{void 0===s&&(s=t.substr(0,o));const i=bs[r];void 0!==i?(-1!==n&&(s+=encodeURIComponent(t.substring(n,o)),n=-1),s+=i):-1===n&&(n=o)}}return-1!==n&&(s+=encodeURIComponent(t.substring(n))),void 0!==s?s:t}function ks(t){let i;for(let e=0;e1&&"file"===t.scheme?`//${t.authority}${t.path}`:47===t.path.charCodeAt(0)&&(t.path.charCodeAt(1)>=65&&t.path.charCodeAt(1)<=90||t.path.charCodeAt(1)>=97&&t.path.charCodeAt(1)<=122)&&58===t.path.charCodeAt(2)?i?t.path.substr(1):t.path[1].toLowerCase()+t.path.substr(2):t.path,xt&&(e=e.replace(/\//g,"\\")),e}function Cs(t,i){const e=i?ks:ys;let s="",{scheme:n,authority:o,path:r,query:h,fragment:c}=t;if(n&&(s+=n,s+=":"),(o||"file"===n)&&(s+=ps,s+=ps),o){let t=o.indexOf("@");if(-1!==t){const i=o.substr(0,t);o=o.substr(t+1),t=i.lastIndexOf(":"),-1===t?s+=e(i,!1,!1):(s+=e(i.substr(0,t),!1,!1),s+=":",s+=e(i.substr(t+1),!1,!0)),s+="@"}o=o.toLowerCase(),t=o.lastIndexOf(":"),-1===t?s+=e(o,!1,!0):(s+=e(o.substr(0,t),!1,!0),s+=o.substr(t))}if(r){if(r.length>=3&&47===r.charCodeAt(0)&&58===r.charCodeAt(2)){const t=r.charCodeAt(1);t>=65&&t<=90&&(r=`/${String.fromCharCode(t+32)}:${r.substr(3)}`)}else if(r.length>=2&&58===r.charCodeAt(1)){const t=r.charCodeAt(0);t>=65&&t<=90&&(r=`${String.fromCharCode(t+32)}:${r.substr(2)}`)}s+=e(r,!0,!1)}return h&&(s+="?",s+=e(h,!1,!1)),c&&(s+="#",s+=i?c:ys(c,!1,!1)),s}function Ss(t){try{return decodeURIComponent(t)}catch(i){return t.length>3?t.substr(0,3)+Ss(t.substr(3)):t}}const Ds=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function Es(t){return t.match(Ds)?t.replace(Ds,(t=>Ss(t))):t}class As{constructor(t,i){this.lineNumber=t,this.column=i}with(t=this.lineNumber,i=this.column){return t===this.lineNumber&&i===this.column?this:new As(t,i)}delta(t=0,i=0){return this.with(this.lineNumber+t,this.column+i)}equals(t){return As.equals(this,t)}static equals(t,i){return!t&&!i||!!t&&!!i&&t.lineNumber===i.lineNumber&&t.column===i.column}isBefore(t){return As.isBefore(this,t)}static isBefore(t,i){return t.lineNumbere||t===e&&i>s?(this.startLineNumber=e,this.startColumn=s,this.endLineNumber=t,this.endColumn=i):(this.startLineNumber=t,this.startColumn=i,this.endLineNumber=e,this.endColumn=s)}isEmpty(){return Ms.isEmpty(this)}static isEmpty(t){return t.startLineNumber===t.endLineNumber&&t.startColumn===t.endColumn}containsPosition(t){return Ms.containsPosition(this,t)}static containsPosition(t,i){return!(i.lineNumbert.endLineNumber||i.lineNumber===t.startLineNumber&&i.columnt.endColumn)}static strictContainsPosition(t,i){return!(i.lineNumbert.endLineNumber||i.lineNumber===t.startLineNumber&&i.column<=t.startColumn||i.lineNumber===t.endLineNumber&&i.column>=t.endColumn)}containsRange(t){return Ms.containsRange(this,t)}static containsRange(t,i){return!(i.startLineNumbert.endLineNumber||i.endLineNumber>t.endLineNumber||i.startLineNumber===t.startLineNumber&&i.startColumnt.endColumn)}strictContainsRange(t){return Ms.strictContainsRange(this,t)}static strictContainsRange(t,i){return!(i.startLineNumbert.endLineNumber||i.endLineNumber>t.endLineNumber||i.startLineNumber===t.startLineNumber&&i.startColumn<=t.startColumn||i.endLineNumber===t.endLineNumber&&i.endColumn>=t.endColumn)}plusRange(t){return Ms.plusRange(this,t)}static plusRange(t,i){let e,s,n,o;return i.startLineNumbert.endLineNumber?(n=i.endLineNumber,o=i.endColumn):i.endLineNumber===t.endLineNumber?(n=i.endLineNumber,o=Math.max(i.endColumn,t.endColumn)):(n=t.endLineNumber,o=t.endColumn),new Ms(e,s,n,o)}intersectRanges(t){return Ms.intersectRanges(this,t)}static intersectRanges(t,i){let e=t.startLineNumber,s=t.startColumn,n=t.endLineNumber,o=t.endColumn;const r=i.startLineNumber,h=i.startColumn,c=i.endLineNumber,a=i.endColumn;return ec?(n=c,o=a):n===c&&(o=Math.min(o,a)),e>n||e===n&&s>o?null:new Ms(e,s,n,o)}equalsRange(t){return Ms.equalsRange(this,t)}static equalsRange(t,i){return!t&&!i||!!t&&!!i&&t.startLineNumber===i.startLineNumber&&t.startColumn===i.startColumn&&t.endLineNumber===i.endLineNumber&&t.endColumn===i.endColumn}getEndPosition(){return Ms.getEndPosition(this)}static getEndPosition(t){return new As(t.endLineNumber,t.endColumn)}getStartPosition(){return Ms.getStartPosition(this)}static getStartPosition(t){return new As(t.startLineNumber,t.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(t,i){return new Ms(this.startLineNumber,this.startColumn,t,i)}setStartPosition(t,i){return new Ms(t,i,this.endLineNumber,this.endColumn)}collapseToStart(){return Ms.collapseToStart(this)}static collapseToStart(t){return new Ms(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)}collapseToEnd(){return Ms.collapseToEnd(this)}static collapseToEnd(t){return new Ms(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn)}delta(t){return new Ms(this.startLineNumber+t,this.startColumn,this.endLineNumber+t,this.endColumn)}static fromPositions(t,i=t){return new Ms(t.lineNumber,t.column,i.lineNumber,i.column)}static lift(t){return t?new Ms(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null}static isIRange(t){return t&&"number"==typeof t.startLineNumber&&"number"==typeof t.startColumn&&"number"==typeof t.endLineNumber&&"number"==typeof t.endColumn}static areIntersectingOrTouching(t,i){return!(t.endLineNumbert.startLineNumber}toJSON(){return this}}class Ls extends Ms{constructor(t,i,e,s){super(t,i,e,s),this.selectionStartLineNumber=t,this.selectionStartColumn=i,this.positionLineNumber=e,this.positionColumn=s}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(t){return Ls.selectionsEqual(this,t)}static selectionsEqual(t,i){return t.selectionStartLineNumber===i.selectionStartLineNumber&&t.selectionStartColumn===i.selectionStartColumn&&t.positionLineNumber===i.positionLineNumber&&t.positionColumn===i.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(t,i){return 0===this.getDirection()?new Ls(this.startLineNumber,this.startColumn,t,i):new Ls(t,i,this.startLineNumber,this.startColumn)}getPosition(){return new As(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new As(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(t,i){return 0===this.getDirection()?new Ls(t,i,this.endLineNumber,this.endColumn):new Ls(this.endLineNumber,this.endColumn,t,i)}static fromPositions(t,i=t){return new Ls(t.lineNumber,t.column,i.lineNumber,i.column)}static fromRange(t,i){return 0===i?new Ls(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):new Ls(t.endLineNumber,t.endColumn,t.startLineNumber,t.startColumn)}static liftSelection(t){return new Ls(t.selectionStartLineNumber,t.selectionStartColumn,t.positionLineNumber,t.positionColumn)}static selectionsArrEqual(t,i){if(t&&!i||!t&&i)return!1;if(!t&&!i)return!0;if(t.length!==i.length)return!1;for(let e=0,s=t.length;e{t&&t.dispose()}))}get tokenizationSupport(){return this._tokenizationSupport||(this._tokenizationSupport=this.createSupport()),this._tokenizationSupport}}const Zs=new class{constructor(){this._tokenizationSupports=new Map,this._factories=new Map,this._onDidChange=new de,this.onDidChange=this._onDidChange.event,this._colorMap=null}handleChange(t){this._onDidChange.fire({changedLanguages:t,changedColorMap:!1})}register(t,i){return this._tokenizationSupports.set(t,i),this.handleChange([t]),Yi((()=>{this._tokenizationSupports.get(t)===i&&(this._tokenizationSupports.delete(t),this.handleChange([t]))}))}get(t){return this._tokenizationSupports.get(t)||null}registerFactory(t,i){var e;null===(e=this._factories.get(t))||void 0===e||e.dispose();const s=new Is(this,t,i);return this._factories.set(t,s),Yi((()=>{const i=this._factories.get(t);i&&i===s&&(this._factories.delete(t),i.dispose())}))}async getOrCreate(t){const i=this.get(t);if(i)return i;const e=this._factories.get(t);return!e||e.isResolved?null:(await e.resolve(),this.get(t))}isResolved(t){if(this.get(t))return!0;const i=this._factories.get(t);return!(i&&!i.isResolved)}setColorMap(t){this._colorMap=t,this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}};var Qs,Js,Ys,Xs,tn,en,sn,nn,on,rn,hn,cn,an,ln,un,dn,fn,pn,gn,mn,wn,vn,bn,yn,kn,xn,Cn,Sn,Dn,En,An,Mn,Ln,Fn,Tn,Rn,On,In,_n,Nn;!function(t){t[t.Unknown=0]="Unknown",t[t.Disabled=1]="Disabled",t[t.Enabled=2]="Enabled"}(Qs||(Qs={})),function(t){t[t.Invoke=1]="Invoke",t[t.Auto=2]="Auto"}(Js||(Js={})),function(t){t[t.None=0]="None",t[t.KeepWhitespace=1]="KeepWhitespace",t[t.InsertAsSnippet=4]="InsertAsSnippet"}(Ys||(Ys={})),function(t){t[t.Method=0]="Method",t[t.Function=1]="Function",t[t.Constructor=2]="Constructor",t[t.Field=3]="Field",t[t.Variable=4]="Variable",t[t.Class=5]="Class",t[t.Struct=6]="Struct",t[t.Interface=7]="Interface",t[t.Module=8]="Module",t[t.Property=9]="Property",t[t.Event=10]="Event",t[t.Operator=11]="Operator",t[t.Unit=12]="Unit",t[t.Value=13]="Value",t[t.Constant=14]="Constant",t[t.Enum=15]="Enum",t[t.EnumMember=16]="EnumMember",t[t.Keyword=17]="Keyword",t[t.Text=18]="Text",t[t.Color=19]="Color",t[t.File=20]="File",t[t.Reference=21]="Reference",t[t.Customcolor=22]="Customcolor",t[t.Folder=23]="Folder",t[t.TypeParameter=24]="TypeParameter",t[t.User=25]="User",t[t.Issue=26]="Issue",t[t.Snippet=27]="Snippet"}(Xs||(Xs={})),function(t){t[t.Deprecated=1]="Deprecated"}(tn||(tn={})),function(t){t[t.Invoke=0]="Invoke",t[t.TriggerCharacter=1]="TriggerCharacter",t[t.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"}(en||(en={})),function(t){t[t.EXACT=0]="EXACT",t[t.ABOVE=1]="ABOVE",t[t.BELOW=2]="BELOW"}(sn||(sn={})),function(t){t[t.NotSet=0]="NotSet",t[t.ContentFlush=1]="ContentFlush",t[t.RecoverFromMarkers=2]="RecoverFromMarkers",t[t.Explicit=3]="Explicit",t[t.Paste=4]="Paste",t[t.Undo=5]="Undo",t[t.Redo=6]="Redo"}(nn||(nn={})),function(t){t[t.LF=1]="LF",t[t.CRLF=2]="CRLF"}(on||(on={})),function(t){t[t.Text=0]="Text",t[t.Read=1]="Read",t[t.Write=2]="Write"}(rn||(rn={})),function(t){t[t.None=0]="None",t[t.Keep=1]="Keep",t[t.Brackets=2]="Brackets",t[t.Advanced=3]="Advanced",t[t.Full=4]="Full"}(hn||(hn={})),function(t){t[t.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",t[t.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter",t[t.accessibilitySupport=2]="accessibilitySupport",t[t.accessibilityPageSize=3]="accessibilityPageSize",t[t.ariaLabel=4]="ariaLabel",t[t.ariaRequired=5]="ariaRequired",t[t.autoClosingBrackets=6]="autoClosingBrackets",t[t.autoClosingComments=7]="autoClosingComments",t[t.screenReaderAnnounceInlineSuggestion=8]="screenReaderAnnounceInlineSuggestion",t[t.autoClosingDelete=9]="autoClosingDelete",t[t.autoClosingOvertype=10]="autoClosingOvertype",t[t.autoClosingQuotes=11]="autoClosingQuotes",t[t.autoIndent=12]="autoIndent",t[t.automaticLayout=13]="automaticLayout",t[t.autoSurround=14]="autoSurround",t[t.bracketPairColorization=15]="bracketPairColorization",t[t.guides=16]="guides",t[t.codeLens=17]="codeLens",t[t.codeLensFontFamily=18]="codeLensFontFamily",t[t.codeLensFontSize=19]="codeLensFontSize",t[t.colorDecorators=20]="colorDecorators",t[t.colorDecoratorsLimit=21]="colorDecoratorsLimit",t[t.columnSelection=22]="columnSelection",t[t.comments=23]="comments",t[t.contextmenu=24]="contextmenu",t[t.copyWithSyntaxHighlighting=25]="copyWithSyntaxHighlighting",t[t.cursorBlinking=26]="cursorBlinking",t[t.cursorSmoothCaretAnimation=27]="cursorSmoothCaretAnimation",t[t.cursorStyle=28]="cursorStyle",t[t.cursorSurroundingLines=29]="cursorSurroundingLines",t[t.cursorSurroundingLinesStyle=30]="cursorSurroundingLinesStyle",t[t.cursorWidth=31]="cursorWidth",t[t.disableLayerHinting=32]="disableLayerHinting",t[t.disableMonospaceOptimizations=33]="disableMonospaceOptimizations",t[t.domReadOnly=34]="domReadOnly",t[t.dragAndDrop=35]="dragAndDrop",t[t.dropIntoEditor=36]="dropIntoEditor",t[t.emptySelectionClipboard=37]="emptySelectionClipboard",t[t.experimentalWhitespaceRendering=38]="experimentalWhitespaceRendering",t[t.extraEditorClassName=39]="extraEditorClassName",t[t.fastScrollSensitivity=40]="fastScrollSensitivity",t[t.find=41]="find",t[t.fixedOverflowWidgets=42]="fixedOverflowWidgets",t[t.folding=43]="folding",t[t.foldingStrategy=44]="foldingStrategy",t[t.foldingHighlight=45]="foldingHighlight",t[t.foldingImportsByDefault=46]="foldingImportsByDefault",t[t.foldingMaximumRegions=47]="foldingMaximumRegions",t[t.unfoldOnClickAfterEndOfLine=48]="unfoldOnClickAfterEndOfLine",t[t.fontFamily=49]="fontFamily",t[t.fontInfo=50]="fontInfo",t[t.fontLigatures=51]="fontLigatures",t[t.fontSize=52]="fontSize",t[t.fontWeight=53]="fontWeight",t[t.fontVariations=54]="fontVariations",t[t.formatOnPaste=55]="formatOnPaste",t[t.formatOnType=56]="formatOnType",t[t.glyphMargin=57]="glyphMargin",t[t.gotoLocation=58]="gotoLocation",t[t.hideCursorInOverviewRuler=59]="hideCursorInOverviewRuler",t[t.hover=60]="hover",t[t.inDiffEditor=61]="inDiffEditor",t[t.inlineSuggest=62]="inlineSuggest",t[t.letterSpacing=63]="letterSpacing",t[t.lightbulb=64]="lightbulb",t[t.lineDecorationsWidth=65]="lineDecorationsWidth",t[t.lineHeight=66]="lineHeight",t[t.lineNumbers=67]="lineNumbers",t[t.lineNumbersMinChars=68]="lineNumbersMinChars",t[t.linkedEditing=69]="linkedEditing",t[t.links=70]="links",t[t.matchBrackets=71]="matchBrackets",t[t.minimap=72]="minimap",t[t.mouseStyle=73]="mouseStyle",t[t.mouseWheelScrollSensitivity=74]="mouseWheelScrollSensitivity",t[t.mouseWheelZoom=75]="mouseWheelZoom",t[t.multiCursorMergeOverlapping=76]="multiCursorMergeOverlapping",t[t.multiCursorModifier=77]="multiCursorModifier",t[t.multiCursorPaste=78]="multiCursorPaste",t[t.multiCursorLimit=79]="multiCursorLimit",t[t.occurrencesHighlight=80]="occurrencesHighlight",t[t.overviewRulerBorder=81]="overviewRulerBorder",t[t.overviewRulerLanes=82]="overviewRulerLanes",t[t.padding=83]="padding",t[t.pasteAs=84]="pasteAs",t[t.parameterHints=85]="parameterHints",t[t.peekWidgetDefaultFocus=86]="peekWidgetDefaultFocus",t[t.definitionLinkOpensInPeek=87]="definitionLinkOpensInPeek",t[t.quickSuggestions=88]="quickSuggestions",t[t.quickSuggestionsDelay=89]="quickSuggestionsDelay",t[t.readOnly=90]="readOnly",t[t.readOnlyMessage=91]="readOnlyMessage",t[t.renameOnType=92]="renameOnType",t[t.renderControlCharacters=93]="renderControlCharacters",t[t.renderFinalNewline=94]="renderFinalNewline",t[t.renderLineHighlight=95]="renderLineHighlight",t[t.renderLineHighlightOnlyWhenFocus=96]="renderLineHighlightOnlyWhenFocus",t[t.renderValidationDecorations=97]="renderValidationDecorations",t[t.renderWhitespace=98]="renderWhitespace",t[t.revealHorizontalRightPadding=99]="revealHorizontalRightPadding",t[t.roundedSelection=100]="roundedSelection",t[t.rulers=101]="rulers",t[t.scrollbar=102]="scrollbar",t[t.scrollBeyondLastColumn=103]="scrollBeyondLastColumn",t[t.scrollBeyondLastLine=104]="scrollBeyondLastLine",t[t.scrollPredominantAxis=105]="scrollPredominantAxis",t[t.selectionClipboard=106]="selectionClipboard",t[t.selectionHighlight=107]="selectionHighlight",t[t.selectOnLineNumbers=108]="selectOnLineNumbers",t[t.showFoldingControls=109]="showFoldingControls",t[t.showUnused=110]="showUnused",t[t.snippetSuggestions=111]="snippetSuggestions",t[t.smartSelect=112]="smartSelect",t[t.smoothScrolling=113]="smoothScrolling",t[t.stickyScroll=114]="stickyScroll",t[t.stickyTabStops=115]="stickyTabStops",t[t.stopRenderingLineAfter=116]="stopRenderingLineAfter",t[t.suggest=117]="suggest",t[t.suggestFontSize=118]="suggestFontSize",t[t.suggestLineHeight=119]="suggestLineHeight",t[t.suggestOnTriggerCharacters=120]="suggestOnTriggerCharacters",t[t.suggestSelection=121]="suggestSelection",t[t.tabCompletion=122]="tabCompletion",t[t.tabIndex=123]="tabIndex",t[t.unicodeHighlighting=124]="unicodeHighlighting",t[t.unusualLineTerminators=125]="unusualLineTerminators",t[t.useShadowDOM=126]="useShadowDOM",t[t.useTabStops=127]="useTabStops",t[t.wordBreak=128]="wordBreak",t[t.wordSeparators=129]="wordSeparators",t[t.wordWrap=130]="wordWrap",t[t.wordWrapBreakAfterCharacters=131]="wordWrapBreakAfterCharacters",t[t.wordWrapBreakBeforeCharacters=132]="wordWrapBreakBeforeCharacters",t[t.wordWrapColumn=133]="wordWrapColumn",t[t.wordWrapOverride1=134]="wordWrapOverride1",t[t.wordWrapOverride2=135]="wordWrapOverride2",t[t.wrappingIndent=136]="wrappingIndent",t[t.wrappingStrategy=137]="wrappingStrategy",t[t.showDeprecated=138]="showDeprecated",t[t.inlayHints=139]="inlayHints",t[t.editorClassName=140]="editorClassName",t[t.pixelRatio=141]="pixelRatio",t[t.tabFocusMode=142]="tabFocusMode",t[t.layoutInfo=143]="layoutInfo",t[t.wrappingInfo=144]="wrappingInfo",t[t.defaultColorDecorators=145]="defaultColorDecorators",t[t.colorDecoratorsActivatedOn=146]="colorDecoratorsActivatedOn",t[t.inlineCompletionsAccessibilityVerbose=147]="inlineCompletionsAccessibilityVerbose"}(cn||(cn={})),function(t){t[t.TextDefined=0]="TextDefined",t[t.LF=1]="LF",t[t.CRLF=2]="CRLF"}(an||(an={})),function(t){t[t.LF=0]="LF",t[t.CRLF=1]="CRLF"}(ln||(ln={})),function(t){t[t.Left=1]="Left",t[t.Right=2]="Right"}(un||(un={})),function(t){t[t.None=0]="None",t[t.Indent=1]="Indent",t[t.IndentOutdent=2]="IndentOutdent",t[t.Outdent=3]="Outdent"}(dn||(dn={})),function(t){t[t.Both=0]="Both",t[t.Right=1]="Right",t[t.Left=2]="Left",t[t.None=3]="None"}(fn||(fn={})),function(t){t[t.Type=1]="Type",t[t.Parameter=2]="Parameter"}(pn||(pn={})),function(t){t[t.Automatic=0]="Automatic",t[t.Explicit=1]="Explicit"}(gn||(gn={})),function(t){t[t.DependsOnKbLayout=-1]="DependsOnKbLayout",t[t.Unknown=0]="Unknown",t[t.Backspace=1]="Backspace",t[t.Tab=2]="Tab",t[t.Enter=3]="Enter",t[t.Shift=4]="Shift",t[t.Ctrl=5]="Ctrl",t[t.Alt=6]="Alt",t[t.PauseBreak=7]="PauseBreak",t[t.CapsLock=8]="CapsLock",t[t.Escape=9]="Escape",t[t.Space=10]="Space",t[t.PageUp=11]="PageUp",t[t.PageDown=12]="PageDown",t[t.End=13]="End",t[t.Home=14]="Home",t[t.LeftArrow=15]="LeftArrow",t[t.UpArrow=16]="UpArrow",t[t.RightArrow=17]="RightArrow",t[t.DownArrow=18]="DownArrow",t[t.Insert=19]="Insert",t[t.Delete=20]="Delete",t[t.Digit0=21]="Digit0",t[t.Digit1=22]="Digit1",t[t.Digit2=23]="Digit2",t[t.Digit3=24]="Digit3",t[t.Digit4=25]="Digit4",t[t.Digit5=26]="Digit5",t[t.Digit6=27]="Digit6",t[t.Digit7=28]="Digit7",t[t.Digit8=29]="Digit8",t[t.Digit9=30]="Digit9",t[t.KeyA=31]="KeyA",t[t.KeyB=32]="KeyB",t[t.KeyC=33]="KeyC",t[t.KeyD=34]="KeyD",t[t.KeyE=35]="KeyE",t[t.KeyF=36]="KeyF",t[t.KeyG=37]="KeyG",t[t.KeyH=38]="KeyH",t[t.KeyI=39]="KeyI",t[t.KeyJ=40]="KeyJ",t[t.KeyK=41]="KeyK",t[t.KeyL=42]="KeyL",t[t.KeyM=43]="KeyM",t[t.KeyN=44]="KeyN",t[t.KeyO=45]="KeyO",t[t.KeyP=46]="KeyP",t[t.KeyQ=47]="KeyQ",t[t.KeyR=48]="KeyR",t[t.KeyS=49]="KeyS",t[t.KeyT=50]="KeyT",t[t.KeyU=51]="KeyU",t[t.KeyV=52]="KeyV",t[t.KeyW=53]="KeyW",t[t.KeyX=54]="KeyX",t[t.KeyY=55]="KeyY",t[t.KeyZ=56]="KeyZ",t[t.Meta=57]="Meta",t[t.ContextMenu=58]="ContextMenu",t[t.F1=59]="F1",t[t.F2=60]="F2",t[t.F3=61]="F3",t[t.F4=62]="F4",t[t.F5=63]="F5",t[t.F6=64]="F6",t[t.F7=65]="F7",t[t.F8=66]="F8",t[t.F9=67]="F9",t[t.F10=68]="F10",t[t.F11=69]="F11",t[t.F12=70]="F12",t[t.F13=71]="F13",t[t.F14=72]="F14",t[t.F15=73]="F15",t[t.F16=74]="F16",t[t.F17=75]="F17",t[t.F18=76]="F18",t[t.F19=77]="F19",t[t.F20=78]="F20",t[t.F21=79]="F21",t[t.F22=80]="F22",t[t.F23=81]="F23",t[t.F24=82]="F24",t[t.NumLock=83]="NumLock",t[t.ScrollLock=84]="ScrollLock",t[t.Semicolon=85]="Semicolon",t[t.Equal=86]="Equal",t[t.Comma=87]="Comma",t[t.Minus=88]="Minus",t[t.Period=89]="Period",t[t.Slash=90]="Slash",t[t.Backquote=91]="Backquote",t[t.BracketLeft=92]="BracketLeft",t[t.Backslash=93]="Backslash",t[t.BracketRight=94]="BracketRight",t[t.Quote=95]="Quote",t[t.OEM_8=96]="OEM_8",t[t.IntlBackslash=97]="IntlBackslash",t[t.Numpad0=98]="Numpad0",t[t.Numpad1=99]="Numpad1",t[t.Numpad2=100]="Numpad2",t[t.Numpad3=101]="Numpad3",t[t.Numpad4=102]="Numpad4",t[t.Numpad5=103]="Numpad5",t[t.Numpad6=104]="Numpad6",t[t.Numpad7=105]="Numpad7",t[t.Numpad8=106]="Numpad8",t[t.Numpad9=107]="Numpad9",t[t.NumpadMultiply=108]="NumpadMultiply",t[t.NumpadAdd=109]="NumpadAdd",t[t.NUMPAD_SEPARATOR=110]="NUMPAD_SEPARATOR",t[t.NumpadSubtract=111]="NumpadSubtract",t[t.NumpadDecimal=112]="NumpadDecimal",t[t.NumpadDivide=113]="NumpadDivide",t[t.KEY_IN_COMPOSITION=114]="KEY_IN_COMPOSITION",t[t.ABNT_C1=115]="ABNT_C1",t[t.ABNT_C2=116]="ABNT_C2",t[t.AudioVolumeMute=117]="AudioVolumeMute",t[t.AudioVolumeUp=118]="AudioVolumeUp",t[t.AudioVolumeDown=119]="AudioVolumeDown",t[t.BrowserSearch=120]="BrowserSearch",t[t.BrowserHome=121]="BrowserHome",t[t.BrowserBack=122]="BrowserBack",t[t.BrowserForward=123]="BrowserForward",t[t.MediaTrackNext=124]="MediaTrackNext",t[t.MediaTrackPrevious=125]="MediaTrackPrevious",t[t.MediaStop=126]="MediaStop",t[t.MediaPlayPause=127]="MediaPlayPause",t[t.LaunchMediaPlayer=128]="LaunchMediaPlayer",t[t.LaunchMail=129]="LaunchMail",t[t.LaunchApp2=130]="LaunchApp2",t[t.Clear=131]="Clear",t[t.MAX_VALUE=132]="MAX_VALUE"}(mn||(mn={})),function(t){t[t.Hint=1]="Hint",t[t.Info=2]="Info",t[t.Warning=4]="Warning",t[t.Error=8]="Error"}(wn||(wn={})),function(t){t[t.Unnecessary=1]="Unnecessary",t[t.Deprecated=2]="Deprecated"}(vn||(vn={})),function(t){t[t.Inline=1]="Inline",t[t.Gutter=2]="Gutter"}(bn||(bn={})),function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.TEXTAREA=1]="TEXTAREA",t[t.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",t[t.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",t[t.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",t[t.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",t[t.CONTENT_TEXT=6]="CONTENT_TEXT",t[t.CONTENT_EMPTY=7]="CONTENT_EMPTY",t[t.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",t[t.CONTENT_WIDGET=9]="CONTENT_WIDGET",t[t.OVERVIEW_RULER=10]="OVERVIEW_RULER",t[t.SCROLLBAR=11]="SCROLLBAR",t[t.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",t[t.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"}(yn||(yn={})),function(t){t[t.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",t[t.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",t[t.TOP_CENTER=2]="TOP_CENTER"}(kn||(kn={})),function(t){t[t.Left=1]="Left",t[t.Center=2]="Center",t[t.Right=4]="Right",t[t.Full=7]="Full"}(xn||(xn={})),function(t){t[t.Left=0]="Left",t[t.Right=1]="Right",t[t.None=2]="None",t[t.LeftOfInjectedText=3]="LeftOfInjectedText",t[t.RightOfInjectedText=4]="RightOfInjectedText"}(Cn||(Cn={})),function(t){t[t.Off=0]="Off",t[t.On=1]="On",t[t.Relative=2]="Relative",t[t.Interval=3]="Interval",t[t.Custom=4]="Custom"}(Sn||(Sn={})),function(t){t[t.None=0]="None",t[t.Text=1]="Text",t[t.Blocks=2]="Blocks"}(Dn||(Dn={})),function(t){t[t.Smooth=0]="Smooth",t[t.Immediate=1]="Immediate"}(En||(En={})),function(t){t[t.Auto=1]="Auto",t[t.Hidden=2]="Hidden",t[t.Visible=3]="Visible"}(An||(An={})),function(t){t[t.LTR=0]="LTR",t[t.RTL=1]="RTL"}(Mn||(Mn={})),function(t){t.Off="off",t.OnCode="onCode",t.On="on"}(Ln||(Ln={})),function(t){t[t.Invoke=1]="Invoke",t[t.TriggerCharacter=2]="TriggerCharacter",t[t.ContentChange=3]="ContentChange"}(Fn||(Fn={})),function(t){t[t.File=0]="File",t[t.Module=1]="Module",t[t.Namespace=2]="Namespace",t[t.Package=3]="Package",t[t.Class=4]="Class",t[t.Method=5]="Method",t[t.Property=6]="Property",t[t.Field=7]="Field",t[t.Constructor=8]="Constructor",t[t.Enum=9]="Enum",t[t.Interface=10]="Interface",t[t.Function=11]="Function",t[t.Variable=12]="Variable",t[t.Constant=13]="Constant",t[t.String=14]="String",t[t.Number=15]="Number",t[t.Boolean=16]="Boolean",t[t.Array=17]="Array",t[t.Object=18]="Object",t[t.Key=19]="Key",t[t.Null=20]="Null",t[t.EnumMember=21]="EnumMember",t[t.Struct=22]="Struct",t[t.Event=23]="Event",t[t.Operator=24]="Operator",t[t.TypeParameter=25]="TypeParameter"}(Tn||(Tn={})),function(t){t[t.Deprecated=1]="Deprecated"}(Rn||(Rn={})),function(t){t[t.Hidden=0]="Hidden",t[t.Blink=1]="Blink",t[t.Smooth=2]="Smooth",t[t.Phase=3]="Phase",t[t.Expand=4]="Expand",t[t.Solid=5]="Solid"}(On||(On={})),function(t){t[t.Line=1]="Line",t[t.Block=2]="Block",t[t.Underline=3]="Underline",t[t.LineThin=4]="LineThin",t[t.BlockOutline=5]="BlockOutline",t[t.UnderlineThin=6]="UnderlineThin"}(In||(In={})),function(t){t[t.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",t[t.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",t[t.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",t[t.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"}(_n||(_n={})),function(t){t[t.None=0]="None",t[t.Same=1]="Same",t[t.Indent=2]="Indent",t[t.DeepIndent=3]="DeepIndent"}(Nn||(Nn={}));class Bn{static chord(t,i){return Ne(t,i)}}function Pn(){return{editor:void 0,languages:void 0,CancellationTokenSource:Ce,Emitter:de,KeyCode:mn,KeyMod:Bn,Position:As,Range:Ms,Selection:Ls,SelectionDirection:Mn,MarkerSeverity:wn,MarkerTag:vn,Uri:ms,Token:_s}}Bn.CtrlCmd=2048,Bn.Shift=1024,Bn.Alt=512,Bn.WinCtrl=256;const $n=window,Wn=$n;class jn{get cachedValues(){return this._map}constructor(t){this.fn=t,this._map=new Map}get(t){if(this._map.has(t))return this._map.get(t);const i=this.fn(t);return this._map.set(t,i),i}}class zn{constructor(t){this.executor=t,this._didRun=!1}get value(){if(!this._didRun)try{this._value=this.executor()}catch(t){this._error=t}finally{this._didRun=!0}if(this._error)throw this._error;return this._value}get rawValue(){return this._value}}var Hn;function Vn(t){return!t||"string"!=typeof t||0===t.trim().length}const Un=/{(\d+)}/g;function qn(t,...i){return 0===i.length?t:t.replace(Un,(function(t,e){const s=parseInt(e,10);return isNaN(s)||s<0||s>=i.length?t:i[s]}))}function Kn(t){return t.replace(/[<>&]/g,(function(t){switch(t){case"<":return"<";case">":return">";case"&":return"&";default:return t}}))}function Gn(t){return t.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function Zn(t,i=" "){return Jn(Qn(t,i),i)}function Qn(t,i){if(!t||!i)return t;const e=i.length;if(0===e||0===t.length)return t;let s=0;for(;t.indexOf(i,s)===s;)s+=e;return t.substring(s)}function Jn(t,i){if(!t||!i)return t;const e=i.length,s=t.length;if(0===e||0===s)return t;let n=s,o=-1;for(;o=t.lastIndexOf(i,n-1),-1!==o&&o+e===n;){if(0===o)return"";n=o}return t.substring(0,n)}function Yn(t,i,e={}){if(!t)throw new Error("Cannot create regex from empty string");i||(t=Gn(t)),e.wholeWord&&(/\B/.test(t.charAt(0))||(t="\\b"+t),/\B/.test(t.charAt(t.length-1))||(t+="\\b"));let s="";return e.global&&(s+="g"),e.matchCase||(s+="i"),e.multiline&&(s+="m"),e.unicode&&(s+="u"),new RegExp(t,s)}function Xn(t){return t.split(/\r\n|\r|\n/)}function to(t){for(let i=0,e=t.length;i=0;e--){const i=t.charCodeAt(e);if(32!==i&&9!==i)return e}return-1}function so(t,i){return ti?1:0}function no(t,i,e=0,s=t.length,n=0,o=i.length){for(;eo)return 1}const r=s-e,h=o-n;return rh?1:0}function oo(t,i){return ro(t,i,0,t.length,0,i.length)}function ro(t,i,e=0,s=t.length,n=0,o=i.length){for(;e=128||h>=128)return no(t.toLowerCase(),i.toLowerCase(),e,s,n,o);co(r)&&(r-=32),co(h)&&(h-=32);const c=r-h;if(0!==c)return c}const r=s-e,h=o-n;return rh?1:0}function ho(t){return t>=48&&t<=57}function co(t){return t>=97&&t<=122}function ao(t){return t>=65&&t<=90}function lo(t,i){return t.length===i.length&&0===ro(t,i)}function uo(t,i){return!(i.length>t.length)&&0===ro(t,i,0,i.length)}function fo(t,i){const e=Math.min(t.length,i.length);let s;for(s=0;s1){const s=t.charCodeAt(i-2);if(go(s))return wo(s,e)}return e}(this._str,this._offset);return this._offset-=t>=65536?2:1,t}nextCodePoint(){const t=vo(this._str,this._len,this._offset);return this._offset+=t>=65536?2:1,t}eol(){return this._offset>=this._len}}class yo{get offset(){return this._iterator.offset}constructor(t,i=0){this._iterator=new bo(t,i)}nextGraphemeLength(){const t=_o.getInstance(),i=this._iterator,e=i.offset;let s=t.getGraphemeBreakType(i.nextCodePoint());for(;!i.eol();){const e=i.offset,n=t.getGraphemeBreakType(i.nextCodePoint());if(Io(s,n)){i.setOffset(e);break}s=n}return i.offset-e}prevGraphemeLength(){const t=_o.getInstance(),i=this._iterator,e=i.offset;let s=t.getGraphemeBreakType(i.prevCodePoint());for(;i.offset>0;){const e=i.offset,n=t.getGraphemeBreakType(i.prevCodePoint());if(Io(n,s)){i.setOffset(e);break}s=n}return e-i.offset}eol(){return this._iterator.eol()}}function ko(t,i){return new yo(t,i).nextGraphemeLength()}function xo(t,i){return new yo(t,i).prevGraphemeLength()}let Co;function So(t){return Co||(Co=/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/),Co.test(t)}const Do=/^[\t\n\r\x20-\x7E]*$/;function Eo(t){return Do.test(t)}const Ao=/[\u2028\u2029]/;function Mo(t){return Ao.test(t)}function Lo(t){return t>=11904&&t<=55215||t>=63744&&t<=64255||t>=65281&&t<=65374}function Fo(t){return t>=127462&&t<=127487||8986===t||8987===t||9200===t||9203===t||t>=9728&&t<=10175||11088===t||11093===t||t>=127744&&t<=128591||t>=128640&&t<=128764||t>=128992&&t<=129008||t>=129280&&t<=129535||t>=129648&&t<=129782}const To=String.fromCharCode(65279);function Ro(t){return!!(t&&t.length>0&&65279===t.charCodeAt(0))}function Oo(t){return t%=52,String.fromCharCode(t<26?97+t:65+t-26)}function Io(t,i){return 0===t?5!==i&&7!==i:!(2===t&&3===i||4!==t&&2!==t&&3!==t&&4!==i&&2!==i&&3!==i&&(8===t&&(8===i||9===i||11===i||12===i)||!(11!==t&&9!==t||9!==i&&10!==i)||(12===t||10===t)&&10===i||5===i||13===i||7===i||1===t||13===t&&14===i||6===t&&6===i))}class _o{static getInstance(){return _o._INSTANCE||(_o._INSTANCE=new _o),_o._INSTANCE}constructor(){this._data=JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}getGraphemeBreakType(t){if(t<32)return 10===t?3:13===t?2:4;if(t<127)return 0;const i=this._data,e=i.length/3;let s=1;for(;s<=e;)if(ti[3*s+1]))return i[3*s+2];s=2*s+1}return 0}}function No(t){return 127995<=t&&t<=127999}_o._INSTANCE=null;class Bo{static getInstance(t){return Hn.cache.get(Array.from(t))}static getLocales(){return Hn._locales.value}constructor(t){this.confusableDictionary=t}isAmbiguous(t){return this.confusableDictionary.has(t)}getPrimaryConfusable(t){return this.confusableDictionary.get(t)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}}Hn=Bo,Bo.ambiguousCharacterData=new zn((()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}'))),Bo.cache=new class{constructor(t){this.fn=t,this.lastCache=void 0,this.lastArgKey=void 0}get(t){const i=JSON.stringify(t);return this.lastArgKey!==i&&(this.lastArgKey=i,this.lastCache=this.fn(t)),this.lastCache}}((t=>{function i(t){const i=new Map;for(let e=0;e!t.startsWith("_")&&t in s));0===o.length&&(o=["_default"]);for(const t of o)n=e(n,i(s[t]));const r=function(t,i){const e=new Map(t);for(const[t,s]of i)e.set(t,s);return e}(i(s._common),n);return new Hn(r)})),Bo._locales=new zn((()=>Object.keys(Hn.ambiguousCharacterData.value).filter((t=>!t.startsWith("_")))));class Po{static getRawData(){return JSON.parse("[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]")}static getData(){return this._data||(this._data=new Set(Po.getRawData())),this._data}static isInvisibleCharacter(t){return Po.getData().has(t)}static get codePoints(){return Po.getData()}}Po._data=void 0;class $o{constructor(){this._zoomFactor=1}getZoomFactor(){return this._zoomFactor}}$o.INSTANCE=new $o;class Wo extends te{constructor(){super(),this._onDidChange=this._register(new de),this.onDidChange=this._onDidChange.event,this._listener=()=>this._handleChange(!0),this._mediaQueryList=null,this._handleChange(!1)}_handleChange(t){var i;null===(i=this._mediaQueryList)||void 0===i||i.removeEventListener("change",this._listener),this._mediaQueryList=Wn.matchMedia(`(resolution: ${Wn.devicePixelRatio}dppx)`),this._mediaQueryList.addEventListener("change",this._listener),t&&this._onDidChange.fire()}}class jo extends te{get value(){return this._value}constructor(){super(),this._onDidChange=this._register(new de),this.onDidChange=this._onDidChange.event,this._value=this._getPixelRatio();const t=this._register(new Wo);this._register(t.onDidChange((()=>{this._value=this._getPixelRatio(),this._onDidChange.fire(this._value)})))}_getPixelRatio(){const t=document.createElement("canvas").getContext("2d");return(Wn.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)}}function zo(t,i){"string"==typeof t&&(t=Wn.matchMedia(t)),t.addEventListener("change",i)}const Ho=new class{constructor(){this._pixelRatioMonitor=null}_getOrCreatePixelRatioMonitor(){return this._pixelRatioMonitor||(this._pixelRatioMonitor=new jo),this._pixelRatioMonitor}get value(){return this._getOrCreatePixelRatioMonitor().value}get onDidChange(){return this._getOrCreatePixelRatioMonitor().onDidChange}},Vo=navigator.userAgent,Uo=Vo.indexOf("Firefox")>=0,qo=Vo.indexOf("AppleWebKit")>=0,Ko=Vo.indexOf("Chrome")>=0,Go=!Ko&&Vo.indexOf("Safari")>=0,Zo=!Ko&&!Go&&qo;Vo.indexOf("Electron/");const Qo=Vo.indexOf("Android")>=0;let Jo=!1;if(Wn.matchMedia){const t=Wn.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),i=Wn.matchMedia("(display-mode: fullscreen)");Jo=t.matches,zo(t,(({matches:t})=>{Jo&&i.matches||(Jo=t)}))}class Yo{constructor(t){this.domNode=t,this._maxWidth="",this._width="",this._height="",this._top="",this._left="",this._bottom="",this._right="",this._paddingLeft="",this._fontFamily="",this._fontWeight="",this._fontSize="",this._fontStyle="",this._fontFeatureSettings="",this._fontVariationSettings="",this._textDecoration="",this._lineHeight="",this._letterSpacing="",this._className="",this._display="",this._position="",this._visibility="",this._color="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}setMaxWidth(t){const i=Xo(t);this._maxWidth!==i&&(this._maxWidth=i,this.domNode.style.maxWidth=this._maxWidth)}setWidth(t){const i=Xo(t);this._width!==i&&(this._width=i,this.domNode.style.width=this._width)}setHeight(t){const i=Xo(t);this._height!==i&&(this._height=i,this.domNode.style.height=this._height)}setTop(t){const i=Xo(t);this._top!==i&&(this._top=i,this.domNode.style.top=this._top)}setLeft(t){const i=Xo(t);this._left!==i&&(this._left=i,this.domNode.style.left=this._left)}setBottom(t){const i=Xo(t);this._bottom!==i&&(this._bottom=i,this.domNode.style.bottom=this._bottom)}setRight(t){const i=Xo(t);this._right!==i&&(this._right=i,this.domNode.style.right=this._right)}setPaddingLeft(t){const i=Xo(t);this._paddingLeft!==i&&(this._paddingLeft=i,this.domNode.style.paddingLeft=this._paddingLeft)}setFontFamily(t){this._fontFamily!==t&&(this._fontFamily=t,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(t){this._fontWeight!==t&&(this._fontWeight=t,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(t){const i=Xo(t);this._fontSize!==i&&(this._fontSize=i,this.domNode.style.fontSize=this._fontSize)}setFontStyle(t){this._fontStyle!==t&&(this._fontStyle=t,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(t){this._fontFeatureSettings!==t&&(this._fontFeatureSettings=t,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setFontVariationSettings(t){this._fontVariationSettings!==t&&(this._fontVariationSettings=t,this.domNode.style.fontVariationSettings=this._fontVariationSettings)}setTextDecoration(t){this._textDecoration!==t&&(this._textDecoration=t,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(t){const i=Xo(t);this._lineHeight!==i&&(this._lineHeight=i,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(t){const i=Xo(t);this._letterSpacing!==i&&(this._letterSpacing=i,this.domNode.style.letterSpacing=this._letterSpacing)}setClassName(t){this._className!==t&&(this._className=t,this.domNode.className=this._className)}toggleClassName(t,i){this.domNode.classList.toggle(t,i),this._className=this.domNode.className}setDisplay(t){this._display!==t&&(this._display=t,this.domNode.style.display=this._display)}setPosition(t){this._position!==t&&(this._position=t,this.domNode.style.position=this._position)}setVisibility(t){this._visibility!==t&&(this._visibility=t,this.domNode.style.visibility=this._visibility)}setColor(t){this._color!==t&&(this._color=t,this.domNode.style.color=this._color)}setBackgroundColor(t){this._backgroundColor!==t&&(this._backgroundColor=t,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(t){this._layerHint!==t&&(this._layerHint=t,this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":"")}setBoxShadow(t){this._boxShadow!==t&&(this._boxShadow=t,this.domNode.style.boxShadow=t)}setContain(t){this._contain!==t&&(this._contain=t,this.domNode.style.contain=this._contain)}setAttribute(t,i){this.domNode.setAttribute(t,i)}removeAttribute(t){this.domNode.removeAttribute(t)}appendChild(t){this.domNode.appendChild(t.domNode)}removeChild(t){this.domNode.removeChild(t.domNode)}}function Xo(t){return"number"==typeof t?`${t}px`:t}function tr(t){return new Yo(t)}function ir(t,i){t instanceof Yo?(t.setFontFamily(i.getMassagedFontFamily()),t.setFontWeight(i.fontWeight),t.setFontSize(i.fontSize),t.setFontFeatureSettings(i.fontFeatureSettings),t.setFontVariationSettings(i.fontVariationSettings),t.setLineHeight(i.lineHeight),t.setLetterSpacing(i.letterSpacing)):(t.style.fontFamily=i.getMassagedFontFamily(),t.style.fontWeight=i.fontWeight,t.style.fontSize=i.fontSize+"px",t.style.fontFeatureSettings=i.fontFeatureSettings,t.style.fontVariationSettings=i.fontVariationSettings,t.style.lineHeight=i.lineHeight+"px",t.style.letterSpacing=i.letterSpacing+"px")}class er{constructor(t,i){this.chr=t,this.type=i,this.width=0}fulfill(t){this.width=t}}class sr{constructor(t,i){this._bareFontInfo=t,this._requests=i,this._container=null,this._testElements=null}read(){this._createDomElements(),Wn.document.body.appendChild(this._container),this._readFromDomElements(),Wn.document.body.removeChild(this._container),this._container=null,this._testElements=null}_createDomElements(){const t=document.createElement("div");t.style.position="absolute",t.style.top="-50000px",t.style.width="50000px";const i=document.createElement("div");ir(i,this._bareFontInfo),t.appendChild(i);const e=document.createElement("div");ir(e,this._bareFontInfo),e.style.fontWeight="bold",t.appendChild(e);const s=document.createElement("div");ir(s,this._bareFontInfo),s.style.fontStyle="italic",t.appendChild(s);const n=[];for(const t of this._requests){let o;0===t.type&&(o=i),2===t.type&&(o=e),1===t.type&&(o=s),o.appendChild(document.createElement("br"));const r=document.createElement("span");sr._render(r,t),o.appendChild(r),n.push(r)}this._container=t,this._testElements=n}static _render(t,i){if(" "===i.chr){let i=" ";for(let t=0;t<8;t++)i+=i;t.innerText=i}else{let e=i.chr;for(let t=0;t<8;t++)e+=e;t.textContent=e}}_readFromDomElements(){for(let t=0,i=this._requests.length;tthis._values[t]))}}const ar=new class extends te{constructor(){super(),this._onDidChange=this._register(new de),this.onDidChange=this._onDidChange.event,this._cache=new cr,this._evictUntrustedReadingsTimeout=-1}dispose(){-1!==this._evictUntrustedReadingsTimeout&&(clearTimeout(this._evictUntrustedReadingsTimeout),this._evictUntrustedReadingsTimeout=-1),super.dispose()}clearAllFontInfos(){this._cache=new cr,this._onDidChange.fire()}_writeToCache(t,i){this._cache.put(t,i),i.isTrusted||-1!==this._evictUntrustedReadingsTimeout||(this._evictUntrustedReadingsTimeout=$n.setTimeout((()=>{this._evictUntrustedReadingsTimeout=-1,this._evictUntrustedReadings()}),5e3))}_evictUntrustedReadings(){const t=this._cache.getValues();let i=!1;for(const e of t)e.isTrusted||(i=!0,this._cache.remove(e));i&&this._onDidChange.fire()}readFontInfo(t){if(!this._cache.has(t)){let i=this._actualReadFontInfo(t);(i.typicalHalfwidthCharacterWidth<=2||i.typicalFullwidthCharacterWidth<=2||i.spaceWidth<=2||i.maxDigitWidth<=2)&&(i=new hr({pixelRatio:Ho.value,fontFamily:i.fontFamily,fontWeight:i.fontWeight,fontSize:i.fontSize,fontFeatureSettings:i.fontFeatureSettings,fontVariationSettings:i.fontVariationSettings,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,isMonospace:i.isMonospace,typicalHalfwidthCharacterWidth:Math.max(i.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(i.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:i.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(i.spaceWidth,5),middotWidth:Math.max(i.middotWidth,5),wsmiddotWidth:Math.max(i.wsmiddotWidth,5),maxDigitWidth:Math.max(i.maxDigitWidth,5)},!1)),this._writeToCache(t,i)}return this._cache.get(t)}_createRequest(t,i,e,s){const n=new er(t,i);return e.push(n),null==s||s.push(n),n}_actualReadFontInfo(t){const i=[],e=[],s=this._createRequest("n",0,i,e),n=this._createRequest("m",0,i,null),o=this._createRequest(" ",0,i,e),r=this._createRequest("0",0,i,e),h=this._createRequest("1",0,i,e),c=this._createRequest("2",0,i,e),a=this._createRequest("3",0,i,e),l=this._createRequest("4",0,i,e),u=this._createRequest("5",0,i,e),d=this._createRequest("6",0,i,e),f=this._createRequest("7",0,i,e),p=this._createRequest("8",0,i,e),g=this._createRequest("9",0,i,e),m=this._createRequest("→",0,i,e),w=this._createRequest("→",0,i,null),v=this._createRequest("·",0,i,e),b=this._createRequest(String.fromCharCode(11825),0,i,null),y="|/-_ilm%";for(let t=0,s=8;t.001){x=!1;break}}let S=!0;return x&&w.width!==C&&(S=!1),w.width>m.width&&(S=!1),new hr({pixelRatio:Ho.value,fontFamily:t.fontFamily,fontWeight:t.fontWeight,fontSize:t.fontSize,fontFeatureSettings:t.fontFeatureSettings,fontVariationSettings:t.fontVariationSettings,lineHeight:t.lineHeight,letterSpacing:t.letterSpacing,isMonospace:x,typicalHalfwidthCharacterWidth:s.width,typicalFullwidthCharacterWidth:n.width,canUseHalfwidthRightwardsArrow:S,spaceWidth:o.width,middotWidth:v.width,wsmiddotWidth:b.width,maxDigitWidth:k},!0)}};var lr;!function(t){t.serviceIds=new Map,t.DI_TARGET="$di$target",t.DI_DEPENDENCIES="$di$dependencies",t.getServiceDependencies=function(i){return i[t.DI_DEPENDENCIES]||[]}}(lr||(lr={}));const ur=dr("instantiationService");function dr(t){if(lr.serviceIds.has(t))return lr.serviceIds.get(t);const i=function(t,e,s){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");!function(t,i,e){i[lr.DI_TARGET]===i?i[lr.DI_DEPENDENCIES].push({id:t,index:e}):(i[lr.DI_DEPENDENCIES]=[{id:t,index:e}],i[lr.DI_TARGET]=i)}(i,t,s)};return i.toString=()=>t,lr.serviceIds.set(t,i),i}const fr=dr("codeEditorService"),pr=dr("modelService"),gr=dr("textModelService");class mr extends te{constructor(t,i="",e="",s=!0,n){super(),this._onDidChange=this._register(new de),this.onDidChange=this._onDidChange.event,this._enabled=!0,this._id=t,this._label=i,this._cssClass=e,this._enabled=s,this._actionCallback=n}get id(){return this._id}get label(){return this._label}set label(t){this._setLabel(t)}_setLabel(t){this._label!==t&&(this._label=t,this._onDidChange.fire({label:t}))}get tooltip(){return this._tooltip||""}set tooltip(t){this._setTooltip(t)}_setTooltip(t){this._tooltip!==t&&(this._tooltip=t,this._onDidChange.fire({tooltip:t}))}get class(){return this._cssClass}set class(t){this._setClass(t)}_setClass(t){this._cssClass!==t&&(this._cssClass=t,this._onDidChange.fire({class:t}))}get enabled(){return this._enabled}set enabled(t){this._setEnabled(t)}_setEnabled(t){this._enabled!==t&&(this._enabled=t,this._onDidChange.fire({enabled:t}))}get checked(){return this._checked}set checked(t){this._setChecked(t)}_setChecked(t){this._checked!==t&&(this._checked=t,this._onDidChange.fire({checked:t}))}async run(t,i){this._actionCallback&&await this._actionCallback(t)}}class wr extends te{constructor(){super(...arguments),this._onWillRun=this._register(new de),this.onWillRun=this._onWillRun.event,this._onDidRun=this._register(new de),this.onDidRun=this._onDidRun.event}async run(t,i){if(!t.enabled)return;let e;this._onWillRun.fire({action:t});try{await this.runAction(t,i)}catch(t){e=t}this._onDidRun.fire({action:t,error:e})}async runAction(t,i){await t.run(i)}}class vr{constructor(){this.id=vr.ID,this.label="",this.tooltip="",this.class="separator",this.enabled=!1,this.checked=!1}static join(...t){let i=[];for(const e of t)e.length&&(i=i.length?[...i,new vr,...e]:e);return i}async run(){}}vr.ID="vs.actions.separator";class br{get actions(){return this._actions}constructor(t,i,e,s){this.tooltip="",this.enabled=!0,this.checked=void 0,this.id=t,this.label=i,this.class=s,this._actions=e}async run(){}}class yr extends mr{constructor(){super(yr.ID,ot(0,"(empty)"),void 0,!1)}}function kr(t){var i,e;return{id:t.id,label:t.label,class:t.class,enabled:null===(i=t.enabled)||void 0===i||i,checked:null!==(e=t.checked)&&void 0!==e&&e,run:async(...i)=>t.run(...i),tooltip:t.label}}var xr,Cr;yr.ID="vs.actions.empty",function(t){t.isThemeColor=function(t){return t&&"object"==typeof t&&"string"==typeof t.id}}(xr||(xr={})),function(t){t.iconNameSegment="[A-Za-z0-9]+",t.iconNameExpression="[A-Za-z0-9-]+",t.iconModifierExpression="~[A-Za-z]+",t.iconNameCharacter="[A-Za-z0-9~-]";const i=new RegExp(`^(${t.iconNameExpression})(${t.iconModifierExpression})?$`);function e(t){const s=i.exec(t.id);if(!s)return e(Os.error);const[,n,o]=s,r=["codicon","codicon-"+n];return o&&r.push("codicon-modifier-"+o.substring(1)),r}t.asClassNameArray=e,t.asClassName=function(t){return e(t).join(" ")},t.asCSSSelector=function(t){return"."+e(t).join(".")},t.isThemeIcon=function(t){return t&&"object"==typeof t&&"string"==typeof t.id&&(void 0===t.color||xr.isThemeColor(t.color))};const s=new RegExp(`^\\$\\((${t.iconNameExpression}(?:${t.iconModifierExpression})?)\\)$`);t.fromString=function(t){const i=s.exec(t);if(!i)return;const[,e]=i;return{id:e}},t.fromId=function(t){return{id:t}},t.modify=function(t,i){let e=t.id;const s=e.lastIndexOf("~");return-1!==s&&(e=e.substring(0,s)),i&&(e=`${e}~${i}`),{id:e}},t.getModifier=function(t){const i=t.id.lastIndexOf("~");if(-1!==i)return t.id.substring(i+1)},t.isEqual=function(t,i){var e,s;return t.id===i.id&&(null===(e=t.color)||void 0===e?void 0:e.id)===(null===(s=i.color)||void 0===s?void 0:s.id)}}(Cr||(Cr={}));const Sr=dr("commandService"),Dr=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new de,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(t,i){if(!t)throw new Error("invalid command");if("string"==typeof t){if(!i)throw new Error("invalid command");return this.registerCommand({id:t,handler:i})}if(t.metadata&&Array.isArray(t.metadata.args)){const i=[];for(const e of t.metadata.args)i.push(e.constraint);const e=t.handler;t.handler=function(t,...s){return function(t,i){const e=Math.min(t.length,i.length);for(let s=0;s{n();const t=this._commands.get(e);(null==t?void 0:t.isEmpty())&&this._commands.delete(e)}));return this._onDidRegisterCommand.fire(e),o}registerCommandAlias(t,i){return Dr.registerCommand(t,((t,...e)=>t.get(Sr).executeCommand(i,...e)))}getCommand(t){const i=this._commands.get(t);if(i&&!i.isEmpty())return Ht.first(i)}getCommands(){const t=new Map;for(const i of this._commands.keys()){const e=this.getCommand(i);e&&t.set(i,e)}return t}};function Er(...t){switch(t.length){case 1:return ot(0,"Did you mean {0}?",t[0]);case 2:return ot(0,"Did you mean {0} or {1}?",t[0],t[1]);case 3:return ot(0,"Did you mean {0}, {1} or {2}?",t[0],t[1],t[2]);default:return}}Dr.registerCommand("noop",(()=>{}));const Ar=ot(0,"Did you forget to open or close the quote?"),Mr=ot(0,"Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\/'.");class Lr{constructor(){this._input="",this._start=0,this._current=0,this._tokens=[],this._errors=[],this.stringRe=/[a-zA-Z0-9_<>\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy}static getLexeme(t){switch(t.type){case 0:return"(";case 1:return")";case 2:return"!";case 3:return t.isTripleEq?"===":"==";case 4:return t.isTripleEq?"!==":"!=";case 5:return"<";case 6:return"<=";case 7:case 8:return">=";case 9:return"=~";case 10:case 17:case 18:case 19:return t.lexeme;case 11:return"true";case 12:return"false";case 13:return"in";case 14:return"not";case 15:return"&&";case 16:return"||";case 20:return"EOF";default:throw Vi(`unhandled token type: ${JSON.stringify(t)}; have you forgotten to add a case?`)}}reset(t){return this._input=t,this._start=0,this._current=0,this._tokens=[],this._errors=[],this}scan(){for(;!this._isAtEnd();)switch(this._start=this._current,this._advance()){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){const t=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:t})}else this._addToken(2);break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){const t=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:t})}else this._match(126)?this._addToken(9):this._error(Er("==","=~"));break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:this._match(38)?this._addToken(15):this._error(Er("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(Er("||"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(t){return!this._isAtEnd()&&this._input.charCodeAt(this._current)===t&&(this._current++,!0)}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(t){this._tokens.push({type:t,offset:this._start})}_error(t){const i=this._start,e=this._input.substring(this._start,this._current),s={type:19,offset:this._start,lexeme:e};this._errors.push({offset:i,lexeme:e,additionalInfo:t}),this._tokens.push(s)}_string(){this.stringRe.lastIndex=this._start;const t=this.stringRe.exec(this._input);if(t){this._current=this._start+t[0].length;const i=this._input.substring(this._start,this._current),e=Lr._keywords.get(i);e?this._addToken(e):this._tokens.push({type:17,lexeme:i,offset:this._start})}}_quotedString(){for(;39!==this._peek()&&!this._isAtEnd();)this._advance();this._isAtEnd()?this._error(Ar):(this._advance(),this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1}))}_regex(){let t=this._current,i=!1,e=!1;for(;;){if(t>=this._input.length)return this._current=t,void this._error(Mr);const s=this._input.charCodeAt(t);if(i)i=!1;else{if(47===s&&!e){t++;break}91===s?e=!0:92===s?i=!0:93===s&&(e=!1)}t++}for(;t=this._input.length}}Lr._regexFlags=new Set(["i","g","s","m","y","u"].map((t=>t.charCodeAt(0)))),Lr._keywords=new Map([["not",14],["in",13],["false",12],["true",11]]);const Fr=new Map;Fr.set("false",!1),Fr.set("true",!0),Fr.set("isMac",Ct),Fr.set("isLinux",St),Fr.set("isWindows",xt),Fr.set("isWeb",Et),Fr.set("isMacNative",Ct&&!Et),Fr.set("isEdge",jt),Fr.set("isFirefox",$t),Fr.set("isChrome",Pt),Fr.set("isSafari",Wt);const Tr=Object.prototype.hasOwnProperty,Rr={regexParsingWithErrorRecovery:!0},Or=ot(0,"Empty context key expression"),Ir=ot(0,"Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively."),_r=ot(0,"'in' after 'not'."),Nr=ot(0,"closing parenthesis ')'"),Br=ot(0,"Unexpected token"),Pr=ot(0,"Did you forget to put && or || before the token?"),$r=ot(0,"Unexpected end of expression"),Wr=ot(0,"Did you forget to put a context key?");class jr{constructor(t=Rr){this._config=t,this._scanner=new Lr,this._tokens=[],this._current=0,this._parsingErrors=[],this._flagsGYRe=/g|y/g}parse(t){if(""!==t){this._tokens=this._scanner.reset(t).scan(),this._current=0,this._parsingErrors=[];try{const t=this._expr();if(!this._isAtEnd()){const t=this._peek(),i=17===t.type?Pr:void 0;throw this._parsingErrors.push({message:Br,offset:t.offset,lexeme:Lr.getLexeme(t),additionalInfo:i}),jr._parseError}return t}catch(t){if(t!==jr._parseError)throw t;return}}else this._parsingErrors.push({message:Or,offset:0,lexeme:"",additionalInfo:Ir})}_expr(){return this._or()}_or(){const t=[this._and()];for(;this._matchOne(16);){const i=this._and();t.push(i)}return 1===t.length?t[0]:zr.or(...t)}_and(){const t=[this._term()];for(;this._matchOne(15);){const i=this._term();t.push(i)}return 1===t.length?t[0]:zr.and(...t)}_term(){if(this._matchOne(2)){const t=this._peek();switch(t.type){case 11:return this._advance(),Vr.INSTANCE;case 12:return this._advance(),Ur.INSTANCE;case 0:{this._advance();const t=this._expr();return this._consume(1,Nr),null==t?void 0:t.negate()}case 17:return this._advance(),Jr.create(t.lexeme);default:throw this._errExpectedButGot("KEY | true | false | '(' expression ')'",t)}}return this._primary()}_primary(){const t=this._peek();switch(t.type){case 11:return this._advance(),zr.true();case 12:return this._advance(),zr.false();case 0:{this._advance();const t=this._expr();return this._consume(1,Nr),t}case 17:{const i=t.lexeme;if(this._advance(),this._matchOne(9)){const t=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),10!==t.type)throw this._errExpectedButGot("REGEX",t);const e=t.lexeme,s=e.lastIndexOf("/"),n=s===e.length-1?void 0:this._removeFlagsGY(e.substring(s+1));let o;try{o=new RegExp(e.substring(1,s),n)}catch(i){throw this._errExpectedButGot("REGEX",t)}return sh.create(i,o)}switch(t.type){case 10:case 19:{const e=[t.lexeme];this._advance();let s=this._peek(),n=0;for(let i=0;i=0){const o=e.slice(i+1,n),r="i"===e[n+1]?"i":"";try{s=new RegExp(o,r)}catch(i){throw this._errExpectedButGot("REGEX",t)}}}if(null===s)throw this._errExpectedButGot("REGEX",t);return sh.create(i,s)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,_r);const t=this._value();return zr.notIn(i,t)}switch(this._peek().type){case 3:{this._advance();const t=this._value();if(18===this._previous().type)return zr.equals(i,t);switch(t){case"true":return zr.has(i);case"false":return zr.not(i);default:return zr.equals(i,t)}}case 4:{this._advance();const t=this._value();if(18===this._previous().type)return zr.notEquals(i,t);switch(t){case"true":return zr.not(i);case"false":return zr.has(i);default:return zr.notEquals(i,t)}}case 5:return this._advance(),ih.create(i,this._value());case 6:return this._advance(),eh.create(i,this._value());case 7:return this._advance(),Xr.create(i,this._value());case 8:return this._advance(),th.create(i,this._value());case 13:return this._advance(),zr.in(i,this._value());default:return zr.has(i)}}case 20:throw this._parsingErrors.push({message:$r,offset:t.offset,lexeme:"",additionalInfo:Wr}),jr._parseError;default:throw this._errExpectedButGot("true | false | KEY \n\t| KEY '=~' REGEX \n\t| KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value",this._peek())}}_value(){const t=this._peek();switch(t.type){case 17:case 18:return this._advance(),t.lexeme;case 11:return this._advance(),"true";case 12:return this._advance(),"false";case 13:return this._advance(),"in";default:return""}}_removeFlagsGY(t){return t.replaceAll(this._flagsGYRe,"")}_previous(){return this._tokens[this._current-1]}_matchOne(t){return!!this._check(t)&&(this._advance(),!0)}_advance(){return this._isAtEnd()||this._current++,this._previous()}_consume(t,i){if(this._check(t))return this._advance();throw this._errExpectedButGot(i,this._peek())}_errExpectedButGot(t,i,e){const s=ot(0,"Expected: {0}\nReceived: '{1}'.",t,Lr.getLexeme(i)),n=i.offset,o=Lr.getLexeme(i);return this._parsingErrors.push({message:s,offset:n,lexeme:o,additionalInfo:e}),jr._parseError}_check(t){return this._peek().type===t}_peek(){return this._tokens[this._current]}_isAtEnd(){return 20===this._peek().type}}jr._parseError=new Error;class zr{static false(){return Vr.INSTANCE}static true(){return Ur.INSTANCE}static has(t){return qr.create(t)}static equals(t,i){return Kr.create(t,i)}static notEquals(t,i){return Qr.create(t,i)}static regex(t,i){return sh.create(t,i)}static in(t,i){return Gr.create(t,i)}static notIn(t,i){return Zr.create(t,i)}static not(t){return Jr.create(t)}static and(...t){return rh.create(t,null,!0)}static or(...t){return hh.create(t,null,!0)}static deserialize(t){if(null!=t)return this._parser.parse(t)}}function Hr(t,i){return t.cmp(i)}zr._parser=new jr({regexParsingWithErrorRecovery:!1});class Vr{constructor(){this.type=0}cmp(t){return this.type-t.type}equals(t){return t.type===this.type}substituteConstants(){return this}evaluate(t){return!1}serialize(){return"false"}keys(){return[]}negate(){return Ur.INSTANCE}}Vr.INSTANCE=new Vr;class Ur{constructor(){this.type=1}cmp(t){return this.type-t.type}equals(t){return t.type===this.type}substituteConstants(){return this}evaluate(t){return!0}serialize(){return"true"}keys(){return[]}negate(){return Vr.INSTANCE}}Ur.INSTANCE=new Ur;class qr{static create(t,i=null){const e=Fr.get(t);return"boolean"==typeof e?e?Ur.INSTANCE:Vr.INSTANCE:new qr(t,i)}constructor(t,i){this.key=t,this.negated=i,this.type=2}cmp(t){return t.type!==this.type?this.type-t.type:lh(this.key,t.key)}equals(t){return t.type===this.type&&this.key===t.key}substituteConstants(){const t=Fr.get(this.key);return"boolean"==typeof t?t?Ur.INSTANCE:Vr.INSTANCE:this}evaluate(t){return!!t.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=Jr.create(this.key,this)),this.negated}}class Kr{static create(t,i,e=null){if("boolean"==typeof i)return i?qr.create(t,e):Jr.create(t,e);const s=Fr.get(t);return"boolean"==typeof s?i===(s?"true":"false")?Ur.INSTANCE:Vr.INSTANCE:new Kr(t,i,e)}constructor(t,i,e){this.key=t,this.value=i,this.negated=e,this.type=4}cmp(t){return t.type!==this.type?this.type-t.type:uh(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type&&this.key===t.key&&this.value===t.value}substituteConstants(){const t=Fr.get(this.key);return"boolean"==typeof t?this.value===(t?"true":"false")?Ur.INSTANCE:Vr.INSTANCE:this}evaluate(t){return t.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Qr.create(this.key,this.value,this)),this.negated}}class Gr{static create(t,i){return new Gr(t,i)}constructor(t,i){this.key=t,this.valueKey=i,this.type=10,this.negated=null}cmp(t){return t.type!==this.type?this.type-t.type:uh(this.key,this.valueKey,t.key,t.valueKey)}equals(t){return t.type===this.type&&this.key===t.key&&this.valueKey===t.valueKey}substituteConstants(){return this}evaluate(t){const i=t.getValue(this.valueKey),e=t.getValue(this.key);return Array.isArray(i)?i.includes(e):"string"==typeof e&&"object"==typeof i&&null!==i&&Tr.call(i,e)}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=Zr.create(this.key,this.valueKey)),this.negated}}class Zr{static create(t,i){return new Zr(t,i)}constructor(t,i){this.key=t,this.valueKey=i,this.type=11,this._negated=Gr.create(t,i)}cmp(t){return t.type!==this.type?this.type-t.type:this._negated.cmp(t._negated)}equals(t){return t.type===this.type&&this._negated.equals(t._negated)}substituteConstants(){return this}evaluate(t){return!this._negated.evaluate(t)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}negate(){return this._negated}}class Qr{static create(t,i,e=null){if("boolean"==typeof i)return i?Jr.create(t,e):qr.create(t,e);const s=Fr.get(t);return"boolean"==typeof s?i===(s?"true":"false")?Vr.INSTANCE:Ur.INSTANCE:new Qr(t,i,e)}constructor(t,i,e){this.key=t,this.value=i,this.negated=e,this.type=5}cmp(t){return t.type!==this.type?this.type-t.type:uh(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type&&this.key===t.key&&this.value===t.value}substituteConstants(){const t=Fr.get(this.key);return"boolean"==typeof t?this.value===(t?"true":"false")?Vr.INSTANCE:Ur.INSTANCE:this}evaluate(t){return t.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Kr.create(this.key,this.value,this)),this.negated}}class Jr{static create(t,i=null){const e=Fr.get(t);return"boolean"==typeof e?e?Vr.INSTANCE:Ur.INSTANCE:new Jr(t,i)}constructor(t,i){this.key=t,this.negated=i,this.type=3}cmp(t){return t.type!==this.type?this.type-t.type:lh(this.key,t.key)}equals(t){return t.type===this.type&&this.key===t.key}substituteConstants(){const t=Fr.get(this.key);return"boolean"==typeof t?t?Vr.INSTANCE:Ur.INSTANCE:this}evaluate(t){return!t.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=qr.create(this.key,this)),this.negated}}function Yr(t,i){if("string"==typeof t){const i=parseFloat(t);isNaN(i)||(t=i)}return"string"==typeof t||"number"==typeof t?i(t):Vr.INSTANCE}class Xr{static create(t,i,e=null){return Yr(i,(i=>new Xr(t,i,e)))}constructor(t,i,e){this.key=t,this.value=i,this.negated=e,this.type=12}cmp(t){return t.type!==this.type?this.type-t.type:uh(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type&&this.key===t.key&&this.value===t.value}substituteConstants(){return this}evaluate(t){return"string"!=typeof this.value&&parseFloat(t.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=eh.create(this.key,this.value,this)),this.negated}}class th{static create(t,i,e=null){return Yr(i,(i=>new th(t,i,e)))}constructor(t,i,e){this.key=t,this.value=i,this.negated=e,this.type=13}cmp(t){return t.type!==this.type?this.type-t.type:uh(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type&&this.key===t.key&&this.value===t.value}substituteConstants(){return this}evaluate(t){return"string"!=typeof this.value&&parseFloat(t.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=ih.create(this.key,this.value,this)),this.negated}}class ih{static create(t,i,e=null){return Yr(i,(i=>new ih(t,i,e)))}constructor(t,i,e){this.key=t,this.value=i,this.negated=e,this.type=14}cmp(t){return t.type!==this.type?this.type-t.type:uh(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type&&this.key===t.key&&this.value===t.value}substituteConstants(){return this}evaluate(t){return"string"!=typeof this.value&&parseFloat(t.getValue(this.key))new eh(t,i,e)))}constructor(t,i,e){this.key=t,this.value=i,this.negated=e,this.type=15}cmp(t){return t.type!==this.type?this.type-t.type:uh(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type&&this.key===t.key&&this.value===t.value}substituteConstants(){return this}evaluate(t){return"string"!=typeof this.value&&parseFloat(t.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Xr.create(this.key,this.value,this)),this.negated}}class sh{static create(t,i){return new sh(t,i)}constructor(t,i){this.key=t,this.regexp=i,this.type=7,this.negated=null}cmp(t){if(t.type!==this.type)return this.type-t.type;if(this.keyt.key)return 1;const i=this.regexp?this.regexp.source:"",e=t.regexp?t.regexp.source:"";return ie?1:0}equals(t){return t.type===this.type&&(this.key===t.key&&(this.regexp?this.regexp.source:"")===(t.regexp?t.regexp.source:""))}substituteConstants(){return this}evaluate(t){const i=t.getValue(this.key);return!!this.regexp&&this.regexp.test(i)}serialize(){return`${this.key} =~ ${this.regexp?`/${this.regexp.source}/${this.regexp.flags}`:"/invalid/"}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=nh.create(this)),this.negated}}class nh{static create(t){return new nh(t)}constructor(t){this._actual=t,this.type=8}cmp(t){return t.type!==this.type?this.type-t.type:this._actual.cmp(t._actual)}equals(t){return t.type===this.type&&this._actual.equals(t._actual)}substituteConstants(){return this}evaluate(t){return!this._actual.evaluate(t)}serialize(){return`!(${this._actual.serialize()})`}keys(){return this._actual.keys()}negate(){return this._actual}}function oh(t){let i=null;for(let e=0,s=t.length;et.expr.length)return 1;for(let i=0,e=this.expr.length;i1;){const t=s[s.length-1];if(9!==t.type)break;s.pop();const i=s.pop(),n=0===s.length,o=hh.create(t.expr.map((t=>rh.create([t,i],null,e))),null,n);o&&(s.push(o),s.sort(Hr))}if(1===s.length)return s[0];if(e){for(let t=0;tt.serialize())).join(" && ")}keys(){const t=[];for(const i of this.expr)t.push(...i.keys());return t}negate(){if(!this.negated){const t=[];for(const i of this.expr)t.push(i.negate());this.negated=hh.create(t,this,!0)}return this.negated}}class hh{static create(t,i,e){return hh._normalizeArr(t,i,e)}constructor(t,i){this.expr=t,this.negated=i,this.type=9}cmp(t){if(t.type!==this.type)return this.type-t.type;if(this.expr.lengtht.expr.length)return 1;for(let i=0,e=this.expr.length;it.serialize())).join(" || ")}keys(){const t=[];for(const i of this.expr)t.push(...i.keys());return t}negate(){if(!this.negated){const t=[];for(const i of this.expr)t.push(i.negate());for(;t.length>1;){const i=t.shift(),e=t.shift(),s=[];for(const t of ph(i))for(const i of ph(e))s.push(rh.create([t,i],null,!1));t.unshift(hh.create(s,null,!1))}this.negated=hh.create(t,this,!0)}return this.negated}}class ch extends qr{static all(){return ch._info.values()}constructor(t,i,e){super(t,null),this._defaultValue=i,"object"==typeof e?ch._info.push({...e,key:t}):!0!==e&&ch._info.push({key:t,description:e,type:null!=i?typeof i:void 0})}bindTo(t){return t.createKey(this.key,this._defaultValue)}getValue(t){return t.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(t){return Kr.create(this.key,t)}}ch._info=[];const ah=dr("contextKeyService");function lh(t,i){return ti?1:0}function uh(t,i,e,s){return te?1:is?1:0}function dh(t,i){if(0===t.type||1===i.type)return!0;if(9===t.type)return 9===i.type&&fh(t.expr,i.expr);if(9===i.type){for(const e of i.expr)if(dh(t,e))return!0;return!1}if(6===t.type){if(6===i.type)return fh(i.expr,t.expr);for(const e of t.expr)if(dh(e,i))return!0;return!1}return t.equals(i)}function fh(t,i){let e=0,s=0;for(;e>>0,s=(4294901760&t)>>>16;return new vh(0!==s?[mh(e,i),mh(s,i)]:[mh(e,i)])}{const e=[];for(let s=0;s{r(),this._cachedMergedKeybindings=null}))}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(Mh)),this._cachedMergedKeybindings.slice(0)}}const Ah=new Eh;function Mh(t,i){if(t.weight1!==i.weight1)return t.weight1-i.weight1;if(t.command&&i.command){if(t.commandi.command)return 1}return t.weight2-i.weight2}Dh.add("platform.keybindingsRegistry",Ah);var Lh,Fh=function(t,i){return function(e,s){i(e,s,t)}};function Th(t){return void 0!==t.command}class Rh{constructor(t){if(Rh._instances.has(t))throw new TypeError(`MenuId with identifier '${t}' already exists. Use MenuId.for(ident) or a unique identifier`);Rh._instances.set(t,this),this.id=t}}Rh._instances=new Map,Rh.CommandPalette=new Rh("CommandPalette"),Rh.DebugBreakpointsContext=new Rh("DebugBreakpointsContext"),Rh.DebugCallStackContext=new Rh("DebugCallStackContext"),Rh.DebugConsoleContext=new Rh("DebugConsoleContext"),Rh.DebugVariablesContext=new Rh("DebugVariablesContext"),Rh.DebugWatchContext=new Rh("DebugWatchContext"),Rh.DebugToolBar=new Rh("DebugToolBar"),Rh.DebugToolBarStop=new Rh("DebugToolBarStop"),Rh.EditorContext=new Rh("EditorContext"),Rh.SimpleEditorContext=new Rh("SimpleEditorContext"),Rh.EditorContent=new Rh("EditorContent"),Rh.EditorLineNumberContext=new Rh("EditorLineNumberContext"),Rh.EditorContextCopy=new Rh("EditorContextCopy"),Rh.EditorContextPeek=new Rh("EditorContextPeek"),Rh.EditorContextShare=new Rh("EditorContextShare"),Rh.EditorTitle=new Rh("EditorTitle"),Rh.EditorTitleRun=new Rh("EditorTitleRun"),Rh.EditorTitleContext=new Rh("EditorTitleContext"),Rh.EditorTitleContextShare=new Rh("EditorTitleContextShare"),Rh.EmptyEditorGroup=new Rh("EmptyEditorGroup"),Rh.EmptyEditorGroupContext=new Rh("EmptyEditorGroupContext"),Rh.EditorTabsBarContext=new Rh("EditorTabsBarContext"),Rh.EditorTabsBarShowTabsSubmenu=new Rh("EditorTabsBarShowTabsSubmenu"),Rh.EditorActionsPositionSubmenu=new Rh("EditorActionsPositionSubmenu"),Rh.ExplorerContext=new Rh("ExplorerContext"),Rh.ExplorerContextShare=new Rh("ExplorerContextShare"),Rh.ExtensionContext=new Rh("ExtensionContext"),Rh.GlobalActivity=new Rh("GlobalActivity"),Rh.CommandCenter=new Rh("CommandCenter"),Rh.CommandCenterCenter=new Rh("CommandCenterCenter"),Rh.LayoutControlMenuSubmenu=new Rh("LayoutControlMenuSubmenu"),Rh.LayoutControlMenu=new Rh("LayoutControlMenu"),Rh.MenubarMainMenu=new Rh("MenubarMainMenu"),Rh.MenubarAppearanceMenu=new Rh("MenubarAppearanceMenu"),Rh.MenubarDebugMenu=new Rh("MenubarDebugMenu"),Rh.MenubarEditMenu=new Rh("MenubarEditMenu"),Rh.MenubarCopy=new Rh("MenubarCopy"),Rh.MenubarFileMenu=new Rh("MenubarFileMenu"),Rh.MenubarGoMenu=new Rh("MenubarGoMenu"),Rh.MenubarHelpMenu=new Rh("MenubarHelpMenu"),Rh.MenubarLayoutMenu=new Rh("MenubarLayoutMenu"),Rh.MenubarNewBreakpointMenu=new Rh("MenubarNewBreakpointMenu"),Rh.PanelAlignmentMenu=new Rh("PanelAlignmentMenu"),Rh.PanelPositionMenu=new Rh("PanelPositionMenu"),Rh.ActivityBarPositionMenu=new Rh("ActivityBarPositionMenu"),Rh.MenubarPreferencesMenu=new Rh("MenubarPreferencesMenu"),Rh.MenubarRecentMenu=new Rh("MenubarRecentMenu"),Rh.MenubarSelectionMenu=new Rh("MenubarSelectionMenu"),Rh.MenubarShare=new Rh("MenubarShare"),Rh.MenubarSwitchEditorMenu=new Rh("MenubarSwitchEditorMenu"),Rh.MenubarSwitchGroupMenu=new Rh("MenubarSwitchGroupMenu"),Rh.MenubarTerminalMenu=new Rh("MenubarTerminalMenu"),Rh.MenubarViewMenu=new Rh("MenubarViewMenu"),Rh.MenubarHomeMenu=new Rh("MenubarHomeMenu"),Rh.OpenEditorsContext=new Rh("OpenEditorsContext"),Rh.OpenEditorsContextShare=new Rh("OpenEditorsContextShare"),Rh.ProblemsPanelContext=new Rh("ProblemsPanelContext"),Rh.SCMInputBox=new Rh("SCMInputBox"),Rh.SCMHistoryItem=new Rh("SCMHistoryItem"),Rh.SCMChangeContext=new Rh("SCMChangeContext"),Rh.SCMResourceContext=new Rh("SCMResourceContext"),Rh.SCMResourceContextShare=new Rh("SCMResourceContextShare"),Rh.SCMResourceFolderContext=new Rh("SCMResourceFolderContext"),Rh.SCMResourceGroupContext=new Rh("SCMResourceGroupContext"),Rh.SCMSourceControl=new Rh("SCMSourceControl"),Rh.SCMTitle=new Rh("SCMTitle"),Rh.SearchContext=new Rh("SearchContext"),Rh.SearchActionMenu=new Rh("SearchActionContext"),Rh.StatusBarWindowIndicatorMenu=new Rh("StatusBarWindowIndicatorMenu"),Rh.StatusBarRemoteIndicatorMenu=new Rh("StatusBarRemoteIndicatorMenu"),Rh.StickyScrollContext=new Rh("StickyScrollContext"),Rh.TestItem=new Rh("TestItem"),Rh.TestItemGutter=new Rh("TestItemGutter"),Rh.TestMessageContext=new Rh("TestMessageContext"),Rh.TestMessageContent=new Rh("TestMessageContent"),Rh.TestPeekElement=new Rh("TestPeekElement"),Rh.TestPeekTitle=new Rh("TestPeekTitle"),Rh.TouchBarContext=new Rh("TouchBarContext"),Rh.TitleBarContext=new Rh("TitleBarContext"),Rh.TitleBarTitleContext=new Rh("TitleBarTitleContext"),Rh.TunnelContext=new Rh("TunnelContext"),Rh.TunnelPrivacy=new Rh("TunnelPrivacy"),Rh.TunnelProtocol=new Rh("TunnelProtocol"),Rh.TunnelPortInline=new Rh("TunnelInline"),Rh.TunnelTitle=new Rh("TunnelTitle"),Rh.TunnelLocalAddressInline=new Rh("TunnelLocalAddressInline"),Rh.TunnelOriginInline=new Rh("TunnelOriginInline"),Rh.ViewItemContext=new Rh("ViewItemContext"),Rh.ViewContainerTitle=new Rh("ViewContainerTitle"),Rh.ViewContainerTitleContext=new Rh("ViewContainerTitleContext"),Rh.ViewTitle=new Rh("ViewTitle"),Rh.ViewTitleContext=new Rh("ViewTitleContext"),Rh.CommentEditorActions=new Rh("CommentEditorActions"),Rh.CommentThreadTitle=new Rh("CommentThreadTitle"),Rh.CommentThreadActions=new Rh("CommentThreadActions"),Rh.CommentThreadAdditionalActions=new Rh("CommentThreadAdditionalActions"),Rh.CommentThreadTitleContext=new Rh("CommentThreadTitleContext"),Rh.CommentThreadCommentContext=new Rh("CommentThreadCommentContext"),Rh.CommentTitle=new Rh("CommentTitle"),Rh.CommentActions=new Rh("CommentActions"),Rh.InteractiveToolbar=new Rh("InteractiveToolbar"),Rh.InteractiveCellTitle=new Rh("InteractiveCellTitle"),Rh.InteractiveCellDelete=new Rh("InteractiveCellDelete"),Rh.InteractiveCellExecute=new Rh("InteractiveCellExecute"),Rh.InteractiveInputExecute=new Rh("InteractiveInputExecute"),Rh.NotebookToolbar=new Rh("NotebookToolbar"),Rh.NotebookStickyScrollContext=new Rh("NotebookStickyScrollContext"),Rh.NotebookCellTitle=new Rh("NotebookCellTitle"),Rh.NotebookCellDelete=new Rh("NotebookCellDelete"),Rh.NotebookCellInsert=new Rh("NotebookCellInsert"),Rh.NotebookCellBetween=new Rh("NotebookCellBetween"),Rh.NotebookCellListTop=new Rh("NotebookCellTop"),Rh.NotebookCellExecute=new Rh("NotebookCellExecute"),Rh.NotebookCellExecutePrimary=new Rh("NotebookCellExecutePrimary"),Rh.NotebookDiffCellInputTitle=new Rh("NotebookDiffCellInputTitle"),Rh.NotebookDiffCellMetadataTitle=new Rh("NotebookDiffCellMetadataTitle"),Rh.NotebookDiffCellOutputsTitle=new Rh("NotebookDiffCellOutputsTitle"),Rh.NotebookOutputToolbar=new Rh("NotebookOutputToolbar"),Rh.NotebookEditorLayoutConfigure=new Rh("NotebookEditorLayoutConfigure"),Rh.NotebookKernelSource=new Rh("NotebookKernelSource"),Rh.BulkEditTitle=new Rh("BulkEditTitle"),Rh.BulkEditContext=new Rh("BulkEditContext"),Rh.TimelineItemContext=new Rh("TimelineItemContext"),Rh.TimelineTitle=new Rh("TimelineTitle"),Rh.TimelineTitleContext=new Rh("TimelineTitleContext"),Rh.TimelineFilterSubMenu=new Rh("TimelineFilterSubMenu"),Rh.AccountsContext=new Rh("AccountsContext"),Rh.SidebarTitle=new Rh("SidebarTitle"),Rh.PanelTitle=new Rh("PanelTitle"),Rh.AuxiliaryBarTitle=new Rh("AuxiliaryBarTitle"),Rh.TerminalInstanceContext=new Rh("TerminalInstanceContext"),Rh.TerminalEditorInstanceContext=new Rh("TerminalEditorInstanceContext"),Rh.TerminalNewDropdownContext=new Rh("TerminalNewDropdownContext"),Rh.TerminalTabContext=new Rh("TerminalTabContext"),Rh.TerminalTabEmptyAreaContext=new Rh("TerminalTabEmptyAreaContext"),Rh.TerminalStickyScrollContext=new Rh("TerminalStickyScrollContext"),Rh.WebviewContext=new Rh("WebviewContext"),Rh.InlineCompletionsActions=new Rh("InlineCompletionsActions"),Rh.NewFile=new Rh("NewFile"),Rh.MergeInput1Toolbar=new Rh("MergeToolbar1Toolbar"),Rh.MergeInput2Toolbar=new Rh("MergeToolbar2Toolbar"),Rh.MergeBaseToolbar=new Rh("MergeBaseToolbar"),Rh.MergeInputResultToolbar=new Rh("MergeToolbarResultToolbar"),Rh.InlineSuggestionToolbar=new Rh("InlineSuggestionToolbar"),Rh.ChatContext=new Rh("ChatContext"),Rh.ChatCodeBlock=new Rh("ChatCodeblock"),Rh.ChatMessageTitle=new Rh("ChatMessageTitle"),Rh.ChatExecute=new Rh("ChatExecute"),Rh.ChatInputSide=new Rh("ChatInputSide"),Rh.AccessibleView=new Rh("AccessibleView"),Rh.MultiDiffEditorFileToolbar=new Rh("MultiDiffEditorFileToolbar");const Oh=dr("menuService");class Ih{static for(t){let i=this._all.get(t);return i||(i=new Ih(t),this._all.set(t,i)),i}static merge(t){const i=new Set;for(const e of t)e instanceof Ih&&i.add(e.id);return i}constructor(t){this.id=t,this.has=i=>i===t}}Ih._all=new Map;const _h=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new me({merge:Ih.merge}),this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(t){return this._commands.set(t.id,t),this._onDidChangeMenu.fire(Ih.for(Rh.CommandPalette)),Yi((()=>{this._commands.delete(t.id)&&this._onDidChangeMenu.fire(Ih.for(Rh.CommandPalette))}))}getCommand(t){return this._commands.get(t)}getCommands(){const t=new Map;return this._commands.forEach(((i,e)=>t.set(e,i))),t}appendMenuItem(t,i){let e=this._menuItems.get(t);e||(e=new Ut,this._menuItems.set(t,e));const s=e.push(i);return this._onDidChangeMenu.fire(Ih.for(t)),Yi((()=>{s(),this._onDidChangeMenu.fire(Ih.for(t))}))}appendMenuItems(t){const i=new Xi;for(const{id:e,item:s}of t)i.add(this.appendMenuItem(e,s));return i}getMenuItems(t){let i;return i=this._menuItems.has(t)?[...this._menuItems.get(t)]:[],t===Rh.CommandPalette&&this._appendImplicitItems(i),i}_appendImplicitItems(t){const i=new Set;for(const e of t)Th(e)&&(i.add(e.command.id),e.alt&&i.add(e.alt.id));this._commands.forEach(((e,s)=>{i.has(s)||t.push({command:e})}))}};class Nh extends br{constructor(t,i,e){super(`submenuitem.${t.submenu.id}`,"string"==typeof t.title?t.title:t.title.value,e,"submenu"),this.item=t,this.hideActions=i}}let Bh=Lh=class{static label(t,i){return(null==i?void 0:i.renderShortTitle)&&t.shortTitle?"string"==typeof t.shortTitle?t.shortTitle:t.shortTitle.value:"string"==typeof t.title?t.title:t.title.value}constructor(t,i,e,s,n,o){var r,h;let c;if(this.hideActions=s,this._commandService=o,this.id=t.id,this.label=Lh.label(t,e),this.tooltip=null!==(h="string"==typeof t.tooltip?t.tooltip:null===(r=t.tooltip)||void 0===r?void 0:r.value)&&void 0!==h?h:"",this.enabled=!t.precondition||n.contextMatchesRules(t.precondition),this.checked=void 0,t.toggled){const i=t.toggled.condition?t.toggled:{condition:t.toggled};this.checked=n.contextMatchesRules(i.condition),this.checked&&i.tooltip&&(this.tooltip="string"==typeof i.tooltip?i.tooltip:i.tooltip.value),this.checked&&Cr.isThemeIcon(i.icon)&&(c=i.icon),this.checked&&i.title&&(this.label="string"==typeof i.title?i.title:i.title.value)}c||(c=Cr.isThemeIcon(t.icon)?t.icon:void 0),this.item=t,this.alt=i?new Lh(i,void 0,e,s,n,o):void 0,this._options=e,this.class=c&&Cr.asClassName(c)}run(...t){var i,e;let s=[];return(null===(i=this._options)||void 0===i?void 0:i.arg)&&(s=[...s,this._options.arg]),(null===(e=this._options)||void 0===e?void 0:e.shouldForwardArgs)&&(s=[...s,...t]),this._commandService.executeCommand(this.id,...s)}};Bh=Lh=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Fh(4,ah),Fh(5,Sr)],Bh);class Ph{constructor(t){this.desc=t}}function $h(t){const i=new Xi,e=new t,{f1:s,menu:n,keybinding:o,...r}=e.desc;if(i.add(Dr.registerCommand({id:r.id,handler:(t,...i)=>e.run(t,...i),metadata:r.metadata})),Array.isArray(n))for(const t of n)i.add(_h.appendMenuItem(t.id,{command:{...r,precondition:null===t.precondition?void 0:r.precondition},...t}));else n&&i.add(_h.appendMenuItem(n.id,{command:{...r,precondition:null===n.precondition?void 0:r.precondition},...n}));if(s&&(i.add(_h.appendMenuItem(Rh.CommandPalette,{command:r,when:r.precondition})),i.add(_h.addCommand(r))),Array.isArray(o))for(const t of o)i.add(Ah.registerKeybindingRule({...t,id:r.id,when:r.precondition?zr.and(r.precondition,t.when):t.when}));else o&&i.add(Ah.registerKeybindingRule({...o,id:r.id,when:r.precondition?zr.and(r.precondition,o.when):o.when}));return i}const Wh=dr("telemetryService"),jh=dr("logService");var zh;!function(t){t[t.Off=0]="Off",t[t.Trace=1]="Trace",t[t.Debug=2]="Debug",t[t.Info=3]="Info",t[t.Warning=4]="Warning",t[t.Error=5]="Error"}(zh||(zh={}));const Hh=zh.Info;class Vh extends te{constructor(){super(...arguments),this.level=Hh,this._onDidChangeLogLevel=this._register(new de),this.onDidChangeLogLevel=this._onDidChangeLogLevel.event}setLevel(t){this.level!==t&&(this.level=t,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(t){return this.level!==zh.Off&&this.level<=t}}class Uh extends Vh{constructor(t=Hh,i=!0){super(),this.useColors=i,this.setLevel(t)}trace(t,...i){this.checkLogLevel(zh.Trace)&&(this.useColors?console.log("%cTRACE","color: #888",t,...i):console.log(t,...i))}debug(t,...i){this.checkLogLevel(zh.Debug)&&(this.useColors?console.log("%cDEBUG","background: #eee; color: #888",t,...i):console.log(t,...i))}info(t,...i){this.checkLogLevel(zh.Info)&&(this.useColors?console.log("%c INFO","color: #33f",t,...i):console.log(t,...i))}warn(t,...i){this.checkLogLevel(zh.Warning)&&(this.useColors?console.log("%c WARN","color: #993",t,...i):console.log(t,...i))}error(t,...i){this.checkLogLevel(zh.Error)&&(this.useColors?console.log("%c ERR","color: #f33",t,...i):console.error(t,...i))}dispose(){}}class qh extends Vh{constructor(t){super(),this.loggers=t,t.length&&this.setLevel(t[0].getLevel())}setLevel(t){for(const i of this.loggers)i.setLevel(t);super.setLevel(t)}trace(t,...i){for(const e of this.loggers)e.trace(t,...i)}debug(t,...i){for(const e of this.loggers)e.debug(t,...i)}info(t,...i){for(const e of this.loggers)e.info(t,...i)}warn(t,...i){for(const e of this.loggers)e.warn(t,...i)}error(t,...i){for(const e of this.loggers)e.error(t,...i)}dispose(){for(const t of this.loggers)t.dispose()}}new ch("logLevel",function(){switch(zh.Info){case zh.Trace:return"trace";case zh.Debug:return"debug";case zh.Info:return"info";case zh.Warning:return"warn";case zh.Error:return"error";case zh.Off:return"off"}}()),Dt||document.queryCommandSupported&&document.queryCommandSupported("copy")||navigator&&navigator.clipboard&&navigator,Dt||navigator&&navigator.clipboard&&navigator,Dt||Jo||navigator,"ontouchstart"in $n||navigator;const Kh=$n.PointerEvent&&("ontouchstart"in $n||navigator.maxTouchPoints>0||navigator.maxTouchPoints>0),Gh=Ct?256:2048,Zh=Ct?2048:256;class Qh{constructor(t){this._standardKeyboardEventBrand=!0;const i=t;this.browserEvent=i,this.target=i.target,this.ctrlKey=i.ctrlKey,this.shiftKey=i.shiftKey,this.altKey=i.altKey,this.metaKey=i.metaKey,this.altGraphKey=i.getModifierState("AltGraph"),this.keyCode=function(t){if(t.charCode){const i=String.fromCharCode(t.charCode).toUpperCase();return _e.fromString(i)}const i=t.keyCode;if(3===i)return 7;if(Uo)switch(i){case 59:return 85;case 60:if(St)return 97;break;case 61:return 86;case 107:return 109;case 109:return 111;case 173:return 88;case 224:if(Ct)return 57}else if(qo){if(Ct&&93===i)return 57;if(!Ct&&92===i)return 57}return Me[i]||0}(i),this.code=i.code,this.ctrlKey=this.ctrlKey||5===this.keyCode,this.altKey=this.altKey||6===this.keyCode,this.shiftKey=this.shiftKey||4===this.keyCode,this.metaKey=this.metaKey||57===this.keyCode,this._asKeybinding=this._computeKeybinding(),this._asKeyCodeChord=this._computeKeyCodeChord()}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}toKeyCodeChord(){return this._asKeyCodeChord}equals(t){return this._asKeybinding===t}_computeKeybinding(){let t=0;5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(t=this.keyCode);let i=0;return this.ctrlKey&&(i|=Gh),this.altKey&&(i|=512),this.shiftKey&&(i|=1024),this.metaKey&&(i|=Zh),i|=t,i}_computeKeyCodeChord(){let t=0;return 5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(t=this.keyCode),new wh(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,t)}}const Jh=new WeakMap;function Yh(t){if(!t.parent||t.parent===t)return null;try{const i=t.location,e=t.parent.location;if("null"!==i.origin&&"null"!==e.origin&&i.origin!==e.origin)return null}catch(t){return null}return t.parent}class Xh{static getSameOriginWindowChain(t){let i=Jh.get(t);if(!i){i=[],Jh.set(t,i);let e,s=t;do{e=Yh(s),i.push(e?{window:new WeakRef(s),iframeElement:s.frameElement||null}:{window:new WeakRef(s),iframeElement:null}),s=e}while(s)}return i.slice(0)}static getPositionOfChildWindowRelativeToAncestorWindow(t,i){var e,s;if(!i||t===i)return{top:0,left:0};let n=0,o=0;const r=this.getSameOriginWindowChain(t);for(const t of r){const r=t.window.deref();if(n+=null!==(e=null==r?void 0:r.scrollY)&&void 0!==e?e:0,o+=null!==(s=null==r?void 0:r.scrollX)&&void 0!==s?s:0,r===i)break;if(!t.iframeElement)break;const h=t.iframeElement.getBoundingClientRect();n+=h.top,o+=h.left}return{top:n,left:o}}}class tc{constructor(t,i){this.timestamp=Date.now(),this.browserEvent=i,this.leftButton=0===i.button,this.middleButton=1===i.button,this.rightButton=2===i.button,this.buttons=i.buttons,this.target=i.target,this.detail=i.detail||1,"dblclick"===i.type&&(this.detail=2),this.ctrlKey=i.ctrlKey,this.shiftKey=i.shiftKey,this.altKey=i.altKey,this.metaKey=i.metaKey,"number"==typeof i.pageX?(this.posx=i.pageX,this.posy=i.pageY):(this.posx=i.clientX+this.target.ownerDocument.body.scrollLeft+this.target.ownerDocument.documentElement.scrollLeft,this.posy=i.clientY+this.target.ownerDocument.body.scrollTop+this.target.ownerDocument.documentElement.scrollTop);const e=Xh.getPositionOfChildWindowRelativeToAncestorWindow(t,i.view);this.posx-=e.left,this.posy-=e.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}}class ic{constructor(t,i=0,e=0){if(this.browserEvent=t||null,this.target=t?t.target||t.targetNode||t.srcElement:null,this.deltaY=e,this.deltaX=i,t){const i=t,e=t;void 0!==i.wheelDeltaY?this.deltaY=i.wheelDeltaY/120:void 0!==e.VERTICAL_AXIS&&e.axis===e.VERTICAL_AXIS?this.deltaY=-e.detail/3:"wheel"===t.type&&(this.deltaY=t.deltaMode===t.DOM_DELTA_LINE?Uo&&!Ct?-t.deltaY/3:-t.deltaY:-t.deltaY/40),void 0!==i.wheelDeltaX?this.deltaX=Go&&xt?-i.wheelDeltaX/120:i.wheelDeltaX/120:void 0!==e.HORIZONTAL_AXIS&&e.axis===e.HORIZONTAL_AXIS?this.deltaX=-t.detail/3:"wheel"===t.type&&(this.deltaX=t.deltaMode===t.DOM_DELTA_LINE?Uo&&!Ct?-t.deltaX/3:-t.deltaX:-t.deltaX/40),0===this.deltaY&&0===this.deltaX&&t.wheelDelta&&(this.deltaY=t.wheelDelta/120)}}preventDefault(){var t;null===(t=this.browserEvent)||void 0===t||t.preventDefault()}stopPropagation(){var t;null===(t=this.browserEvent)||void 0===t||t.stopPropagation()}}const ec=Symbol("MicrotaskDelay");function sc(t){return!!t&&"function"==typeof t.then}function nc(t){const i=new Ce,e=t(i.token),s=new Promise(((t,s)=>{const n=i.token.onCancellationRequested((()=>{n.dispose(),i.dispose(),s(new zi)}));Promise.resolve(e).then((e=>{n.dispose(),i.dispose(),t(e)}),(t=>{n.dispose(),i.dispose(),s(t)}))}));return new class{cancel(){i.cancel()}then(t,i){return s.then(t,i)}catch(t){return this.then(void 0,t)}finally(t){return s.finally(t)}}}function oc(t,i,e){return new Promise(((s,n)=>{const o=i.onCancellationRequested((()=>{o.dispose(),s(e)}));t.then(s,n).finally((()=>o.dispose()))}))}class rc{constructor(){this.isDisposed=!1,this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}queue(t){if(this.isDisposed)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=t,!this.queuedPromise){const t=()=>{if(this.queuedPromise=null,this.isDisposed)return;const t=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,t};this.queuedPromise=new Promise((i=>{this.activePromise.then(t,t).then(i)}))}return new Promise(((t,i)=>{this.queuedPromise.then(t,i)}))}return this.activePromise=t(),new Promise(((t,i)=>{this.activePromise.then((i=>{this.activePromise=null,t(i)}),(t=>{this.activePromise=null,i(t)}))}))}dispose(){this.isDisposed=!0}}class hc{constructor(t){this.defaultDelay=t,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(t,i=this.defaultDelay){this.task=t,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise(((t,i)=>{this.doResolve=t,this.doReject=i})).then((()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const t=this.task;return this.task=null,t()}})));const e=()=>{var t;this.deferred=null,null===(t=this.doResolve)||void 0===t||t.call(this,null)};return this.deferred=i===ec?(t=>{let i=!0;return queueMicrotask((()=>{i&&(i=!1,t())})),{isTriggered:()=>i,dispose:()=>{i=!1}}})(e):((t,i)=>{let e=!0;const s=setTimeout((()=>{e=!1,i()}),t);return{isTriggered:()=>e,dispose:()=>{clearTimeout(s),e=!1}}})(i,e),this.completionPromise}isTriggered(){var t;return!!(null===(t=this.deferred)||void 0===t?void 0:t.isTriggered())}cancel(){var t;this.cancelTimeout(),this.completionPromise&&(null===(t=this.doReject)||void 0===t||t.call(this,new zi),this.completionPromise=null)}cancelTimeout(){var t;null===(t=this.deferred)||void 0===t||t.dispose(),this.deferred=null}dispose(){this.cancel()}}class cc{constructor(t){this.delayer=new hc(t),this.throttler=new rc}trigger(t,i){return this.delayer.trigger((()=>this.throttler.queue(t)),i)}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}}function ac(t,i){return i?new Promise(((e,s)=>{const n=setTimeout((()=>{o.dispose(),e()}),t),o=i.onCancellationRequested((()=>{clearTimeout(n),o.dispose(),s(new zi)}))})):nc((i=>ac(t,i)))}function lc(t,i=0,e){const s=setTimeout((()=>{t(),e&&n.dispose()}),i),n=Yi((()=>{clearTimeout(s),null==e||e.deleteAndLeak(n)}));return null==e||e.add(n),n}function uc(t,i=(t=>!!t),e=null){let s=0;const n=t.length,o=()=>{if(s>=n)return Promise.resolve(e);const r=t[s++];return Promise.resolve(r()).then((t=>i(t)?Promise.resolve(t):o()))};return o()}class dc{constructor(t,i){this._token=-1,"function"==typeof t&&"number"==typeof i&&this.setIfNotSet(t,i)}dispose(){this.cancel()}cancel(){-1!==this._token&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(t,i){this.cancel(),this._token=setTimeout((()=>{this._token=-1,t()}),i)}setIfNotSet(t,i){-1===this._token&&(this._token=setTimeout((()=>{this._token=-1,t()}),i))}}class fc{constructor(){this.disposable=void 0}cancel(){var t;null===(t=this.disposable)||void 0===t||t.dispose(),this.disposable=void 0}cancelAndSet(t,i,e=globalThis){this.cancel();const s=e.setInterval((()=>{t()}),i);this.disposable=Yi((()=>{e.clearInterval(s),this.disposable=void 0}))}dispose(){this.cancel()}}class pc{constructor(t,i){this.timeoutToken=-1,this.runner=t,this.timeout=i,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}schedule(t=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,t)}get delay(){return this.timeout}set delay(t){this.timeout=t}isScheduled(){return-1!==this.timeoutToken}onTimeout(){this.timeoutToken=-1,this.runner&&this.doRun()}doRun(){var t;null===(t=this.runner)||void 0===t||t.call(this)}}let gc,mc;mc="function"!=typeof globalThis.requestIdleCallback||"function"!=typeof globalThis.cancelIdleCallback?(t,i)=>{Ot((()=>{if(e)return;const t=Date.now()+15;i(Object.freeze({didTimeout:!0,timeRemaining:()=>Math.max(0,t-Date.now())}))}));let e=!1;return{dispose(){e||(e=!0)}}}:(t,i,e)=>{const s=t.requestIdleCallback(i,"number"==typeof e?{timeout:e}:void 0);let n=!1;return{dispose(){n||(n=!0,t.cancelIdleCallback(s))}}},gc=t=>mc(globalThis,t);class wc{constructor(t,i){this._didRun=!1,this._executor=()=>{try{this._value=i()}catch(t){this._error=t}finally{this._didRun=!0}},this._handle=mc(t,(()=>this._executor()))}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}}class vc extends wc{constructor(t){super(globalThis,t)}}class bc{get isRejected(){var t;return 1===(null===(t=this.outcome)||void 0===t?void 0:t.outcome)}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise(((t,i)=>{this.completeCallback=t,this.errorCallback=i}))}complete(t){return new Promise((i=>{this.completeCallback(t),this.outcome={outcome:0,value:t},i()}))}error(t){return new Promise((i=>{this.errorCallback(t),this.outcome={outcome:1,value:t},i()}))}cancel(){return this.error(new zi)}}var yc;!function(t){t.settled=async function(t){let i;const e=await Promise.all(t.map((t=>t.then((t=>t),(t=>{i||(i=t)})))));if(void 0!==i)throw i;return e},t.withAsyncBody=function(t){return new Promise((async(i,e)=>{try{await t(i,e)}catch(t){e(t)}}))}}(yc||(yc={}));class kc{static fromArray(t){return new kc((i=>{i.emitMany(t)}))}static fromPromise(t){return new kc((async i=>{i.emitMany(await t)}))}static fromPromises(t){return new kc((async i=>{await Promise.all(t.map((async t=>i.emitOne(await t))))}))}static merge(t){return new kc((async i=>{await Promise.all(t.map((async t=>{for await(const e of t)i.emitOne(e)})))}))}constructor(t){this._state=0,this._results=[],this._error=null,this._onStateChanged=new de,queueMicrotask((async()=>{const i={emitOne:t=>this.emitOne(t),emitMany:t=>this.emitMany(t),reject:t=>this.reject(t)};try{await Promise.resolve(t(i)),this.resolve()}catch(t){this.reject(t)}finally{i.emitOne=void 0,i.emitMany=void 0,i.reject=void 0}}))}[Symbol.asyncIterator](){let t=0;return{next:async()=>{for(;;){if(2===this._state)throw this._error;if(t{for await(const s of t)e.emitOne(i(s))}))}map(t){return kc.map(this,t)}static filter(t,i){return new kc((async e=>{for await(const s of t)i(s)&&e.emitOne(s)}))}filter(t){return kc.filter(this,t)}static coalesce(t){return kc.filter(t,(t=>!!t))}coalesce(){return kc.coalesce(this)}static async toPromise(t){const i=[];for await(const e of t)i.push(e);return i}toPromise(){return kc.toPromise(this)}emitOne(t){0===this._state&&(this._results.push(t),this._onStateChanged.fire())}emitMany(t){0===this._state&&(this._results=this._results.concat(t),this._onStateChanged.fire())}resolve(){0===this._state&&(this._state=1,this._onStateChanged.fire())}reject(t){0===this._state&&(this._state=2,this._error=t,this._onStateChanged.fire())}}kc.EMPTY=kc.fromArray([]);class xc extends kc{constructor(t,i){super(i),this._source=t}cancel(){this._source.cancel()}} +import{r as t,f as i,h as e,F as s,g as n,c as o,H as r}from"./p-7900c24a.js";import{L as h}from"./p-986e5fe7.js";const c=class{constructor(i){t(this,i),i.$hostElement$["s-ei"]?this.internals=i.$hostElement$["s-ei"]:(this.internals=i.$hostElement$.attachInternals(),i.$hostElement$["s-ei"]=this.internals),this.lastValue="",this.updateInputValue=()=>{const t=this.markdown?this.editor.storage.markdown.getMarkdown():this.editor.getHTML().replace(/

      <\/p>$/,"");this.value=t,this.jsonContent=this.editor.getJSON(),this.internals.setFormValue(t)},this.handleBlur=()=>{const{value:t="",lastValue:i=""}=this;i!==t&&(this.lastValue=t,this.element.dispatchEvent(new Event("change",{bubbles:!0})))},this.toggleFullscreen=()=>{Boolean(document.fullscreenElement)?document.exitFullscreen().then((()=>{})).catch((t=>{alert(h.format("error.fullscreen.exit",t.message,t.name))})):this.element.requestFullscreen().then((()=>{})).catch((t=>{alert(h.format("error.fullscreen.enter",t.message,t.name))}))},this.handleEditorDidLoad=t=>{this.editor=t.detail,this.updateInputValue(),this.lastValue=this.value},this.name="",this.readonly=!1,this.uploadUrl="",this.placeholder="",this.fullscreenable=!1,this.resizable=!1,this.exposeEditor=!1,this.size="sm",this.hideUI=!1,this.hideMenubar=!1,this.menubarMode="full",this.slashMenu=!1,this.bubbleMenu=!1,this.preferHardBreak=!1,this.neglectDefaultTextStyle=!1,this.markdown=!1,this.locale=void 0,this.css=void 0,this.collaborative=!1,this.hocuspocus="",this.docName="",this.username="",this.userColor="#ffcc00",this.value=void 0,this.editor=null,this.isFullscreen=!1,this.rendered=!1}setHTML(t,i=!0){if(i){const i=`${t}`,e=(new window.DOMParser).parseFromString(i,"text/html").body;e.querySelectorAll("br").forEach((t=>{t.remove()})),t=e.innerHTML}return this.editor.chain().setContent(t).run(),this.updateInputValue(),Promise.resolve()}insertHTML(t){return Promise.resolve(this.editor.chain().focus().insertContent(t).run())}getHTML(){return Promise.resolve(this.editor.getHTML())}getText(){return Promise.resolve(this.editor.getText())}focusEditor(){return Promise.resolve(this.editor.commands.focus())}blurEditor(){return Promise.resolve(this.editor.commands.blur())}setReadonly(t){return this.readonly=t,Promise.resolve(this.editor.setEditable(!t))}onCSSChange(){Boolean(this.css)&&(Boolean(this.styles)||(this.styles=new CSSStyleSheet),this.styles.replaceSync(this.css),i(this))}componentWillLoad(){Boolean(this.css)&&(this.styles=new CSSStyleSheet,this.styles.replaceSync(this.css))}componentDidRender(){this.rendered||(this.rendered=!0)}componentDidLoad(){Boolean(this.styles&&this.element.shadowRoot)&&(this.element.shadowRoot.adoptedStyleSheets=[...this.element.shadowRoot.adoptedStyleSheets,this.styles]),this.element.addEventListener("fullscreenchange",(()=>{this.isFullscreen=Boolean(document.fullscreenElement)}))}render(){var t,i,n;return"full"===this.size&&(this.resizable=!1),e(s,{key:"4b7429083df6a727991f25a8a48edbf68036c54f"},Boolean(this.editor)?null:e("div",{class:`editor-skeleton ${this.size}`}),this.rendered&&e("zen-editor-core",{key:"4aae7e18e9ad94e7e810097582463ae3507eccc1",name:this.name,readonly:this.readonly,uploadUrl:this.uploadUrl,placeholder:this.placeholder,resizable:this.resizable,exposeEditor:this.exposeEditor,size:this.size,hideUI:this.hideUI,hideMenubar:this.hideMenubar,menubarMode:this.menubarMode,slashMenu:this.slashMenu,bubbleMenu:this.bubbleMenu,preferHardBreak:this.preferHardBreak,neglectDefaultTextStyle:this.neglectDefaultTextStyle,markdown:this.markdown,locale:this.locale,collaborative:this.collaborative,hocuspocus:this.hocuspocus,docName:this.docName,username:this.username,userColor:this.userColor,updateInputValue:this.updateInputValue,toggleFullscreen:this.toggleFullscreen,fullscreenable:this.fullscreenable,isFullscreen:this.isFullscreen,onEditorDidLoad:this.handleEditorDidLoad,styles:this.styles,initialContent:null===(t=this.element.querySelector('[slot="content"]'))||void 0===t?void 0:t.innerHTML,extraMenubarItems:null===(i=this.element.querySelector('[slot="menubar-items"]'))||void 0===i?void 0:i.innerHTML,value:null!==(n=this.jsonContent)&&void 0!==n?n:this.value,style:{display:Boolean(this.editor)?"block":"none",height:"auto"!==this.size||this.isFullscreen?"100%":void 0},onBlur:this.handleBlur}))}static get formAssociated(){return!0}get element(){return n(this)}static get watchers(){return{css:["onCSSChange"]}}};function a(t,i=0){return t[t.length-(1+i)]}function l(t,i,e=((t,i)=>t===i)){if(t===i)return!0;if(!t||!i)return!1;if(t.length!==i.length)return!1;for(let s=0,n=t.length;s0))return s;o=s-1}}return-(n+1)}(t.length)}function d(t,i,e){if((t|=0)>=i.length)throw new TypeError("invalid index");const s=i[Math.floor(i.length*Math.random())],n=[],o=[],r=[];for(const t of i){const i=e(t,s);i<0?n.push(t):i>0?o.push(t):r.push(t)}return t!!t))}function w(t){let i=0;for(let e=0;e0}function y(t,i=(t=>t)){const e=new Set;return t.filter((t=>{const s=i(t);return!e.has(s)&&(e.add(s),!0)}))}function k(t,i){return t.length>0?t[0]:i}function x(t,i){let e="number"==typeof i?t:0;"number"==typeof i?e=t:(e=0,i=t);const s=[];if(e<=i)for(let t=e;ti;t--)s.push(t);return s}function C(t,i,e){const s=t.slice(0,i),n=t.slice(i);return s.concat(e,n)}function S(t,i){const e=t.indexOf(i);e>-1&&(t.splice(e,1),t.unshift(i))}function D(t,i){const e=t.indexOf(i);e>-1&&(t.splice(e,1),t.push(i))}function E(t,i){for(const e of i)t.push(e)}function A(t){return Array.isArray(t)?t:[t]}function M(t,i,e,s){const n=L(t,i);let o=t.splice(n,e);return void 0===o&&(o=[]),function(t,i,e){const s=L(t,i),n=t.length,o=e.length;t.length=n+o;for(let i=n-1;i>=s;i--)t[i+o]=t[i];for(let i=0;ii(t(e),t(s))}c.style=".editor-skeleton{background-color:#f3f3f3;border:1px solid #e6e6e6;border-radius:0.25em;animation:pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.5}}.editor-skeleton.sm{height:9em}.editor-skeleton.lg{height:16em}.editor-skeleton.full{height:100%}",function(t){t.isLessThan=function(t){return t<0},t.isLessThanOrEqual=function(t){return t<=0},t.isGreaterThan=function(t){return t>0},t.isNeitherLessOrGreaterThan=function(t){return 0===t},t.greaterThan=1,t.lessThan=-1,t.neitherLessOrGreaterThan=0}(F||(F={}));const R=(t,i)=>t-i,O=(t,i)=>R(t?1:0,i?1:0);function I(t){return(i,e)=>-t(i,e)}class _{constructor(t){this.items=t,this.firstIdx=0,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(t){let i=this.firstIdx;for(;i=0&&t(this.items[i]);)i--;const e=i===this.lastIdx?null:this.items.slice(i+1,this.lastIdx+1);return this.lastIdx=i,e}peek(){if(0!==this.length)return this.items[this.firstIdx]}dequeue(){const t=this.items[this.firstIdx];return this.firstIdx++,t}takeCount(t){const i=this.items.slice(this.firstIdx,this.firstIdx+t);return this.firstIdx+=t,i}}class N{constructor(t){this.iterate=t}toArray(){const t=[];return this.iterate((i=>(t.push(i),!0))),t}filter(t){return new N((i=>this.iterate((e=>!t(e)||i(e)))))}map(t){return new N((i=>this.iterate((e=>i(t(e))))))}findLast(t){let i;return this.iterate((e=>(t(e)&&(i=e),!0))),i}findLastMaxBy(t){let i,e=!0;return this.iterate((s=>((e||F.isGreaterThan(t(s,i)))&&(e=!1,i=s),!0))),i}}function B(t){return"string"==typeof t}function P(t){return!("object"!=typeof t||null===t||Array.isArray(t)||t instanceof RegExp||t instanceof Date)}function $(t){const i=Object.getPrototypeOf(Uint8Array);return"object"==typeof t&&t instanceof i}function W(t){return"number"==typeof t&&!isNaN(t)}function j(t){return!!t&&"function"==typeof t[Symbol.iterator]}function z(t){return!0===t||!1===t}function H(t){return void 0===t}function V(t){return!U(t)}function U(t){return H(t)||null===t}function q(t,i){if(!t)throw new Error(i?`Unexpected type, expected '${i}'`:"Unexpected type")}function K(t){if(U(t))throw new Error("Assertion Failed: argument is undefined or null");return t}function G(t){return"function"==typeof t}function Z(t,i){if(B(i)){if(typeof t!==i)throw new Error(`argument does not match constraint: typeof ${i}`)}else if(G(i)){try{if(t instanceof i)return}catch(t){}if(!U(t)&&t.constructor===i)return;if(1===i.length&&!0===i.call(void 0,t))return;throw new Error("argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}function Q(t){if(!t||"object"!=typeof t)return t;if(t instanceof RegExp)return t;const i=Array.isArray(t)?[]:{};return Object.entries(t).forEach((([t,e])=>{i[t]=e&&"object"==typeof e?Q(e):e})),i}N.empty=new N((()=>{}));const J=Object.prototype.hasOwnProperty;function Y(t,i){return X(t,i,new Set)}function X(t,i,e){if(U(t))return t;const s=i(t);if(void 0!==s)return s;if(Array.isArray(t)){const s=[];for(const n of t)s.push(X(n,i,e));return s}if(P(t)){if(e.has(t))throw new Error("Cannot clone recursive data-structure");e.add(t);const s={};for(const n in t)J.call(t,n)&&(s[n]=X(t[n],i,e));return e.delete(t),s}return t}function tt(t,i,e=!0){return P(t)?(P(i)&&Object.keys(i).forEach((s=>{s in t?e&&(P(t[s])&&P(i[s])?tt(t[s],i[s],e):t[s]=i[s]):t[s]=i[s]})),t):i}function it(t,i){if(t===i)return!0;if(null==t||null==i)return!1;if(typeof t!=typeof i)return!1;if("object"!=typeof t)return!1;if(Array.isArray(t)!==Array.isArray(i))return!1;let e,s;if(Array.isArray(t)){if(t.length!==i.length)return!1;for(e=0;e=0;function nt(t,i){let e;return e=0===i.length?t:t.replace(/\{(\d+)\}/g,((t,e)=>{const s=i[e[0]];let n=t;return"string"==typeof s?n=s:"number"!=typeof s&&"boolean"!=typeof s&&null!=s||(n=String(s)),n})),st&&(e="["+e.replace(/[aouei]/g,"$&$&")+"]"),e}function ot(t,i,...e){return nt(i,e)}function rt(t,i,...e){const s=nt(i,e);return{value:s,original:s}}var ht;const ct="en";let at,lt,ut=!1,dt=!1,ft=!1,pt=!1,gt=!1,mt=!1,wt=!1,vt=ct;const bt=globalThis;let yt;void 0!==bt.vscode&&void 0!==bt.vscode.process?yt=bt.vscode.process:"undefined"!=typeof process&&(yt=process);const kt="string"==typeof(null===(ht=null==yt?void 0:yt.versions)||void 0===ht?void 0:ht.electron);if("object"!=typeof navigator||kt&&"renderer"===(null==yt?void 0:yt.type))if("object"==typeof yt){ut="win32"===yt.platform,dt="darwin"===yt.platform,ft="linux"===yt.platform,at=ct,vt=ct;const t=yt.env.VSCODE_NLS_CONFIG;if(t)try{const i=JSON.parse(t);at=i.locale,vt=i.availableLanguages["*"]||ct}catch(t){}pt=!0}else console.error("Unable to resolve platform.");else lt=navigator.userAgent,ut=lt.indexOf("Windows")>=0,dt=lt.indexOf("Macintosh")>=0,mt=(lt.indexOf("Macintosh")>=0||lt.indexOf("iPad")>=0||lt.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,ft=lt.indexOf("Linux")>=0,wt=(null==lt?void 0:lt.indexOf("Mobi"))>=0,gt=!0,ot(0,"_"),at=ct,vt=at;const xt=ut,Ct=dt,St=ft,Dt=pt,Et=gt,At=gt&&"function"==typeof bt.importScripts?bt.origin:void 0,Mt=mt,Lt=wt,Ft=lt,Tt=vt,Rt="function"==typeof bt.postMessage&&!bt.importScripts,Ot=(()=>{if(Rt){const t=[];bt.addEventListener("message",(i=>{if(i.data&&i.data.vscodeScheduleAsyncWork)for(let e=0,s=t.length;e{const s=++i;t.push({id:s,callback:e}),bt.postMessage({vscodeScheduleAsyncWork:s},"*")}}return t=>setTimeout(t)})(),It=dt||mt?2:ut?1:3;let _t=!0,Nt=!1;function Bt(){if(!Nt){Nt=!0;const t=new Uint8Array(2);t[0]=1,t[1]=2;const i=new Uint16Array(t.buffer);_t=513===i[0]}return _t}const Pt=!!(Ft&&Ft.indexOf("Chrome")>=0),$t=!!(Ft&&Ft.indexOf("Firefox")>=0),Wt=!!(!Pt&&Ft&&Ft.indexOf("Safari")>=0),jt=!!(Ft&&Ft.indexOf("Edg/")>=0);Ft&&Ft.indexOf("Android");const zt={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}};var Ht;!function(t){function i(t){return t&&"object"==typeof t&&"function"==typeof t[Symbol.iterator]}t.is=i;const e=Object.freeze([]);function*s(t){yield t}t.empty=function(){return e},t.single=s,t.wrap=function(t){return i(t)?t:s(t)},t.from=function(t){return t||e},t.reverse=function*(t){for(let i=t.length-1;i>=0;i--)yield t[i]},t.isEmpty=function(t){return!t||!0===t[Symbol.iterator]().next().done},t.first=function(t){return t[Symbol.iterator]().next().value},t.some=function(t,i){for(const e of t)if(i(e))return!0;return!1},t.find=function(t,i){for(const e of t)if(i(e))return e},t.filter=function*(t,i){for(const e of t)i(e)&&(yield e)},t.map=function*(t,i){let e=0;for(const s of t)yield i(s,e++)},t.concat=function*(...t){for(const i of t)yield*i},t.reduce=function(t,i,e){let s=e;for(const e of t)s=i(s,e);return s},t.slice=function*(t,i,e=t.length){for(i<0&&(i+=t.length),e<0?e+=t.length:e>t.length&&(e=t.length);in}]}}(Ht||(Ht={}));class Vt{constructor(t){this.element=t,this.next=Vt.Undefined,this.prev=Vt.Undefined}}Vt.Undefined=new Vt(void 0);class Ut{constructor(){this._first=Vt.Undefined,this._last=Vt.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===Vt.Undefined}clear(){let t=this._first;for(;t!==Vt.Undefined;){const i=t.next;t.prev=Vt.Undefined,t.next=Vt.Undefined,t=i}this._first=Vt.Undefined,this._last=Vt.Undefined,this._size=0}unshift(t){return this._insert(t,!1)}push(t){return this._insert(t,!0)}_insert(t,i){const e=new Vt(t);if(this._first===Vt.Undefined)this._first=e,this._last=e;else if(i){const t=this._last;this._last=e,e.prev=t,t.next=e}else{const t=this._first;this._first=e,e.next=t,t.prev=e}this._size+=1;let s=!1;return()=>{s||(s=!0,this._remove(e))}}shift(){if(this._first!==Vt.Undefined){const t=this._first.element;return this._remove(this._first),t}}pop(){if(this._last!==Vt.Undefined){const t=this._last.element;return this._remove(this._last),t}}_remove(t){if(t.prev!==Vt.Undefined&&t.next!==Vt.Undefined){const i=t.prev;i.next=t.next,t.next.prev=i}else t.prev===Vt.Undefined&&t.next===Vt.Undefined?(this._first=Vt.Undefined,this._last=Vt.Undefined):t.next===Vt.Undefined?(this._last=this._last.prev,this._last.next=Vt.Undefined):t.prev===Vt.Undefined&&(this._first=this._first.next,this._first.prev=Vt.Undefined);this._size-=1}*[Symbol.iterator](){let t=this._first;for(;t!==Vt.Undefined;)yield t.element,t=t.next}}const qt="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?",Kt=function(t=""){let i="(-?\\d*\\.\\d\\w*)|([^";for(const e of qt)t.indexOf(e)>=0||(i+="\\"+e);return i+="\\s]+)",new RegExp(i,"g")}();function Gt(t){let i=Kt;if(t&&t instanceof RegExp)if(t.global)i=t;else{let e="g";t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),i=new RegExp(t.source,e)}return i.lastIndex=0,i}const Zt=new Ut;function Qt(t,i,e,s,n){if(i=Gt(i),n||(n=Ht.first(Zt)),e.length>n.maxLen){let o=t-n.maxLen/2;return o<0?o=0:s+=o,Qt(t,i,e=e.substring(o,t+n.maxLen/2),s,n)}const o=Date.now(),r=t-1-s;let h=-1,c=null;for(let t=1;!(Date.now()-o>=n.timeBudget);t++){const s=r-n.windowSize*t;i.lastIndex=Math.max(0,s);const o=Jt(i,e,r,h);if(!o&&c)break;if(c=o,s<=0)break;h=s}if(c){const t={word:c[0],startColumn:s+1+c.index,endColumn:s+1+c.index+c[0].length};return i.lastIndex=0,t}return null}function Jt(t,i,e,s){let n;for(;n=t.exec(i);){const i=n.index||0;if(i<=e&&t.lastIndex>=e)return n;if(s>0&&i>s)return null}return null}Zt.unshift({maxLen:1e3,windowSize:15,timeBudget:150});class Yt{constructor(t){this._values=t}hasChanged(t){return this._values[t]}}class Xt{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}}class ti{constructor(t,i,e,s){this.id=t,this.name=i,this.defaultValue=e,this.schema=s}applyUpdate(t,i){return ei(t,i)}compute(t,i,e){return e}}class ii{constructor(t,i){this.newValue=t,this.didChange=i}}function ei(t,i){if("object"!=typeof t||"object"!=typeof i||!t||!i)return new ii(i,t!==i);if(Array.isArray(t)||Array.isArray(i)){const e=Array.isArray(t)&&Array.isArray(i)&&l(t,i);return new ii(i,!e)}let e=!1;for(const s in i)if(i.hasOwnProperty(s)){const n=ei(t[s],i[s]);n.didChange&&(t[s]=n.newValue,e=!0)}return new ii(t,e)}class si{constructor(t){this.schema=void 0,this.id=t,this.name="_never_",this.defaultValue=void 0}applyUpdate(t,i){return ei(t,i)}validate(t){return this.defaultValue}}class ni{constructor(t,i,e,s){this.id=t,this.name=i,this.defaultValue=e,this.schema=s}applyUpdate(t,i){return ei(t,i)}validate(t){return void 0===t?this.defaultValue:t}compute(t,i,e){return e}}function oi(t,i){return void 0===t?i:"false"!==t&&Boolean(t)}class ri extends ni{constructor(t,i,e,s){void 0!==s&&(s.type="boolean",s.default=e),super(t,i,e,s)}validate(t){return oi(t,this.defaultValue)}}function hi(t,i,e,s){if(void 0===t)return i;let n=parseInt(t,10);return isNaN(n)?i:(n=Math.max(e,n),n=Math.min(s,n),0|n)}class ci extends ni{static clampedInt(t,i,e,s){return hi(t,i,e,s)}constructor(t,i,e,s,n,o){void 0!==o&&(o.type="integer",o.default=e,o.minimum=s,o.maximum=n),super(t,i,e,o),this.minimum=s,this.maximum=n}validate(t){return ci.clampedInt(t,this.defaultValue,this.minimum,this.maximum)}}function ai(t,i,e,s){if(void 0===t)return i;const n=li.float(t,i);return li.clamp(n,e,s)}class li extends ni{static clamp(t,i,e){return te?e:t}static float(t,i){if("number"==typeof t)return t;if(void 0===t)return i;const e=parseFloat(t);return isNaN(e)?i:e}constructor(t,i,e,s,n){void 0!==n&&(n.type="number",n.default=e),super(t,i,e,n),this.validationFn=s}validate(t){return this.validationFn(li.float(t,this.defaultValue))}}class ui extends ni{static string(t,i){return"string"!=typeof t?i:t}constructor(t,i,e,s){void 0!==s&&(s.type="string",s.default=e),super(t,i,e,s)}validate(t){return ui.string(t,this.defaultValue)}}function di(t,i,e,s){return"string"!=typeof t?i:s&&t in s?s[t]:-1===e.indexOf(t)?i:t}class fi extends ni{constructor(t,i,e,s,n){void 0!==n&&(n.type="string",n.enum=s,n.default=e),super(t,i,e,n),this._allowedValues=s}validate(t){return di(t,this.defaultValue,this._allowedValues)}}class pi extends ti{constructor(t,i,e,s,n,o,r){void 0!==r&&(r.type="string",r.enum=n,r.default=s),super(t,i,e,r),this._allowedValues=n,this._convert=o}validate(t){return"string"!=typeof t||-1===this._allowedValues.indexOf(t)?this.defaultValue:this._convert(t)}}var gi,mi;!function(t){t[t.Line=1]="Line",t[t.Block=2]="Block",t[t.Underline=3]="Underline",t[t.LineThin=4]="LineThin",t[t.BlockOutline=5]="BlockOutline",t[t.UnderlineThin=6]="UnderlineThin"}(gi||(gi={}));class wi extends ti{constructor(){super(51,"fontLigatures",wi.OFF,{anyOf:[{type:"boolean",description:ot(0,"Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.")},{type:"string",description:ot(0,"Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:ot(0,"Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property."),default:!1})}validate(t){return void 0===t?this.defaultValue:"string"==typeof t?"false"===t?wi.OFF:"true"===t?wi.ON:t:Boolean(t)?wi.ON:wi.OFF}}wi.OFF='"liga" off, "calt" off',wi.ON='"liga" on, "calt" on';class vi extends ti{constructor(){super(54,"fontVariations",vi.OFF,{anyOf:[{type:"boolean",description:ot(0,"Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.")},{type:"string",description:ot(0,"Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.")}],description:ot(0,"Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property."),default:!1})}validate(t){return void 0===t?this.defaultValue:"string"==typeof t?"false"===t?vi.OFF:"true"===t?vi.TRANSLATE:t:Boolean(t)?vi.TRANSLATE:vi.OFF}compute(t,i,e){return t.fontInfo.fontVariationSettings}}vi.OFF="normal",vi.TRANSLATE="translate";class bi extends ti{constructor(){super(53,"fontWeight",Ri.fontWeight,{anyOf:[{type:"number",minimum:bi.MINIMUM_VALUE,maximum:bi.MAXIMUM_VALUE,errorMessage:ot(0,'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.')},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:bi.SUGGESTION_VALUES}],default:Ri.fontWeight,description:ot(0,'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')})}validate(t){return"normal"===t||"bold"===t?t:String(ci.clampedInt(t,Ri.fontWeight,bi.MINIMUM_VALUE,bi.MAXIMUM_VALUE))}}bi.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"],bi.MINIMUM_VALUE=1,bi.MAXIMUM_VALUE=1e3;class yi extends si{constructor(){super(143)}compute(t,i,e){return yi.computeLayout(i,{memory:t.memory,outerWidth:t.outerWidth,outerHeight:t.outerHeight,isDominatedByLongLines:t.isDominatedByLongLines,lineHeight:t.fontInfo.lineHeight,viewLineCount:t.viewLineCount,lineNumbersDigitCount:t.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:t.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:t.fontInfo.maxDigitWidth,pixelRatio:t.pixelRatio,glyphMarginDecorationLaneCount:t.glyphMarginDecorationLaneCount})}static computeContainedMinimapLineCount(t){const i=t.height/t.lineHeight,e=Math.floor(t.paddingTop/t.lineHeight);let s=Math.floor(t.paddingBottom/t.lineHeight);t.scrollBeyondLastLine&&(s=Math.max(s,i-1));const n=(e+t.viewLineCount+s)/(t.pixelRatio*t.height);return{typicalViewportLineCount:i,extraLinesBeforeFirstLine:e,extraLinesBeyondLastLine:s,desiredRatio:n,minimapLineCount:Math.floor(t.viewLineCount/n)}}static _computeMinimapLayout(t,i){const e=t.outerWidth,s=t.outerHeight,n=t.pixelRatio;if(!t.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(n*s),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:s};const o=i.stableMinimapLayoutInput,r=o&&t.outerHeight===o.outerHeight&&t.lineHeight===o.lineHeight&&t.typicalHalfwidthCharacterWidth===o.typicalHalfwidthCharacterWidth&&t.pixelRatio===o.pixelRatio&&t.scrollBeyondLastLine===o.scrollBeyondLastLine&&t.paddingTop===o.paddingTop&&t.paddingBottom===o.paddingBottom&&t.minimap.enabled===o.minimap.enabled&&t.minimap.side===o.minimap.side&&t.minimap.size===o.minimap.size&&t.minimap.showSlider===o.minimap.showSlider&&t.minimap.renderCharacters===o.minimap.renderCharacters&&t.minimap.maxColumn===o.minimap.maxColumn&&t.minimap.scale===o.minimap.scale&&t.verticalScrollbarWidth===o.verticalScrollbarWidth&&t.isViewportWrapping===o.isViewportWrapping,h=t.lineHeight,c=t.typicalHalfwidthCharacterWidth,a=t.scrollBeyondLastLine,l=t.minimap.renderCharacters;let u=n>=2?Math.round(2*t.minimap.scale):t.minimap.scale;const d=t.minimap.maxColumn,f=t.minimap.size,p=t.minimap.side,g=t.verticalScrollbarWidth,m=t.viewLineCount,w=t.remainingWidth,v=t.isViewportWrapping,b=l?2:3;let y=Math.floor(n*s);const k=y/n;let x=!1,C=!1,S=b*u,D=u/n,E=1;if("fill"===f||"fit"===f){const{typicalViewportLineCount:e,extraLinesBeforeFirstLine:o,extraLinesBeyondLastLine:c,desiredRatio:l,minimapLineCount:d}=yi.computeContainedMinimapLineCount({viewLineCount:m,scrollBeyondLastLine:a,paddingTop:t.paddingTop,paddingBottom:t.paddingBottom,height:s,lineHeight:h,pixelRatio:n});if(m/d>1)x=!0,C=!0,u=1,S=1,D=u/n;else{let s=!1,a=u+1;if("fit"===f){const t=Math.ceil((o+m+c)*S);v&&r&&w<=i.stableFitRemainingWidth?(s=!0,a=i.stableFitMaxMinimapScale):s=t>y}if("fill"===f||s){x=!0;const s=u;S=Math.min(h*n,Math.max(1,Math.floor(1/l))),v&&r&&w<=i.stableFitRemainingWidth&&(a=i.stableFitMaxMinimapScale),u=Math.min(a,Math.max(1,Math.floor(S/b))),u>s&&(E=Math.min(2,u/s)),D=u/n/E,y=Math.ceil(Math.max(e,o+m+c)*S),v?(i.stableMinimapLayoutInput=t,i.stableFitRemainingWidth=w,i.stableFitMaxMinimapScale=u):(i.stableMinimapLayoutInput=null,i.stableFitRemainingWidth=0)}}}const A=Math.floor(d*D),M=Math.min(A,Math.max(0,Math.floor((w-g-2)*D/(c+D)))+8);let L=Math.floor(n*M);const F=L/n;return L=Math.floor(L*E),{renderMinimap:l?1:2,minimapLeft:"left"===p?0:e-M-g,minimapWidth:M,minimapHeightIsEditorHeight:x,minimapIsSampling:C,minimapScale:u,minimapLineHeight:S,minimapCanvasInnerWidth:L,minimapCanvasInnerHeight:y,minimapCanvasOuterWidth:F,minimapCanvasOuterHeight:k}}static computeLayout(t,i){const e=0|i.outerWidth,s=0|i.outerHeight,n=0|i.lineHeight,o=0|i.lineNumbersDigitCount,r=i.typicalHalfwidthCharacterWidth,h=i.maxDigitWidth,c=i.pixelRatio,a=i.viewLineCount,l=t.get(135),u="inherit"===l?t.get(134):l,d="inherit"===u?t.get(130):u,f=t.get(133),p=i.isDominatedByLongLines,g=t.get(57),m=0!==t.get(67).renderType,w=t.get(68),v=t.get(104),b=t.get(83),y=t.get(72),k=t.get(102),x=k.verticalScrollbarSize,C=k.verticalHasArrows,S=k.arrowSize,D=k.horizontalScrollbarSize,E=t.get(43),A="never"!==t.get(109);let M=t.get(65);E&&A&&(M+=16);let L=0;if(m){const t=Math.max(o,w);L=Math.round(t*h)}let F=0;g&&(F=n*i.glyphMarginDecorationLaneCount);let T=0,R=T+F,O=R+L,I=O+M;const _=e-F-L-M;let N=!1,B=!1,P=-1;"inherit"===u&&p?(N=!0,B=!0):"on"===d||"bounded"===d?B=!0:"wordWrapColumn"===d&&(P=f);const $=yi._computeMinimapLayout({outerWidth:e,outerHeight:s,lineHeight:n,typicalHalfwidthCharacterWidth:r,pixelRatio:c,scrollBeyondLastLine:v,paddingTop:b.top,paddingBottom:b.bottom,minimap:y,verticalScrollbarWidth:x,viewLineCount:a,remainingWidth:_,isViewportWrapping:B},i.memory||new Xt);0!==$.renderMinimap&&0===$.minimapLeft&&(T+=$.minimapWidth,R+=$.minimapWidth,O+=$.minimapWidth,I+=$.minimapWidth);const W=_-$.minimapWidth,j=Math.max(1,Math.floor((W-x-2)/r)),z=C?S:0;return B&&(P=Math.max(1,j),"bounded"===d&&(P=Math.min(P,f))),{width:e,height:s,glyphMarginLeft:T,glyphMarginWidth:F,glyphMarginDecorationLaneCount:i.glyphMarginDecorationLaneCount,lineNumbersLeft:R,lineNumbersWidth:L,decorationsLeft:O,decorationsWidth:M,contentLeft:I,contentWidth:W,minimap:$,viewportColumn:j,isWordWrapMinified:N,isViewportWrapping:B,wrappingColumn:P,verticalScrollbarWidth:x,horizontalScrollbarHeight:D,overviewRuler:{top:z,width:x,height:s-2*z,right:0}}}}function ki(t){const i=t.get(97);return"editable"===i?t.get(90):"on"!==i}function xi(t,i){if("string"!=typeof t)return i;switch(t){case"hidden":return 2;case"visible":return 3;default:return 1}}!function(t){t.Off="off",t.OnCode="onCode",t.On="on"}(mi||(mi={}));const Ci="inUntrustedWorkspace",Si="editor.unicodeHighlight.allowedCharacters",Di="editor.unicodeHighlight.invisibleCharacters",Ei="editor.unicodeHighlight.nonBasicASCII",Ai="editor.unicodeHighlight.ambiguousCharacters",Mi="editor.unicodeHighlight.includeComments",Li="editor.unicodeHighlight.includeStrings",Fi="editor.unicodeHighlight.allowedLocales";function Ti(t,i,e){const s=e.indexOf(t);return-1===s?i:e[s]}const Ri={fontFamily:Ct?"Menlo, Monaco, 'Courier New', monospace":St?"'Droid Sans Mono', 'monospace', monospace":"Consolas, 'Courier New', monospace",fontWeight:"normal",fontSize:Ct?12:14,lineHeight:0,letterSpacing:0},Oi=[];function Ii(t){return Oi[t.id]=t,t}const _i={acceptSuggestionOnCommitCharacter:Ii(new ri(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:ot(0,"Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.")})),acceptSuggestionOnEnter:Ii(new fi(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",ot(0,"Only accept a suggestion with `Enter` when it makes a textual change."),""],markdownDescription:ot(0,"Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.")})),accessibilitySupport:Ii(new class extends ti{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[ot(0,"Use platform APIs to detect when a Screen Reader is attached."),ot(0,"Optimize for usage with a Screen Reader."),ot(0,"Assume a screen reader is not attached.")],default:"auto",tags:["accessibility"],description:ot(0,"Controls if the UI should run in a mode where it is optimized for screen readers.")})}validate(t){switch(t){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(t,i,e){return 0===e?t.accessibilitySupport:e}}),accessibilityPageSize:Ii(new ci(3,"accessibilityPageSize",10,1,1073741824,{description:ot(0,"Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default."),tags:["accessibility"]})),ariaLabel:Ii(new ui(4,"ariaLabel",ot(0,"Editor content"))),ariaRequired:Ii(new ri(5,"ariaRequired",!1,void 0)),screenReaderAnnounceInlineSuggestion:Ii(new ri(8,"screenReaderAnnounceInlineSuggestion",!0,{description:ot(0,"Control whether inline suggestions are announced by a screen reader."),tags:["accessibility"]})),autoClosingBrackets:Ii(new fi(6,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",ot(0,"Use language configurations to determine when to autoclose brackets."),ot(0,"Autoclose brackets only when the cursor is to the left of whitespace."),""],description:ot(0,"Controls whether the editor should automatically close brackets after the user adds an opening bracket.")})),autoClosingComments:Ii(new fi(7,"autoClosingComments","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",ot(0,"Use language configurations to determine when to autoclose comments."),ot(0,"Autoclose comments only when the cursor is to the left of whitespace."),""],description:ot(0,"Controls whether the editor should automatically close comments after the user adds an opening comment.")})),autoClosingDelete:Ii(new fi(9,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",ot(0,"Remove adjacent closing quotes or brackets only if they were automatically inserted."),""],description:ot(0,"Controls whether the editor should remove adjacent closing quotes or brackets when deleting.")})),autoClosingOvertype:Ii(new fi(10,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",ot(0,"Type over closing quotes or brackets only if they were automatically inserted."),""],description:ot(0,"Controls whether the editor should type over closing quotes or brackets.")})),autoClosingQuotes:Ii(new fi(11,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",ot(0,"Use language configurations to determine when to autoclose quotes."),ot(0,"Autoclose quotes only when the cursor is to the left of whitespace."),""],description:ot(0,"Controls whether the editor should automatically close quotes after the user adds an opening quote.")})),autoIndent:Ii(new pi(12,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],(function(t){switch(t){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}),{enumDescriptions:[ot(0,"The editor will not insert indentation automatically."),ot(0,"The editor will keep the current line's indentation."),ot(0,"The editor will keep the current line's indentation and honor language defined brackets."),ot(0,"The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."),ot(0,"The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.")],description:ot(0,"Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")})),automaticLayout:Ii(new ri(13,"automaticLayout",!1)),autoSurround:Ii(new fi(14,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[ot(0,"Use language configurations to determine when to automatically surround selections."),ot(0,"Surround with quotes but not brackets."),ot(0,"Surround with brackets but not quotes."),""],description:ot(0,"Controls whether the editor should automatically surround selections when typing quotes or brackets.")})),bracketPairColorization:Ii(new class extends ti{constructor(){const t={enabled:zt.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:zt.bracketPairColorizationOptions.independentColorPoolPerBracketType};super(15,"bracketPairColorization",t,{"editor.bracketPairColorization.enabled":{type:"boolean",default:t.enabled,markdownDescription:ot(0,"Controls whether bracket pair colorization is enabled or not. Use {0} to override the bracket highlight colors.","`#workbench.colorCustomizations#`")},"editor.bracketPairColorization.independentColorPoolPerBracketType":{type:"boolean",default:t.independentColorPoolPerBracketType,description:ot(0,"Controls whether each bracket type has its own independent color pool.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{enabled:oi(i.enabled,this.defaultValue.enabled),independentColorPoolPerBracketType:oi(i.independentColorPoolPerBracketType,this.defaultValue.independentColorPoolPerBracketType)}}}),bracketPairGuides:Ii(new class extends ti{constructor(){const t={bracketPairs:!1,bracketPairsHorizontal:"active",highlightActiveBracketPair:!0,indentation:!0,highlightActiveIndentation:!0};super(16,"guides",t,{"editor.guides.bracketPairs":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[ot(0,"Enables bracket pair guides."),ot(0,"Enables bracket pair guides only for the active bracket pair."),ot(0,"Disables bracket pair guides.")],default:t.bracketPairs,description:ot(0,"Controls whether bracket pair guides are enabled or not.")},"editor.guides.bracketPairsHorizontal":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[ot(0,"Enables horizontal guides as addition to vertical bracket pair guides."),ot(0,"Enables horizontal guides only for the active bracket pair."),ot(0,"Disables horizontal bracket pair guides.")],default:t.bracketPairsHorizontal,description:ot(0,"Controls whether horizontal bracket pair guides are enabled or not.")},"editor.guides.highlightActiveBracketPair":{type:"boolean",default:t.highlightActiveBracketPair,description:ot(0,"Controls whether the editor should highlight the active bracket pair.")},"editor.guides.indentation":{type:"boolean",default:t.indentation,description:ot(0,"Controls whether the editor should render indent guides.")},"editor.guides.highlightActiveIndentation":{type:["boolean","string"],enum:[!0,"always",!1],enumDescriptions:[ot(0,"Highlights the active indent guide."),ot(0,"Highlights the active indent guide even if bracket guides are highlighted."),ot(0,"Do not highlight the active indent guide.")],default:t.highlightActiveIndentation,description:ot(0,"Controls whether the editor should highlight the active indent guide.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{bracketPairs:Ti(i.bracketPairs,this.defaultValue.bracketPairs,[!0,!1,"active"]),bracketPairsHorizontal:Ti(i.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[!0,!1,"active"]),highlightActiveBracketPair:oi(i.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:oi(i.indentation,this.defaultValue.indentation),highlightActiveIndentation:Ti(i.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation,[!0,!1,"always"])}}}),stickyTabStops:Ii(new ri(115,"stickyTabStops",!1,{description:ot(0,"Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.")})),codeLens:Ii(new ri(17,"codeLens",!0,{description:ot(0,"Controls whether the editor shows CodeLens.")})),codeLensFontFamily:Ii(new ui(18,"codeLensFontFamily","",{description:ot(0,"Controls the font family for CodeLens.")})),codeLensFontSize:Ii(new ci(19,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:ot(0,"Controls the font size in pixels for CodeLens. When set to 0, 90% of `#editor.fontSize#` is used.")})),colorDecorators:Ii(new ri(20,"colorDecorators",!0,{description:ot(0,"Controls whether the editor should render the inline color decorators and color picker.")})),colorDecoratorActivatedOn:Ii(new fi(146,"colorDecoratorsActivatedOn","clickAndHover",["clickAndHover","hover","click"],{enumDescriptions:[ot(0,"Make the color picker appear both on click and hover of the color decorator"),ot(0,"Make the color picker appear on hover of the color decorator"),ot(0,"Make the color picker appear on click of the color decorator")],description:ot(0,"Controls the condition to make a color picker appear from a color decorator")})),colorDecoratorsLimit:Ii(new ci(21,"colorDecoratorsLimit",500,1,1e6,{markdownDescription:ot(0,"Controls the max number of color decorators that can be rendered in an editor at once.")})),columnSelection:Ii(new ri(22,"columnSelection",!1,{description:ot(0,"Enable that the selection with the mouse and keys is doing column selection.")})),comments:Ii(new class extends ti{constructor(){const t={insertSpace:!0,ignoreEmptyLines:!0};super(23,"comments",t,{"editor.comments.insertSpace":{type:"boolean",default:t.insertSpace,description:ot(0,"Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:t.ignoreEmptyLines,description:ot(0,"Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{insertSpace:oi(i.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:oi(i.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}),contextmenu:Ii(new ri(24,"contextmenu",!0)),copyWithSyntaxHighlighting:Ii(new ri(25,"copyWithSyntaxHighlighting",!0,{description:ot(0,"Controls whether syntax highlighting should be copied into the clipboard.")})),cursorBlinking:Ii(new pi(26,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],(function(t){switch(t){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}),{description:ot(0,"Control the cursor animation style.")})),cursorSmoothCaretAnimation:Ii(new fi(27,"cursorSmoothCaretAnimation","off",["off","explicit","on"],{enumDescriptions:[ot(0,"Smooth caret animation is disabled."),ot(0,"Smooth caret animation is enabled only when the user moves the cursor with an explicit gesture."),ot(0,"Smooth caret animation is always enabled.")],description:ot(0,"Controls whether the smooth caret animation should be enabled.")})),cursorStyle:Ii(new pi(28,"cursorStyle",gi.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],(function(t){switch(t){case"line":return gi.Line;case"block":return gi.Block;case"underline":return gi.Underline;case"line-thin":return gi.LineThin;case"block-outline":return gi.BlockOutline;case"underline-thin":return gi.UnderlineThin}}),{description:ot(0,"Controls the cursor style.")})),cursorSurroundingLines:Ii(new ci(29,"cursorSurroundingLines",0,0,1073741824,{description:ot(0,"Controls the minimal number of visible leading lines (minimum 0) and trailing lines (minimum 1) surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.")})),cursorSurroundingLinesStyle:Ii(new fi(30,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[ot(0,"`cursorSurroundingLines` is enforced only when triggered via the keyboard or API."),ot(0,"`cursorSurroundingLines` is enforced always.")],markdownDescription:ot(0,"Controls when `#cursorSurroundingLines#` should be enforced.")})),cursorWidth:Ii(new ci(31,"cursorWidth",0,0,1073741824,{markdownDescription:ot(0,"Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")})),disableLayerHinting:Ii(new ri(32,"disableLayerHinting",!1)),disableMonospaceOptimizations:Ii(new ri(33,"disableMonospaceOptimizations",!1)),domReadOnly:Ii(new ri(34,"domReadOnly",!1)),dragAndDrop:Ii(new ri(35,"dragAndDrop",!0,{description:ot(0,"Controls whether the editor should allow moving selections via drag and drop.")})),emptySelectionClipboard:Ii(new class extends ri{constructor(){super(37,"emptySelectionClipboard",!0,{description:ot(0,"Controls whether copying without a selection copies the current line.")})}compute(t,i,e){return e&&t.emptySelectionClipboard}}),dropIntoEditor:Ii(new class extends ti{constructor(){const t={enabled:!0,showDropSelector:"afterDrop"};super(36,"dropIntoEditor",t,{"editor.dropIntoEditor.enabled":{type:"boolean",default:t.enabled,markdownDescription:ot(0,"Controls whether you can drag and drop a file into a text editor by holding down `Shift`-key (instead of opening the file in an editor).")},"editor.dropIntoEditor.showDropSelector":{type:"string",markdownDescription:ot(0,"Controls if a widget is shown when dropping files into the editor. This widget lets you control how the file is dropped."),enum:["afterDrop","never"],enumDescriptions:[ot(0,"Show the drop selector widget after a file is dropped into the editor."),ot(0,"Never show the drop selector widget. Instead the default drop provider is always used.")],default:"afterDrop"}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{enabled:oi(i.enabled,this.defaultValue.enabled),showDropSelector:di(i.showDropSelector,this.defaultValue.showDropSelector,["afterDrop","never"])}}}),stickyScroll:Ii(new class extends ti{constructor(){const t={enabled:!1,maxLineCount:5,defaultModel:"outlineModel",scrollWithEditor:!0};super(114,"stickyScroll",t,{"editor.stickyScroll.enabled":{type:"boolean",default:t.enabled,description:ot(0,"Shows the nested current scopes during the scroll at the top of the editor.")},"editor.stickyScroll.maxLineCount":{type:"number",default:t.maxLineCount,minimum:1,maximum:10,description:ot(0,"Defines the maximum number of sticky lines to show.")},"editor.stickyScroll.defaultModel":{type:"string",enum:["outlineModel","foldingProviderModel","indentationModel"],default:t.defaultModel,description:ot(0,"Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.")},"editor.stickyScroll.scrollWithEditor":{type:"boolean",default:t.scrollWithEditor,description:ot(0,"Enable scrolling of Sticky Scroll with the editor's horizontal scrollbar.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{enabled:oi(i.enabled,this.defaultValue.enabled),maxLineCount:ci.clampedInt(i.maxLineCount,this.defaultValue.maxLineCount,1,10),defaultModel:di(i.defaultModel,this.defaultValue.defaultModel,["outlineModel","foldingProviderModel","indentationModel"]),scrollWithEditor:oi(i.scrollWithEditor,this.defaultValue.scrollWithEditor)}}}),experimentalWhitespaceRendering:Ii(new fi(38,"experimentalWhitespaceRendering","svg",["svg","font","off"],{enumDescriptions:[ot(0,"Use a new rendering method with svgs."),ot(0,"Use a new rendering method with font characters."),ot(0,"Use the stable rendering method.")],description:ot(0,"Controls whether whitespace is rendered with a new, experimental method.")})),extraEditorClassName:Ii(new ui(39,"extraEditorClassName","")),fastScrollSensitivity:Ii(new li(40,"fastScrollSensitivity",5,(t=>t<=0?5:t),{markdownDescription:ot(0,"Scrolling speed multiplier when pressing `Alt`.")})),find:Ii(new class extends ti{constructor(){const t={cursorMoveOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0};super(41,"find",t,{"editor.find.cursorMoveOnType":{type:"boolean",default:t.cursorMoveOnType,description:ot(0,"Controls whether the cursor should jump to find matches while typing.")},"editor.find.seedSearchStringFromSelection":{type:"string",enum:["never","always","selection"],default:t.seedSearchStringFromSelection,enumDescriptions:[ot(0,"Never seed search string from the editor selection."),ot(0,"Always seed search string from the editor selection, including word at cursor position."),ot(0,"Only seed search string from the editor selection.")],description:ot(0,"Controls whether the search string in the Find Widget is seeded from the editor selection.")},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:t.autoFindInSelection,enumDescriptions:[ot(0,"Never turn on Find in Selection automatically (default)."),ot(0,"Always turn on Find in Selection automatically."),ot(0,"Turn on Find in Selection automatically when multiple lines of content are selected.")],description:ot(0,"Controls the condition for turning on Find in Selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:t.globalFindClipboard,description:ot(0,"Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:Ct},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:t.addExtraSpaceOnTop,description:ot(0,"Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.")},"editor.find.loop":{type:"boolean",default:t.loop,description:ot(0,"Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{cursorMoveOnType:oi(i.cursorMoveOnType,this.defaultValue.cursorMoveOnType),seedSearchStringFromSelection:"boolean"==typeof t.seedSearchStringFromSelection?t.seedSearchStringFromSelection?"always":"never":di(i.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:"boolean"==typeof t.autoFindInSelection?t.autoFindInSelection?"always":"never":di(i.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:oi(i.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:oi(i.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:oi(i.loop,this.defaultValue.loop)}}}),fixedOverflowWidgets:Ii(new ri(42,"fixedOverflowWidgets",!1)),folding:Ii(new ri(43,"folding",!0,{description:ot(0,"Controls whether the editor has code folding enabled.")})),foldingStrategy:Ii(new fi(44,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[ot(0,"Use a language-specific folding strategy if available, else the indentation-based one."),ot(0,"Use the indentation-based folding strategy.")],description:ot(0,"Controls the strategy for computing folding ranges.")})),foldingHighlight:Ii(new ri(45,"foldingHighlight",!0,{description:ot(0,"Controls whether the editor should highlight folded ranges.")})),foldingImportsByDefault:Ii(new ri(46,"foldingImportsByDefault",!1,{description:ot(0,"Controls whether the editor automatically collapses import ranges.")})),foldingMaximumRegions:Ii(new ci(47,"foldingMaximumRegions",5e3,10,65e3,{description:ot(0,"The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.")})),unfoldOnClickAfterEndOfLine:Ii(new ri(48,"unfoldOnClickAfterEndOfLine",!1,{description:ot(0,"Controls whether clicking on the empty content after a folded line will unfold the line.")})),fontFamily:Ii(new ui(49,"fontFamily",Ri.fontFamily,{description:ot(0,"Controls the font family.")})),fontInfo:Ii(new class extends si{constructor(){super(50)}compute(t,i,e){return t.fontInfo}}),fontLigatures2:Ii(new wi),fontSize:Ii(new class extends ni{constructor(){super(52,"fontSize",Ri.fontSize,{type:"number",minimum:6,maximum:100,default:Ri.fontSize,description:ot(0,"Controls the font size in pixels.")})}validate(t){const i=li.float(t,this.defaultValue);return 0===i?Ri.fontSize:li.clamp(i,6,100)}compute(t,i,e){return t.fontInfo.fontSize}}),fontWeight:Ii(new bi),fontVariations:Ii(new vi),formatOnPaste:Ii(new ri(55,"formatOnPaste",!1,{description:ot(0,"Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.")})),formatOnType:Ii(new ri(56,"formatOnType",!1,{description:ot(0,"Controls whether the editor should automatically format the line after typing.")})),glyphMargin:Ii(new ri(57,"glyphMargin",!0,{description:ot(0,"Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")})),gotoLocation:Ii(new class extends ti{constructor(){const t={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:""},i={type:"string",enum:["peek","gotoAndPeek","goto"],default:t.multiple,enumDescriptions:[ot(0,"Show Peek view of the results (default)"),ot(0,"Go to the primary result and show a Peek view"),ot(0,"Go to the primary result and enable Peek-less navigation to others")]},e=["","editor.action.referenceSearch.trigger","editor.action.goToReferences","editor.action.peekImplementation","editor.action.goToImplementation","editor.action.peekTypeDefinition","editor.action.goToTypeDefinition","editor.action.peekDeclaration","editor.action.revealDeclaration","editor.action.peekDefinition","editor.action.revealDefinitionAside","editor.action.revealDefinition"];super(58,"gotoLocation",t,{"editor.gotoLocation.multiple":{deprecationMessage:ot(0,"This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")},"editor.gotoLocation.multipleDefinitions":{description:ot(0,"Controls the behavior the 'Go to Definition'-command when multiple target locations exist."),...i},"editor.gotoLocation.multipleTypeDefinitions":{description:ot(0,"Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist."),...i},"editor.gotoLocation.multipleDeclarations":{description:ot(0,"Controls the behavior the 'Go to Declaration'-command when multiple target locations exist."),...i},"editor.gotoLocation.multipleImplementations":{description:ot(0,"Controls the behavior the 'Go to Implementations'-command when multiple target locations exist."),...i},"editor.gotoLocation.multipleReferences":{description:ot(0,"Controls the behavior the 'Go to References'-command when multiple target locations exist."),...i},"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:t.alternativeDefinitionCommand,enum:e,description:ot(0,"Alternative command id that is being executed when the result of 'Go to Definition' is the current location.")},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:t.alternativeTypeDefinitionCommand,enum:e,description:ot(0,"Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.")},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:t.alternativeDeclarationCommand,enum:e,description:ot(0,"Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.")},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:t.alternativeImplementationCommand,enum:e,description:ot(0,"Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.")},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:t.alternativeReferenceCommand,enum:e,description:ot(0,"Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})}validate(t){var i,e,s,n,o;if(!t||"object"!=typeof t)return this.defaultValue;const r=t;return{multiple:di(r.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:null!==(i=r.multipleDefinitions)&&void 0!==i?i:di(r.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:null!==(e=r.multipleTypeDefinitions)&&void 0!==e?e:di(r.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:null!==(s=r.multipleDeclarations)&&void 0!==s?s:di(r.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:null!==(n=r.multipleImplementations)&&void 0!==n?n:di(r.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:null!==(o=r.multipleReferences)&&void 0!==o?o:di(r.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:ui.string(r.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:ui.string(r.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:ui.string(r.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:ui.string(r.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:ui.string(r.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}}}),hideCursorInOverviewRuler:Ii(new ri(59,"hideCursorInOverviewRuler",!1,{description:ot(0,"Controls whether the cursor should be hidden in the overview ruler.")})),hover:Ii(new class extends ti{constructor(){const t={enabled:!0,delay:300,hidingDelay:300,sticky:!0,above:!0};super(60,"hover",t,{"editor.hover.enabled":{type:"boolean",default:t.enabled,description:ot(0,"Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:t.delay,minimum:0,maximum:1e4,description:ot(0,"Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:t.sticky,description:ot(0,"Controls whether the hover should remain visible when mouse is moved over it.")},"editor.hover.hidingDelay":{type:"integer",minimum:0,default:t.hidingDelay,description:ot(0,"Controls the delay in milliseconds after which the hover is hidden. Requires `editor.hover.sticky` to be enabled.")},"editor.hover.above":{type:"boolean",default:t.above,description:ot(0,"Prefer showing hovers above the line, if there's space.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{enabled:oi(i.enabled,this.defaultValue.enabled),delay:ci.clampedInt(i.delay,this.defaultValue.delay,0,1e4),sticky:oi(i.sticky,this.defaultValue.sticky),hidingDelay:ci.clampedInt(i.hidingDelay,this.defaultValue.hidingDelay,0,6e5),above:oi(i.above,this.defaultValue.above)}}}),inDiffEditor:Ii(new ri(61,"inDiffEditor",!1)),letterSpacing:Ii(new li(63,"letterSpacing",Ri.letterSpacing,(t=>li.clamp(t,-5,20)),{description:ot(0,"Controls the letter spacing in pixels.")})),lightbulb:Ii(new class extends ti{constructor(){const t={enabled:!0,experimental:{showAiIcon:mi.Off}};super(64,"lightbulb",t,{"editor.lightbulb.enabled":{type:"boolean",default:t.enabled,description:ot(0,"Enables the Code Action lightbulb in the editor.")},"editor.lightbulb.experimental.showAiIcon":{type:"string",enum:[mi.Off,mi.OnCode,mi.On],default:t.experimental.showAiIcon,enumDescriptions:[ot(0,"Don not show the AI icon."),ot(0,"Show an AI icon when the code action menu contains an AI action, but only on code."),ot(0,"Show an AI icon when the code action menu contains an AI action, on code and empty lines.")],description:ot(0,"Show an AI icon along with the lightbulb when the code action menu contains an AI action.")}})}validate(t){var i,e;if(!t||"object"!=typeof t)return this.defaultValue;const s=t;return{enabled:oi(s.enabled,this.defaultValue.enabled),experimental:{showAiIcon:di(null===(i=s.experimental)||void 0===i?void 0:i.showAiIcon,null===(e=this.defaultValue.experimental)||void 0===e?void 0:e.showAiIcon,[mi.Off,mi.OnCode,mi.On])}}}}),lineDecorationsWidth:Ii(new class extends ti{constructor(){super(65,"lineDecorationsWidth",10)}validate(t){return"string"==typeof t&&/^\d+(\.\d+)?ch$/.test(t)?-parseFloat(t.substring(0,t.length-2)):ci.clampedInt(t,this.defaultValue,0,1e3)}compute(t,i,e){return e<0?ci.clampedInt(-e*t.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):e}}),lineHeight:Ii(new class extends li{constructor(){super(66,"lineHeight",Ri.lineHeight,(t=>li.clamp(t,0,150)),{markdownDescription:ot(0,"Controls the line height. \n - Use 0 to automatically compute the line height from the font size.\n - Values between 0 and 8 will be used as a multiplier with the font size.\n - Values greater than or equal to 8 will be used as effective values.")})}compute(t,i,e){return t.fontInfo.lineHeight}}),lineNumbers:Ii(new class extends ti{constructor(){super(67,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[ot(0,"Line numbers are not rendered."),ot(0,"Line numbers are rendered as absolute number."),ot(0,"Line numbers are rendered as distance in lines to cursor position."),ot(0,"Line numbers are rendered every 10 lines.")],default:"on",description:ot(0,"Controls the display of line numbers.")})}validate(t){let i=this.defaultValue.renderType,e=this.defaultValue.renderFn;return void 0!==t&&("function"==typeof t?(i=4,e=t):i="interval"===t?3:"relative"===t?2:"on"===t?1:0),{renderType:i,renderFn:e}}}),lineNumbersMinChars:Ii(new ci(68,"lineNumbersMinChars",5,1,300)),linkedEditing:Ii(new ri(69,"linkedEditing",!1,{description:ot(0,"Controls whether the editor has linked editing enabled. Depending on the language, related symbols such as HTML tags, are updated while editing.")})),links:Ii(new ri(70,"links",!0,{description:ot(0,"Controls whether the editor should detect links and make them clickable.")})),matchBrackets:Ii(new fi(71,"matchBrackets","always",["always","near","never"],{description:ot(0,"Highlight matching brackets.")})),minimap:Ii(new class extends ti{constructor(){const t={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",autohide:!1,renderCharacters:!0,maxColumn:120,scale:1};super(72,"minimap",t,{"editor.minimap.enabled":{type:"boolean",default:t.enabled,description:ot(0,"Controls whether the minimap is shown.")},"editor.minimap.autohide":{type:"boolean",default:t.autohide,description:ot(0,"Controls whether the minimap is hidden automatically.")},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[ot(0,"The minimap has the same size as the editor contents (and might scroll)."),ot(0,"The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."),ot(0,"The minimap will shrink as necessary to never be larger than the editor (no scrolling).")],default:t.size,description:ot(0,"Controls the size of the minimap.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:t.side,description:ot(0,"Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:t.showSlider,description:ot(0,"Controls when the minimap slider is shown.")},"editor.minimap.scale":{type:"number",default:t.scale,minimum:1,maximum:3,enum:[1,2,3],description:ot(0,"Scale of content drawn in the minimap: 1, 2 or 3.")},"editor.minimap.renderCharacters":{type:"boolean",default:t.renderCharacters,description:ot(0,"Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:t.maxColumn,description:ot(0,"Limit the width of the minimap to render at most a certain number of columns.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{enabled:oi(i.enabled,this.defaultValue.enabled),autohide:oi(i.autohide,this.defaultValue.autohide),size:di(i.size,this.defaultValue.size,["proportional","fill","fit"]),side:di(i.side,this.defaultValue.side,["right","left"]),showSlider:di(i.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:oi(i.renderCharacters,this.defaultValue.renderCharacters),scale:ci.clampedInt(i.scale,1,1,3),maxColumn:ci.clampedInt(i.maxColumn,this.defaultValue.maxColumn,1,1e4)}}}),mouseStyle:Ii(new fi(73,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:Ii(new li(74,"mouseWheelScrollSensitivity",1,(t=>0===t?1:t),{markdownDescription:ot(0,"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")})),mouseWheelZoom:Ii(new ri(75,"mouseWheelZoom",!1,{markdownDescription:ot(0,"Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")})),multiCursorMergeOverlapping:Ii(new ri(76,"multiCursorMergeOverlapping",!0,{description:ot(0,"Merge multiple cursors when they are overlapping.")})),multiCursorModifier:Ii(new pi(77,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],(function(t){return"ctrlCmd"===t?Ct?"metaKey":"ctrlKey":"altKey"}),{markdownEnumDescriptions:[ot(0,"Maps to `Control` on Windows and Linux and to `Command` on macOS."),ot(0,"Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],markdownDescription:ot(0,"The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the [multicursor modifier](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).")})),multiCursorPaste:Ii(new fi(78,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[ot(0,"Each cursor pastes a single line of the text."),ot(0,"Each cursor pastes the full text.")],markdownDescription:ot(0,"Controls pasting when the line count of the pasted text matches the cursor count.")})),multiCursorLimit:Ii(new ci(79,"multiCursorLimit",1e4,1,1e5,{markdownDescription:ot(0,"Controls the max number of cursors that can be in an active editor at once.")})),occurrencesHighlight:Ii(new fi(80,"occurrencesHighlight","singleFile",["off","singleFile","multiFile"],{markdownEnumDescriptions:[ot(0,"Does not highlight occurrences."),ot(0,"Highlights occurrences only in the current file."),ot(0,"Experimental: Highlights occurrences across all valid open files.")],markdownDescription:ot(0,"Controls whether occurrences should be highlighted across open files.")})),overviewRulerBorder:Ii(new ri(81,"overviewRulerBorder",!0,{description:ot(0,"Controls whether a border should be drawn around the overview ruler.")})),overviewRulerLanes:Ii(new ci(82,"overviewRulerLanes",3,0,3)),padding:Ii(new class extends ti{constructor(){super(83,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:ot(0,"Controls the amount of space between the top edge of the editor and the first line.")},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:ot(0,"Controls the amount of space between the bottom edge of the editor and the last line.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{top:ci.clampedInt(i.top,0,0,1e3),bottom:ci.clampedInt(i.bottom,0,0,1e3)}}}),pasteAs:Ii(new class extends ti{constructor(){const t={enabled:!0,showPasteSelector:"afterPaste"};super(84,"pasteAs",t,{"editor.pasteAs.enabled":{type:"boolean",default:t.enabled,markdownDescription:ot(0,"Controls whether you can paste content in different ways.")},"editor.pasteAs.showPasteSelector":{type:"string",markdownDescription:ot(0,"Controls if a widget is shown when pasting content in to the editor. This widget lets you control how the file is pasted."),enum:["afterPaste","never"],enumDescriptions:[ot(0,"Show the paste selector widget after content is pasted into the editor."),ot(0,"Never show the paste selector widget. Instead the default pasting behavior is always used.")],default:"afterPaste"}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{enabled:oi(i.enabled,this.defaultValue.enabled),showPasteSelector:di(i.showPasteSelector,this.defaultValue.showPasteSelector,["afterPaste","never"])}}}),parameterHints:Ii(new class extends ti{constructor(){const t={enabled:!0,cycle:!0};super(85,"parameterHints",t,{"editor.parameterHints.enabled":{type:"boolean",default:t.enabled,description:ot(0,"Enables a pop-up that shows parameter documentation and type information as you type.")},"editor.parameterHints.cycle":{type:"boolean",default:t.cycle,description:ot(0,"Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{enabled:oi(i.enabled,this.defaultValue.enabled),cycle:oi(i.cycle,this.defaultValue.cycle)}}}),peekWidgetDefaultFocus:Ii(new fi(86,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[ot(0,"Focus the tree when opening peek"),ot(0,"Focus the editor when opening peek")],description:ot(0,"Controls whether to focus the inline editor or the tree in the peek widget.")})),definitionLinkOpensInPeek:Ii(new ri(87,"definitionLinkOpensInPeek",!1,{description:ot(0,"Controls whether the Go to Definition mouse gesture always opens the peek widget.")})),quickSuggestions:Ii(new class extends ti{constructor(){const t={other:"on",comments:"off",strings:"off"},i=[{type:"boolean"},{type:"string",enum:["on","inline","off"],enumDescriptions:[ot(0,"Quick suggestions show inside the suggest widget"),ot(0,"Quick suggestions show as ghost text"),ot(0,"Quick suggestions are disabled")]}];super(88,"quickSuggestions",t,{type:"object",additionalProperties:!1,properties:{strings:{anyOf:i,default:t.strings,description:ot(0,"Enable quick suggestions inside strings.")},comments:{anyOf:i,default:t.comments,description:ot(0,"Enable quick suggestions inside comments.")},other:{anyOf:i,default:t.other,description:ot(0,"Enable quick suggestions outside of strings and comments.")}},default:t,markdownDescription:ot(0,"Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the '{0}'-setting which controls if suggestions are triggered by special characters.","#editor.suggestOnTriggerCharacters#")}),this.defaultValue=t}validate(t){if("boolean"==typeof t){const i=t?"on":"off";return{comments:i,strings:i,other:i}}if(!t||"object"!=typeof t)return this.defaultValue;const{other:i,comments:e,strings:s}=t,n=["on","inline","off"];let o,r,h;return o="boolean"==typeof i?i?"on":"off":di(i,this.defaultValue.other,n),r="boolean"==typeof e?e?"on":"off":di(e,this.defaultValue.comments,n),h="boolean"==typeof s?s?"on":"off":di(s,this.defaultValue.strings,n),{other:o,comments:r,strings:h}}}),quickSuggestionsDelay:Ii(new ci(89,"quickSuggestionsDelay",10,0,1073741824,{description:ot(0,"Controls the delay in milliseconds after which quick suggestions will show up.")})),readOnly:Ii(new ri(90,"readOnly",!1)),readOnlyMessage:Ii(new class extends ti{constructor(){super(91,"readOnlyMessage",void 0)}validate(t){return t&&"object"==typeof t?t:this.defaultValue}}),renameOnType:Ii(new ri(92,"renameOnType",!1,{description:ot(0,"Controls whether the editor auto renames on type."),markdownDeprecationMessage:ot(0,"Deprecated, use `editor.linkedEditing` instead.")})),renderControlCharacters:Ii(new ri(93,"renderControlCharacters",!0,{description:ot(0,"Controls whether the editor should render control characters."),restricted:!0})),renderFinalNewline:Ii(new fi(94,"renderFinalNewline",St?"dimmed":"on",["off","on","dimmed"],{description:ot(0,"Render last line number when the file ends with a newline.")})),renderLineHighlight:Ii(new fi(95,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",ot(0,"Highlights both the gutter and the current line.")],description:ot(0,"Controls how the editor should render the current line highlight.")})),renderLineHighlightOnlyWhenFocus:Ii(new ri(96,"renderLineHighlightOnlyWhenFocus",!1,{description:ot(0,"Controls if the editor should render the current line highlight only when the editor is focused.")})),renderValidationDecorations:Ii(new fi(97,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:Ii(new fi(98,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",ot(0,"Render whitespace characters except for single spaces between words."),ot(0,"Render whitespace characters only on selected text."),ot(0,"Render only trailing whitespace characters."),""],description:ot(0,"Controls how the editor should render whitespace characters.")})),revealHorizontalRightPadding:Ii(new ci(99,"revealHorizontalRightPadding",15,0,1e3)),roundedSelection:Ii(new ri(100,"roundedSelection",!0,{description:ot(0,"Controls whether selections should have rounded corners.")})),rulers:Ii(new class extends ti{constructor(){const t=[],i={type:"number",description:ot(0,"Number of monospace characters at which this editor ruler will render.")};super(101,"rulers",t,{type:"array",items:{anyOf:[i,{type:["object"],properties:{column:i,color:{type:"string",description:ot(0,"Color of this editor ruler."),format:"color-hex"}}}]},default:t,description:ot(0,"Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.")})}validate(t){if(Array.isArray(t)){const i=[];for(const e of t)if("number"==typeof e)i.push({column:ci.clampedInt(e,0,0,1e4),color:null});else if(e&&"object"==typeof e){const t=e;i.push({column:ci.clampedInt(t.column,0,0,1e4),color:t.color})}return i.sort(((t,i)=>t.column-i.column)),i}return this.defaultValue}}),scrollbar:Ii(new class extends ti{constructor(){const t={vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0,scrollByPage:!1,ignoreHorizontalScrollbarInContentHeight:!1};super(102,"scrollbar",t,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[ot(0,"The vertical scrollbar will be visible only when necessary."),ot(0,"The vertical scrollbar will always be visible."),ot(0,"The vertical scrollbar will always be hidden.")],default:"auto",description:ot(0,"Controls the visibility of the vertical scrollbar.")},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[ot(0,"The horizontal scrollbar will be visible only when necessary."),ot(0,"The horizontal scrollbar will always be visible."),ot(0,"The horizontal scrollbar will always be hidden.")],default:"auto",description:ot(0,"Controls the visibility of the horizontal scrollbar.")},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:t.verticalScrollbarSize,description:ot(0,"The width of the vertical scrollbar.")},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:t.horizontalScrollbarSize,description:ot(0,"The height of the horizontal scrollbar.")},"editor.scrollbar.scrollByPage":{type:"boolean",default:t.scrollByPage,description:ot(0,"Controls whether clicks scroll by page or jump to click position.")},"editor.scrollbar.ignoreHorizontalScrollbarInContentHeight":{type:"boolean",default:t.ignoreHorizontalScrollbarInContentHeight,description:ot(0,"When set, the horizontal scrollbar will not increase the size of the editor's content.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t,e=ci.clampedInt(i.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),s=ci.clampedInt(i.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:ci.clampedInt(i.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:xi(i.vertical,this.defaultValue.vertical),horizontal:xi(i.horizontal,this.defaultValue.horizontal),useShadows:oi(i.useShadows,this.defaultValue.useShadows),verticalHasArrows:oi(i.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:oi(i.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:oi(i.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:oi(i.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:e,horizontalSliderSize:ci.clampedInt(i.horizontalSliderSize,e,0,1e3),verticalScrollbarSize:s,verticalSliderSize:ci.clampedInt(i.verticalSliderSize,s,0,1e3),scrollByPage:oi(i.scrollByPage,this.defaultValue.scrollByPage),ignoreHorizontalScrollbarInContentHeight:oi(i.ignoreHorizontalScrollbarInContentHeight,this.defaultValue.ignoreHorizontalScrollbarInContentHeight)}}}),scrollBeyondLastColumn:Ii(new ci(103,"scrollBeyondLastColumn",4,0,1073741824,{description:ot(0,"Controls the number of extra characters beyond which the editor will scroll horizontally.")})),scrollBeyondLastLine:Ii(new ri(104,"scrollBeyondLastLine",!0,{description:ot(0,"Controls whether the editor will scroll beyond the last line.")})),scrollPredominantAxis:Ii(new ri(105,"scrollPredominantAxis",!0,{description:ot(0,"Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.")})),selectionClipboard:Ii(new ri(106,"selectionClipboard",!0,{description:ot(0,"Controls whether the Linux primary clipboard should be supported."),included:St})),selectionHighlight:Ii(new ri(107,"selectionHighlight",!0,{description:ot(0,"Controls whether the editor should highlight matches similar to the selection.")})),selectOnLineNumbers:Ii(new ri(108,"selectOnLineNumbers",!0)),showFoldingControls:Ii(new fi(109,"showFoldingControls","mouseover",["always","never","mouseover"],{enumDescriptions:[ot(0,"Always show the folding controls."),ot(0,"Never show the folding controls and reduce the gutter size."),ot(0,"Only show the folding controls when the mouse is over the gutter.")],description:ot(0,"Controls when the folding controls on the gutter are shown.")})),showUnused:Ii(new ri(110,"showUnused",!0,{description:ot(0,"Controls fading out of unused code.")})),showDeprecated:Ii(new ri(138,"showDeprecated",!0,{description:ot(0,"Controls strikethrough deprecated variables.")})),inlayHints:Ii(new class extends ti{constructor(){const t={enabled:"on",fontSize:0,fontFamily:"",padding:!1};super(139,"inlayHints",t,{"editor.inlayHints.enabled":{type:"string",default:t.enabled,description:ot(0,"Enables the inlay hints in the editor."),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[ot(0,"Inlay hints are enabled"),ot(0,"Inlay hints are showing by default and hide when holding {0}",Ct?"Ctrl+Option":"Ctrl+Alt"),ot(0,"Inlay hints are hidden by default and show when holding {0}",Ct?"Ctrl+Option":"Ctrl+Alt"),ot(0,"Inlay hints are disabled")]},"editor.inlayHints.fontSize":{type:"number",default:t.fontSize,markdownDescription:ot(0,"Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.","`#editor.fontSize#`","`5`")},"editor.inlayHints.fontFamily":{type:"string",default:t.fontFamily,markdownDescription:ot(0,"Controls font family of inlay hints in the editor. When set to empty, the {0} is used.","`#editor.fontFamily#`")},"editor.inlayHints.padding":{type:"boolean",default:t.padding,description:ot(0,"Enables the padding around the inlay hints in the editor.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return"boolean"==typeof i.enabled&&(i.enabled=i.enabled?"on":"off"),{enabled:di(i.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:ci.clampedInt(i.fontSize,this.defaultValue.fontSize,0,100),fontFamily:ui.string(i.fontFamily,this.defaultValue.fontFamily),padding:oi(i.padding,this.defaultValue.padding)}}}),snippetSuggestions:Ii(new fi(111,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[ot(0,"Show snippet suggestions on top of other suggestions."),ot(0,"Show snippet suggestions below other suggestions."),ot(0,"Show snippets suggestions with other suggestions."),ot(0,"Do not show snippet suggestions.")],description:ot(0,"Controls whether snippets are shown with other suggestions and how they are sorted.")})),smartSelect:Ii(new class extends ti{constructor(){super(112,"smartSelect",{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:ot(0,"Whether leading and trailing whitespace should always be selected."),default:!0,type:"boolean"},"editor.smartSelect.selectSubwords":{description:ot(0,"Whether subwords (like 'foo' in 'fooBar' or 'foo_bar') should be selected."),default:!0,type:"boolean"}})}validate(t){return t&&"object"==typeof t?{selectLeadingAndTrailingWhitespace:oi(t.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace),selectSubwords:oi(t.selectSubwords,this.defaultValue.selectSubwords)}:this.defaultValue}}),smoothScrolling:Ii(new ri(113,"smoothScrolling",!1,{description:ot(0,"Controls whether the editor will scroll using an animation.")})),stopRenderingLineAfter:Ii(new ci(116,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:Ii(new class extends ti{constructor(){const t={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!1,localityBonus:!1,shareSuggestSelections:!1,selectionMode:"always",showIcons:!0,showStatusBar:!1,preview:!1,previewMode:"subwordSmart",showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showDeprecated:!0,matchOnWordStartOnly:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0};super(117,"suggest",t,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[ot(0,"Insert suggestion without overwriting text right of the cursor."),ot(0,"Insert suggestion and overwrite text right of the cursor.")],default:t.insertMode,description:ot(0,"Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.")},"editor.suggest.filterGraceful":{type:"boolean",default:t.filterGraceful,description:ot(0,"Controls whether filtering and sorting suggestions accounts for small typos.")},"editor.suggest.localityBonus":{type:"boolean",default:t.localityBonus,description:ot(0,"Controls whether sorting favors words that appear close to the cursor.")},"editor.suggest.shareSuggestSelections":{type:"boolean",default:t.shareSuggestSelections,markdownDescription:ot(0,"Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).")},"editor.suggest.selectionMode":{type:"string",enum:["always","never","whenTriggerCharacter","whenQuickSuggestion"],enumDescriptions:[ot(0,"Always select a suggestion when automatically triggering IntelliSense."),ot(0,"Never select a suggestion when automatically triggering IntelliSense."),ot(0,"Select a suggestion only when triggering IntelliSense from a trigger character."),ot(0,"Select a suggestion only when triggering IntelliSense as you type.")],default:t.selectionMode,markdownDescription:ot(0,"Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions (`#editor.quickSuggestions#` and `#editor.suggestOnTriggerCharacters#`) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:t.snippetsPreventQuickSuggestions,description:ot(0,"Controls whether an active snippet prevents quick suggestions.")},"editor.suggest.showIcons":{type:"boolean",default:t.showIcons,description:ot(0,"Controls whether to show or hide icons in suggestions.")},"editor.suggest.showStatusBar":{type:"boolean",default:t.showStatusBar,description:ot(0,"Controls the visibility of the status bar at the bottom of the suggest widget.")},"editor.suggest.preview":{type:"boolean",default:t.preview,description:ot(0,"Controls whether to preview the suggestion outcome in the editor.")},"editor.suggest.showInlineDetails":{type:"boolean",default:t.showInlineDetails,description:ot(0,"Controls whether suggest details show inline with the label or only in the details widget.")},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:ot(0,"This setting is deprecated. The suggest widget can now be resized.")},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:ot(0,"This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.")},"editor.suggest.showMethods":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `method`-suggestions.")},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `function`-suggestions.")},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `constructor`-suggestions.")},"editor.suggest.showDeprecated":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `deprecated`-suggestions.")},"editor.suggest.matchOnWordStartOnly":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense filtering requires that the first character matches on a word start. For example, `c` on `Console` or `WebContext` but _not_ on `description`. When disabled IntelliSense will show more results but still sorts them by match quality.")},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `field`-suggestions.")},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `variable`-suggestions.")},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `class`-suggestions.")},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `struct`-suggestions.")},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `interface`-suggestions.")},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `module`-suggestions.")},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `property`-suggestions.")},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `event`-suggestions.")},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `operator`-suggestions.")},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `unit`-suggestions.")},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `value`-suggestions.")},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `constant`-suggestions.")},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `enum`-suggestions.")},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `enumMember`-suggestions.")},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `keyword`-suggestions.")},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `text`-suggestions.")},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `color`-suggestions.")},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `file`-suggestions.")},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `reference`-suggestions.")},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `customcolor`-suggestions.")},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `folder`-suggestions.")},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `typeParameter`-suggestions.")},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `snippet`-suggestions.")},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `user`-suggestions.")},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:ot(0,"When enabled IntelliSense shows `issues`-suggestions.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{insertMode:di(i.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:oi(i.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:oi(i.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:oi(i.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:oi(i.shareSuggestSelections,this.defaultValue.shareSuggestSelections),selectionMode:di(i.selectionMode,this.defaultValue.selectionMode,["always","never","whenQuickSuggestion","whenTriggerCharacter"]),showIcons:oi(i.showIcons,this.defaultValue.showIcons),showStatusBar:oi(i.showStatusBar,this.defaultValue.showStatusBar),preview:oi(i.preview,this.defaultValue.preview),previewMode:di(i.previewMode,this.defaultValue.previewMode,["prefix","subword","subwordSmart"]),showInlineDetails:oi(i.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:oi(i.showMethods,this.defaultValue.showMethods),showFunctions:oi(i.showFunctions,this.defaultValue.showFunctions),showConstructors:oi(i.showConstructors,this.defaultValue.showConstructors),showDeprecated:oi(i.showDeprecated,this.defaultValue.showDeprecated),matchOnWordStartOnly:oi(i.matchOnWordStartOnly,this.defaultValue.matchOnWordStartOnly),showFields:oi(i.showFields,this.defaultValue.showFields),showVariables:oi(i.showVariables,this.defaultValue.showVariables),showClasses:oi(i.showClasses,this.defaultValue.showClasses),showStructs:oi(i.showStructs,this.defaultValue.showStructs),showInterfaces:oi(i.showInterfaces,this.defaultValue.showInterfaces),showModules:oi(i.showModules,this.defaultValue.showModules),showProperties:oi(i.showProperties,this.defaultValue.showProperties),showEvents:oi(i.showEvents,this.defaultValue.showEvents),showOperators:oi(i.showOperators,this.defaultValue.showOperators),showUnits:oi(i.showUnits,this.defaultValue.showUnits),showValues:oi(i.showValues,this.defaultValue.showValues),showConstants:oi(i.showConstants,this.defaultValue.showConstants),showEnums:oi(i.showEnums,this.defaultValue.showEnums),showEnumMembers:oi(i.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:oi(i.showKeywords,this.defaultValue.showKeywords),showWords:oi(i.showWords,this.defaultValue.showWords),showColors:oi(i.showColors,this.defaultValue.showColors),showFiles:oi(i.showFiles,this.defaultValue.showFiles),showReferences:oi(i.showReferences,this.defaultValue.showReferences),showFolders:oi(i.showFolders,this.defaultValue.showFolders),showTypeParameters:oi(i.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:oi(i.showSnippets,this.defaultValue.showSnippets),showUsers:oi(i.showUsers,this.defaultValue.showUsers),showIssues:oi(i.showIssues,this.defaultValue.showIssues)}}}),inlineSuggest:Ii(new class extends ti{constructor(){const t={enabled:!0,mode:"subwordSmart",showToolbar:"onHover",suppressSuggestions:!1,keepOnBlur:!1};super(62,"inlineSuggest",t,{"editor.inlineSuggest.enabled":{type:"boolean",default:t.enabled,description:ot(0,"Controls whether to automatically show inline suggestions in the editor.")},"editor.inlineSuggest.showToolbar":{type:"string",default:t.showToolbar,enum:["always","onHover","never"],enumDescriptions:[ot(0,"Show the inline suggestion toolbar whenever an inline suggestion is shown."),ot(0,"Show the inline suggestion toolbar when hovering over an inline suggestion."),ot(0,"Never show the inline suggestion toolbar.")],description:ot(0,"Controls when to show the inline suggestion toolbar.")},"editor.inlineSuggest.suppressSuggestions":{type:"boolean",default:t.suppressSuggestions,description:ot(0,"Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.")}})}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{enabled:oi(i.enabled,this.defaultValue.enabled),mode:di(i.mode,this.defaultValue.mode,["prefix","subword","subwordSmart"]),showToolbar:di(i.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),suppressSuggestions:oi(i.suppressSuggestions,this.defaultValue.suppressSuggestions),keepOnBlur:oi(i.keepOnBlur,this.defaultValue.keepOnBlur)}}}),inlineCompletionsAccessibilityVerbose:Ii(new ri(147,"inlineCompletionsAccessibilityVerbose",!1,{description:ot(0,"Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.")})),suggestFontSize:Ii(new ci(118,"suggestFontSize",0,0,1e3,{markdownDescription:ot(0,"Font size for the suggest widget. When set to {0}, the value of {1} is used.","`0`","`#editor.fontSize#`")})),suggestLineHeight:Ii(new ci(119,"suggestLineHeight",0,0,1e3,{markdownDescription:ot(0,"Line height for the suggest widget. When set to {0}, the value of {1} is used. The minimum value is 8.","`0`","`#editor.lineHeight#`")})),suggestOnTriggerCharacters:Ii(new ri(120,"suggestOnTriggerCharacters",!0,{description:ot(0,"Controls whether suggestions should automatically show up when typing trigger characters.")})),suggestSelection:Ii(new fi(121,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[ot(0,"Always select the first suggestion."),ot(0,"Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."),ot(0,"Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")],description:ot(0,"Controls how suggestions are pre-selected when showing the suggest list.")})),tabCompletion:Ii(new fi(122,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[ot(0,"Tab complete will insert the best matching suggestion when pressing tab."),ot(0,"Disable tab completions."),ot(0,"Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.")],description:ot(0,"Enables tab completions.")})),tabIndex:Ii(new ci(123,"tabIndex",0,-1,1073741824)),unicodeHighlight:Ii(new class extends ti{constructor(){const t={nonBasicASCII:Ci,invisibleCharacters:!0,ambiguousCharacters:!0,includeComments:Ci,includeStrings:!0,allowedCharacters:{},allowedLocales:{_os:!0,_vscode:!0}};super(124,"unicodeHighlight",t,{[Ei]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Ci],default:t.nonBasicASCII,description:ot(0,"Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.")},[Di]:{restricted:!0,type:"boolean",default:t.invisibleCharacters,description:ot(0,"Controls whether characters that just reserve space or have no width at all are highlighted.")},[Ai]:{restricted:!0,type:"boolean",default:t.ambiguousCharacters,description:ot(0,"Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.")},[Mi]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Ci],default:t.includeComments,description:ot(0,"Controls whether characters in comments should also be subject to Unicode highlighting.")},[Li]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Ci],default:t.includeStrings,description:ot(0,"Controls whether characters in strings should also be subject to Unicode highlighting.")},[Si]:{restricted:!0,type:"object",default:t.allowedCharacters,description:ot(0,"Defines allowed characters that are not being highlighted."),additionalProperties:{type:"boolean"}},[Fi]:{restricted:!0,type:"object",additionalProperties:{type:"boolean"},default:t.allowedLocales,description:ot(0,"Unicode characters that are common in allowed locales are not being highlighted.")}})}applyUpdate(t,i){let e=!1;i.allowedCharacters&&t&&(it(t.allowedCharacters,i.allowedCharacters)||(t={...t,allowedCharacters:i.allowedCharacters},e=!0)),i.allowedLocales&&t&&(it(t.allowedLocales,i.allowedLocales)||(t={...t,allowedLocales:i.allowedLocales},e=!0));const s=super.applyUpdate(t,i);return e?new ii(s.newValue,!0):s}validate(t){if(!t||"object"!=typeof t)return this.defaultValue;const i=t;return{nonBasicASCII:Ti(i.nonBasicASCII,Ci,[!0,!1,Ci]),invisibleCharacters:oi(i.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:oi(i.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:Ti(i.includeComments,Ci,[!0,!1,Ci]),includeStrings:Ti(i.includeStrings,Ci,[!0,!1,Ci]),allowedCharacters:this.validateBooleanMap(t.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(t.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(t,i){if("object"!=typeof t||!t)return i;const e={};for(const[i,s]of Object.entries(t))!0===s&&(e[i]=!0);return e}}),unusualLineTerminators:Ii(new fi(125,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[ot(0,"Unusual line terminators are automatically removed."),ot(0,"Unusual line terminators are ignored."),ot(0,"Unusual line terminators prompt to be removed.")],description:ot(0,"Remove unusual line terminators that might cause problems.")})),useShadowDOM:Ii(new ri(126,"useShadowDOM",!0)),useTabStops:Ii(new ri(127,"useTabStops",!0,{description:ot(0,"Inserting and deleting whitespace follows tab stops.")})),wordBreak:Ii(new fi(128,"wordBreak","normal",["normal","keepAll"],{markdownEnumDescriptions:[ot(0,"Use the default line break rule."),ot(0,"Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.")],description:ot(0,"Controls the word break rules used for Chinese/Japanese/Korean (CJK) text.")})),wordSeparators:Ii(new ui(129,"wordSeparators",qt,{description:ot(0,"Characters that will be used as word separators when doing word related navigations or operations.")})),wordWrap:Ii(new fi(130,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[ot(0,"Lines will never wrap."),ot(0,"Lines will wrap at the viewport width."),ot(0,"Lines will wrap at `#editor.wordWrapColumn#`."),ot(0,"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.")],description:ot(0,"Controls how lines should wrap.")})),wordWrapBreakAfterCharacters:Ii(new ui(131,"wordWrapBreakAfterCharacters"," \t})]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」")),wordWrapBreakBeforeCharacters:Ii(new ui(132,"wordWrapBreakBeforeCharacters","([{‘“〈《「『【〔([{「£¥$£¥++")),wordWrapColumn:Ii(new ci(133,"wordWrapColumn",80,1,1073741824,{markdownDescription:ot(0,"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.")})),wordWrapOverride1:Ii(new fi(134,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:Ii(new fi(135,"wordWrapOverride2","inherit",["off","on","inherit"])),editorClassName:Ii(new class extends si{constructor(){super(140)}compute(t,i,e){const s=["monaco-editor"];return i.get(39)&&s.push(i.get(39)),t.extraEditorClassName&&s.push(t.extraEditorClassName),"default"===i.get(73)?s.push("mouse-default"):"copy"===i.get(73)&&s.push("mouse-copy"),i.get(110)&&s.push("showUnused"),i.get(138)&&s.push("showDeprecated"),s.join(" ")}}),defaultColorDecorators:Ii(new ri(145,"defaultColorDecorators",!1,{markdownDescription:ot(0,"Controls whether inline color decorations should be shown using the default document color provider")})),pixelRatio:Ii(new class extends si{constructor(){super(141)}compute(t,i,e){return t.pixelRatio}}),tabFocusMode:Ii(new ri(142,"tabFocusMode",!1,{markdownDescription:ot(0,"Controls whether the editor receives tabs or defers them to the workbench for navigation.")})),layoutInfo:Ii(new yi),wrappingInfo:Ii(new class extends si{constructor(){super(144)}compute(t,i,e){const s=i.get(143);return{isDominatedByLongLines:t.isDominatedByLongLines,isWordWrapMinified:s.isWordWrapMinified,isViewportWrapping:s.isViewportWrapping,wrappingColumn:s.wrappingColumn}}}),wrappingIndent:Ii(new class extends ti{constructor(){super(136,"wrappingIndent",1,{"editor.wrappingIndent":{type:"string",enum:["none","same","indent","deepIndent"],enumDescriptions:[ot(0,"No indentation. Wrapped lines begin at column 1."),ot(0,"Wrapped lines get the same indentation as the parent."),ot(0,"Wrapped lines get +1 indentation toward the parent."),ot(0,"Wrapped lines get +2 indentation toward the parent.")],description:ot(0,"Controls the indentation of wrapped lines."),default:"same"}})}validate(t){switch(t){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}return 1}compute(t,i,e){return 2===i.get(2)?0:e}}),wrappingStrategy:Ii(new class extends ti{constructor(){super(137,"wrappingStrategy","simple",{"editor.wrappingStrategy":{enumDescriptions:[ot(0,"Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width."),ot(0,"Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.")],type:"string",enum:["simple","advanced"],default:"simple",description:ot(0,"Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.")}})}validate(t){return di(t,"simple",["simple","advanced"])}compute(t,i,e){return 2===i.get(2)?"advanced":e}})},Ni=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(t){setTimeout((()=>{if(t.stack){if(qi.isErrorNoTelemetry(t))throw new qi(t.message+"\n\n"+t.stack);throw new Error(t.message+"\n\n"+t.stack)}throw t}),0)}}emit(t){this.listeners.forEach((i=>{i(t)}))}onUnexpectedError(t){this.unexpectedErrorHandler(t),this.emit(t)}onUnexpectedExternalError(t){this.unexpectedErrorHandler(t)}};function Bi(t){ji(t)||Ni.onUnexpectedError(t)}function Pi(t){ji(t)||Ni.onUnexpectedExternalError(t)}function $i(t){if(t instanceof Error){const{name:i,message:e}=t;return{$isError:!0,name:i,message:e,stack:t.stacktrace||t.stack,noTelemetry:qi.isErrorNoTelemetry(t)}}return t}const Wi="Canceled";function ji(t){return t instanceof zi||t instanceof Error&&t.name===Wi&&t.message===Wi}class zi extends Error{constructor(){super(Wi),this.name=this.message}}function Hi(t){return t?new Error(`Illegal argument: ${t}`):new Error("Illegal argument")}function Vi(t){return t?new Error(`Illegal state: ${t}`):new Error("Illegal state")}class Ui extends Error{constructor(t){super("NotSupported"),t&&(this.message=t)}}class qi extends Error{constructor(t){super(t),this.name="CodeExpectedError"}static fromError(t){if(t instanceof qi)return t;const i=new qi;return i.message=t.message,i.stack=t.stack,i}static isErrorNoTelemetry(t){return"CodeExpectedError"===t.name}}class Ki extends Error{constructor(t){super(t||"An unexpected bug occurred."),Object.setPrototypeOf(this,Ki.prototype)}}function Gi(t,i){const e=this;let s,n=!1;return function(){if(n)return s;if(n=!0,i)try{s=t.apply(e,arguments)}finally{i()}else s=t.apply(e,arguments);return s}}function Zi(t){return"function"==typeof t.dispose&&0===t.dispose.length}function Qi(t){if(Ht.is(t)){const i=[];for(const e of t)if(e)try{e.dispose()}catch(t){i.push(t)}if(1===i.length)throw i[0];if(i.length>1)throw new AggregateError(i,"Encountered errors while disposing of store");return Array.isArray(t)?[]:t}if(t)return t.dispose(),t}function Ji(...t){return Yi((()=>Qi(t)))}function Yi(t){return{dispose:Gi((()=>{t()}))}}class Xi{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(0!==this._toDispose.size)try{Qi(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?Xi.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(t),t}deleteAndLeak(t){t&&this._toDispose.has(t)&&this._toDispose.delete(t)}}Xi.DISABLE_DISPOSED_WARNING=!1;class te{constructor(){this._store=new Xi}dispose(){this._store.dispose()}_register(t){if(t===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(t)}}te.None=Object.freeze({dispose(){}});class ie{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(t){var i;this._isDisposed||t===this._value||(null===(i=this._value)||void 0===i||i.dispose(),this._value=t)}clear(){this.value=void 0}dispose(){var t;this._isDisposed=!0,null===(t=this._value)||void 0===t||t.dispose(),this._value=void 0}}class ee{constructor(t){this._disposable=t,this._counter=1}acquire(){return this._counter++,this}release(){return 0==--this._counter&&this._disposable.dispose(),this}}class se{constructor(t){this.object=t}dispose(){}}class ne{constructor(){this._store=new Map,this._isDisposed=!1}dispose(){this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{Qi(this._store.values())}finally{this._store.clear()}}get(t){return this._store.get(t)}set(t,i,e=!1){var s;this._isDisposed&&console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),e||null===(s=this._store.get(t))||void 0===s||s.dispose(),this._store.set(t,i)}deleteAndDispose(t){var i;null===(i=this._store.get(t))||void 0===i||i.dispose(),this._store.delete(t)}[Symbol.iterator](){return this._store[Symbol.iterator]()}}const oe=globalThis.performance&&"function"==typeof globalThis.performance.now;class re{static create(t){return new re(t)}constructor(t){this._now=oe&&!1===t?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}elapsed(){return-1!==this._stopTime?this._stopTime-this._startTime:this._now()-this._startTime}}var he;!function(t){function i(t){return(i,e=null,s)=>{let n,o=!1;return n=t((t=>{if(!o)return n?n.dispose():o=!0,i.call(e,t)}),null,s),o&&n.dispose(),n}}function e(t,i,e){return n(((e,s=null,n)=>t((t=>e.call(s,i(t))),null,n)),e)}function s(t,i,e){return n(((e,s=null,n)=>t((t=>i(t)&&e.call(s,t)),null,n)),e)}function n(t,i){let e;const s=new de({onWillAddFirstListener(){e=t(s.fire,s)},onDidRemoveLastListener(){null==e||e.dispose()}});return null==i||i.add(s),s.event}function o(t,i,e=100,s=!1,n=!1,o,r){let h,c,a,l,u=0;const d=new de({leakWarningThreshold:o,onWillAddFirstListener(){h=t((t=>{u++,c=i(c,t),s&&!a&&(d.fire(c),c=void 0),l=()=>{const t=c;c=void 0,a=void 0,(!s||u>1)&&d.fire(t),u=0},"number"==typeof e?(clearTimeout(a),a=setTimeout(l,e)):void 0===a&&(a=0,queueMicrotask(l))}))},onWillRemoveListener(){n&&u>0&&(null==l||l())},onDidRemoveLastListener(){l=void 0,h.dispose()}});return null==r||r.add(d),d.event}t.None=()=>te.None,t.defer=function(t,i){return o(t,(()=>{}),0,void 0,!0,void 0,i)},t.once=i,t.map=e,t.forEach=function(t,i,e){return n(((e,s=null,n)=>t((t=>{i(t),e.call(s,t)}),null,n)),e)},t.filter=s,t.signal=function(t){return t},t.any=function(...t){return(i,e=null,s)=>{return n=Ji(...t.map((t=>t((t=>i.call(e,t)))))),(o=s)instanceof Array?o.push(n):o&&o.add(n),n;var n,o}},t.reduce=function(t,i,s,n){let o=s;return e(t,(t=>(o=i(o,t),o)),n)},t.debounce=o,t.accumulate=function(i,e=0,s){return t.debounce(i,((t,i)=>t?(t.push(i),t):[i]),e,void 0,!0,void 0,s)},t.latch=function(t,i=((t,i)=>t===i),e){let n,o=!0;return s(t,(t=>{const e=o||!i(t,n);return o=!1,n=t,e}),e)},t.split=function(i,e,s){return[t.filter(i,e,s),t.filter(i,(t=>!e(t)),s)]},t.buffer=function(t,i=!1,e=[],s){let n=e.slice(),o=t((t=>{n?n.push(t):h.fire(t)}));s&&s.add(o);const r=()=>{null==n||n.forEach((t=>h.fire(t))),n=null},h=new de({onWillAddFirstListener(){o||(o=t((t=>h.fire(t))),s&&s.add(o))},onDidAddFirstListener(){n&&(i?setTimeout(r):r())},onDidRemoveLastListener(){o&&o.dispose(),o=null}});return s&&s.add(h),h.event},t.chain=function(t,i){return(e,s,n)=>{const o=i(new h);return t((function(t){const i=o.evaluate(t);i!==r&&e.call(s,i)}),void 0,n)}};const r=Symbol("HaltChainable");class h{constructor(){this.steps=[]}map(t){return this.steps.push(t),this}forEach(t){return this.steps.push((i=>(t(i),i))),this}filter(t){return this.steps.push((i=>t(i)?i:r)),this}reduce(t,i){let e=i;return this.steps.push((i=>(e=t(e,i),e))),this}latch(t=((t,i)=>t===i)){let i,e=!0;return this.steps.push((s=>{const n=e||!t(s,i);return e=!1,i=s,n?s:r})),this}evaluate(t){for(const i of this.steps)if((t=i(t))===r)break;return t}}t.fromNodeEventEmitter=function(t,i,e=(t=>t)){const s=(...t)=>n.fire(e(...t)),n=new de({onWillAddFirstListener:()=>t.on(i,s),onDidRemoveLastListener:()=>t.removeListener(i,s)});return n.event},t.fromDOMEventEmitter=function(t,i,e=(t=>t)){const s=(...t)=>n.fire(e(...t)),n=new de({onWillAddFirstListener:()=>t.addEventListener(i,s),onDidRemoveLastListener:()=>t.removeEventListener(i,s)});return n.event},t.toPromise=function(t){return new Promise((e=>i(t)(e)))},t.fromPromise=function(t){const i=new de;return t.then((t=>{i.fire(t)}),(()=>{i.fire(void 0)})).finally((()=>{i.dispose()})),i.event},t.runAndSubscribe=function(t,i,e){return i(e),t((t=>i(t)))},t.runAndSubscribeWithStore=function(t,i){let e=null;function s(t){null==e||e.dispose(),e=new Xi,i(t,e)}s(void 0);const n=t((t=>s(t)));return Yi((()=>{n.dispose(),null==e||e.dispose()}))};class c{constructor(t,i){this._observable=t,this._counter=0,this._hasChanged=!1,this.emitter=new de({onWillAddFirstListener:()=>{t.addObserver(this)},onDidRemoveLastListener:()=>{t.removeObserver(this)}}),i&&i.add(this.emitter)}beginUpdate(t){this._counter++}handlePossibleChange(t){}handleChange(t,i){this._hasChanged=!0}endUpdate(t){this._counter--,0===this._counter&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}t.fromObservable=function(t,i){return new c(t,i).emitter.event},t.fromObservableLight=function(t){return(i,e,s)=>{let n=0,o=!1;const r={beginUpdate(){n++},endUpdate(){n--,0===n&&(t.reportChanges(),o&&(o=!1,i.call(e)))},handlePossibleChange(){},handleChange(){o=!0}};t.addObserver(r),t.reportChanges();const h={dispose(){t.removeObserver(r)}};return s instanceof Xi?s.add(h):Array.isArray(s)&&s.push(h),h}}}(he||(he={}));class ce{constructor(t){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${t}_${ce._idPool++}`,ce.all.add(this)}start(t){this._stopWatch=new re,this.listenerCount=t}stop(){if(this._stopWatch){const t=this._stopWatch.elapsed();this.durations.push(t),this.elapsedOverall+=t,this.invocationCount+=1,this._stopWatch=void 0}}}ce.all=new Set,ce._idPool=0;class ae{constructor(t,i=Math.random().toString(18).slice(2,5)){this.threshold=t,this.name=i,this._warnCountdown=0}dispose(){var t;null===(t=this._stacks)||void 0===t||t.clear()}check(t,i){const e=this.threshold;if(e<=0||i{const i=this._stacks.get(t.value)||0;this._stacks.set(t.value,i-1)}}}class le{static create(){var t;return new le(null!==(t=(new Error).stack)&&void 0!==t?t:"")}constructor(t){this.value=t}print(){console.warn(this.value.split("\n").slice(2).join("\n"))}}class ue{constructor(t){this.value=t}}class de{constructor(t){var i,e,s,n,o;this._size=0,this._options=t,this._leakageMon=(null===(i=this._options)||void 0===i?void 0:i.leakWarningThreshold)?new ae(null!==(s=null===(e=this._options)||void 0===e?void 0:e.leakWarningThreshold)&&void 0!==s?s:-1):void 0,this._perfMon=(null===(n=this._options)||void 0===n?void 0:n._profName)?new ce(this._options._profName):void 0,this._deliveryQueue=null===(o=this._options)||void 0===o?void 0:o.deliveryQueue}dispose(){var t,i,e,s;this._disposed||(this._disposed=!0,(null===(t=this._deliveryQueue)||void 0===t?void 0:t.current)===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),null===(e=null===(i=this._options)||void 0===i?void 0:i.onDidRemoveLastListener)||void 0===e||e.call(i),null===(s=this._leakageMon)||void 0===s||s.dispose())}get event(){var t;return null!==(t=this._event)&&void 0!==t||(this._event=(t,i,e)=>{var s,n,o,r,h;if(this._leakageMon&&this._size>3*this._leakageMon.threshold)return console.warn(`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far`),te.None;if(this._disposed)return te.None;i&&(t=t.bind(i));const c=new ue(t);let a;this._leakageMon&&this._size>=Math.ceil(.2*this._leakageMon.threshold)&&(c.stack=le.create(),a=this._leakageMon.check(c.stack,this._size+1)),this._listeners?this._listeners instanceof ue?(null!==(h=this._deliveryQueue)&&void 0!==h||(this._deliveryQueue=new fe),this._listeners=[this._listeners,c]):this._listeners.push(c):(null===(n=null===(s=this._options)||void 0===s?void 0:s.onWillAddFirstListener)||void 0===n||n.call(s,this),this._listeners=c,null===(r=null===(o=this._options)||void 0===o?void 0:o.onDidAddFirstListener)||void 0===r||r.call(o,this)),this._size++;const l=Yi((()=>{null==a||a(),this._removeListener(c)}));return e instanceof Xi?e.add(l):Array.isArray(e)&&e.push(l),l}),this._event}_removeListener(t){var i,e,s,n;if(null===(e=null===(i=this._options)||void 0===i?void 0:i.onWillRemoveListener)||void 0===e||e.call(i,this),!this._listeners)return;if(1===this._size)return this._listeners=void 0,null===(n=null===(s=this._options)||void 0===s?void 0:s.onDidRemoveLastListener)||void 0===n||n.call(s,this),void(this._size=0);const o=this._listeners,r=o.indexOf(t);if(-1===r)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,o[r]=void 0;const h=this._deliveryQueue.current===this;if(2*this._size<=o.length){let t=0;for(let i=0;i0}}class fe{constructor(){this.i=-1,this.end=0}enqueue(t,i,e){this.i=0,this.end=e,this.current=t,this.value=i}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}class pe extends de{constructor(t){super(t),this._isPaused=0,this._eventQueue=new Ut,this._mergeFn=null==t?void 0:t.merge}pause(){this._isPaused++}resume(){if(0!==this._isPaused&&0==--this._isPaused)if(this._mergeFn){if(this._eventQueue.size>0){const t=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(t))}}else for(;!this._isPaused&&0!==this._eventQueue.size;)super.fire(this._eventQueue.shift())}fire(t){this._size&&(0!==this._isPaused?this._eventQueue.push(t):super.fire(t))}}class ge extends pe{constructor(t){var i;super(t),this._delay=null!==(i=t.delay)&&void 0!==i?i:100}fire(t){this._handle||(this.pause(),this._handle=setTimeout((()=>{this._handle=void 0,this.resume()}),this._delay)),super.fire(t)}}class me extends de{constructor(t){super(t),this._queuedEvents=[],this._mergeFn=null==t?void 0:t.merge}fire(t){this.hasListeners()&&(this._queuedEvents.push(t),1===this._queuedEvents.length&&queueMicrotask((()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach((t=>super.fire(t))),this._queuedEvents=[]})))}}class we{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new de({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(t){const i={event:t,listener:null};return this.events.push(i),this.hasListeners&&this.hook(i),Yi(Gi((()=>{this.hasListeners&&this.unhook(i);const t=this.events.indexOf(i);this.events.splice(t,1)})))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach((t=>this.hook(t)))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach((t=>this.unhook(t)))}hook(t){t.listener=t.event((t=>this.emitter.fire(t)))}unhook(t){t.listener&&t.listener.dispose(),t.listener=null}dispose(){this.emitter.dispose()}}class ve{constructor(){this.buffers=[]}wrapEvent(t){return(i,e,s)=>t((t=>{const s=this.buffers[this.buffers.length-1];s?s.push((()=>i.call(e,t))):i.call(e,t)}),void 0,s)}bufferEvents(t){const i=[];this.buffers.push(i);const e=t();return this.buffers.pop(),i.forEach((t=>t())),e}}class be{constructor(){this.listening=!1,this.inputEvent=he.None,this.inputEventListener=te.None,this.emitter=new de({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(t){this.inputEvent=t,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=t(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}const ye=Object.freeze((function(t,i){const e=setTimeout(t.bind(i),0);return{dispose(){clearTimeout(e)}}}));var ke;!function(t){t.isCancellationToken=function(i){return i===t.None||i===t.Cancelled||i instanceof xe||!(!i||"object"!=typeof i)&&"boolean"==typeof i.isCancellationRequested&&"function"==typeof i.onCancellationRequested},t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:he.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:ye})}(ke||(ke={}));class xe{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?ye:(this._emitter||(this._emitter=new de),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}class Ce{constructor(t){this._token=void 0,this._parentListener=void 0,this._parentListener=t&&t.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new xe),this._token}cancel(){this._token?this._token instanceof xe&&this._token.cancel():this._token=ke.Cancelled}dispose(t=!1){var i;t&&this.cancel(),null===(i=this._parentListener)||void 0===i||i.dispose(),this._token?this._token instanceof xe&&this._token.dispose():this._token=ke.None}}class Se{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(t,i){this._keyCodeToStr[t]=i,this._strToKeyCode[i.toLowerCase()]=t}keyCodeToStr(t){return this._keyCodeToStr[t]}strToKeyCode(t){return this._strToKeyCode[t.toLowerCase()]||0}}const De=new Se,Ee=new Se,Ae=new Se,Me=new Array(230),Le={},Fe=[],Te=Object.create(null),Re=Object.create(null),Oe=[],Ie=[];for(let t=0;t<=193;t++)Oe[t]=-1;for(let t=0;t<=132;t++)Ie[t]=-1;var _e;function Ne(t,i){return(t|(65535&i)<<16>>>0)>>>0}let Be;!function(){const t="",i=[[1,0,"None",0,"unknown",0,"VK_UNKNOWN",t,t],[1,1,"Hyper",0,t,0,t,t,t],[1,2,"Super",0,t,0,t,t,t],[1,3,"Fn",0,t,0,t,t,t],[1,4,"FnLock",0,t,0,t,t,t],[1,5,"Suspend",0,t,0,t,t,t],[1,6,"Resume",0,t,0,t,t,t],[1,7,"Turbo",0,t,0,t,t,t],[1,8,"Sleep",0,t,0,"VK_SLEEP",t,t],[1,9,"WakeUp",0,t,0,t,t,t],[0,10,"KeyA",31,"A",65,"VK_A",t,t],[0,11,"KeyB",32,"B",66,"VK_B",t,t],[0,12,"KeyC",33,"C",67,"VK_C",t,t],[0,13,"KeyD",34,"D",68,"VK_D",t,t],[0,14,"KeyE",35,"E",69,"VK_E",t,t],[0,15,"KeyF",36,"F",70,"VK_F",t,t],[0,16,"KeyG",37,"G",71,"VK_G",t,t],[0,17,"KeyH",38,"H",72,"VK_H",t,t],[0,18,"KeyI",39,"I",73,"VK_I",t,t],[0,19,"KeyJ",40,"J",74,"VK_J",t,t],[0,20,"KeyK",41,"K",75,"VK_K",t,t],[0,21,"KeyL",42,"L",76,"VK_L",t,t],[0,22,"KeyM",43,"M",77,"VK_M",t,t],[0,23,"KeyN",44,"N",78,"VK_N",t,t],[0,24,"KeyO",45,"O",79,"VK_O",t,t],[0,25,"KeyP",46,"P",80,"VK_P",t,t],[0,26,"KeyQ",47,"Q",81,"VK_Q",t,t],[0,27,"KeyR",48,"R",82,"VK_R",t,t],[0,28,"KeyS",49,"S",83,"VK_S",t,t],[0,29,"KeyT",50,"T",84,"VK_T",t,t],[0,30,"KeyU",51,"U",85,"VK_U",t,t],[0,31,"KeyV",52,"V",86,"VK_V",t,t],[0,32,"KeyW",53,"W",87,"VK_W",t,t],[0,33,"KeyX",54,"X",88,"VK_X",t,t],[0,34,"KeyY",55,"Y",89,"VK_Y",t,t],[0,35,"KeyZ",56,"Z",90,"VK_Z",t,t],[0,36,"Digit1",22,"1",49,"VK_1",t,t],[0,37,"Digit2",23,"2",50,"VK_2",t,t],[0,38,"Digit3",24,"3",51,"VK_3",t,t],[0,39,"Digit4",25,"4",52,"VK_4",t,t],[0,40,"Digit5",26,"5",53,"VK_5",t,t],[0,41,"Digit6",27,"6",54,"VK_6",t,t],[0,42,"Digit7",28,"7",55,"VK_7",t,t],[0,43,"Digit8",29,"8",56,"VK_8",t,t],[0,44,"Digit9",30,"9",57,"VK_9",t,t],[0,45,"Digit0",21,"0",48,"VK_0",t,t],[1,46,"Enter",3,"Enter",13,"VK_RETURN",t,t],[1,47,"Escape",9,"Escape",27,"VK_ESCAPE",t,t],[1,48,"Backspace",1,"Backspace",8,"VK_BACK",t,t],[1,49,"Tab",2,"Tab",9,"VK_TAB",t,t],[1,50,"Space",10,"Space",32,"VK_SPACE",t,t],[0,51,"Minus",88,"-",189,"VK_OEM_MINUS","-","OEM_MINUS"],[0,52,"Equal",86,"=",187,"VK_OEM_PLUS","=","OEM_PLUS"],[0,53,"BracketLeft",92,"[",219,"VK_OEM_4","[","OEM_4"],[0,54,"BracketRight",94,"]",221,"VK_OEM_6","]","OEM_6"],[0,55,"Backslash",93,"\\",220,"VK_OEM_5","\\","OEM_5"],[0,56,"IntlHash",0,t,0,t,t,t],[0,57,"Semicolon",85,";",186,"VK_OEM_1",";","OEM_1"],[0,58,"Quote",95,"'",222,"VK_OEM_7","'","OEM_7"],[0,59,"Backquote",91,"`",192,"VK_OEM_3","`","OEM_3"],[0,60,"Comma",87,",",188,"VK_OEM_COMMA",",","OEM_COMMA"],[0,61,"Period",89,".",190,"VK_OEM_PERIOD",".","OEM_PERIOD"],[0,62,"Slash",90,"/",191,"VK_OEM_2","/","OEM_2"],[1,63,"CapsLock",8,"CapsLock",20,"VK_CAPITAL",t,t],[1,64,"F1",59,"F1",112,"VK_F1",t,t],[1,65,"F2",60,"F2",113,"VK_F2",t,t],[1,66,"F3",61,"F3",114,"VK_F3",t,t],[1,67,"F4",62,"F4",115,"VK_F4",t,t],[1,68,"F5",63,"F5",116,"VK_F5",t,t],[1,69,"F6",64,"F6",117,"VK_F6",t,t],[1,70,"F7",65,"F7",118,"VK_F7",t,t],[1,71,"F8",66,"F8",119,"VK_F8",t,t],[1,72,"F9",67,"F9",120,"VK_F9",t,t],[1,73,"F10",68,"F10",121,"VK_F10",t,t],[1,74,"F11",69,"F11",122,"VK_F11",t,t],[1,75,"F12",70,"F12",123,"VK_F12",t,t],[1,76,"PrintScreen",0,t,0,t,t,t],[1,77,"ScrollLock",84,"ScrollLock",145,"VK_SCROLL",t,t],[1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE",t,t],[1,79,"Insert",19,"Insert",45,"VK_INSERT",t,t],[1,80,"Home",14,"Home",36,"VK_HOME",t,t],[1,81,"PageUp",11,"PageUp",33,"VK_PRIOR",t,t],[1,82,"Delete",20,"Delete",46,"VK_DELETE",t,t],[1,83,"End",13,"End",35,"VK_END",t,t],[1,84,"PageDown",12,"PageDown",34,"VK_NEXT",t,t],[1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",t],[1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",t],[1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",t],[1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",t],[1,89,"NumLock",83,"NumLock",144,"VK_NUMLOCK",t,t],[1,90,"NumpadDivide",113,"NumPad_Divide",111,"VK_DIVIDE",t,t],[1,91,"NumpadMultiply",108,"NumPad_Multiply",106,"VK_MULTIPLY",t,t],[1,92,"NumpadSubtract",111,"NumPad_Subtract",109,"VK_SUBTRACT",t,t],[1,93,"NumpadAdd",109,"NumPad_Add",107,"VK_ADD",t,t],[1,94,"NumpadEnter",3,t,0,t,t,t],[1,95,"Numpad1",99,"NumPad1",97,"VK_NUMPAD1",t,t],[1,96,"Numpad2",100,"NumPad2",98,"VK_NUMPAD2",t,t],[1,97,"Numpad3",101,"NumPad3",99,"VK_NUMPAD3",t,t],[1,98,"Numpad4",102,"NumPad4",100,"VK_NUMPAD4",t,t],[1,99,"Numpad5",103,"NumPad5",101,"VK_NUMPAD5",t,t],[1,100,"Numpad6",104,"NumPad6",102,"VK_NUMPAD6",t,t],[1,101,"Numpad7",105,"NumPad7",103,"VK_NUMPAD7",t,t],[1,102,"Numpad8",106,"NumPad8",104,"VK_NUMPAD8",t,t],[1,103,"Numpad9",107,"NumPad9",105,"VK_NUMPAD9",t,t],[1,104,"Numpad0",98,"NumPad0",96,"VK_NUMPAD0",t,t],[1,105,"NumpadDecimal",112,"NumPad_Decimal",110,"VK_DECIMAL",t,t],[0,106,"IntlBackslash",97,"OEM_102",226,"VK_OEM_102",t,t],[1,107,"ContextMenu",58,"ContextMenu",93,t,t,t],[1,108,"Power",0,t,0,t,t,t],[1,109,"NumpadEqual",0,t,0,t,t,t],[1,110,"F13",71,"F13",124,"VK_F13",t,t],[1,111,"F14",72,"F14",125,"VK_F14",t,t],[1,112,"F15",73,"F15",126,"VK_F15",t,t],[1,113,"F16",74,"F16",127,"VK_F16",t,t],[1,114,"F17",75,"F17",128,"VK_F17",t,t],[1,115,"F18",76,"F18",129,"VK_F18",t,t],[1,116,"F19",77,"F19",130,"VK_F19",t,t],[1,117,"F20",78,"F20",131,"VK_F20",t,t],[1,118,"F21",79,"F21",132,"VK_F21",t,t],[1,119,"F22",80,"F22",133,"VK_F22",t,t],[1,120,"F23",81,"F23",134,"VK_F23",t,t],[1,121,"F24",82,"F24",135,"VK_F24",t,t],[1,122,"Open",0,t,0,t,t,t],[1,123,"Help",0,t,0,t,t,t],[1,124,"Select",0,t,0,t,t,t],[1,125,"Again",0,t,0,t,t,t],[1,126,"Undo",0,t,0,t,t,t],[1,127,"Cut",0,t,0,t,t,t],[1,128,"Copy",0,t,0,t,t,t],[1,129,"Paste",0,t,0,t,t,t],[1,130,"Find",0,t,0,t,t,t],[1,131,"AudioVolumeMute",117,"AudioVolumeMute",173,"VK_VOLUME_MUTE",t,t],[1,132,"AudioVolumeUp",118,"AudioVolumeUp",175,"VK_VOLUME_UP",t,t],[1,133,"AudioVolumeDown",119,"AudioVolumeDown",174,"VK_VOLUME_DOWN",t,t],[1,134,"NumpadComma",110,"NumPad_Separator",108,"VK_SEPARATOR",t,t],[0,135,"IntlRo",115,"ABNT_C1",193,"VK_ABNT_C1",t,t],[1,136,"KanaMode",0,t,0,t,t,t],[0,137,"IntlYen",0,t,0,t,t,t],[1,138,"Convert",0,t,0,t,t,t],[1,139,"NonConvert",0,t,0,t,t,t],[1,140,"Lang1",0,t,0,t,t,t],[1,141,"Lang2",0,t,0,t,t,t],[1,142,"Lang3",0,t,0,t,t,t],[1,143,"Lang4",0,t,0,t,t,t],[1,144,"Lang5",0,t,0,t,t,t],[1,145,"Abort",0,t,0,t,t,t],[1,146,"Props",0,t,0,t,t,t],[1,147,"NumpadParenLeft",0,t,0,t,t,t],[1,148,"NumpadParenRight",0,t,0,t,t,t],[1,149,"NumpadBackspace",0,t,0,t,t,t],[1,150,"NumpadMemoryStore",0,t,0,t,t,t],[1,151,"NumpadMemoryRecall",0,t,0,t,t,t],[1,152,"NumpadMemoryClear",0,t,0,t,t,t],[1,153,"NumpadMemoryAdd",0,t,0,t,t,t],[1,154,"NumpadMemorySubtract",0,t,0,t,t,t],[1,155,"NumpadClear",131,"Clear",12,"VK_CLEAR",t,t],[1,156,"NumpadClearEntry",0,t,0,t,t,t],[1,0,t,5,"Ctrl",17,"VK_CONTROL",t,t],[1,0,t,4,"Shift",16,"VK_SHIFT",t,t],[1,0,t,6,"Alt",18,"VK_MENU",t,t],[1,0,t,57,"Meta",91,"VK_COMMAND",t,t],[1,157,"ControlLeft",5,t,0,"VK_LCONTROL",t,t],[1,158,"ShiftLeft",4,t,0,"VK_LSHIFT",t,t],[1,159,"AltLeft",6,t,0,"VK_LMENU",t,t],[1,160,"MetaLeft",57,t,0,"VK_LWIN",t,t],[1,161,"ControlRight",5,t,0,"VK_RCONTROL",t,t],[1,162,"ShiftRight",4,t,0,"VK_RSHIFT",t,t],[1,163,"AltRight",6,t,0,"VK_RMENU",t,t],[1,164,"MetaRight",57,t,0,"VK_RWIN",t,t],[1,165,"BrightnessUp",0,t,0,t,t,t],[1,166,"BrightnessDown",0,t,0,t,t,t],[1,167,"MediaPlay",0,t,0,t,t,t],[1,168,"MediaRecord",0,t,0,t,t,t],[1,169,"MediaFastForward",0,t,0,t,t,t],[1,170,"MediaRewind",0,t,0,t,t,t],[1,171,"MediaTrackNext",124,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK",t,t],[1,172,"MediaTrackPrevious",125,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK",t,t],[1,173,"MediaStop",126,"MediaStop",178,"VK_MEDIA_STOP",t,t],[1,174,"Eject",0,t,0,t,t,t],[1,175,"MediaPlayPause",127,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE",t,t],[1,176,"MediaSelect",128,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT",t,t],[1,177,"LaunchMail",129,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL",t,t],[1,178,"LaunchApp2",130,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2",t,t],[1,179,"LaunchApp1",0,t,0,"VK_MEDIA_LAUNCH_APP1",t,t],[1,180,"SelectTask",0,t,0,t,t,t],[1,181,"LaunchScreenSaver",0,t,0,t,t,t],[1,182,"BrowserSearch",120,"BrowserSearch",170,"VK_BROWSER_SEARCH",t,t],[1,183,"BrowserHome",121,"BrowserHome",172,"VK_BROWSER_HOME",t,t],[1,184,"BrowserBack",122,"BrowserBack",166,"VK_BROWSER_BACK",t,t],[1,185,"BrowserForward",123,"BrowserForward",167,"VK_BROWSER_FORWARD",t,t],[1,186,"BrowserStop",0,t,0,"VK_BROWSER_STOP",t,t],[1,187,"BrowserRefresh",0,t,0,"VK_BROWSER_REFRESH",t,t],[1,188,"BrowserFavorites",0,t,0,"VK_BROWSER_FAVORITES",t,t],[1,189,"ZoomToggle",0,t,0,t,t,t],[1,190,"MailReply",0,t,0,t,t,t],[1,191,"MailForward",0,t,0,t,t,t],[1,192,"MailSend",0,t,0,t,t,t],[1,0,t,114,"KeyInComposition",229,t,t,t],[1,0,t,116,"ABNT_C2",194,"VK_ABNT_C2",t,t],[1,0,t,96,"OEM_8",223,"VK_OEM_8",t,t],[1,0,t,0,t,0,"VK_KANA",t,t],[1,0,t,0,t,0,"VK_HANGUL",t,t],[1,0,t,0,t,0,"VK_JUNJA",t,t],[1,0,t,0,t,0,"VK_FINAL",t,t],[1,0,t,0,t,0,"VK_HANJA",t,t],[1,0,t,0,t,0,"VK_KANJI",t,t],[1,0,t,0,t,0,"VK_CONVERT",t,t],[1,0,t,0,t,0,"VK_NONCONVERT",t,t],[1,0,t,0,t,0,"VK_ACCEPT",t,t],[1,0,t,0,t,0,"VK_MODECHANGE",t,t],[1,0,t,0,t,0,"VK_SELECT",t,t],[1,0,t,0,t,0,"VK_PRINT",t,t],[1,0,t,0,t,0,"VK_EXECUTE",t,t],[1,0,t,0,t,0,"VK_SNAPSHOT",t,t],[1,0,t,0,t,0,"VK_HELP",t,t],[1,0,t,0,t,0,"VK_APPS",t,t],[1,0,t,0,t,0,"VK_PROCESSKEY",t,t],[1,0,t,0,t,0,"VK_PACKET",t,t],[1,0,t,0,t,0,"VK_DBE_SBCSCHAR",t,t],[1,0,t,0,t,0,"VK_DBE_DBCSCHAR",t,t],[1,0,t,0,t,0,"VK_ATTN",t,t],[1,0,t,0,t,0,"VK_CRSEL",t,t],[1,0,t,0,t,0,"VK_EXSEL",t,t],[1,0,t,0,t,0,"VK_EREOF",t,t],[1,0,t,0,t,0,"VK_PLAY",t,t],[1,0,t,0,t,0,"VK_ZOOM",t,t],[1,0,t,0,t,0,"VK_NONAME",t,t],[1,0,t,0,t,0,"VK_PA1",t,t],[1,0,t,0,t,0,"VK_OEM_CLEAR",t,t]],e=[],s=[];for(const t of i){const[i,n,o,r,h,c,a,l,u]=t;if(s[n]||(s[n]=!0,Fe[n]=o,Te[o]=n,Re[o.toLowerCase()]=n,i&&(Oe[n]=r,0!==r&&3!==r&&5!==r&&4!==r&&6!==r&&57!==r&&(Ie[r]=n))),!e[r]){if(e[r]=!0,!h)throw new Error(`String representation missing for key code ${r} around scan code ${o}`);De.define(r,h),Ee.define(r,l||h),Ae.define(r,u||l||h)}c&&(Me[c]=r),a&&(Le[a]=r)}Ie[3]=46}(),function(t){t.toString=function(t){return De.keyCodeToStr(t)},t.fromString=function(t){return De.strToKeyCode(t)},t.toUserSettingsUS=function(t){return Ee.keyCodeToStr(t)},t.toUserSettingsGeneral=function(t){return Ae.keyCodeToStr(t)},t.fromUserSettings=function(t){return Ee.strToKeyCode(t)||Ae.strToKeyCode(t)},t.toElectronAccelerator=function(t){if(t>=98&&t<=113)return null;switch(t){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return De.keyCodeToStr(t)}}(_e||(_e={}));const Pe=globalThis.vscode;if(void 0!==Pe&&void 0!==Pe.process){const t=Pe.process;Be={get platform(){return t.platform},get arch(){return t.arch},get env(){return t.env},cwd:()=>t.cwd()}}else Be="undefined"!=typeof process?{get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd:()=>process.env.VSCODE_CWD||process.cwd()}:{get platform(){return xt?"win32":Ct?"darwin":"linux"},get arch(){},get env(){return{}},cwd:()=>"/"};const $e=Be.cwd,We=Be.env,je=Be.platform,ze=46,He=47,Ve=92,Ue=58;class qe extends Error{constructor(t,i,e){let s;"string"==typeof i&&0===i.indexOf("not ")?(s="must not be",i=i.replace(/^not /,"")):s="must be";const n=-1!==t.indexOf(".")?"property":"argument";let o=`The "${t}" ${n} ${s} of type ${i}`;o+=". Received type "+typeof e,super(o),this.code="ERR_INVALID_ARG_TYPE"}}function Ke(t,i){if("string"!=typeof t)throw new qe(i,"string",t)}const Ge="win32"===je;function Ze(t){return t===He||t===Ve}function Qe(t){return t===He}function Je(t){return t>=65&&t<=90||t>=97&&t<=122}function Ye(t,i,e,s){let n="",o=0,r=-1,h=0,c=0;for(let a=0;a<=t.length;++a){if(a2){const t=n.lastIndexOf(e);-1===t?(n="",o=0):(n=n.slice(0,t),o=n.length-1-n.lastIndexOf(e)),r=a,h=0;continue}if(0!==n.length){n="",o=0,r=a,h=0;continue}}i&&(n+=n.length>0?`${e}..`:"..",o=2)}else n.length>0?n+=`${e}${t.slice(r+1,a)}`:n=t.slice(r+1,a),o=a-r-1;r=a,h=0}else c===ze&&-1!==h?++h:h=-1}return n}function Xe(t,i){!function(t){if(null===t||"object"!=typeof t)throw new qe("pathObject","Object",t)}(i);const e=i.dir||i.root,s=i.base||`${i.name||""}${i.ext||""}`;return e?e===i.root?`${e}${s}`:`${e}${t}${s}`:s}const ts={resolve(...t){let i="",e="",s=!1;for(let n=t.length-1;n>=-1;n--){let o;if(n>=0){if(o=t[n],Ke(o,"path"),0===o.length)continue}else 0===i.length?o=$e():(o=We[`=${i}`]||$e(),(void 0===o||o.slice(0,2).toLowerCase()!==i.toLowerCase()&&o.charCodeAt(2)===Ve)&&(o=`${i}\\`));const r=o.length;let h=0,c="",a=!1;const l=o.charCodeAt(0);if(1===r)Ze(l)&&(h=1,a=!0);else if(Ze(l))if(a=!0,Ze(o.charCodeAt(1))){let t=2,i=t;for(;t2&&Ze(o.charCodeAt(2))&&(a=!0,h=3));if(c.length>0)if(i.length>0){if(c.toLowerCase()!==i.toLowerCase())continue}else i=c;if(s){if(i.length>0)break}else if(e=`${o.slice(h)}\\${e}`,s=a,a&&i.length>0)break}return e=Ye(e,!s,"\\",Ze),s?`${i}\\${e}`:`${i}${e}`||"."},normalize(t){Ke(t,"path");const i=t.length;if(0===i)return".";let e,s=0,n=!1;const o=t.charCodeAt(0);if(1===i)return Qe(o)?"\\":t;if(Ze(o))if(n=!0,Ze(t.charCodeAt(1))){let n=2,o=n;for(;n2&&Ze(t.charCodeAt(2))&&(n=!0,s=3));let r=s0&&Ze(t.charCodeAt(i-1))&&(r+="\\"),void 0===e?n?`\\${r}`:r:n?`${e}\\${r}`:`${e}${r}`},isAbsolute(t){Ke(t,"path");const i=t.length;if(0===i)return!1;const e=t.charCodeAt(0);return Ze(e)||i>2&&Je(e)&&t.charCodeAt(1)===Ue&&Ze(t.charCodeAt(2))},join(...t){if(0===t.length)return".";let i,e;for(let s=0;s0&&(void 0===i?i=e=n:i+=`\\${n}`)}if(void 0===i)return".";let s=!0,n=0;if("string"==typeof e&&Ze(e.charCodeAt(0))){++n;const t=e.length;t>1&&Ze(e.charCodeAt(1))&&(++n,t>2&&(Ze(e.charCodeAt(2))?++n:s=!1))}if(s){for(;n=2&&(i=`\\${i.slice(n)}`)}return ts.normalize(i)},relative(t,i){if(Ke(t,"from"),Ke(i,"to"),t===i)return"";const e=ts.resolve(t),s=ts.resolve(i);if(e===s)return"";if((t=e.toLowerCase())===(i=s.toLowerCase()))return"";let n=0;for(;nn&&t.charCodeAt(o-1)===Ve;)o--;const r=o-n;let h=0;for(;hh&&i.charCodeAt(c-1)===Ve;)c--;const a=c-h,l=rl){if(i.charCodeAt(h+d)===Ve)return s.slice(h+d+1);if(2===d)return s.slice(h+d)}r>l&&(t.charCodeAt(n+d)===Ve?u=d:2===d&&(u=3)),-1===u&&(u=0)}let f="";for(d=n+u+1;d<=o;++d)d!==o&&t.charCodeAt(d)!==Ve||(f+=0===f.length?"..":"\\..");return h+=u,f.length>0?`${f}${s.slice(h,c)}`:(s.charCodeAt(h)===Ve&&++h,s.slice(h,c))},toNamespacedPath(t){if("string"!=typeof t||0===t.length)return t;const i=ts.resolve(t);if(i.length<=2)return t;if(i.charCodeAt(0)===Ve){if(i.charCodeAt(1)===Ve){const t=i.charCodeAt(2);if(63!==t&&t!==ze)return`\\\\?\\UNC\\${i.slice(2)}`}}else if(Je(i.charCodeAt(0))&&i.charCodeAt(1)===Ue&&i.charCodeAt(2)===Ve)return`\\\\?\\${i}`;return t},dirname(t){Ke(t,"path");const i=t.length;if(0===i)return".";let e=-1,s=0;const n=t.charCodeAt(0);if(1===i)return Ze(n)?t:".";if(Ze(n)){if(e=s=1,Ze(t.charCodeAt(1))){let n=2,o=n;for(;n2&&Ze(t.charCodeAt(2))?3:2,s=e);let o=-1,r=!0;for(let e=i-1;e>=s;--e)if(Ze(t.charCodeAt(e))){if(!r){o=e;break}}else r=!1;if(-1===o){if(-1===e)return".";o=e}return t.slice(0,o)},basename(t,i){void 0!==i&&Ke(i,"ext"),Ke(t,"path");let e,s=0,n=-1,o=!0;if(t.length>=2&&Je(t.charCodeAt(0))&&t.charCodeAt(1)===Ue&&(s=2),void 0!==i&&i.length>0&&i.length<=t.length){if(i===t)return"";let r=i.length-1,h=-1;for(e=t.length-1;e>=s;--e){const c=t.charCodeAt(e);if(Ze(c)){if(!o){s=e+1;break}}else-1===h&&(o=!1,h=e+1),r>=0&&(c===i.charCodeAt(r)?-1==--r&&(n=e):(r=-1,n=h))}return s===n?n=h:-1===n&&(n=t.length),t.slice(s,n)}for(e=t.length-1;e>=s;--e)if(Ze(t.charCodeAt(e))){if(!o){s=e+1;break}}else-1===n&&(o=!1,n=e+1);return-1===n?"":t.slice(s,n)},extname(t){Ke(t,"path");let i=0,e=-1,s=0,n=-1,o=!0,r=0;t.length>=2&&t.charCodeAt(1)===Ue&&Je(t.charCodeAt(0))&&(i=s=2);for(let h=t.length-1;h>=i;--h){const i=t.charCodeAt(h);if(Ze(i)){if(!o){s=h+1;break}}else-1===n&&(o=!1,n=h+1),i===ze?-1===e?e=h:1!==r&&(r=1):-1!==e&&(r=-1)}return-1===e||-1===n||0===r||1===r&&e===n-1&&e===s+1?"":t.slice(e,n)},format:Xe.bind(null,"\\"),parse(t){Ke(t,"path");const i={root:"",dir:"",base:"",ext:"",name:""};if(0===t.length)return i;const e=t.length;let s=0,n=t.charCodeAt(0);if(1===e)return Ze(n)?(i.root=i.dir=t,i):(i.base=i.name=t,i);if(Ze(n)){if(s=1,Ze(t.charCodeAt(1))){let i=2,n=i;for(;i0&&(i.root=t.slice(0,s));let o=-1,r=s,h=-1,c=!0,a=t.length-1,l=0;for(;a>=s;--a)if(n=t.charCodeAt(a),Ze(n)){if(!c){r=a+1;break}}else-1===h&&(c=!1,h=a+1),n===ze?-1===o?o=a:1!==l&&(l=1):-1!==o&&(l=-1);return-1!==h&&(-1===o||0===l||1===l&&o===h-1&&o===r+1?i.base=i.name=t.slice(r,h):(i.name=t.slice(r,o),i.base=t.slice(r,h),i.ext=t.slice(o,h))),i.dir=r>0&&r!==s?t.slice(0,r-1):i.root,i},sep:"\\",delimiter:";",win32:null,posix:null},is=(()=>{if(Ge){const t=/\\/g;return()=>{const i=$e().replace(t,"/");return i.slice(i.indexOf("/"))}}return()=>$e()})(),es={resolve(...t){let i="",e=!1;for(let s=t.length-1;s>=-1&&!e;s--){const n=s>=0?t[s]:is();Ke(n,"path"),0!==n.length&&(i=`${n}/${i}`,e=n.charCodeAt(0)===He)}return i=Ye(i,!e,"/",Qe),e?`/${i}`:i.length>0?i:"."},normalize(t){if(Ke(t,"path"),0===t.length)return".";const i=t.charCodeAt(0)===He,e=t.charCodeAt(t.length-1)===He;return 0===(t=Ye(t,!i,"/",Qe)).length?i?"/":e?"./":".":(e&&(t+="/"),i?`/${t}`:t)},isAbsolute:t=>(Ke(t,"path"),t.length>0&&t.charCodeAt(0)===He),join(...t){if(0===t.length)return".";let i;for(let e=0;e0&&(void 0===i?i=s:i+=`/${s}`)}return void 0===i?".":es.normalize(i)},relative(t,i){if(Ke(t,"from"),Ke(i,"to"),t===i)return"";if((t=es.resolve(t))===(i=es.resolve(i)))return"";const e=t.length,s=e-1,n=i.length-1,o=so){if(i.charCodeAt(1+h)===He)return i.slice(1+h+1);if(0===h)return i.slice(1+h)}else s>o&&(t.charCodeAt(1+h)===He?r=h:0===h&&(r=0));let c="";for(h=1+r+1;h<=e;++h)h!==e&&t.charCodeAt(h)!==He||(c+=0===c.length?"..":"/..");return`${c}${i.slice(1+r)}`},toNamespacedPath:t=>t,dirname(t){if(Ke(t,"path"),0===t.length)return".";const i=t.charCodeAt(0)===He;let e=-1,s=!0;for(let i=t.length-1;i>=1;--i)if(t.charCodeAt(i)===He){if(!s){e=i;break}}else s=!1;return-1===e?i?"/":".":i&&1===e?"//":t.slice(0,e)},basename(t,i){void 0!==i&&Ke(i,"ext"),Ke(t,"path");let e,s=0,n=-1,o=!0;if(void 0!==i&&i.length>0&&i.length<=t.length){if(i===t)return"";let r=i.length-1,h=-1;for(e=t.length-1;e>=0;--e){const c=t.charCodeAt(e);if(c===He){if(!o){s=e+1;break}}else-1===h&&(o=!1,h=e+1),r>=0&&(c===i.charCodeAt(r)?-1==--r&&(n=e):(r=-1,n=h))}return s===n?n=h:-1===n&&(n=t.length),t.slice(s,n)}for(e=t.length-1;e>=0;--e)if(t.charCodeAt(e)===He){if(!o){s=e+1;break}}else-1===n&&(o=!1,n=e+1);return-1===n?"":t.slice(s,n)},extname(t){Ke(t,"path");let i=-1,e=0,s=-1,n=!0,o=0;for(let r=t.length-1;r>=0;--r){const h=t.charCodeAt(r);if(h!==He)-1===s&&(n=!1,s=r+1),h===ze?-1===i?i=r:1!==o&&(o=1):-1!==i&&(o=-1);else if(!n){e=r+1;break}}return-1===i||-1===s||0===o||1===o&&i===s-1&&i===e+1?"":t.slice(i,s)},format:Xe.bind(null,"/"),parse(t){Ke(t,"path");const i={root:"",dir:"",base:"",ext:"",name:""};if(0===t.length)return i;const e=t.charCodeAt(0)===He;let s;e?(i.root="/",s=1):s=0;let n=-1,o=0,r=-1,h=!0,c=t.length-1,a=0;for(;c>=s;--c){const i=t.charCodeAt(c);if(i!==He)-1===r&&(h=!1,r=c+1),i===ze?-1===n?n=c:1!==a&&(a=1):-1!==n&&(a=-1);else if(!h){o=c+1;break}}if(-1!==r){const s=0===o&&e?1:o;-1===n||0===a||1===a&&n===r-1&&n===o+1?i.base=i.name=t.slice(s,r):(i.name=t.slice(s,n),i.base=t.slice(s,r),i.ext=t.slice(n,r))}return o>0?i.dir=t.slice(0,o-1):e&&(i.dir="/"),i},sep:"/",delimiter:":",win32:null,posix:null};es.win32=ts.win32=ts,es.posix=ts.posix=es;const ss=Ge?ts.normalize:es.normalize,ns=Ge?ts.resolve:es.resolve,os=Ge?ts.relative:es.relative,rs=Ge?ts.dirname:es.dirname,hs=Ge?ts.basename:es.basename,cs=Ge?ts.extname:es.extname,as=Ge?ts.sep:es.sep,ls=/^\w[\w\d+.-]*$/,us=/^\//,ds=/^\/\//,fs="",ps="/",gs=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class ms{static isUri(t){return t instanceof ms||!!t&&"string"==typeof t.authority&&"string"==typeof t.fragment&&"string"==typeof t.path&&"string"==typeof t.query&&"string"==typeof t.scheme&&"string"==typeof t.fsPath&&"function"==typeof t.with&&"function"==typeof t.toString}constructor(t,i,e,s,n,o=!1){"object"==typeof t?(this.scheme=t.scheme||fs,this.authority=t.authority||fs,this.path=t.path||fs,this.query=t.query||fs,this.fragment=t.fragment||fs):(this.scheme=function(t,i){return t||i?t:"file"}(t,o),this.authority=i||fs,this.path=function(t,i){switch(t){case"https":case"http":case"file":i?i[0]!==ps&&(i=ps+i):i=ps}return i}(this.scheme,e||fs),this.query=s||fs,this.fragment=n||fs,function(t,i){if(!t.scheme&&i)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${t.authority}", path: "${t.path}", query: "${t.query}", fragment: "${t.fragment}"}`);if(t.scheme&&!ls.test(t.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(t.path)if(t.authority){if(!us.test(t.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(ds.test(t.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}(this,o))}get fsPath(){return xs(this,!1)}with(t){if(!t)return this;let{scheme:i,authority:e,path:s,query:n,fragment:o}=t;return void 0===i?i=this.scheme:null===i&&(i=fs),void 0===e?e=this.authority:null===e&&(e=fs),void 0===s?s=this.path:null===s&&(s=fs),void 0===n?n=this.query:null===n&&(n=fs),void 0===o?o=this.fragment:null===o&&(o=fs),i===this.scheme&&e===this.authority&&s===this.path&&n===this.query&&o===this.fragment?this:new vs(i,e,s,n,o)}static parse(t,i=!1){const e=gs.exec(t);return e?new vs(e[2]||fs,Es(e[4]||fs),Es(e[5]||fs),Es(e[7]||fs),Es(e[9]||fs),i):new vs(fs,fs,fs,fs,fs)}static file(t){let i=fs;if(xt&&(t=t.replace(/\\/g,ps)),t[0]===ps&&t[1]===ps){const e=t.indexOf(ps,2);-1===e?(i=t.substring(2),t=ps):(i=t.substring(2,e),t=t.substring(e)||ps)}return new vs("file",i,t,fs,fs)}static from(t,i){return new vs(t.scheme,t.authority,t.path,t.query,t.fragment,i)}static joinPath(t,...i){if(!t.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let e;return e=xt&&"file"===t.scheme?ms.file(ts.join(xs(t,!0),...i)).path:es.join(t.path,...i),t.with({path:e})}toString(t=!1){return Cs(this,t)}toJSON(){return this}static revive(t){var i,e;if(t){if(t instanceof ms)return t;{const s=new vs(t);return s._formatted=null!==(i=t.external)&&void 0!==i?i:null,s._fsPath=t._sep===ws&&null!==(e=t.fsPath)&&void 0!==e?e:null,s}}return t}}const ws=xt?1:void 0;class vs extends ms{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=xs(this,!1)),this._fsPath}toString(t=!1){return t?Cs(this,!0):(this._formatted||(this._formatted=Cs(this,!1)),this._formatted)}toJSON(){const t={$mid:1};return this._fsPath&&(t.fsPath=this._fsPath,t._sep=ws),this._formatted&&(t.external=this._formatted),this.path&&(t.path=this.path),this.scheme&&(t.scheme=this.scheme),this.authority&&(t.authority=this.authority),this.query&&(t.query=this.query),this.fragment&&(t.fragment=this.fragment),t}}const bs={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function ys(t,i,e){let s,n=-1;for(let o=0;o=97&&r<=122||r>=65&&r<=90||r>=48&&r<=57||45===r||46===r||95===r||126===r||i&&47===r||e&&91===r||e&&93===r||e&&58===r)-1!==n&&(s+=encodeURIComponent(t.substring(n,o)),n=-1),void 0!==s&&(s+=t.charAt(o));else{void 0===s&&(s=t.substr(0,o));const i=bs[r];void 0!==i?(-1!==n&&(s+=encodeURIComponent(t.substring(n,o)),n=-1),s+=i):-1===n&&(n=o)}}return-1!==n&&(s+=encodeURIComponent(t.substring(n))),void 0!==s?s:t}function ks(t){let i;for(let e=0;e1&&"file"===t.scheme?`//${t.authority}${t.path}`:47===t.path.charCodeAt(0)&&(t.path.charCodeAt(1)>=65&&t.path.charCodeAt(1)<=90||t.path.charCodeAt(1)>=97&&t.path.charCodeAt(1)<=122)&&58===t.path.charCodeAt(2)?i?t.path.substr(1):t.path[1].toLowerCase()+t.path.substr(2):t.path,xt&&(e=e.replace(/\//g,"\\")),e}function Cs(t,i){const e=i?ks:ys;let s="",{scheme:n,authority:o,path:r,query:h,fragment:c}=t;if(n&&(s+=n,s+=":"),(o||"file"===n)&&(s+=ps,s+=ps),o){let t=o.indexOf("@");if(-1!==t){const i=o.substr(0,t);o=o.substr(t+1),t=i.lastIndexOf(":"),-1===t?s+=e(i,!1,!1):(s+=e(i.substr(0,t),!1,!1),s+=":",s+=e(i.substr(t+1),!1,!0)),s+="@"}o=o.toLowerCase(),t=o.lastIndexOf(":"),-1===t?s+=e(o,!1,!0):(s+=e(o.substr(0,t),!1,!0),s+=o.substr(t))}if(r){if(r.length>=3&&47===r.charCodeAt(0)&&58===r.charCodeAt(2)){const t=r.charCodeAt(1);t>=65&&t<=90&&(r=`/${String.fromCharCode(t+32)}:${r.substr(3)}`)}else if(r.length>=2&&58===r.charCodeAt(1)){const t=r.charCodeAt(0);t>=65&&t<=90&&(r=`${String.fromCharCode(t+32)}:${r.substr(2)}`)}s+=e(r,!0,!1)}return h&&(s+="?",s+=e(h,!1,!1)),c&&(s+="#",s+=i?c:ys(c,!1,!1)),s}function Ss(t){try{return decodeURIComponent(t)}catch(i){return t.length>3?t.substr(0,3)+Ss(t.substr(3)):t}}const Ds=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function Es(t){return t.match(Ds)?t.replace(Ds,(t=>Ss(t))):t}class As{constructor(t,i){this.lineNumber=t,this.column=i}with(t=this.lineNumber,i=this.column){return t===this.lineNumber&&i===this.column?this:new As(t,i)}delta(t=0,i=0){return this.with(this.lineNumber+t,this.column+i)}equals(t){return As.equals(this,t)}static equals(t,i){return!t&&!i||!!t&&!!i&&t.lineNumber===i.lineNumber&&t.column===i.column}isBefore(t){return As.isBefore(this,t)}static isBefore(t,i){return t.lineNumbere||t===e&&i>s?(this.startLineNumber=e,this.startColumn=s,this.endLineNumber=t,this.endColumn=i):(this.startLineNumber=t,this.startColumn=i,this.endLineNumber=e,this.endColumn=s)}isEmpty(){return Ms.isEmpty(this)}static isEmpty(t){return t.startLineNumber===t.endLineNumber&&t.startColumn===t.endColumn}containsPosition(t){return Ms.containsPosition(this,t)}static containsPosition(t,i){return!(i.lineNumbert.endLineNumber||i.lineNumber===t.startLineNumber&&i.columnt.endColumn)}static strictContainsPosition(t,i){return!(i.lineNumbert.endLineNumber||i.lineNumber===t.startLineNumber&&i.column<=t.startColumn||i.lineNumber===t.endLineNumber&&i.column>=t.endColumn)}containsRange(t){return Ms.containsRange(this,t)}static containsRange(t,i){return!(i.startLineNumbert.endLineNumber||i.endLineNumber>t.endLineNumber||i.startLineNumber===t.startLineNumber&&i.startColumnt.endColumn)}strictContainsRange(t){return Ms.strictContainsRange(this,t)}static strictContainsRange(t,i){return!(i.startLineNumbert.endLineNumber||i.endLineNumber>t.endLineNumber||i.startLineNumber===t.startLineNumber&&i.startColumn<=t.startColumn||i.endLineNumber===t.endLineNumber&&i.endColumn>=t.endColumn)}plusRange(t){return Ms.plusRange(this,t)}static plusRange(t,i){let e,s,n,o;return i.startLineNumbert.endLineNumber?(n=i.endLineNumber,o=i.endColumn):i.endLineNumber===t.endLineNumber?(n=i.endLineNumber,o=Math.max(i.endColumn,t.endColumn)):(n=t.endLineNumber,o=t.endColumn),new Ms(e,s,n,o)}intersectRanges(t){return Ms.intersectRanges(this,t)}static intersectRanges(t,i){let e=t.startLineNumber,s=t.startColumn,n=t.endLineNumber,o=t.endColumn;const r=i.startLineNumber,h=i.startColumn,c=i.endLineNumber,a=i.endColumn;return ec?(n=c,o=a):n===c&&(o=Math.min(o,a)),e>n||e===n&&s>o?null:new Ms(e,s,n,o)}equalsRange(t){return Ms.equalsRange(this,t)}static equalsRange(t,i){return!t&&!i||!!t&&!!i&&t.startLineNumber===i.startLineNumber&&t.startColumn===i.startColumn&&t.endLineNumber===i.endLineNumber&&t.endColumn===i.endColumn}getEndPosition(){return Ms.getEndPosition(this)}static getEndPosition(t){return new As(t.endLineNumber,t.endColumn)}getStartPosition(){return Ms.getStartPosition(this)}static getStartPosition(t){return new As(t.startLineNumber,t.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(t,i){return new Ms(this.startLineNumber,this.startColumn,t,i)}setStartPosition(t,i){return new Ms(t,i,this.endLineNumber,this.endColumn)}collapseToStart(){return Ms.collapseToStart(this)}static collapseToStart(t){return new Ms(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)}collapseToEnd(){return Ms.collapseToEnd(this)}static collapseToEnd(t){return new Ms(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn)}delta(t){return new Ms(this.startLineNumber+t,this.startColumn,this.endLineNumber+t,this.endColumn)}static fromPositions(t,i=t){return new Ms(t.lineNumber,t.column,i.lineNumber,i.column)}static lift(t){return t?new Ms(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null}static isIRange(t){return t&&"number"==typeof t.startLineNumber&&"number"==typeof t.startColumn&&"number"==typeof t.endLineNumber&&"number"==typeof t.endColumn}static areIntersectingOrTouching(t,i){return!(t.endLineNumbert.startLineNumber}toJSON(){return this}}class Ls extends Ms{constructor(t,i,e,s){super(t,i,e,s),this.selectionStartLineNumber=t,this.selectionStartColumn=i,this.positionLineNumber=e,this.positionColumn=s}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(t){return Ls.selectionsEqual(this,t)}static selectionsEqual(t,i){return t.selectionStartLineNumber===i.selectionStartLineNumber&&t.selectionStartColumn===i.selectionStartColumn&&t.positionLineNumber===i.positionLineNumber&&t.positionColumn===i.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(t,i){return 0===this.getDirection()?new Ls(this.startLineNumber,this.startColumn,t,i):new Ls(t,i,this.startLineNumber,this.startColumn)}getPosition(){return new As(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new As(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(t,i){return 0===this.getDirection()?new Ls(t,i,this.endLineNumber,this.endColumn):new Ls(this.endLineNumber,this.endColumn,t,i)}static fromPositions(t,i=t){return new Ls(t.lineNumber,t.column,i.lineNumber,i.column)}static fromRange(t,i){return 0===i?new Ls(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):new Ls(t.endLineNumber,t.endColumn,t.startLineNumber,t.startColumn)}static liftSelection(t){return new Ls(t.selectionStartLineNumber,t.selectionStartColumn,t.positionLineNumber,t.positionColumn)}static selectionsArrEqual(t,i){if(t&&!i||!t&&i)return!1;if(!t&&!i)return!0;if(t.length!==i.length)return!1;for(let e=0,s=t.length;e{t&&t.dispose()}))}get tokenizationSupport(){return this._tokenizationSupport||(this._tokenizationSupport=this.createSupport()),this._tokenizationSupport}}const Zs=new class{constructor(){this._tokenizationSupports=new Map,this._factories=new Map,this._onDidChange=new de,this.onDidChange=this._onDidChange.event,this._colorMap=null}handleChange(t){this._onDidChange.fire({changedLanguages:t,changedColorMap:!1})}register(t,i){return this._tokenizationSupports.set(t,i),this.handleChange([t]),Yi((()=>{this._tokenizationSupports.get(t)===i&&(this._tokenizationSupports.delete(t),this.handleChange([t]))}))}get(t){return this._tokenizationSupports.get(t)||null}registerFactory(t,i){var e;null===(e=this._factories.get(t))||void 0===e||e.dispose();const s=new Is(this,t,i);return this._factories.set(t,s),Yi((()=>{const i=this._factories.get(t);i&&i===s&&(this._factories.delete(t),i.dispose())}))}async getOrCreate(t){const i=this.get(t);if(i)return i;const e=this._factories.get(t);return!e||e.isResolved?null:(await e.resolve(),this.get(t))}isResolved(t){if(this.get(t))return!0;const i=this._factories.get(t);return!(i&&!i.isResolved)}setColorMap(t){this._colorMap=t,this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}};var Qs,Js,Ys,Xs,tn,en,sn,nn,on,rn,hn,cn,an,ln,un,dn,fn,pn,gn,mn,wn,vn,bn,yn,kn,xn,Cn,Sn,Dn,En,An,Mn,Ln,Fn,Tn,Rn,On,In,_n,Nn;!function(t){t[t.Unknown=0]="Unknown",t[t.Disabled=1]="Disabled",t[t.Enabled=2]="Enabled"}(Qs||(Qs={})),function(t){t[t.Invoke=1]="Invoke",t[t.Auto=2]="Auto"}(Js||(Js={})),function(t){t[t.None=0]="None",t[t.KeepWhitespace=1]="KeepWhitespace",t[t.InsertAsSnippet=4]="InsertAsSnippet"}(Ys||(Ys={})),function(t){t[t.Method=0]="Method",t[t.Function=1]="Function",t[t.Constructor=2]="Constructor",t[t.Field=3]="Field",t[t.Variable=4]="Variable",t[t.Class=5]="Class",t[t.Struct=6]="Struct",t[t.Interface=7]="Interface",t[t.Module=8]="Module",t[t.Property=9]="Property",t[t.Event=10]="Event",t[t.Operator=11]="Operator",t[t.Unit=12]="Unit",t[t.Value=13]="Value",t[t.Constant=14]="Constant",t[t.Enum=15]="Enum",t[t.EnumMember=16]="EnumMember",t[t.Keyword=17]="Keyword",t[t.Text=18]="Text",t[t.Color=19]="Color",t[t.File=20]="File",t[t.Reference=21]="Reference",t[t.Customcolor=22]="Customcolor",t[t.Folder=23]="Folder",t[t.TypeParameter=24]="TypeParameter",t[t.User=25]="User",t[t.Issue=26]="Issue",t[t.Snippet=27]="Snippet"}(Xs||(Xs={})),function(t){t[t.Deprecated=1]="Deprecated"}(tn||(tn={})),function(t){t[t.Invoke=0]="Invoke",t[t.TriggerCharacter=1]="TriggerCharacter",t[t.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"}(en||(en={})),function(t){t[t.EXACT=0]="EXACT",t[t.ABOVE=1]="ABOVE",t[t.BELOW=2]="BELOW"}(sn||(sn={})),function(t){t[t.NotSet=0]="NotSet",t[t.ContentFlush=1]="ContentFlush",t[t.RecoverFromMarkers=2]="RecoverFromMarkers",t[t.Explicit=3]="Explicit",t[t.Paste=4]="Paste",t[t.Undo=5]="Undo",t[t.Redo=6]="Redo"}(nn||(nn={})),function(t){t[t.LF=1]="LF",t[t.CRLF=2]="CRLF"}(on||(on={})),function(t){t[t.Text=0]="Text",t[t.Read=1]="Read",t[t.Write=2]="Write"}(rn||(rn={})),function(t){t[t.None=0]="None",t[t.Keep=1]="Keep",t[t.Brackets=2]="Brackets",t[t.Advanced=3]="Advanced",t[t.Full=4]="Full"}(hn||(hn={})),function(t){t[t.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",t[t.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter",t[t.accessibilitySupport=2]="accessibilitySupport",t[t.accessibilityPageSize=3]="accessibilityPageSize",t[t.ariaLabel=4]="ariaLabel",t[t.ariaRequired=5]="ariaRequired",t[t.autoClosingBrackets=6]="autoClosingBrackets",t[t.autoClosingComments=7]="autoClosingComments",t[t.screenReaderAnnounceInlineSuggestion=8]="screenReaderAnnounceInlineSuggestion",t[t.autoClosingDelete=9]="autoClosingDelete",t[t.autoClosingOvertype=10]="autoClosingOvertype",t[t.autoClosingQuotes=11]="autoClosingQuotes",t[t.autoIndent=12]="autoIndent",t[t.automaticLayout=13]="automaticLayout",t[t.autoSurround=14]="autoSurround",t[t.bracketPairColorization=15]="bracketPairColorization",t[t.guides=16]="guides",t[t.codeLens=17]="codeLens",t[t.codeLensFontFamily=18]="codeLensFontFamily",t[t.codeLensFontSize=19]="codeLensFontSize",t[t.colorDecorators=20]="colorDecorators",t[t.colorDecoratorsLimit=21]="colorDecoratorsLimit",t[t.columnSelection=22]="columnSelection",t[t.comments=23]="comments",t[t.contextmenu=24]="contextmenu",t[t.copyWithSyntaxHighlighting=25]="copyWithSyntaxHighlighting",t[t.cursorBlinking=26]="cursorBlinking",t[t.cursorSmoothCaretAnimation=27]="cursorSmoothCaretAnimation",t[t.cursorStyle=28]="cursorStyle",t[t.cursorSurroundingLines=29]="cursorSurroundingLines",t[t.cursorSurroundingLinesStyle=30]="cursorSurroundingLinesStyle",t[t.cursorWidth=31]="cursorWidth",t[t.disableLayerHinting=32]="disableLayerHinting",t[t.disableMonospaceOptimizations=33]="disableMonospaceOptimizations",t[t.domReadOnly=34]="domReadOnly",t[t.dragAndDrop=35]="dragAndDrop",t[t.dropIntoEditor=36]="dropIntoEditor",t[t.emptySelectionClipboard=37]="emptySelectionClipboard",t[t.experimentalWhitespaceRendering=38]="experimentalWhitespaceRendering",t[t.extraEditorClassName=39]="extraEditorClassName",t[t.fastScrollSensitivity=40]="fastScrollSensitivity",t[t.find=41]="find",t[t.fixedOverflowWidgets=42]="fixedOverflowWidgets",t[t.folding=43]="folding",t[t.foldingStrategy=44]="foldingStrategy",t[t.foldingHighlight=45]="foldingHighlight",t[t.foldingImportsByDefault=46]="foldingImportsByDefault",t[t.foldingMaximumRegions=47]="foldingMaximumRegions",t[t.unfoldOnClickAfterEndOfLine=48]="unfoldOnClickAfterEndOfLine",t[t.fontFamily=49]="fontFamily",t[t.fontInfo=50]="fontInfo",t[t.fontLigatures=51]="fontLigatures",t[t.fontSize=52]="fontSize",t[t.fontWeight=53]="fontWeight",t[t.fontVariations=54]="fontVariations",t[t.formatOnPaste=55]="formatOnPaste",t[t.formatOnType=56]="formatOnType",t[t.glyphMargin=57]="glyphMargin",t[t.gotoLocation=58]="gotoLocation",t[t.hideCursorInOverviewRuler=59]="hideCursorInOverviewRuler",t[t.hover=60]="hover",t[t.inDiffEditor=61]="inDiffEditor",t[t.inlineSuggest=62]="inlineSuggest",t[t.letterSpacing=63]="letterSpacing",t[t.lightbulb=64]="lightbulb",t[t.lineDecorationsWidth=65]="lineDecorationsWidth",t[t.lineHeight=66]="lineHeight",t[t.lineNumbers=67]="lineNumbers",t[t.lineNumbersMinChars=68]="lineNumbersMinChars",t[t.linkedEditing=69]="linkedEditing",t[t.links=70]="links",t[t.matchBrackets=71]="matchBrackets",t[t.minimap=72]="minimap",t[t.mouseStyle=73]="mouseStyle",t[t.mouseWheelScrollSensitivity=74]="mouseWheelScrollSensitivity",t[t.mouseWheelZoom=75]="mouseWheelZoom",t[t.multiCursorMergeOverlapping=76]="multiCursorMergeOverlapping",t[t.multiCursorModifier=77]="multiCursorModifier",t[t.multiCursorPaste=78]="multiCursorPaste",t[t.multiCursorLimit=79]="multiCursorLimit",t[t.occurrencesHighlight=80]="occurrencesHighlight",t[t.overviewRulerBorder=81]="overviewRulerBorder",t[t.overviewRulerLanes=82]="overviewRulerLanes",t[t.padding=83]="padding",t[t.pasteAs=84]="pasteAs",t[t.parameterHints=85]="parameterHints",t[t.peekWidgetDefaultFocus=86]="peekWidgetDefaultFocus",t[t.definitionLinkOpensInPeek=87]="definitionLinkOpensInPeek",t[t.quickSuggestions=88]="quickSuggestions",t[t.quickSuggestionsDelay=89]="quickSuggestionsDelay",t[t.readOnly=90]="readOnly",t[t.readOnlyMessage=91]="readOnlyMessage",t[t.renameOnType=92]="renameOnType",t[t.renderControlCharacters=93]="renderControlCharacters",t[t.renderFinalNewline=94]="renderFinalNewline",t[t.renderLineHighlight=95]="renderLineHighlight",t[t.renderLineHighlightOnlyWhenFocus=96]="renderLineHighlightOnlyWhenFocus",t[t.renderValidationDecorations=97]="renderValidationDecorations",t[t.renderWhitespace=98]="renderWhitespace",t[t.revealHorizontalRightPadding=99]="revealHorizontalRightPadding",t[t.roundedSelection=100]="roundedSelection",t[t.rulers=101]="rulers",t[t.scrollbar=102]="scrollbar",t[t.scrollBeyondLastColumn=103]="scrollBeyondLastColumn",t[t.scrollBeyondLastLine=104]="scrollBeyondLastLine",t[t.scrollPredominantAxis=105]="scrollPredominantAxis",t[t.selectionClipboard=106]="selectionClipboard",t[t.selectionHighlight=107]="selectionHighlight",t[t.selectOnLineNumbers=108]="selectOnLineNumbers",t[t.showFoldingControls=109]="showFoldingControls",t[t.showUnused=110]="showUnused",t[t.snippetSuggestions=111]="snippetSuggestions",t[t.smartSelect=112]="smartSelect",t[t.smoothScrolling=113]="smoothScrolling",t[t.stickyScroll=114]="stickyScroll",t[t.stickyTabStops=115]="stickyTabStops",t[t.stopRenderingLineAfter=116]="stopRenderingLineAfter",t[t.suggest=117]="suggest",t[t.suggestFontSize=118]="suggestFontSize",t[t.suggestLineHeight=119]="suggestLineHeight",t[t.suggestOnTriggerCharacters=120]="suggestOnTriggerCharacters",t[t.suggestSelection=121]="suggestSelection",t[t.tabCompletion=122]="tabCompletion",t[t.tabIndex=123]="tabIndex",t[t.unicodeHighlighting=124]="unicodeHighlighting",t[t.unusualLineTerminators=125]="unusualLineTerminators",t[t.useShadowDOM=126]="useShadowDOM",t[t.useTabStops=127]="useTabStops",t[t.wordBreak=128]="wordBreak",t[t.wordSeparators=129]="wordSeparators",t[t.wordWrap=130]="wordWrap",t[t.wordWrapBreakAfterCharacters=131]="wordWrapBreakAfterCharacters",t[t.wordWrapBreakBeforeCharacters=132]="wordWrapBreakBeforeCharacters",t[t.wordWrapColumn=133]="wordWrapColumn",t[t.wordWrapOverride1=134]="wordWrapOverride1",t[t.wordWrapOverride2=135]="wordWrapOverride2",t[t.wrappingIndent=136]="wrappingIndent",t[t.wrappingStrategy=137]="wrappingStrategy",t[t.showDeprecated=138]="showDeprecated",t[t.inlayHints=139]="inlayHints",t[t.editorClassName=140]="editorClassName",t[t.pixelRatio=141]="pixelRatio",t[t.tabFocusMode=142]="tabFocusMode",t[t.layoutInfo=143]="layoutInfo",t[t.wrappingInfo=144]="wrappingInfo",t[t.defaultColorDecorators=145]="defaultColorDecorators",t[t.colorDecoratorsActivatedOn=146]="colorDecoratorsActivatedOn",t[t.inlineCompletionsAccessibilityVerbose=147]="inlineCompletionsAccessibilityVerbose"}(cn||(cn={})),function(t){t[t.TextDefined=0]="TextDefined",t[t.LF=1]="LF",t[t.CRLF=2]="CRLF"}(an||(an={})),function(t){t[t.LF=0]="LF",t[t.CRLF=1]="CRLF"}(ln||(ln={})),function(t){t[t.Left=1]="Left",t[t.Right=2]="Right"}(un||(un={})),function(t){t[t.None=0]="None",t[t.Indent=1]="Indent",t[t.IndentOutdent=2]="IndentOutdent",t[t.Outdent=3]="Outdent"}(dn||(dn={})),function(t){t[t.Both=0]="Both",t[t.Right=1]="Right",t[t.Left=2]="Left",t[t.None=3]="None"}(fn||(fn={})),function(t){t[t.Type=1]="Type",t[t.Parameter=2]="Parameter"}(pn||(pn={})),function(t){t[t.Automatic=0]="Automatic",t[t.Explicit=1]="Explicit"}(gn||(gn={})),function(t){t[t.DependsOnKbLayout=-1]="DependsOnKbLayout",t[t.Unknown=0]="Unknown",t[t.Backspace=1]="Backspace",t[t.Tab=2]="Tab",t[t.Enter=3]="Enter",t[t.Shift=4]="Shift",t[t.Ctrl=5]="Ctrl",t[t.Alt=6]="Alt",t[t.PauseBreak=7]="PauseBreak",t[t.CapsLock=8]="CapsLock",t[t.Escape=9]="Escape",t[t.Space=10]="Space",t[t.PageUp=11]="PageUp",t[t.PageDown=12]="PageDown",t[t.End=13]="End",t[t.Home=14]="Home",t[t.LeftArrow=15]="LeftArrow",t[t.UpArrow=16]="UpArrow",t[t.RightArrow=17]="RightArrow",t[t.DownArrow=18]="DownArrow",t[t.Insert=19]="Insert",t[t.Delete=20]="Delete",t[t.Digit0=21]="Digit0",t[t.Digit1=22]="Digit1",t[t.Digit2=23]="Digit2",t[t.Digit3=24]="Digit3",t[t.Digit4=25]="Digit4",t[t.Digit5=26]="Digit5",t[t.Digit6=27]="Digit6",t[t.Digit7=28]="Digit7",t[t.Digit8=29]="Digit8",t[t.Digit9=30]="Digit9",t[t.KeyA=31]="KeyA",t[t.KeyB=32]="KeyB",t[t.KeyC=33]="KeyC",t[t.KeyD=34]="KeyD",t[t.KeyE=35]="KeyE",t[t.KeyF=36]="KeyF",t[t.KeyG=37]="KeyG",t[t.KeyH=38]="KeyH",t[t.KeyI=39]="KeyI",t[t.KeyJ=40]="KeyJ",t[t.KeyK=41]="KeyK",t[t.KeyL=42]="KeyL",t[t.KeyM=43]="KeyM",t[t.KeyN=44]="KeyN",t[t.KeyO=45]="KeyO",t[t.KeyP=46]="KeyP",t[t.KeyQ=47]="KeyQ",t[t.KeyR=48]="KeyR",t[t.KeyS=49]="KeyS",t[t.KeyT=50]="KeyT",t[t.KeyU=51]="KeyU",t[t.KeyV=52]="KeyV",t[t.KeyW=53]="KeyW",t[t.KeyX=54]="KeyX",t[t.KeyY=55]="KeyY",t[t.KeyZ=56]="KeyZ",t[t.Meta=57]="Meta",t[t.ContextMenu=58]="ContextMenu",t[t.F1=59]="F1",t[t.F2=60]="F2",t[t.F3=61]="F3",t[t.F4=62]="F4",t[t.F5=63]="F5",t[t.F6=64]="F6",t[t.F7=65]="F7",t[t.F8=66]="F8",t[t.F9=67]="F9",t[t.F10=68]="F10",t[t.F11=69]="F11",t[t.F12=70]="F12",t[t.F13=71]="F13",t[t.F14=72]="F14",t[t.F15=73]="F15",t[t.F16=74]="F16",t[t.F17=75]="F17",t[t.F18=76]="F18",t[t.F19=77]="F19",t[t.F20=78]="F20",t[t.F21=79]="F21",t[t.F22=80]="F22",t[t.F23=81]="F23",t[t.F24=82]="F24",t[t.NumLock=83]="NumLock",t[t.ScrollLock=84]="ScrollLock",t[t.Semicolon=85]="Semicolon",t[t.Equal=86]="Equal",t[t.Comma=87]="Comma",t[t.Minus=88]="Minus",t[t.Period=89]="Period",t[t.Slash=90]="Slash",t[t.Backquote=91]="Backquote",t[t.BracketLeft=92]="BracketLeft",t[t.Backslash=93]="Backslash",t[t.BracketRight=94]="BracketRight",t[t.Quote=95]="Quote",t[t.OEM_8=96]="OEM_8",t[t.IntlBackslash=97]="IntlBackslash",t[t.Numpad0=98]="Numpad0",t[t.Numpad1=99]="Numpad1",t[t.Numpad2=100]="Numpad2",t[t.Numpad3=101]="Numpad3",t[t.Numpad4=102]="Numpad4",t[t.Numpad5=103]="Numpad5",t[t.Numpad6=104]="Numpad6",t[t.Numpad7=105]="Numpad7",t[t.Numpad8=106]="Numpad8",t[t.Numpad9=107]="Numpad9",t[t.NumpadMultiply=108]="NumpadMultiply",t[t.NumpadAdd=109]="NumpadAdd",t[t.NUMPAD_SEPARATOR=110]="NUMPAD_SEPARATOR",t[t.NumpadSubtract=111]="NumpadSubtract",t[t.NumpadDecimal=112]="NumpadDecimal",t[t.NumpadDivide=113]="NumpadDivide",t[t.KEY_IN_COMPOSITION=114]="KEY_IN_COMPOSITION",t[t.ABNT_C1=115]="ABNT_C1",t[t.ABNT_C2=116]="ABNT_C2",t[t.AudioVolumeMute=117]="AudioVolumeMute",t[t.AudioVolumeUp=118]="AudioVolumeUp",t[t.AudioVolumeDown=119]="AudioVolumeDown",t[t.BrowserSearch=120]="BrowserSearch",t[t.BrowserHome=121]="BrowserHome",t[t.BrowserBack=122]="BrowserBack",t[t.BrowserForward=123]="BrowserForward",t[t.MediaTrackNext=124]="MediaTrackNext",t[t.MediaTrackPrevious=125]="MediaTrackPrevious",t[t.MediaStop=126]="MediaStop",t[t.MediaPlayPause=127]="MediaPlayPause",t[t.LaunchMediaPlayer=128]="LaunchMediaPlayer",t[t.LaunchMail=129]="LaunchMail",t[t.LaunchApp2=130]="LaunchApp2",t[t.Clear=131]="Clear",t[t.MAX_VALUE=132]="MAX_VALUE"}(mn||(mn={})),function(t){t[t.Hint=1]="Hint",t[t.Info=2]="Info",t[t.Warning=4]="Warning",t[t.Error=8]="Error"}(wn||(wn={})),function(t){t[t.Unnecessary=1]="Unnecessary",t[t.Deprecated=2]="Deprecated"}(vn||(vn={})),function(t){t[t.Inline=1]="Inline",t[t.Gutter=2]="Gutter"}(bn||(bn={})),function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.TEXTAREA=1]="TEXTAREA",t[t.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",t[t.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",t[t.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",t[t.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",t[t.CONTENT_TEXT=6]="CONTENT_TEXT",t[t.CONTENT_EMPTY=7]="CONTENT_EMPTY",t[t.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",t[t.CONTENT_WIDGET=9]="CONTENT_WIDGET",t[t.OVERVIEW_RULER=10]="OVERVIEW_RULER",t[t.SCROLLBAR=11]="SCROLLBAR",t[t.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",t[t.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"}(yn||(yn={})),function(t){t[t.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",t[t.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",t[t.TOP_CENTER=2]="TOP_CENTER"}(kn||(kn={})),function(t){t[t.Left=1]="Left",t[t.Center=2]="Center",t[t.Right=4]="Right",t[t.Full=7]="Full"}(xn||(xn={})),function(t){t[t.Left=0]="Left",t[t.Right=1]="Right",t[t.None=2]="None",t[t.LeftOfInjectedText=3]="LeftOfInjectedText",t[t.RightOfInjectedText=4]="RightOfInjectedText"}(Cn||(Cn={})),function(t){t[t.Off=0]="Off",t[t.On=1]="On",t[t.Relative=2]="Relative",t[t.Interval=3]="Interval",t[t.Custom=4]="Custom"}(Sn||(Sn={})),function(t){t[t.None=0]="None",t[t.Text=1]="Text",t[t.Blocks=2]="Blocks"}(Dn||(Dn={})),function(t){t[t.Smooth=0]="Smooth",t[t.Immediate=1]="Immediate"}(En||(En={})),function(t){t[t.Auto=1]="Auto",t[t.Hidden=2]="Hidden",t[t.Visible=3]="Visible"}(An||(An={})),function(t){t[t.LTR=0]="LTR",t[t.RTL=1]="RTL"}(Mn||(Mn={})),function(t){t.Off="off",t.OnCode="onCode",t.On="on"}(Ln||(Ln={})),function(t){t[t.Invoke=1]="Invoke",t[t.TriggerCharacter=2]="TriggerCharacter",t[t.ContentChange=3]="ContentChange"}(Fn||(Fn={})),function(t){t[t.File=0]="File",t[t.Module=1]="Module",t[t.Namespace=2]="Namespace",t[t.Package=3]="Package",t[t.Class=4]="Class",t[t.Method=5]="Method",t[t.Property=6]="Property",t[t.Field=7]="Field",t[t.Constructor=8]="Constructor",t[t.Enum=9]="Enum",t[t.Interface=10]="Interface",t[t.Function=11]="Function",t[t.Variable=12]="Variable",t[t.Constant=13]="Constant",t[t.String=14]="String",t[t.Number=15]="Number",t[t.Boolean=16]="Boolean",t[t.Array=17]="Array",t[t.Object=18]="Object",t[t.Key=19]="Key",t[t.Null=20]="Null",t[t.EnumMember=21]="EnumMember",t[t.Struct=22]="Struct",t[t.Event=23]="Event",t[t.Operator=24]="Operator",t[t.TypeParameter=25]="TypeParameter"}(Tn||(Tn={})),function(t){t[t.Deprecated=1]="Deprecated"}(Rn||(Rn={})),function(t){t[t.Hidden=0]="Hidden",t[t.Blink=1]="Blink",t[t.Smooth=2]="Smooth",t[t.Phase=3]="Phase",t[t.Expand=4]="Expand",t[t.Solid=5]="Solid"}(On||(On={})),function(t){t[t.Line=1]="Line",t[t.Block=2]="Block",t[t.Underline=3]="Underline",t[t.LineThin=4]="LineThin",t[t.BlockOutline=5]="BlockOutline",t[t.UnderlineThin=6]="UnderlineThin"}(In||(In={})),function(t){t[t.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",t[t.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",t[t.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",t[t.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"}(_n||(_n={})),function(t){t[t.None=0]="None",t[t.Same=1]="Same",t[t.Indent=2]="Indent",t[t.DeepIndent=3]="DeepIndent"}(Nn||(Nn={}));class Bn{static chord(t,i){return Ne(t,i)}}function Pn(){return{editor:void 0,languages:void 0,CancellationTokenSource:Ce,Emitter:de,KeyCode:mn,KeyMod:Bn,Position:As,Range:Ms,Selection:Ls,SelectionDirection:Mn,MarkerSeverity:wn,MarkerTag:vn,Uri:ms,Token:_s}}Bn.CtrlCmd=2048,Bn.Shift=1024,Bn.Alt=512,Bn.WinCtrl=256;const $n=window,Wn=$n;class jn{get cachedValues(){return this._map}constructor(t){this.fn=t,this._map=new Map}get(t){if(this._map.has(t))return this._map.get(t);const i=this.fn(t);return this._map.set(t,i),i}}class zn{constructor(t){this.executor=t,this._didRun=!1}get value(){if(!this._didRun)try{this._value=this.executor()}catch(t){this._error=t}finally{this._didRun=!0}if(this._error)throw this._error;return this._value}get rawValue(){return this._value}}var Hn;function Vn(t){return!t||"string"!=typeof t||0===t.trim().length}const Un=/{(\d+)}/g;function qn(t,...i){return 0===i.length?t:t.replace(Un,(function(t,e){const s=parseInt(e,10);return isNaN(s)||s<0||s>=i.length?t:i[s]}))}function Kn(t){return t.replace(/[<>&]/g,(function(t){switch(t){case"<":return"<";case">":return">";case"&":return"&";default:return t}}))}function Gn(t){return t.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function Zn(t,i=" "){return Jn(Qn(t,i),i)}function Qn(t,i){if(!t||!i)return t;const e=i.length;if(0===e||0===t.length)return t;let s=0;for(;t.indexOf(i,s)===s;)s+=e;return t.substring(s)}function Jn(t,i){if(!t||!i)return t;const e=i.length,s=t.length;if(0===e||0===s)return t;let n=s,o=-1;for(;o=t.lastIndexOf(i,n-1),-1!==o&&o+e===n;){if(0===o)return"";n=o}return t.substring(0,n)}function Yn(t,i,e={}){if(!t)throw new Error("Cannot create regex from empty string");i||(t=Gn(t)),e.wholeWord&&(/\B/.test(t.charAt(0))||(t="\\b"+t),/\B/.test(t.charAt(t.length-1))||(t+="\\b"));let s="";return e.global&&(s+="g"),e.matchCase||(s+="i"),e.multiline&&(s+="m"),e.unicode&&(s+="u"),new RegExp(t,s)}function Xn(t){return t.split(/\r\n|\r|\n/)}function to(t){for(let i=0,e=t.length;i=0;e--){const i=t.charCodeAt(e);if(32!==i&&9!==i)return e}return-1}function so(t,i){return ti?1:0}function no(t,i,e=0,s=t.length,n=0,o=i.length){for(;eo)return 1}const r=s-e,h=o-n;return rh?1:0}function oo(t,i){return ro(t,i,0,t.length,0,i.length)}function ro(t,i,e=0,s=t.length,n=0,o=i.length){for(;e=128||h>=128)return no(t.toLowerCase(),i.toLowerCase(),e,s,n,o);co(r)&&(r-=32),co(h)&&(h-=32);const c=r-h;if(0!==c)return c}const r=s-e,h=o-n;return rh?1:0}function ho(t){return t>=48&&t<=57}function co(t){return t>=97&&t<=122}function ao(t){return t>=65&&t<=90}function lo(t,i){return t.length===i.length&&0===ro(t,i)}function uo(t,i){return!(i.length>t.length)&&0===ro(t,i,0,i.length)}function fo(t,i){const e=Math.min(t.length,i.length);let s;for(s=0;s1){const s=t.charCodeAt(i-2);if(go(s))return wo(s,e)}return e}(this._str,this._offset);return this._offset-=t>=65536?2:1,t}nextCodePoint(){const t=vo(this._str,this._len,this._offset);return this._offset+=t>=65536?2:1,t}eol(){return this._offset>=this._len}}class yo{get offset(){return this._iterator.offset}constructor(t,i=0){this._iterator=new bo(t,i)}nextGraphemeLength(){const t=_o.getInstance(),i=this._iterator,e=i.offset;let s=t.getGraphemeBreakType(i.nextCodePoint());for(;!i.eol();){const e=i.offset,n=t.getGraphemeBreakType(i.nextCodePoint());if(Io(s,n)){i.setOffset(e);break}s=n}return i.offset-e}prevGraphemeLength(){const t=_o.getInstance(),i=this._iterator,e=i.offset;let s=t.getGraphemeBreakType(i.prevCodePoint());for(;i.offset>0;){const e=i.offset,n=t.getGraphemeBreakType(i.prevCodePoint());if(Io(n,s)){i.setOffset(e);break}s=n}return e-i.offset}eol(){return this._iterator.eol()}}function ko(t,i){return new yo(t,i).nextGraphemeLength()}function xo(t,i){return new yo(t,i).prevGraphemeLength()}let Co;function So(t){return Co||(Co=/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/),Co.test(t)}const Do=/^[\t\n\r\x20-\x7E]*$/;function Eo(t){return Do.test(t)}const Ao=/[\u2028\u2029]/;function Mo(t){return Ao.test(t)}function Lo(t){return t>=11904&&t<=55215||t>=63744&&t<=64255||t>=65281&&t<=65374}function Fo(t){return t>=127462&&t<=127487||8986===t||8987===t||9200===t||9203===t||t>=9728&&t<=10175||11088===t||11093===t||t>=127744&&t<=128591||t>=128640&&t<=128764||t>=128992&&t<=129008||t>=129280&&t<=129535||t>=129648&&t<=129782}const To=String.fromCharCode(65279);function Ro(t){return!!(t&&t.length>0&&65279===t.charCodeAt(0))}function Oo(t){return t%=52,String.fromCharCode(t<26?97+t:65+t-26)}function Io(t,i){return 0===t?5!==i&&7!==i:!(2===t&&3===i||4!==t&&2!==t&&3!==t&&4!==i&&2!==i&&3!==i&&(8===t&&(8===i||9===i||11===i||12===i)||!(11!==t&&9!==t||9!==i&&10!==i)||(12===t||10===t)&&10===i||5===i||13===i||7===i||1===t||13===t&&14===i||6===t&&6===i))}class _o{static getInstance(){return _o._INSTANCE||(_o._INSTANCE=new _o),_o._INSTANCE}constructor(){this._data=JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}getGraphemeBreakType(t){if(t<32)return 10===t?3:13===t?2:4;if(t<127)return 0;const i=this._data,e=i.length/3;let s=1;for(;s<=e;)if(ti[3*s+1]))return i[3*s+2];s=2*s+1}return 0}}function No(t){return 127995<=t&&t<=127999}_o._INSTANCE=null;class Bo{static getInstance(t){return Hn.cache.get(Array.from(t))}static getLocales(){return Hn._locales.value}constructor(t){this.confusableDictionary=t}isAmbiguous(t){return this.confusableDictionary.has(t)}getPrimaryConfusable(t){return this.confusableDictionary.get(t)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}}Hn=Bo,Bo.ambiguousCharacterData=new zn((()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}'))),Bo.cache=new class{constructor(t){this.fn=t,this.lastCache=void 0,this.lastArgKey=void 0}get(t){const i=JSON.stringify(t);return this.lastArgKey!==i&&(this.lastArgKey=i,this.lastCache=this.fn(t)),this.lastCache}}((t=>{function i(t){const i=new Map;for(let e=0;e!t.startsWith("_")&&t in s));0===o.length&&(o=["_default"]);for(const t of o)n=e(n,i(s[t]));const r=function(t,i){const e=new Map(t);for(const[t,s]of i)e.set(t,s);return e}(i(s._common),n);return new Hn(r)})),Bo._locales=new zn((()=>Object.keys(Hn.ambiguousCharacterData.value).filter((t=>!t.startsWith("_")))));class Po{static getRawData(){return JSON.parse("[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]")}static getData(){return this._data||(this._data=new Set(Po.getRawData())),this._data}static isInvisibleCharacter(t){return Po.getData().has(t)}static get codePoints(){return Po.getData()}}Po._data=void 0;class $o{constructor(){this._zoomFactor=1}getZoomFactor(){return this._zoomFactor}}$o.INSTANCE=new $o;class Wo extends te{constructor(){super(),this._onDidChange=this._register(new de),this.onDidChange=this._onDidChange.event,this._listener=()=>this._handleChange(!0),this._mediaQueryList=null,this._handleChange(!1)}_handleChange(t){var i;null===(i=this._mediaQueryList)||void 0===i||i.removeEventListener("change",this._listener),this._mediaQueryList=Wn.matchMedia(`(resolution: ${Wn.devicePixelRatio}dppx)`),this._mediaQueryList.addEventListener("change",this._listener),t&&this._onDidChange.fire()}}class jo extends te{get value(){return this._value}constructor(){super(),this._onDidChange=this._register(new de),this.onDidChange=this._onDidChange.event,this._value=this._getPixelRatio();const t=this._register(new Wo);this._register(t.onDidChange((()=>{this._value=this._getPixelRatio(),this._onDidChange.fire(this._value)})))}_getPixelRatio(){const t=document.createElement("canvas").getContext("2d");return(Wn.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)}}function zo(t,i){"string"==typeof t&&(t=Wn.matchMedia(t)),t.addEventListener("change",i)}const Ho=new class{constructor(){this._pixelRatioMonitor=null}_getOrCreatePixelRatioMonitor(){return this._pixelRatioMonitor||(this._pixelRatioMonitor=new jo),this._pixelRatioMonitor}get value(){return this._getOrCreatePixelRatioMonitor().value}get onDidChange(){return this._getOrCreatePixelRatioMonitor().onDidChange}},Vo=navigator.userAgent,Uo=Vo.indexOf("Firefox")>=0,qo=Vo.indexOf("AppleWebKit")>=0,Ko=Vo.indexOf("Chrome")>=0,Go=!Ko&&Vo.indexOf("Safari")>=0,Zo=!Ko&&!Go&&qo;Vo.indexOf("Electron/");const Qo=Vo.indexOf("Android")>=0;let Jo=!1;if(Wn.matchMedia){const t=Wn.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),i=Wn.matchMedia("(display-mode: fullscreen)");Jo=t.matches,zo(t,(({matches:t})=>{Jo&&i.matches||(Jo=t)}))}class Yo{constructor(t){this.domNode=t,this._maxWidth="",this._width="",this._height="",this._top="",this._left="",this._bottom="",this._right="",this._paddingLeft="",this._fontFamily="",this._fontWeight="",this._fontSize="",this._fontStyle="",this._fontFeatureSettings="",this._fontVariationSettings="",this._textDecoration="",this._lineHeight="",this._letterSpacing="",this._className="",this._display="",this._position="",this._visibility="",this._color="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}setMaxWidth(t){const i=Xo(t);this._maxWidth!==i&&(this._maxWidth=i,this.domNode.style.maxWidth=this._maxWidth)}setWidth(t){const i=Xo(t);this._width!==i&&(this._width=i,this.domNode.style.width=this._width)}setHeight(t){const i=Xo(t);this._height!==i&&(this._height=i,this.domNode.style.height=this._height)}setTop(t){const i=Xo(t);this._top!==i&&(this._top=i,this.domNode.style.top=this._top)}setLeft(t){const i=Xo(t);this._left!==i&&(this._left=i,this.domNode.style.left=this._left)}setBottom(t){const i=Xo(t);this._bottom!==i&&(this._bottom=i,this.domNode.style.bottom=this._bottom)}setRight(t){const i=Xo(t);this._right!==i&&(this._right=i,this.domNode.style.right=this._right)}setPaddingLeft(t){const i=Xo(t);this._paddingLeft!==i&&(this._paddingLeft=i,this.domNode.style.paddingLeft=this._paddingLeft)}setFontFamily(t){this._fontFamily!==t&&(this._fontFamily=t,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(t){this._fontWeight!==t&&(this._fontWeight=t,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(t){const i=Xo(t);this._fontSize!==i&&(this._fontSize=i,this.domNode.style.fontSize=this._fontSize)}setFontStyle(t){this._fontStyle!==t&&(this._fontStyle=t,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(t){this._fontFeatureSettings!==t&&(this._fontFeatureSettings=t,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setFontVariationSettings(t){this._fontVariationSettings!==t&&(this._fontVariationSettings=t,this.domNode.style.fontVariationSettings=this._fontVariationSettings)}setTextDecoration(t){this._textDecoration!==t&&(this._textDecoration=t,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(t){const i=Xo(t);this._lineHeight!==i&&(this._lineHeight=i,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(t){const i=Xo(t);this._letterSpacing!==i&&(this._letterSpacing=i,this.domNode.style.letterSpacing=this._letterSpacing)}setClassName(t){this._className!==t&&(this._className=t,this.domNode.className=this._className)}toggleClassName(t,i){this.domNode.classList.toggle(t,i),this._className=this.domNode.className}setDisplay(t){this._display!==t&&(this._display=t,this.domNode.style.display=this._display)}setPosition(t){this._position!==t&&(this._position=t,this.domNode.style.position=this._position)}setVisibility(t){this._visibility!==t&&(this._visibility=t,this.domNode.style.visibility=this._visibility)}setColor(t){this._color!==t&&(this._color=t,this.domNode.style.color=this._color)}setBackgroundColor(t){this._backgroundColor!==t&&(this._backgroundColor=t,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(t){this._layerHint!==t&&(this._layerHint=t,this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":"")}setBoxShadow(t){this._boxShadow!==t&&(this._boxShadow=t,this.domNode.style.boxShadow=t)}setContain(t){this._contain!==t&&(this._contain=t,this.domNode.style.contain=this._contain)}setAttribute(t,i){this.domNode.setAttribute(t,i)}removeAttribute(t){this.domNode.removeAttribute(t)}appendChild(t){this.domNode.appendChild(t.domNode)}removeChild(t){this.domNode.removeChild(t.domNode)}}function Xo(t){return"number"==typeof t?`${t}px`:t}function tr(t){return new Yo(t)}function ir(t,i){t instanceof Yo?(t.setFontFamily(i.getMassagedFontFamily()),t.setFontWeight(i.fontWeight),t.setFontSize(i.fontSize),t.setFontFeatureSettings(i.fontFeatureSettings),t.setFontVariationSettings(i.fontVariationSettings),t.setLineHeight(i.lineHeight),t.setLetterSpacing(i.letterSpacing)):(t.style.fontFamily=i.getMassagedFontFamily(),t.style.fontWeight=i.fontWeight,t.style.fontSize=i.fontSize+"px",t.style.fontFeatureSettings=i.fontFeatureSettings,t.style.fontVariationSettings=i.fontVariationSettings,t.style.lineHeight=i.lineHeight+"px",t.style.letterSpacing=i.letterSpacing+"px")}class er{constructor(t,i){this.chr=t,this.type=i,this.width=0}fulfill(t){this.width=t}}class sr{constructor(t,i){this._bareFontInfo=t,this._requests=i,this._container=null,this._testElements=null}read(){this._createDomElements(),Wn.document.body.appendChild(this._container),this._readFromDomElements(),Wn.document.body.removeChild(this._container),this._container=null,this._testElements=null}_createDomElements(){const t=document.createElement("div");t.style.position="absolute",t.style.top="-50000px",t.style.width="50000px";const i=document.createElement("div");ir(i,this._bareFontInfo),t.appendChild(i);const e=document.createElement("div");ir(e,this._bareFontInfo),e.style.fontWeight="bold",t.appendChild(e);const s=document.createElement("div");ir(s,this._bareFontInfo),s.style.fontStyle="italic",t.appendChild(s);const n=[];for(const t of this._requests){let o;0===t.type&&(o=i),2===t.type&&(o=e),1===t.type&&(o=s),o.appendChild(document.createElement("br"));const r=document.createElement("span");sr._render(r,t),o.appendChild(r),n.push(r)}this._container=t,this._testElements=n}static _render(t,i){if(" "===i.chr){let i=" ";for(let t=0;t<8;t++)i+=i;t.innerText=i}else{let e=i.chr;for(let t=0;t<8;t++)e+=e;t.textContent=e}}_readFromDomElements(){for(let t=0,i=this._requests.length;tthis._values[t]))}}const ar=new class extends te{constructor(){super(),this._onDidChange=this._register(new de),this.onDidChange=this._onDidChange.event,this._cache=new cr,this._evictUntrustedReadingsTimeout=-1}dispose(){-1!==this._evictUntrustedReadingsTimeout&&(clearTimeout(this._evictUntrustedReadingsTimeout),this._evictUntrustedReadingsTimeout=-1),super.dispose()}clearAllFontInfos(){this._cache=new cr,this._onDidChange.fire()}_writeToCache(t,i){this._cache.put(t,i),i.isTrusted||-1!==this._evictUntrustedReadingsTimeout||(this._evictUntrustedReadingsTimeout=$n.setTimeout((()=>{this._evictUntrustedReadingsTimeout=-1,this._evictUntrustedReadings()}),5e3))}_evictUntrustedReadings(){const t=this._cache.getValues();let i=!1;for(const e of t)e.isTrusted||(i=!0,this._cache.remove(e));i&&this._onDidChange.fire()}readFontInfo(t){if(!this._cache.has(t)){let i=this._actualReadFontInfo(t);(i.typicalHalfwidthCharacterWidth<=2||i.typicalFullwidthCharacterWidth<=2||i.spaceWidth<=2||i.maxDigitWidth<=2)&&(i=new hr({pixelRatio:Ho.value,fontFamily:i.fontFamily,fontWeight:i.fontWeight,fontSize:i.fontSize,fontFeatureSettings:i.fontFeatureSettings,fontVariationSettings:i.fontVariationSettings,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,isMonospace:i.isMonospace,typicalHalfwidthCharacterWidth:Math.max(i.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(i.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:i.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(i.spaceWidth,5),middotWidth:Math.max(i.middotWidth,5),wsmiddotWidth:Math.max(i.wsmiddotWidth,5),maxDigitWidth:Math.max(i.maxDigitWidth,5)},!1)),this._writeToCache(t,i)}return this._cache.get(t)}_createRequest(t,i,e,s){const n=new er(t,i);return e.push(n),null==s||s.push(n),n}_actualReadFontInfo(t){const i=[],e=[],s=this._createRequest("n",0,i,e),n=this._createRequest("m",0,i,null),o=this._createRequest(" ",0,i,e),r=this._createRequest("0",0,i,e),h=this._createRequest("1",0,i,e),c=this._createRequest("2",0,i,e),a=this._createRequest("3",0,i,e),l=this._createRequest("4",0,i,e),u=this._createRequest("5",0,i,e),d=this._createRequest("6",0,i,e),f=this._createRequest("7",0,i,e),p=this._createRequest("8",0,i,e),g=this._createRequest("9",0,i,e),m=this._createRequest("→",0,i,e),w=this._createRequest("→",0,i,null),v=this._createRequest("·",0,i,e),b=this._createRequest(String.fromCharCode(11825),0,i,null),y="|/-_ilm%";for(let t=0,s=8;t.001){x=!1;break}}let S=!0;return x&&w.width!==C&&(S=!1),w.width>m.width&&(S=!1),new hr({pixelRatio:Ho.value,fontFamily:t.fontFamily,fontWeight:t.fontWeight,fontSize:t.fontSize,fontFeatureSettings:t.fontFeatureSettings,fontVariationSettings:t.fontVariationSettings,lineHeight:t.lineHeight,letterSpacing:t.letterSpacing,isMonospace:x,typicalHalfwidthCharacterWidth:s.width,typicalFullwidthCharacterWidth:n.width,canUseHalfwidthRightwardsArrow:S,spaceWidth:o.width,middotWidth:v.width,wsmiddotWidth:b.width,maxDigitWidth:k},!0)}};var lr;!function(t){t.serviceIds=new Map,t.DI_TARGET="$di$target",t.DI_DEPENDENCIES="$di$dependencies",t.getServiceDependencies=function(i){return i[t.DI_DEPENDENCIES]||[]}}(lr||(lr={}));const ur=dr("instantiationService");function dr(t){if(lr.serviceIds.has(t))return lr.serviceIds.get(t);const i=function(t,e,s){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");!function(t,i,e){i[lr.DI_TARGET]===i?i[lr.DI_DEPENDENCIES].push({id:t,index:e}):(i[lr.DI_DEPENDENCIES]=[{id:t,index:e}],i[lr.DI_TARGET]=i)}(i,t,s)};return i.toString=()=>t,lr.serviceIds.set(t,i),i}const fr=dr("codeEditorService"),pr=dr("modelService"),gr=dr("textModelService");class mr extends te{constructor(t,i="",e="",s=!0,n){super(),this._onDidChange=this._register(new de),this.onDidChange=this._onDidChange.event,this._enabled=!0,this._id=t,this._label=i,this._cssClass=e,this._enabled=s,this._actionCallback=n}get id(){return this._id}get label(){return this._label}set label(t){this._setLabel(t)}_setLabel(t){this._label!==t&&(this._label=t,this._onDidChange.fire({label:t}))}get tooltip(){return this._tooltip||""}set tooltip(t){this._setTooltip(t)}_setTooltip(t){this._tooltip!==t&&(this._tooltip=t,this._onDidChange.fire({tooltip:t}))}get class(){return this._cssClass}set class(t){this._setClass(t)}_setClass(t){this._cssClass!==t&&(this._cssClass=t,this._onDidChange.fire({class:t}))}get enabled(){return this._enabled}set enabled(t){this._setEnabled(t)}_setEnabled(t){this._enabled!==t&&(this._enabled=t,this._onDidChange.fire({enabled:t}))}get checked(){return this._checked}set checked(t){this._setChecked(t)}_setChecked(t){this._checked!==t&&(this._checked=t,this._onDidChange.fire({checked:t}))}async run(t,i){this._actionCallback&&await this._actionCallback(t)}}class wr extends te{constructor(){super(...arguments),this._onWillRun=this._register(new de),this.onWillRun=this._onWillRun.event,this._onDidRun=this._register(new de),this.onDidRun=this._onDidRun.event}async run(t,i){if(!t.enabled)return;let e;this._onWillRun.fire({action:t});try{await this.runAction(t,i)}catch(t){e=t}this._onDidRun.fire({action:t,error:e})}async runAction(t,i){await t.run(i)}}class vr{constructor(){this.id=vr.ID,this.label="",this.tooltip="",this.class="separator",this.enabled=!1,this.checked=!1}static join(...t){let i=[];for(const e of t)e.length&&(i=i.length?[...i,new vr,...e]:e);return i}async run(){}}vr.ID="vs.actions.separator";class br{get actions(){return this._actions}constructor(t,i,e,s){this.tooltip="",this.enabled=!0,this.checked=void 0,this.id=t,this.label=i,this.class=s,this._actions=e}async run(){}}class yr extends mr{constructor(){super(yr.ID,ot(0,"(empty)"),void 0,!1)}}function kr(t){var i,e;return{id:t.id,label:t.label,class:t.class,enabled:null===(i=t.enabled)||void 0===i||i,checked:null!==(e=t.checked)&&void 0!==e&&e,run:async(...i)=>t.run(...i),tooltip:t.label}}var xr,Cr;yr.ID="vs.actions.empty",function(t){t.isThemeColor=function(t){return t&&"object"==typeof t&&"string"==typeof t.id}}(xr||(xr={})),function(t){t.iconNameSegment="[A-Za-z0-9]+",t.iconNameExpression="[A-Za-z0-9-]+",t.iconModifierExpression="~[A-Za-z]+",t.iconNameCharacter="[A-Za-z0-9~-]";const i=new RegExp(`^(${t.iconNameExpression})(${t.iconModifierExpression})?$`);function e(t){const s=i.exec(t.id);if(!s)return e(Os.error);const[,n,o]=s,r=["codicon","codicon-"+n];return o&&r.push("codicon-modifier-"+o.substring(1)),r}t.asClassNameArray=e,t.asClassName=function(t){return e(t).join(" ")},t.asCSSSelector=function(t){return"."+e(t).join(".")},t.isThemeIcon=function(t){return t&&"object"==typeof t&&"string"==typeof t.id&&(void 0===t.color||xr.isThemeColor(t.color))};const s=new RegExp(`^\\$\\((${t.iconNameExpression}(?:${t.iconModifierExpression})?)\\)$`);t.fromString=function(t){const i=s.exec(t);if(!i)return;const[,e]=i;return{id:e}},t.fromId=function(t){return{id:t}},t.modify=function(t,i){let e=t.id;const s=e.lastIndexOf("~");return-1!==s&&(e=e.substring(0,s)),i&&(e=`${e}~${i}`),{id:e}},t.getModifier=function(t){const i=t.id.lastIndexOf("~");if(-1!==i)return t.id.substring(i+1)},t.isEqual=function(t,i){var e,s;return t.id===i.id&&(null===(e=t.color)||void 0===e?void 0:e.id)===(null===(s=i.color)||void 0===s?void 0:s.id)}}(Cr||(Cr={}));const Sr=dr("commandService"),Dr=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new de,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(t,i){if(!t)throw new Error("invalid command");if("string"==typeof t){if(!i)throw new Error("invalid command");return this.registerCommand({id:t,handler:i})}if(t.metadata&&Array.isArray(t.metadata.args)){const i=[];for(const e of t.metadata.args)i.push(e.constraint);const e=t.handler;t.handler=function(t,...s){return function(t,i){const e=Math.min(t.length,i.length);for(let s=0;s{n();const t=this._commands.get(e);(null==t?void 0:t.isEmpty())&&this._commands.delete(e)}));return this._onDidRegisterCommand.fire(e),o}registerCommandAlias(t,i){return Dr.registerCommand(t,((t,...e)=>t.get(Sr).executeCommand(i,...e)))}getCommand(t){const i=this._commands.get(t);if(i&&!i.isEmpty())return Ht.first(i)}getCommands(){const t=new Map;for(const i of this._commands.keys()){const e=this.getCommand(i);e&&t.set(i,e)}return t}};function Er(...t){switch(t.length){case 1:return ot(0,"Did you mean {0}?",t[0]);case 2:return ot(0,"Did you mean {0} or {1}?",t[0],t[1]);case 3:return ot(0,"Did you mean {0}, {1} or {2}?",t[0],t[1],t[2]);default:return}}Dr.registerCommand("noop",(()=>{}));const Ar=ot(0,"Did you forget to open or close the quote?"),Mr=ot(0,"Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\/'.");class Lr{constructor(){this._input="",this._start=0,this._current=0,this._tokens=[],this._errors=[],this.stringRe=/[a-zA-Z0-9_<>\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy}static getLexeme(t){switch(t.type){case 0:return"(";case 1:return")";case 2:return"!";case 3:return t.isTripleEq?"===":"==";case 4:return t.isTripleEq?"!==":"!=";case 5:return"<";case 6:return"<=";case 7:case 8:return">=";case 9:return"=~";case 10:case 17:case 18:case 19:return t.lexeme;case 11:return"true";case 12:return"false";case 13:return"in";case 14:return"not";case 15:return"&&";case 16:return"||";case 20:return"EOF";default:throw Vi(`unhandled token type: ${JSON.stringify(t)}; have you forgotten to add a case?`)}}reset(t){return this._input=t,this._start=0,this._current=0,this._tokens=[],this._errors=[],this}scan(){for(;!this._isAtEnd();)switch(this._start=this._current,this._advance()){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){const t=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:t})}else this._addToken(2);break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){const t=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:t})}else this._match(126)?this._addToken(9):this._error(Er("==","=~"));break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:this._match(38)?this._addToken(15):this._error(Er("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(Er("||"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(t){return!this._isAtEnd()&&this._input.charCodeAt(this._current)===t&&(this._current++,!0)}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(t){this._tokens.push({type:t,offset:this._start})}_error(t){const i=this._start,e=this._input.substring(this._start,this._current),s={type:19,offset:this._start,lexeme:e};this._errors.push({offset:i,lexeme:e,additionalInfo:t}),this._tokens.push(s)}_string(){this.stringRe.lastIndex=this._start;const t=this.stringRe.exec(this._input);if(t){this._current=this._start+t[0].length;const i=this._input.substring(this._start,this._current),e=Lr._keywords.get(i);e?this._addToken(e):this._tokens.push({type:17,lexeme:i,offset:this._start})}}_quotedString(){for(;39!==this._peek()&&!this._isAtEnd();)this._advance();this._isAtEnd()?this._error(Ar):(this._advance(),this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1}))}_regex(){let t=this._current,i=!1,e=!1;for(;;){if(t>=this._input.length)return this._current=t,void this._error(Mr);const s=this._input.charCodeAt(t);if(i)i=!1;else{if(47===s&&!e){t++;break}91===s?e=!0:92===s?i=!0:93===s&&(e=!1)}t++}for(;t=this._input.length}}Lr._regexFlags=new Set(["i","g","s","m","y","u"].map((t=>t.charCodeAt(0)))),Lr._keywords=new Map([["not",14],["in",13],["false",12],["true",11]]);const Fr=new Map;Fr.set("false",!1),Fr.set("true",!0),Fr.set("isMac",Ct),Fr.set("isLinux",St),Fr.set("isWindows",xt),Fr.set("isWeb",Et),Fr.set("isMacNative",Ct&&!Et),Fr.set("isEdge",jt),Fr.set("isFirefox",$t),Fr.set("isChrome",Pt),Fr.set("isSafari",Wt);const Tr=Object.prototype.hasOwnProperty,Rr={regexParsingWithErrorRecovery:!0},Or=ot(0,"Empty context key expression"),Ir=ot(0,"Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively."),_r=ot(0,"'in' after 'not'."),Nr=ot(0,"closing parenthesis ')'"),Br=ot(0,"Unexpected token"),Pr=ot(0,"Did you forget to put && or || before the token?"),$r=ot(0,"Unexpected end of expression"),Wr=ot(0,"Did you forget to put a context key?");class jr{constructor(t=Rr){this._config=t,this._scanner=new Lr,this._tokens=[],this._current=0,this._parsingErrors=[],this._flagsGYRe=/g|y/g}parse(t){if(""!==t){this._tokens=this._scanner.reset(t).scan(),this._current=0,this._parsingErrors=[];try{const t=this._expr();if(!this._isAtEnd()){const t=this._peek(),i=17===t.type?Pr:void 0;throw this._parsingErrors.push({message:Br,offset:t.offset,lexeme:Lr.getLexeme(t),additionalInfo:i}),jr._parseError}return t}catch(t){if(t!==jr._parseError)throw t;return}}else this._parsingErrors.push({message:Or,offset:0,lexeme:"",additionalInfo:Ir})}_expr(){return this._or()}_or(){const t=[this._and()];for(;this._matchOne(16);){const i=this._and();t.push(i)}return 1===t.length?t[0]:zr.or(...t)}_and(){const t=[this._term()];for(;this._matchOne(15);){const i=this._term();t.push(i)}return 1===t.length?t[0]:zr.and(...t)}_term(){if(this._matchOne(2)){const t=this._peek();switch(t.type){case 11:return this._advance(),Vr.INSTANCE;case 12:return this._advance(),Ur.INSTANCE;case 0:{this._advance();const t=this._expr();return this._consume(1,Nr),null==t?void 0:t.negate()}case 17:return this._advance(),Jr.create(t.lexeme);default:throw this._errExpectedButGot("KEY | true | false | '(' expression ')'",t)}}return this._primary()}_primary(){const t=this._peek();switch(t.type){case 11:return this._advance(),zr.true();case 12:return this._advance(),zr.false();case 0:{this._advance();const t=this._expr();return this._consume(1,Nr),t}case 17:{const i=t.lexeme;if(this._advance(),this._matchOne(9)){const t=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),10!==t.type)throw this._errExpectedButGot("REGEX",t);const e=t.lexeme,s=e.lastIndexOf("/"),n=s===e.length-1?void 0:this._removeFlagsGY(e.substring(s+1));let o;try{o=new RegExp(e.substring(1,s),n)}catch(i){throw this._errExpectedButGot("REGEX",t)}return sh.create(i,o)}switch(t.type){case 10:case 19:{const e=[t.lexeme];this._advance();let s=this._peek(),n=0;for(let i=0;i=0){const o=e.slice(i+1,n),r="i"===e[n+1]?"i":"";try{s=new RegExp(o,r)}catch(i){throw this._errExpectedButGot("REGEX",t)}}}if(null===s)throw this._errExpectedButGot("REGEX",t);return sh.create(i,s)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,_r);const t=this._value();return zr.notIn(i,t)}switch(this._peek().type){case 3:{this._advance();const t=this._value();if(18===this._previous().type)return zr.equals(i,t);switch(t){case"true":return zr.has(i);case"false":return zr.not(i);default:return zr.equals(i,t)}}case 4:{this._advance();const t=this._value();if(18===this._previous().type)return zr.notEquals(i,t);switch(t){case"true":return zr.not(i);case"false":return zr.has(i);default:return zr.notEquals(i,t)}}case 5:return this._advance(),ih.create(i,this._value());case 6:return this._advance(),eh.create(i,this._value());case 7:return this._advance(),Xr.create(i,this._value());case 8:return this._advance(),th.create(i,this._value());case 13:return this._advance(),zr.in(i,this._value());default:return zr.has(i)}}case 20:throw this._parsingErrors.push({message:$r,offset:t.offset,lexeme:"",additionalInfo:Wr}),jr._parseError;default:throw this._errExpectedButGot("true | false | KEY \n\t| KEY '=~' REGEX \n\t| KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value",this._peek())}}_value(){const t=this._peek();switch(t.type){case 17:case 18:return this._advance(),t.lexeme;case 11:return this._advance(),"true";case 12:return this._advance(),"false";case 13:return this._advance(),"in";default:return""}}_removeFlagsGY(t){return t.replaceAll(this._flagsGYRe,"")}_previous(){return this._tokens[this._current-1]}_matchOne(t){return!!this._check(t)&&(this._advance(),!0)}_advance(){return this._isAtEnd()||this._current++,this._previous()}_consume(t,i){if(this._check(t))return this._advance();throw this._errExpectedButGot(i,this._peek())}_errExpectedButGot(t,i,e){const s=ot(0,"Expected: {0}\nReceived: '{1}'.",t,Lr.getLexeme(i)),n=i.offset,o=Lr.getLexeme(i);return this._parsingErrors.push({message:s,offset:n,lexeme:o,additionalInfo:e}),jr._parseError}_check(t){return this._peek().type===t}_peek(){return this._tokens[this._current]}_isAtEnd(){return 20===this._peek().type}}jr._parseError=new Error;class zr{static false(){return Vr.INSTANCE}static true(){return Ur.INSTANCE}static has(t){return qr.create(t)}static equals(t,i){return Kr.create(t,i)}static notEquals(t,i){return Qr.create(t,i)}static regex(t,i){return sh.create(t,i)}static in(t,i){return Gr.create(t,i)}static notIn(t,i){return Zr.create(t,i)}static not(t){return Jr.create(t)}static and(...t){return rh.create(t,null,!0)}static or(...t){return hh.create(t,null,!0)}static deserialize(t){if(null!=t)return this._parser.parse(t)}}function Hr(t,i){return t.cmp(i)}zr._parser=new jr({regexParsingWithErrorRecovery:!1});class Vr{constructor(){this.type=0}cmp(t){return this.type-t.type}equals(t){return t.type===this.type}substituteConstants(){return this}evaluate(t){return!1}serialize(){return"false"}keys(){return[]}negate(){return Ur.INSTANCE}}Vr.INSTANCE=new Vr;class Ur{constructor(){this.type=1}cmp(t){return this.type-t.type}equals(t){return t.type===this.type}substituteConstants(){return this}evaluate(t){return!0}serialize(){return"true"}keys(){return[]}negate(){return Vr.INSTANCE}}Ur.INSTANCE=new Ur;class qr{static create(t,i=null){const e=Fr.get(t);return"boolean"==typeof e?e?Ur.INSTANCE:Vr.INSTANCE:new qr(t,i)}constructor(t,i){this.key=t,this.negated=i,this.type=2}cmp(t){return t.type!==this.type?this.type-t.type:lh(this.key,t.key)}equals(t){return t.type===this.type&&this.key===t.key}substituteConstants(){const t=Fr.get(this.key);return"boolean"==typeof t?t?Ur.INSTANCE:Vr.INSTANCE:this}evaluate(t){return!!t.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=Jr.create(this.key,this)),this.negated}}class Kr{static create(t,i,e=null){if("boolean"==typeof i)return i?qr.create(t,e):Jr.create(t,e);const s=Fr.get(t);return"boolean"==typeof s?i===(s?"true":"false")?Ur.INSTANCE:Vr.INSTANCE:new Kr(t,i,e)}constructor(t,i,e){this.key=t,this.value=i,this.negated=e,this.type=4}cmp(t){return t.type!==this.type?this.type-t.type:uh(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type&&this.key===t.key&&this.value===t.value}substituteConstants(){const t=Fr.get(this.key);return"boolean"==typeof t?this.value===(t?"true":"false")?Ur.INSTANCE:Vr.INSTANCE:this}evaluate(t){return t.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Qr.create(this.key,this.value,this)),this.negated}}class Gr{static create(t,i){return new Gr(t,i)}constructor(t,i){this.key=t,this.valueKey=i,this.type=10,this.negated=null}cmp(t){return t.type!==this.type?this.type-t.type:uh(this.key,this.valueKey,t.key,t.valueKey)}equals(t){return t.type===this.type&&this.key===t.key&&this.valueKey===t.valueKey}substituteConstants(){return this}evaluate(t){const i=t.getValue(this.valueKey),e=t.getValue(this.key);return Array.isArray(i)?i.includes(e):"string"==typeof e&&"object"==typeof i&&null!==i&&Tr.call(i,e)}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=Zr.create(this.key,this.valueKey)),this.negated}}class Zr{static create(t,i){return new Zr(t,i)}constructor(t,i){this.key=t,this.valueKey=i,this.type=11,this._negated=Gr.create(t,i)}cmp(t){return t.type!==this.type?this.type-t.type:this._negated.cmp(t._negated)}equals(t){return t.type===this.type&&this._negated.equals(t._negated)}substituteConstants(){return this}evaluate(t){return!this._negated.evaluate(t)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}negate(){return this._negated}}class Qr{static create(t,i,e=null){if("boolean"==typeof i)return i?Jr.create(t,e):qr.create(t,e);const s=Fr.get(t);return"boolean"==typeof s?i===(s?"true":"false")?Vr.INSTANCE:Ur.INSTANCE:new Qr(t,i,e)}constructor(t,i,e){this.key=t,this.value=i,this.negated=e,this.type=5}cmp(t){return t.type!==this.type?this.type-t.type:uh(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type&&this.key===t.key&&this.value===t.value}substituteConstants(){const t=Fr.get(this.key);return"boolean"==typeof t?this.value===(t?"true":"false")?Vr.INSTANCE:Ur.INSTANCE:this}evaluate(t){return t.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Kr.create(this.key,this.value,this)),this.negated}}class Jr{static create(t,i=null){const e=Fr.get(t);return"boolean"==typeof e?e?Vr.INSTANCE:Ur.INSTANCE:new Jr(t,i)}constructor(t,i){this.key=t,this.negated=i,this.type=3}cmp(t){return t.type!==this.type?this.type-t.type:lh(this.key,t.key)}equals(t){return t.type===this.type&&this.key===t.key}substituteConstants(){const t=Fr.get(this.key);return"boolean"==typeof t?t?Vr.INSTANCE:Ur.INSTANCE:this}evaluate(t){return!t.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=qr.create(this.key,this)),this.negated}}function Yr(t,i){if("string"==typeof t){const i=parseFloat(t);isNaN(i)||(t=i)}return"string"==typeof t||"number"==typeof t?i(t):Vr.INSTANCE}class Xr{static create(t,i,e=null){return Yr(i,(i=>new Xr(t,i,e)))}constructor(t,i,e){this.key=t,this.value=i,this.negated=e,this.type=12}cmp(t){return t.type!==this.type?this.type-t.type:uh(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type&&this.key===t.key&&this.value===t.value}substituteConstants(){return this}evaluate(t){return"string"!=typeof this.value&&parseFloat(t.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=eh.create(this.key,this.value,this)),this.negated}}class th{static create(t,i,e=null){return Yr(i,(i=>new th(t,i,e)))}constructor(t,i,e){this.key=t,this.value=i,this.negated=e,this.type=13}cmp(t){return t.type!==this.type?this.type-t.type:uh(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type&&this.key===t.key&&this.value===t.value}substituteConstants(){return this}evaluate(t){return"string"!=typeof this.value&&parseFloat(t.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=ih.create(this.key,this.value,this)),this.negated}}class ih{static create(t,i,e=null){return Yr(i,(i=>new ih(t,i,e)))}constructor(t,i,e){this.key=t,this.value=i,this.negated=e,this.type=14}cmp(t){return t.type!==this.type?this.type-t.type:uh(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type&&this.key===t.key&&this.value===t.value}substituteConstants(){return this}evaluate(t){return"string"!=typeof this.value&&parseFloat(t.getValue(this.key))new eh(t,i,e)))}constructor(t,i,e){this.key=t,this.value=i,this.negated=e,this.type=15}cmp(t){return t.type!==this.type?this.type-t.type:uh(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type&&this.key===t.key&&this.value===t.value}substituteConstants(){return this}evaluate(t){return"string"!=typeof this.value&&parseFloat(t.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Xr.create(this.key,this.value,this)),this.negated}}class sh{static create(t,i){return new sh(t,i)}constructor(t,i){this.key=t,this.regexp=i,this.type=7,this.negated=null}cmp(t){if(t.type!==this.type)return this.type-t.type;if(this.keyt.key)return 1;const i=this.regexp?this.regexp.source:"",e=t.regexp?t.regexp.source:"";return ie?1:0}equals(t){return t.type===this.type&&(this.key===t.key&&(this.regexp?this.regexp.source:"")===(t.regexp?t.regexp.source:""))}substituteConstants(){return this}evaluate(t){const i=t.getValue(this.key);return!!this.regexp&&this.regexp.test(i)}serialize(){return`${this.key} =~ ${this.regexp?`/${this.regexp.source}/${this.regexp.flags}`:"/invalid/"}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=nh.create(this)),this.negated}}class nh{static create(t){return new nh(t)}constructor(t){this._actual=t,this.type=8}cmp(t){return t.type!==this.type?this.type-t.type:this._actual.cmp(t._actual)}equals(t){return t.type===this.type&&this._actual.equals(t._actual)}substituteConstants(){return this}evaluate(t){return!this._actual.evaluate(t)}serialize(){return`!(${this._actual.serialize()})`}keys(){return this._actual.keys()}negate(){return this._actual}}function oh(t){let i=null;for(let e=0,s=t.length;et.expr.length)return 1;for(let i=0,e=this.expr.length;i1;){const t=s[s.length-1];if(9!==t.type)break;s.pop();const i=s.pop(),n=0===s.length,o=hh.create(t.expr.map((t=>rh.create([t,i],null,e))),null,n);o&&(s.push(o),s.sort(Hr))}if(1===s.length)return s[0];if(e){for(let t=0;tt.serialize())).join(" && ")}keys(){const t=[];for(const i of this.expr)t.push(...i.keys());return t}negate(){if(!this.negated){const t=[];for(const i of this.expr)t.push(i.negate());this.negated=hh.create(t,this,!0)}return this.negated}}class hh{static create(t,i,e){return hh._normalizeArr(t,i,e)}constructor(t,i){this.expr=t,this.negated=i,this.type=9}cmp(t){if(t.type!==this.type)return this.type-t.type;if(this.expr.lengtht.expr.length)return 1;for(let i=0,e=this.expr.length;it.serialize())).join(" || ")}keys(){const t=[];for(const i of this.expr)t.push(...i.keys());return t}negate(){if(!this.negated){const t=[];for(const i of this.expr)t.push(i.negate());for(;t.length>1;){const i=t.shift(),e=t.shift(),s=[];for(const t of ph(i))for(const i of ph(e))s.push(rh.create([t,i],null,!1));t.unshift(hh.create(s,null,!1))}this.negated=hh.create(t,this,!0)}return this.negated}}class ch extends qr{static all(){return ch._info.values()}constructor(t,i,e){super(t,null),this._defaultValue=i,"object"==typeof e?ch._info.push({...e,key:t}):!0!==e&&ch._info.push({key:t,description:e,type:null!=i?typeof i:void 0})}bindTo(t){return t.createKey(this.key,this._defaultValue)}getValue(t){return t.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(t){return Kr.create(this.key,t)}}ch._info=[];const ah=dr("contextKeyService");function lh(t,i){return ti?1:0}function uh(t,i,e,s){return te?1:is?1:0}function dh(t,i){if(0===t.type||1===i.type)return!0;if(9===t.type)return 9===i.type&&fh(t.expr,i.expr);if(9===i.type){for(const e of i.expr)if(dh(t,e))return!0;return!1}if(6===t.type){if(6===i.type)return fh(i.expr,t.expr);for(const e of t.expr)if(dh(e,i))return!0;return!1}return t.equals(i)}function fh(t,i){let e=0,s=0;for(;e>>0,s=(4294901760&t)>>>16;return new vh(0!==s?[mh(e,i),mh(s,i)]:[mh(e,i)])}{const e=[];for(let s=0;s{r(),this._cachedMergedKeybindings=null}))}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(Mh)),this._cachedMergedKeybindings.slice(0)}}const Ah=new Eh;function Mh(t,i){if(t.weight1!==i.weight1)return t.weight1-i.weight1;if(t.command&&i.command){if(t.commandi.command)return 1}return t.weight2-i.weight2}Dh.add("platform.keybindingsRegistry",Ah);var Lh,Fh=function(t,i){return function(e,s){i(e,s,t)}};function Th(t){return void 0!==t.command}class Rh{constructor(t){if(Rh._instances.has(t))throw new TypeError(`MenuId with identifier '${t}' already exists. Use MenuId.for(ident) or a unique identifier`);Rh._instances.set(t,this),this.id=t}}Rh._instances=new Map,Rh.CommandPalette=new Rh("CommandPalette"),Rh.DebugBreakpointsContext=new Rh("DebugBreakpointsContext"),Rh.DebugCallStackContext=new Rh("DebugCallStackContext"),Rh.DebugConsoleContext=new Rh("DebugConsoleContext"),Rh.DebugVariablesContext=new Rh("DebugVariablesContext"),Rh.DebugWatchContext=new Rh("DebugWatchContext"),Rh.DebugToolBar=new Rh("DebugToolBar"),Rh.DebugToolBarStop=new Rh("DebugToolBarStop"),Rh.EditorContext=new Rh("EditorContext"),Rh.SimpleEditorContext=new Rh("SimpleEditorContext"),Rh.EditorContent=new Rh("EditorContent"),Rh.EditorLineNumberContext=new Rh("EditorLineNumberContext"),Rh.EditorContextCopy=new Rh("EditorContextCopy"),Rh.EditorContextPeek=new Rh("EditorContextPeek"),Rh.EditorContextShare=new Rh("EditorContextShare"),Rh.EditorTitle=new Rh("EditorTitle"),Rh.EditorTitleRun=new Rh("EditorTitleRun"),Rh.EditorTitleContext=new Rh("EditorTitleContext"),Rh.EditorTitleContextShare=new Rh("EditorTitleContextShare"),Rh.EmptyEditorGroup=new Rh("EmptyEditorGroup"),Rh.EmptyEditorGroupContext=new Rh("EmptyEditorGroupContext"),Rh.EditorTabsBarContext=new Rh("EditorTabsBarContext"),Rh.EditorTabsBarShowTabsSubmenu=new Rh("EditorTabsBarShowTabsSubmenu"),Rh.EditorActionsPositionSubmenu=new Rh("EditorActionsPositionSubmenu"),Rh.ExplorerContext=new Rh("ExplorerContext"),Rh.ExplorerContextShare=new Rh("ExplorerContextShare"),Rh.ExtensionContext=new Rh("ExtensionContext"),Rh.GlobalActivity=new Rh("GlobalActivity"),Rh.CommandCenter=new Rh("CommandCenter"),Rh.CommandCenterCenter=new Rh("CommandCenterCenter"),Rh.LayoutControlMenuSubmenu=new Rh("LayoutControlMenuSubmenu"),Rh.LayoutControlMenu=new Rh("LayoutControlMenu"),Rh.MenubarMainMenu=new Rh("MenubarMainMenu"),Rh.MenubarAppearanceMenu=new Rh("MenubarAppearanceMenu"),Rh.MenubarDebugMenu=new Rh("MenubarDebugMenu"),Rh.MenubarEditMenu=new Rh("MenubarEditMenu"),Rh.MenubarCopy=new Rh("MenubarCopy"),Rh.MenubarFileMenu=new Rh("MenubarFileMenu"),Rh.MenubarGoMenu=new Rh("MenubarGoMenu"),Rh.MenubarHelpMenu=new Rh("MenubarHelpMenu"),Rh.MenubarLayoutMenu=new Rh("MenubarLayoutMenu"),Rh.MenubarNewBreakpointMenu=new Rh("MenubarNewBreakpointMenu"),Rh.PanelAlignmentMenu=new Rh("PanelAlignmentMenu"),Rh.PanelPositionMenu=new Rh("PanelPositionMenu"),Rh.ActivityBarPositionMenu=new Rh("ActivityBarPositionMenu"),Rh.MenubarPreferencesMenu=new Rh("MenubarPreferencesMenu"),Rh.MenubarRecentMenu=new Rh("MenubarRecentMenu"),Rh.MenubarSelectionMenu=new Rh("MenubarSelectionMenu"),Rh.MenubarShare=new Rh("MenubarShare"),Rh.MenubarSwitchEditorMenu=new Rh("MenubarSwitchEditorMenu"),Rh.MenubarSwitchGroupMenu=new Rh("MenubarSwitchGroupMenu"),Rh.MenubarTerminalMenu=new Rh("MenubarTerminalMenu"),Rh.MenubarViewMenu=new Rh("MenubarViewMenu"),Rh.MenubarHomeMenu=new Rh("MenubarHomeMenu"),Rh.OpenEditorsContext=new Rh("OpenEditorsContext"),Rh.OpenEditorsContextShare=new Rh("OpenEditorsContextShare"),Rh.ProblemsPanelContext=new Rh("ProblemsPanelContext"),Rh.SCMInputBox=new Rh("SCMInputBox"),Rh.SCMHistoryItem=new Rh("SCMHistoryItem"),Rh.SCMChangeContext=new Rh("SCMChangeContext"),Rh.SCMResourceContext=new Rh("SCMResourceContext"),Rh.SCMResourceContextShare=new Rh("SCMResourceContextShare"),Rh.SCMResourceFolderContext=new Rh("SCMResourceFolderContext"),Rh.SCMResourceGroupContext=new Rh("SCMResourceGroupContext"),Rh.SCMSourceControl=new Rh("SCMSourceControl"),Rh.SCMTitle=new Rh("SCMTitle"),Rh.SearchContext=new Rh("SearchContext"),Rh.SearchActionMenu=new Rh("SearchActionContext"),Rh.StatusBarWindowIndicatorMenu=new Rh("StatusBarWindowIndicatorMenu"),Rh.StatusBarRemoteIndicatorMenu=new Rh("StatusBarRemoteIndicatorMenu"),Rh.StickyScrollContext=new Rh("StickyScrollContext"),Rh.TestItem=new Rh("TestItem"),Rh.TestItemGutter=new Rh("TestItemGutter"),Rh.TestMessageContext=new Rh("TestMessageContext"),Rh.TestMessageContent=new Rh("TestMessageContent"),Rh.TestPeekElement=new Rh("TestPeekElement"),Rh.TestPeekTitle=new Rh("TestPeekTitle"),Rh.TouchBarContext=new Rh("TouchBarContext"),Rh.TitleBarContext=new Rh("TitleBarContext"),Rh.TitleBarTitleContext=new Rh("TitleBarTitleContext"),Rh.TunnelContext=new Rh("TunnelContext"),Rh.TunnelPrivacy=new Rh("TunnelPrivacy"),Rh.TunnelProtocol=new Rh("TunnelProtocol"),Rh.TunnelPortInline=new Rh("TunnelInline"),Rh.TunnelTitle=new Rh("TunnelTitle"),Rh.TunnelLocalAddressInline=new Rh("TunnelLocalAddressInline"),Rh.TunnelOriginInline=new Rh("TunnelOriginInline"),Rh.ViewItemContext=new Rh("ViewItemContext"),Rh.ViewContainerTitle=new Rh("ViewContainerTitle"),Rh.ViewContainerTitleContext=new Rh("ViewContainerTitleContext"),Rh.ViewTitle=new Rh("ViewTitle"),Rh.ViewTitleContext=new Rh("ViewTitleContext"),Rh.CommentEditorActions=new Rh("CommentEditorActions"),Rh.CommentThreadTitle=new Rh("CommentThreadTitle"),Rh.CommentThreadActions=new Rh("CommentThreadActions"),Rh.CommentThreadAdditionalActions=new Rh("CommentThreadAdditionalActions"),Rh.CommentThreadTitleContext=new Rh("CommentThreadTitleContext"),Rh.CommentThreadCommentContext=new Rh("CommentThreadCommentContext"),Rh.CommentTitle=new Rh("CommentTitle"),Rh.CommentActions=new Rh("CommentActions"),Rh.InteractiveToolbar=new Rh("InteractiveToolbar"),Rh.InteractiveCellTitle=new Rh("InteractiveCellTitle"),Rh.InteractiveCellDelete=new Rh("InteractiveCellDelete"),Rh.InteractiveCellExecute=new Rh("InteractiveCellExecute"),Rh.InteractiveInputExecute=new Rh("InteractiveInputExecute"),Rh.NotebookToolbar=new Rh("NotebookToolbar"),Rh.NotebookStickyScrollContext=new Rh("NotebookStickyScrollContext"),Rh.NotebookCellTitle=new Rh("NotebookCellTitle"),Rh.NotebookCellDelete=new Rh("NotebookCellDelete"),Rh.NotebookCellInsert=new Rh("NotebookCellInsert"),Rh.NotebookCellBetween=new Rh("NotebookCellBetween"),Rh.NotebookCellListTop=new Rh("NotebookCellTop"),Rh.NotebookCellExecute=new Rh("NotebookCellExecute"),Rh.NotebookCellExecutePrimary=new Rh("NotebookCellExecutePrimary"),Rh.NotebookDiffCellInputTitle=new Rh("NotebookDiffCellInputTitle"),Rh.NotebookDiffCellMetadataTitle=new Rh("NotebookDiffCellMetadataTitle"),Rh.NotebookDiffCellOutputsTitle=new Rh("NotebookDiffCellOutputsTitle"),Rh.NotebookOutputToolbar=new Rh("NotebookOutputToolbar"),Rh.NotebookEditorLayoutConfigure=new Rh("NotebookEditorLayoutConfigure"),Rh.NotebookKernelSource=new Rh("NotebookKernelSource"),Rh.BulkEditTitle=new Rh("BulkEditTitle"),Rh.BulkEditContext=new Rh("BulkEditContext"),Rh.TimelineItemContext=new Rh("TimelineItemContext"),Rh.TimelineTitle=new Rh("TimelineTitle"),Rh.TimelineTitleContext=new Rh("TimelineTitleContext"),Rh.TimelineFilterSubMenu=new Rh("TimelineFilterSubMenu"),Rh.AccountsContext=new Rh("AccountsContext"),Rh.SidebarTitle=new Rh("SidebarTitle"),Rh.PanelTitle=new Rh("PanelTitle"),Rh.AuxiliaryBarTitle=new Rh("AuxiliaryBarTitle"),Rh.TerminalInstanceContext=new Rh("TerminalInstanceContext"),Rh.TerminalEditorInstanceContext=new Rh("TerminalEditorInstanceContext"),Rh.TerminalNewDropdownContext=new Rh("TerminalNewDropdownContext"),Rh.TerminalTabContext=new Rh("TerminalTabContext"),Rh.TerminalTabEmptyAreaContext=new Rh("TerminalTabEmptyAreaContext"),Rh.TerminalStickyScrollContext=new Rh("TerminalStickyScrollContext"),Rh.WebviewContext=new Rh("WebviewContext"),Rh.InlineCompletionsActions=new Rh("InlineCompletionsActions"),Rh.NewFile=new Rh("NewFile"),Rh.MergeInput1Toolbar=new Rh("MergeToolbar1Toolbar"),Rh.MergeInput2Toolbar=new Rh("MergeToolbar2Toolbar"),Rh.MergeBaseToolbar=new Rh("MergeBaseToolbar"),Rh.MergeInputResultToolbar=new Rh("MergeToolbarResultToolbar"),Rh.InlineSuggestionToolbar=new Rh("InlineSuggestionToolbar"),Rh.ChatContext=new Rh("ChatContext"),Rh.ChatCodeBlock=new Rh("ChatCodeblock"),Rh.ChatMessageTitle=new Rh("ChatMessageTitle"),Rh.ChatExecute=new Rh("ChatExecute"),Rh.ChatInputSide=new Rh("ChatInputSide"),Rh.AccessibleView=new Rh("AccessibleView"),Rh.MultiDiffEditorFileToolbar=new Rh("MultiDiffEditorFileToolbar");const Oh=dr("menuService");class Ih{static for(t){let i=this._all.get(t);return i||(i=new Ih(t),this._all.set(t,i)),i}static merge(t){const i=new Set;for(const e of t)e instanceof Ih&&i.add(e.id);return i}constructor(t){this.id=t,this.has=i=>i===t}}Ih._all=new Map;const _h=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new me({merge:Ih.merge}),this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(t){return this._commands.set(t.id,t),this._onDidChangeMenu.fire(Ih.for(Rh.CommandPalette)),Yi((()=>{this._commands.delete(t.id)&&this._onDidChangeMenu.fire(Ih.for(Rh.CommandPalette))}))}getCommand(t){return this._commands.get(t)}getCommands(){const t=new Map;return this._commands.forEach(((i,e)=>t.set(e,i))),t}appendMenuItem(t,i){let e=this._menuItems.get(t);e||(e=new Ut,this._menuItems.set(t,e));const s=e.push(i);return this._onDidChangeMenu.fire(Ih.for(t)),Yi((()=>{s(),this._onDidChangeMenu.fire(Ih.for(t))}))}appendMenuItems(t){const i=new Xi;for(const{id:e,item:s}of t)i.add(this.appendMenuItem(e,s));return i}getMenuItems(t){let i;return i=this._menuItems.has(t)?[...this._menuItems.get(t)]:[],t===Rh.CommandPalette&&this._appendImplicitItems(i),i}_appendImplicitItems(t){const i=new Set;for(const e of t)Th(e)&&(i.add(e.command.id),e.alt&&i.add(e.alt.id));this._commands.forEach(((e,s)=>{i.has(s)||t.push({command:e})}))}};class Nh extends br{constructor(t,i,e){super(`submenuitem.${t.submenu.id}`,"string"==typeof t.title?t.title:t.title.value,e,"submenu"),this.item=t,this.hideActions=i}}let Bh=Lh=class{static label(t,i){return(null==i?void 0:i.renderShortTitle)&&t.shortTitle?"string"==typeof t.shortTitle?t.shortTitle:t.shortTitle.value:"string"==typeof t.title?t.title:t.title.value}constructor(t,i,e,s,n,o){var r,h;let c;if(this.hideActions=s,this._commandService=o,this.id=t.id,this.label=Lh.label(t,e),this.tooltip=null!==(h="string"==typeof t.tooltip?t.tooltip:null===(r=t.tooltip)||void 0===r?void 0:r.value)&&void 0!==h?h:"",this.enabled=!t.precondition||n.contextMatchesRules(t.precondition),this.checked=void 0,t.toggled){const i=t.toggled.condition?t.toggled:{condition:t.toggled};this.checked=n.contextMatchesRules(i.condition),this.checked&&i.tooltip&&(this.tooltip="string"==typeof i.tooltip?i.tooltip:i.tooltip.value),this.checked&&Cr.isThemeIcon(i.icon)&&(c=i.icon),this.checked&&i.title&&(this.label="string"==typeof i.title?i.title:i.title.value)}c||(c=Cr.isThemeIcon(t.icon)?t.icon:void 0),this.item=t,this.alt=i?new Lh(i,void 0,e,s,n,o):void 0,this._options=e,this.class=c&&Cr.asClassName(c)}run(...t){var i,e;let s=[];return(null===(i=this._options)||void 0===i?void 0:i.arg)&&(s=[...s,this._options.arg]),(null===(e=this._options)||void 0===e?void 0:e.shouldForwardArgs)&&(s=[...s,...t]),this._commandService.executeCommand(this.id,...s)}};Bh=Lh=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Fh(4,ah),Fh(5,Sr)],Bh);class Ph{constructor(t){this.desc=t}}function $h(t){const i=new Xi,e=new t,{f1:s,menu:n,keybinding:o,...r}=e.desc;if(i.add(Dr.registerCommand({id:r.id,handler:(t,...i)=>e.run(t,...i),metadata:r.metadata})),Array.isArray(n))for(const t of n)i.add(_h.appendMenuItem(t.id,{command:{...r,precondition:null===t.precondition?void 0:r.precondition},...t}));else n&&i.add(_h.appendMenuItem(n.id,{command:{...r,precondition:null===n.precondition?void 0:r.precondition},...n}));if(s&&(i.add(_h.appendMenuItem(Rh.CommandPalette,{command:r,when:r.precondition})),i.add(_h.addCommand(r))),Array.isArray(o))for(const t of o)i.add(Ah.registerKeybindingRule({...t,id:r.id,when:r.precondition?zr.and(r.precondition,t.when):t.when}));else o&&i.add(Ah.registerKeybindingRule({...o,id:r.id,when:r.precondition?zr.and(r.precondition,o.when):o.when}));return i}const Wh=dr("telemetryService"),jh=dr("logService");var zh;!function(t){t[t.Off=0]="Off",t[t.Trace=1]="Trace",t[t.Debug=2]="Debug",t[t.Info=3]="Info",t[t.Warning=4]="Warning",t[t.Error=5]="Error"}(zh||(zh={}));const Hh=zh.Info;class Vh extends te{constructor(){super(...arguments),this.level=Hh,this._onDidChangeLogLevel=this._register(new de),this.onDidChangeLogLevel=this._onDidChangeLogLevel.event}setLevel(t){this.level!==t&&(this.level=t,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(t){return this.level!==zh.Off&&this.level<=t}}class Uh extends Vh{constructor(t=Hh,i=!0){super(),this.useColors=i,this.setLevel(t)}trace(t,...i){this.checkLogLevel(zh.Trace)&&(this.useColors?console.log("%cTRACE","color: #888",t,...i):console.log(t,...i))}debug(t,...i){this.checkLogLevel(zh.Debug)&&(this.useColors?console.log("%cDEBUG","background: #eee; color: #888",t,...i):console.log(t,...i))}info(t,...i){this.checkLogLevel(zh.Info)&&(this.useColors?console.log("%c INFO","color: #33f",t,...i):console.log(t,...i))}warn(t,...i){this.checkLogLevel(zh.Warning)&&(this.useColors?console.log("%c WARN","color: #993",t,...i):console.log(t,...i))}error(t,...i){this.checkLogLevel(zh.Error)&&(this.useColors?console.log("%c ERR","color: #f33",t,...i):console.error(t,...i))}dispose(){}}class qh extends Vh{constructor(t){super(),this.loggers=t,t.length&&this.setLevel(t[0].getLevel())}setLevel(t){for(const i of this.loggers)i.setLevel(t);super.setLevel(t)}trace(t,...i){for(const e of this.loggers)e.trace(t,...i)}debug(t,...i){for(const e of this.loggers)e.debug(t,...i)}info(t,...i){for(const e of this.loggers)e.info(t,...i)}warn(t,...i){for(const e of this.loggers)e.warn(t,...i)}error(t,...i){for(const e of this.loggers)e.error(t,...i)}dispose(){for(const t of this.loggers)t.dispose()}}new ch("logLevel",function(){switch(zh.Info){case zh.Trace:return"trace";case zh.Debug:return"debug";case zh.Info:return"info";case zh.Warning:return"warn";case zh.Error:return"error";case zh.Off:return"off"}}()),Dt||document.queryCommandSupported&&document.queryCommandSupported("copy")||navigator&&navigator.clipboard&&navigator,Dt||navigator&&navigator.clipboard&&navigator,Dt||Jo||navigator,"ontouchstart"in $n||navigator;const Kh=$n.PointerEvent&&("ontouchstart"in $n||navigator.maxTouchPoints>0||navigator.maxTouchPoints>0),Gh=Ct?256:2048,Zh=Ct?2048:256;class Qh{constructor(t){this._standardKeyboardEventBrand=!0;const i=t;this.browserEvent=i,this.target=i.target,this.ctrlKey=i.ctrlKey,this.shiftKey=i.shiftKey,this.altKey=i.altKey,this.metaKey=i.metaKey,this.altGraphKey=i.getModifierState("AltGraph"),this.keyCode=function(t){if(t.charCode){const i=String.fromCharCode(t.charCode).toUpperCase();return _e.fromString(i)}const i=t.keyCode;if(3===i)return 7;if(Uo)switch(i){case 59:return 85;case 60:if(St)return 97;break;case 61:return 86;case 107:return 109;case 109:return 111;case 173:return 88;case 224:if(Ct)return 57}else if(qo){if(Ct&&93===i)return 57;if(!Ct&&92===i)return 57}return Me[i]||0}(i),this.code=i.code,this.ctrlKey=this.ctrlKey||5===this.keyCode,this.altKey=this.altKey||6===this.keyCode,this.shiftKey=this.shiftKey||4===this.keyCode,this.metaKey=this.metaKey||57===this.keyCode,this._asKeybinding=this._computeKeybinding(),this._asKeyCodeChord=this._computeKeyCodeChord()}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}toKeyCodeChord(){return this._asKeyCodeChord}equals(t){return this._asKeybinding===t}_computeKeybinding(){let t=0;5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(t=this.keyCode);let i=0;return this.ctrlKey&&(i|=Gh),this.altKey&&(i|=512),this.shiftKey&&(i|=1024),this.metaKey&&(i|=Zh),i|=t,i}_computeKeyCodeChord(){let t=0;return 5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(t=this.keyCode),new wh(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,t)}}const Jh=new WeakMap;function Yh(t){if(!t.parent||t.parent===t)return null;try{const i=t.location,e=t.parent.location;if("null"!==i.origin&&"null"!==e.origin&&i.origin!==e.origin)return null}catch(t){return null}return t.parent}class Xh{static getSameOriginWindowChain(t){let i=Jh.get(t);if(!i){i=[],Jh.set(t,i);let e,s=t;do{e=Yh(s),i.push(e?{window:new WeakRef(s),iframeElement:s.frameElement||null}:{window:new WeakRef(s),iframeElement:null}),s=e}while(s)}return i.slice(0)}static getPositionOfChildWindowRelativeToAncestorWindow(t,i){var e,s;if(!i||t===i)return{top:0,left:0};let n=0,o=0;const r=this.getSameOriginWindowChain(t);for(const t of r){const r=t.window.deref();if(n+=null!==(e=null==r?void 0:r.scrollY)&&void 0!==e?e:0,o+=null!==(s=null==r?void 0:r.scrollX)&&void 0!==s?s:0,r===i)break;if(!t.iframeElement)break;const h=t.iframeElement.getBoundingClientRect();n+=h.top,o+=h.left}return{top:n,left:o}}}class tc{constructor(t,i){this.timestamp=Date.now(),this.browserEvent=i,this.leftButton=0===i.button,this.middleButton=1===i.button,this.rightButton=2===i.button,this.buttons=i.buttons,this.target=i.target,this.detail=i.detail||1,"dblclick"===i.type&&(this.detail=2),this.ctrlKey=i.ctrlKey,this.shiftKey=i.shiftKey,this.altKey=i.altKey,this.metaKey=i.metaKey,"number"==typeof i.pageX?(this.posx=i.pageX,this.posy=i.pageY):(this.posx=i.clientX+this.target.ownerDocument.body.scrollLeft+this.target.ownerDocument.documentElement.scrollLeft,this.posy=i.clientY+this.target.ownerDocument.body.scrollTop+this.target.ownerDocument.documentElement.scrollTop);const e=Xh.getPositionOfChildWindowRelativeToAncestorWindow(t,i.view);this.posx-=e.left,this.posy-=e.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}}class ic{constructor(t,i=0,e=0){if(this.browserEvent=t||null,this.target=t?t.target||t.targetNode||t.srcElement:null,this.deltaY=e,this.deltaX=i,t){const i=t,e=t;void 0!==i.wheelDeltaY?this.deltaY=i.wheelDeltaY/120:void 0!==e.VERTICAL_AXIS&&e.axis===e.VERTICAL_AXIS?this.deltaY=-e.detail/3:"wheel"===t.type&&(this.deltaY=t.deltaMode===t.DOM_DELTA_LINE?Uo&&!Ct?-t.deltaY/3:-t.deltaY:-t.deltaY/40),void 0!==i.wheelDeltaX?this.deltaX=Go&&xt?-i.wheelDeltaX/120:i.wheelDeltaX/120:void 0!==e.HORIZONTAL_AXIS&&e.axis===e.HORIZONTAL_AXIS?this.deltaX=-t.detail/3:"wheel"===t.type&&(this.deltaX=t.deltaMode===t.DOM_DELTA_LINE?Uo&&!Ct?-t.deltaX/3:-t.deltaX:-t.deltaX/40),0===this.deltaY&&0===this.deltaX&&t.wheelDelta&&(this.deltaY=t.wheelDelta/120)}}preventDefault(){var t;null===(t=this.browserEvent)||void 0===t||t.preventDefault()}stopPropagation(){var t;null===(t=this.browserEvent)||void 0===t||t.stopPropagation()}}const ec=Symbol("MicrotaskDelay");function sc(t){return!!t&&"function"==typeof t.then}function nc(t){const i=new Ce,e=t(i.token),s=new Promise(((t,s)=>{const n=i.token.onCancellationRequested((()=>{n.dispose(),i.dispose(),s(new zi)}));Promise.resolve(e).then((e=>{n.dispose(),i.dispose(),t(e)}),(t=>{n.dispose(),i.dispose(),s(t)}))}));return new class{cancel(){i.cancel()}then(t,i){return s.then(t,i)}catch(t){return this.then(void 0,t)}finally(t){return s.finally(t)}}}function oc(t,i,e){return new Promise(((s,n)=>{const o=i.onCancellationRequested((()=>{o.dispose(),s(e)}));t.then(s,n).finally((()=>o.dispose()))}))}class rc{constructor(){this.isDisposed=!1,this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}queue(t){if(this.isDisposed)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=t,!this.queuedPromise){const t=()=>{if(this.queuedPromise=null,this.isDisposed)return;const t=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,t};this.queuedPromise=new Promise((i=>{this.activePromise.then(t,t).then(i)}))}return new Promise(((t,i)=>{this.queuedPromise.then(t,i)}))}return this.activePromise=t(),new Promise(((t,i)=>{this.activePromise.then((i=>{this.activePromise=null,t(i)}),(t=>{this.activePromise=null,i(t)}))}))}dispose(){this.isDisposed=!0}}class hc{constructor(t){this.defaultDelay=t,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(t,i=this.defaultDelay){this.task=t,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise(((t,i)=>{this.doResolve=t,this.doReject=i})).then((()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const t=this.task;return this.task=null,t()}})));const e=()=>{var t;this.deferred=null,null===(t=this.doResolve)||void 0===t||t.call(this,null)};return this.deferred=i===ec?(t=>{let i=!0;return queueMicrotask((()=>{i&&(i=!1,t())})),{isTriggered:()=>i,dispose:()=>{i=!1}}})(e):((t,i)=>{let e=!0;const s=setTimeout((()=>{e=!1,i()}),t);return{isTriggered:()=>e,dispose:()=>{clearTimeout(s),e=!1}}})(i,e),this.completionPromise}isTriggered(){var t;return!!(null===(t=this.deferred)||void 0===t?void 0:t.isTriggered())}cancel(){var t;this.cancelTimeout(),this.completionPromise&&(null===(t=this.doReject)||void 0===t||t.call(this,new zi),this.completionPromise=null)}cancelTimeout(){var t;null===(t=this.deferred)||void 0===t||t.dispose(),this.deferred=null}dispose(){this.cancel()}}class cc{constructor(t){this.delayer=new hc(t),this.throttler=new rc}trigger(t,i){return this.delayer.trigger((()=>this.throttler.queue(t)),i)}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}}function ac(t,i){return i?new Promise(((e,s)=>{const n=setTimeout((()=>{o.dispose(),e()}),t),o=i.onCancellationRequested((()=>{clearTimeout(n),o.dispose(),s(new zi)}))})):nc((i=>ac(t,i)))}function lc(t,i=0,e){const s=setTimeout((()=>{t(),e&&n.dispose()}),i),n=Yi((()=>{clearTimeout(s),null==e||e.deleteAndLeak(n)}));return null==e||e.add(n),n}function uc(t,i=(t=>!!t),e=null){let s=0;const n=t.length,o=()=>{if(s>=n)return Promise.resolve(e);const r=t[s++];return Promise.resolve(r()).then((t=>i(t)?Promise.resolve(t):o()))};return o()}class dc{constructor(t,i){this._token=-1,"function"==typeof t&&"number"==typeof i&&this.setIfNotSet(t,i)}dispose(){this.cancel()}cancel(){-1!==this._token&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(t,i){this.cancel(),this._token=setTimeout((()=>{this._token=-1,t()}),i)}setIfNotSet(t,i){-1===this._token&&(this._token=setTimeout((()=>{this._token=-1,t()}),i))}}class fc{constructor(){this.disposable=void 0}cancel(){var t;null===(t=this.disposable)||void 0===t||t.dispose(),this.disposable=void 0}cancelAndSet(t,i,e=globalThis){this.cancel();const s=e.setInterval((()=>{t()}),i);this.disposable=Yi((()=>{e.clearInterval(s),this.disposable=void 0}))}dispose(){this.cancel()}}class pc{constructor(t,i){this.timeoutToken=-1,this.runner=t,this.timeout=i,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}schedule(t=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,t)}get delay(){return this.timeout}set delay(t){this.timeout=t}isScheduled(){return-1!==this.timeoutToken}onTimeout(){this.timeoutToken=-1,this.runner&&this.doRun()}doRun(){var t;null===(t=this.runner)||void 0===t||t.call(this)}}let gc,mc;mc="function"!=typeof globalThis.requestIdleCallback||"function"!=typeof globalThis.cancelIdleCallback?(t,i)=>{Ot((()=>{if(e)return;const t=Date.now()+15;i(Object.freeze({didTimeout:!0,timeRemaining:()=>Math.max(0,t-Date.now())}))}));let e=!1;return{dispose(){e||(e=!0)}}}:(t,i,e)=>{const s=t.requestIdleCallback(i,"number"==typeof e?{timeout:e}:void 0);let n=!1;return{dispose(){n||(n=!0,t.cancelIdleCallback(s))}}},gc=t=>mc(globalThis,t);class wc{constructor(t,i){this._didRun=!1,this._executor=()=>{try{this._value=i()}catch(t){this._error=t}finally{this._didRun=!0}},this._handle=mc(t,(()=>this._executor()))}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}}class vc extends wc{constructor(t){super(globalThis,t)}}class bc{get isRejected(){var t;return 1===(null===(t=this.outcome)||void 0===t?void 0:t.outcome)}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise(((t,i)=>{this.completeCallback=t,this.errorCallback=i}))}complete(t){return new Promise((i=>{this.completeCallback(t),this.outcome={outcome:0,value:t},i()}))}error(t){return new Promise((i=>{this.errorCallback(t),this.outcome={outcome:1,value:t},i()}))}cancel(){return this.error(new zi)}}var yc;!function(t){t.settled=async function(t){let i;const e=await Promise.all(t.map((t=>t.then((t=>t),(t=>{i||(i=t)})))));if(void 0!==i)throw i;return e},t.withAsyncBody=function(t){return new Promise((async(i,e)=>{try{await t(i,e)}catch(t){e(t)}}))}}(yc||(yc={}));class kc{static fromArray(t){return new kc((i=>{i.emitMany(t)}))}static fromPromise(t){return new kc((async i=>{i.emitMany(await t)}))}static fromPromises(t){return new kc((async i=>{await Promise.all(t.map((async t=>i.emitOne(await t))))}))}static merge(t){return new kc((async i=>{await Promise.all(t.map((async t=>{for await(const e of t)i.emitOne(e)})))}))}constructor(t){this._state=0,this._results=[],this._error=null,this._onStateChanged=new de,queueMicrotask((async()=>{const i={emitOne:t=>this.emitOne(t),emitMany:t=>this.emitMany(t),reject:t=>this.reject(t)};try{await Promise.resolve(t(i)),this.resolve()}catch(t){this.reject(t)}finally{i.emitOne=void 0,i.emitMany=void 0,i.reject=void 0}}))}[Symbol.asyncIterator](){let t=0;return{next:async()=>{for(;;){if(2===this._state)throw this._error;if(t{for await(const s of t)e.emitOne(i(s))}))}map(t){return kc.map(this,t)}static filter(t,i){return new kc((async e=>{for await(const s of t)i(s)&&e.emitOne(s)}))}filter(t){return kc.filter(this,t)}static coalesce(t){return kc.filter(t,(t=>!!t))}coalesce(){return kc.coalesce(this)}static async toPromise(t){const i=[];for await(const e of t)i.push(e);return i}toPromise(){return kc.toPromise(this)}emitOne(t){0===this._state&&(this._results.push(t),this._onStateChanged.fire())}emitMany(t){0===this._state&&(this._results=this._results.concat(t),this._onStateChanged.fire())}resolve(){0===this._state&&(this._state=1,this._onStateChanged.fire())}reject(t){0===this._state&&(this._state=2,this._error=t,this._onStateChanged.fire())}}kc.EMPTY=kc.fromArray([]);class xc extends kc{constructor(t,i){super(i),this._source=t}cancel(){this._source.cancel()}} /*! @license DOMPurify 3.0.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.5/LICENSE */ const{entries:Cc,setPrototypeOf:Sc,isFrozen:Dc,getPrototypeOf:Ec,getOwnPropertyDescriptor:Ac}=Object;let{freeze:Mc,seal:Lc,create:Fc}=Object,{apply:Tc,construct:Rc}="undefined"!=typeof Reflect&&Reflect;Tc||(Tc=function(t,i,e){return t.apply(i,e)}),Mc||(Mc=function(t){return t}),Lc||(Lc=function(t){return t}),Rc||(Rc=function(t,i){return new t(...i)});const Oc=Uc(Array.prototype.forEach),Ic=Uc(Array.prototype.pop),_c=Uc(Array.prototype.push),Nc=Uc(String.prototype.toLowerCase),Bc=Uc(String.prototype.toString),Pc=Uc(String.prototype.match),$c=Uc(String.prototype.replace),Wc=Uc(String.prototype.indexOf),jc=Uc(String.prototype.trim),zc=Uc(RegExp.prototype.test),Hc=(Vc=TypeError,function(){for(var t=arguments.length,i=new Array(t),e=0;e1?e-1:0),n=1;n/gm),ca=Lc(/\${[\w\W]*}/gm),aa=Lc(/^data-[\-\w.\u00B7-\uFFFF]/),la=Lc(/^aria-[\-\w]+$/),ua=Lc(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),da=Lc(/^(?:\w+script|data):/i),fa=Lc(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),pa=Lc(/^html$/i);var ga=Object.freeze({__proto__:null,MUSTACHE_EXPR:ra,ERB_EXPR:ha,TMPLIT_EXPR:ca,DATA_ATTR:aa,ARIA_ATTR:la,IS_ALLOWED_URI:ua,IS_SCRIPT_OR_DATA:da,ATTR_WHITESPACE:fa,DOCTYPE_NAME:pa});const ma=()=>"undefined"==typeof window?null:window;var wa=function t(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ma();const e=i=>t(i);if(e.version="3.0.5",e.removed=[],!i||!i.document||9!==i.document.nodeType)return e.isSupported=!1,e;const s=i.document,n=s.currentScript;let{document:o}=i;const{DocumentFragment:r,HTMLTemplateElement:h,Node:c,Element:a,NodeFilter:l,NamedNodeMap:u=i.NamedNodeMap||i.MozNamedAttrMap,HTMLFormElement:d,DOMParser:f,trustedTypes:p}=i,g=a.prototype,m=Gc(g,"cloneNode"),w=Gc(g,"nextSibling"),v=Gc(g,"childNodes"),b=Gc(g,"parentNode");if("function"==typeof h){const t=o.createElement("template");t.content&&t.content.ownerDocument&&(o=t.content.ownerDocument)}let y,k="";const{implementation:x,createNodeIterator:C,createDocumentFragment:S,getElementsByTagName:D}=o,{importNode:E}=s;let A={};e.isSupported="function"==typeof Cc&&"function"==typeof b&&x&&void 0!==x.createHTMLDocument;const{MUSTACHE_EXPR:M,ERB_EXPR:L,TMPLIT_EXPR:F,DATA_ATTR:T,ARIA_ATTR:R,IS_SCRIPT_OR_DATA:O,ATTR_WHITESPACE:I}=ga;let{IS_ALLOWED_URI:_}=ga,N=null;const B=qc({},[...Zc,...Qc,...Jc,...Xc,...ia]);let P=null;const $=qc({},[...ea,...sa,...na,...oa]);let W=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),j=null,z=null,H=!0,V=!0,U=!1,q=!0,K=!1,G=!1,Z=!1,Q=!1,J=!1,Y=!1,X=!1,tt=!0,it=!1,et=!0,st=!1,nt={},ot=null;const rt=qc({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let ht=null;const ct=qc({},["audio","video","img","source","image","track"]);let at=null;const lt=qc({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ut="http://www.w3.org/1998/Math/MathML",dt="http://www.w3.org/2000/svg",ft="http://www.w3.org/1999/xhtml";let pt=ft,gt=!1,mt=null;const wt=qc({},[ut,dt,ft],Bc);let vt;const bt=["application/xhtml+xml","text/html"];let yt,kt=null;const xt=o.createElement("form"),Ct=function(t){return t instanceof RegExp||t instanceof Function},St=function(t){if(!kt||kt!==t){if(t&&"object"==typeof t||(t={}),t=Kc(t),vt=vt=-1===bt.indexOf(t.PARSER_MEDIA_TYPE)?"text/html":t.PARSER_MEDIA_TYPE,yt="application/xhtml+xml"===vt?Bc:Nc,N="ALLOWED_TAGS"in t?qc({},t.ALLOWED_TAGS,yt):B,P="ALLOWED_ATTR"in t?qc({},t.ALLOWED_ATTR,yt):$,mt="ALLOWED_NAMESPACES"in t?qc({},t.ALLOWED_NAMESPACES,Bc):wt,at="ADD_URI_SAFE_ATTR"in t?qc(Kc(lt),t.ADD_URI_SAFE_ATTR,yt):lt,ht="ADD_DATA_URI_TAGS"in t?qc(Kc(ct),t.ADD_DATA_URI_TAGS,yt):ct,ot="FORBID_CONTENTS"in t?qc({},t.FORBID_CONTENTS,yt):rt,j="FORBID_TAGS"in t?qc({},t.FORBID_TAGS,yt):{},z="FORBID_ATTR"in t?qc({},t.FORBID_ATTR,yt):{},nt="USE_PROFILES"in t&&t.USE_PROFILES,H=!1!==t.ALLOW_ARIA_ATTR,V=!1!==t.ALLOW_DATA_ATTR,U=t.ALLOW_UNKNOWN_PROTOCOLS||!1,q=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,K=t.SAFE_FOR_TEMPLATES||!1,G=t.WHOLE_DOCUMENT||!1,J=t.RETURN_DOM||!1,Y=t.RETURN_DOM_FRAGMENT||!1,X=t.RETURN_TRUSTED_TYPE||!1,Q=t.FORCE_BODY||!1,tt=!1!==t.SANITIZE_DOM,it=t.SANITIZE_NAMED_PROPS||!1,et=!1!==t.KEEP_CONTENT,st=t.IN_PLACE||!1,_=t.ALLOWED_URI_REGEXP||ua,pt=t.NAMESPACE||ft,W=t.CUSTOM_ELEMENT_HANDLING||{},t.CUSTOM_ELEMENT_HANDLING&&Ct(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(W.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&Ct(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(W.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(W.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),K&&(V=!1),Y&&(J=!0),nt&&(N=qc({},[...ia]),P=[],!0===nt.html&&(qc(N,Zc),qc(P,ea)),!0===nt.svg&&(qc(N,Qc),qc(P,sa),qc(P,oa)),!0===nt.svgFilters&&(qc(N,Jc),qc(P,sa),qc(P,oa)),!0===nt.mathMl&&(qc(N,Xc),qc(P,na),qc(P,oa))),t.ADD_TAGS&&(N===B&&(N=Kc(N)),qc(N,t.ADD_TAGS,yt)),t.ADD_ATTR&&(P===$&&(P=Kc(P)),qc(P,t.ADD_ATTR,yt)),t.ADD_URI_SAFE_ATTR&&qc(at,t.ADD_URI_SAFE_ATTR,yt),t.FORBID_CONTENTS&&(ot===rt&&(ot=Kc(ot)),qc(ot,t.FORBID_CONTENTS,yt)),et&&(N["#text"]=!0),G&&qc(N,["html","head","body"]),N.table&&(qc(N,["tbody"]),delete j.tbody),t.TRUSTED_TYPES_POLICY){if("function"!=typeof t.TRUSTED_TYPES_POLICY.createHTML)throw Hc('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof t.TRUSTED_TYPES_POLICY.createScriptURL)throw Hc('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');y=t.TRUSTED_TYPES_POLICY,k=y.createHTML("")}else void 0===y&&(y=function(t,i){if("object"!=typeof t||"function"!=typeof t.createPolicy)return null;let e=null;const s="data-tt-policy-suffix";i&&i.hasAttribute(s)&&(e=i.getAttribute(s));const n="dompurify"+(e?"#"+e:"");try{return t.createPolicy(n,{createHTML:t=>t,createScriptURL:t=>t})}catch(t){return console.warn("TrustedTypes policy "+n+" could not be created."),null}}(p,n)),null!==y&&"string"==typeof k&&(k=y.createHTML(""));Mc&&Mc(t),kt=t}},Dt=qc({},["mi","mo","mn","ms","mtext"]),Et=qc({},["foreignobject","desc","title","annotation-xml"]),At=qc({},["title","style","font","a","script"]),Mt=qc({},Qc);qc(Mt,Jc),qc(Mt,Yc);const Lt=qc({},Xc);qc(Lt,ta);const Ft=function(t){_c(e.removed,{element:t});try{t.parentNode.removeChild(t)}catch(i){t.remove()}},Tt=function(t,i){try{_c(e.removed,{attribute:i.getAttributeNode(t),from:i})}catch(t){_c(e.removed,{attribute:null,from:i})}if(i.removeAttribute(t),"is"===t&&!P[t])if(J||Y)try{Ft(i)}catch(t){}else try{i.setAttribute(t,"")}catch(t){}},Rt=function(t){let i,e;if(Q)t=""+t;else{const i=Pc(t,/^[\r\n\t ]+/);e=i&&i[0]}"application/xhtml+xml"===vt&&pt===ft&&(t=''+t+"");const s=y?y.createHTML(t):t;if(pt===ft)try{i=(new f).parseFromString(s,vt)}catch(t){}if(!i||!i.documentElement){i=x.createDocument(pt,"template",null);try{i.documentElement.innerHTML=gt?k:s}catch(t){}}const n=i.body||i.documentElement;return t&&e&&n.insertBefore(o.createTextNode(e),n.childNodes[0]||null),pt===ft?D.call(i,G?"html":"body")[0]:G?i.documentElement:n},Ot=function(t){return C.call(t.ownerDocument||t,t,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT,null,!1)},It=function(t){return"object"==typeof c?t instanceof c:t&&"object"==typeof t&&"number"==typeof t.nodeType&&"string"==typeof t.nodeName},_t=function(t,i,s){A[t]&&Oc(A[t],(t=>{t.call(e,i,s,kt)}))},Nt=function(t){let i;if(_t("beforeSanitizeElements",t,null),(s=t)instanceof d&&("string"!=typeof s.nodeName||"string"!=typeof s.textContent||"function"!=typeof s.removeChild||!(s.attributes instanceof u)||"function"!=typeof s.removeAttribute||"function"!=typeof s.setAttribute||"string"!=typeof s.namespaceURI||"function"!=typeof s.insertBefore||"function"!=typeof s.hasChildNodes))return Ft(t),!0;var s;const n=yt(t.nodeName);if(_t("uponSanitizeElement",t,{tagName:n,allowedTags:N}),t.hasChildNodes()&&!It(t.firstElementChild)&&(!It(t.content)||!It(t.content.firstElementChild))&&zc(/<[/\w]/g,t.innerHTML)&&zc(/<[/\w]/g,t.textContent))return Ft(t),!0;if(!N[n]||j[n]){if(!j[n]&&Pt(n)){if(W.tagNameCheck instanceof RegExp&&zc(W.tagNameCheck,n))return!1;if(W.tagNameCheck instanceof Function&&W.tagNameCheck(n))return!1}if(et&&!ot[n]){const i=b(t)||t.parentNode,e=v(t)||t.childNodes;if(e&&i)for(let s=e.length-1;s>=0;--s)i.insertBefore(m(e[s],!0),w(t))}return Ft(t),!0}return t instanceof a&&!function(t){let i=b(t);i&&i.tagName||(i={namespaceURI:pt,tagName:"template"});const e=Nc(t.tagName),s=Nc(i.tagName);return!!mt[t.namespaceURI]&&(t.namespaceURI===dt?i.namespaceURI===ft?"svg"===e:i.namespaceURI===ut?"svg"===e&&("annotation-xml"===s||Dt[s]):Boolean(Mt[e]):t.namespaceURI===ut?i.namespaceURI===ft?"math"===e:i.namespaceURI===dt?"math"===e&&Et[s]:Boolean(Lt[e]):t.namespaceURI===ft?!(i.namespaceURI===dt&&!Et[s])&&!(i.namespaceURI===ut&&!Dt[s])&&!Lt[e]&&(At[e]||!Mt[e]):!("application/xhtml+xml"!==vt||!mt[t.namespaceURI]))}(t)?(Ft(t),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!zc(/<\/no(script|embed|frames)/i,t.innerHTML)?(K&&3===t.nodeType&&(i=t.textContent,i=$c(i,M," "),i=$c(i,L," "),i=$c(i,F," "),t.textContent!==i&&(_c(e.removed,{element:t.cloneNode()}),t.textContent=i)),_t("afterSanitizeElements",t,null),!1):(Ft(t),!0)},Bt=function(t,i,e){if(tt&&("id"===i||"name"===i)&&(e in o||e in xt))return!1;if(V&&!z[i]&&zc(T,i));else if(H&&zc(R,i));else if(!P[i]||z[i]){if(!(Pt(t)&&(W.tagNameCheck instanceof RegExp&&zc(W.tagNameCheck,t)||W.tagNameCheck instanceof Function&&W.tagNameCheck(t))&&(W.attributeNameCheck instanceof RegExp&&zc(W.attributeNameCheck,i)||W.attributeNameCheck instanceof Function&&W.attributeNameCheck(i))||"is"===i&&W.allowCustomizedBuiltInElements&&(W.tagNameCheck instanceof RegExp&&zc(W.tagNameCheck,e)||W.tagNameCheck instanceof Function&&W.tagNameCheck(e))))return!1}else if(at[i]);else if(zc(_,$c(e,I,"")));else if("src"!==i&&"xlink:href"!==i&&"href"!==i||"script"===t||0!==Wc(e,"data:")||!ht[t])if(U&&!zc(O,$c(e,I,"")));else if(e)return!1;return!0},Pt=function(t){return t.indexOf("-")>0},$t=function(t){let i,s,n,o;_t("beforeSanitizeAttributes",t,null);const{attributes:r}=t;if(!r)return;const h={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:P};for(o=r.length;o--;){i=r[o];const{name:c,namespaceURI:a}=i;if(s="value"===c?i.value:jc(i.value),n=yt(c),h.attrName=n,h.attrValue=s,h.keepAttr=!0,h.forceKeepAttr=void 0,_t("uponSanitizeAttribute",t,h),s=h.attrValue,h.forceKeepAttr)continue;if(Tt(c,t),!h.keepAttr)continue;if(!q&&zc(/\/>/i,s)){Tt(c,t);continue}K&&(s=$c(s,M," "),s=$c(s,L," "),s=$c(s,F," "));const l=yt(t.nodeName);if(Bt(l,n,s)){if(!it||"id"!==n&&"name"!==n||(Tt(c,t),s="user-content-"+s),y&&"object"==typeof p&&"function"==typeof p.getAttributeType)if(a);else switch(p.getAttributeType(l,n)){case"TrustedHTML":s=y.createHTML(s);break;case"TrustedScriptURL":s=y.createScriptURL(s)}try{a?t.setAttributeNS(a,c,s):t.setAttribute(c,s),Ic(e.removed)}catch(t){}}}_t("afterSanitizeAttributes",t,null)},Wt=function t(i){let e;const s=Ot(i);for(_t("beforeSanitizeShadowDOM",i,null);e=s.nextNode();)_t("uponSanitizeShadowNode",e,null),Nt(e)||(e.content instanceof r&&t(e.content),$t(e));_t("afterSanitizeShadowDOM",i,null)};return e.sanitize=function(t){let i,n,o,h,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(gt=!t,gt&&(t="\x3c!--\x3e"),"string"!=typeof t&&!It(t)){if("function"!=typeof t.toString)throw Hc("toString is not a function");if("string"!=typeof(t=t.toString()))throw Hc("dirty is not a string, aborting")}if(!e.isSupported)return t;if(Z||St(a),e.removed=[],"string"==typeof t&&(st=!1),st){if(t.nodeName){const i=yt(t.nodeName);if(!N[i]||j[i])throw Hc("root node is forbidden and cannot be sanitized in-place")}}else if(t instanceof c)i=Rt("\x3c!----\x3e"),n=i.ownerDocument.importNode(t,!0),1===n.nodeType&&"BODY"===n.nodeName||"HTML"===n.nodeName?i=n:i.appendChild(n);else{if(!J&&!K&&!G&&-1===t.indexOf("<"))return y&&X?y.createHTML(t):t;if(i=Rt(t),!i)return J?null:X?k:""}i&&Q&&Ft(i.firstChild);const l=Ot(st?t:i);for(;o=l.nextNode();)Nt(o)||(o.content instanceof r&&Wt(o.content),$t(o));if(st)return t;if(J){if(Y)for(h=S.call(i.ownerDocument);i.firstChild;)h.appendChild(i.firstChild);else h=i;return(P.shadowroot||P.shadowrootmode)&&(h=E.call(s,h,!0)),h}let u=G?i.outerHTML:i.innerHTML;return G&&N["!doctype"]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&zc(pa,i.ownerDocument.doctype.name)&&(u="\n"+u),K&&(u=$c(u,M," "),u=$c(u,L," "),u=$c(u,F," ")),y&&X?y.createHTML(u):u},e.setConfig=function(t){St(t),Z=!0},e.clearConfig=function(){kt=null,Z=!1},e.isValidAttribute=function(t,i,e){kt||St({});const s=yt(t),n=yt(i);return Bt(s,n,e)},e.addHook=function(t,i){"function"==typeof i&&(A[t]=A[t]||[],_c(A[t],i))},e.removeHook=function(t){if(A[t])return Ic(A[t])},e.removeHooks=function(t){A[t]&&(A[t]=[])},e.removeAllHooks=function(){A={}},e}();const va=wa.sanitize,ba=wa.addHook,ya=wa.removeHook;var ka;function xa(t,i){return ms.isUri(t)?lo(t.scheme,i):uo(t,i+":")}function Ca(t,...i){return i.some((i=>xa(t,i)))}!function(t){t.inMemory="inmemory",t.vscode="vscode",t.internal="private",t.walkThrough="walkThrough",t.walkThroughSnippet="walkThroughSnippet",t.http="http",t.https="https",t.file="file",t.mailto="mailto",t.untitled="untitled",t.data="data",t.command="command",t.vscodeRemote="vscode-remote",t.vscodeRemoteResource="vscode-remote-resource",t.vscodeManagedRemoteResource="vscode-managed-remote-resource",t.vscodeUserData="vscode-userdata",t.vscodeCustomEditor="vscode-custom-editor",t.vscodeNotebookCell="vscode-notebook-cell",t.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",t.vscodeNotebookCellOutput="vscode-notebook-cell-output",t.vscodeInteractiveInput="vscode-interactive-input",t.vscodeSettings="vscode-settings",t.vscodeWorkspaceTrust="vscode-workspace-trust",t.vscodeTerminal="vscode-terminal",t.vscodeChatSesssion="vscode-chat-editor",t.webviewPanel="webview-panel",t.vscodeWebview="vscode-webview",t.extension="extension",t.vscodeFileResource="vscode-file",t.tmp="tmp",t.vsls="vsls",t.vscodeSourceControl="vscode-scm"}(ka||(ka={}));const Sa=new class{constructor(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null,this._remoteResourcesPath=`/${ka.vscodeRemoteResource}`}setPreferredWebSchema(t){this._preferredWebSchema=t}rewrite(t){if(this._delegate)try{return this._delegate(t)}catch(i){return Bi(i),t}const i=t.authority;let e=this._hosts[i];e&&-1!==e.indexOf(":")&&-1===e.indexOf("[")&&(e=`[${e}]`);const s=this._ports[i],n=this._connectionTokens[i];let o=`path=${encodeURIComponent(t.path)}`;return"string"==typeof n&&(o+=`&tkn=${encodeURIComponent(n)}`),ms.from({scheme:Et?this._preferredWebSchema:ka.vscodeRemoteResource,authority:`${e}:${s}`,path:this._remoteResourcesPath,query:o})}};class Da{uriToBrowserUri(t){return t.scheme===ka.vscodeRemote?Sa.rewrite(t):t.scheme!==ka.file||!Dt&&At!==`${ka.vscodeFileResource}://${Da.FALLBACK_AUTHORITY}`?t:t.with({scheme:ka.vscodeFileResource,authority:t.authority||Da.FALLBACK_AUTHORITY,query:null,fragment:null})}}Da.FALLBACK_AUTHORITY="vscode-app";const Ea=new Da;var Aa;function Ma(t){return La(t,0)}function La(t,i){switch(typeof t){case"object":return null===t?Fa(349,i):Array.isArray(t)?(e=t,s=Fa(104579,s=i),e.reduce(((t,i)=>La(i,t)),s)):function(t,i){return i=Fa(181387,i),Object.keys(t).sort().reduce(((i,e)=>(i=Ta(e,i),La(t[e],i))),i)}(t,i);case"string":return Ta(t,i);case"boolean":return function(t,i){return Fa(t?433:863,i)}(t,i);case"number":return Fa(t,i);case"undefined":return Fa(937,i);default:return Fa(617,i)}var e,s}function Fa(t,i){return(i<<5)-i+t|0}function Ta(t,i){i=Fa(149417,i);for(let e=0,s=t.length;e>>s)>>>0}function Oa(t,i=0,e=t.byteLength,s=0){for(let n=0;nt.toString(16).padStart(2,"0"))).join(""):function(t,i,e="0"){for(;t.length>>0).toString(16),i/4)}!function(t){const i=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);t.CoopAndCoep=Object.freeze(i.get("3"));const e="vscode-coi";t.getHeadersFromQuery=function(t){let s;"string"==typeof t?s=new URL(t).searchParams:t instanceof URL?s=t.searchParams:ms.isUri(t)&&(s=new URL(t.toString(!0)).searchParams);const n=null==s?void 0:s.get(e);if(n)return i.get(n)},t.addSearchParam=function(t,i,s){if(!globalThis.crossOriginIsolated)return;const n=i&&s?"3":s?"2":"1";t instanceof URLSearchParams?t.set(e,n):t[e]=n}}(Aa||(Aa={}));class _a{constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(t){const i=t.length;if(0===i)return;const e=this._buff;let s,n,o=this._buffLen,r=this._leftoverHighSurrogate;for(0!==r?(s=r,n=-1,r=0):(s=t.charCodeAt(0),n=0);;){let h=s;if(go(s)){if(!(n+1>>6,t[i++]=128|(63&e)>>>0):e<65536?(t[i++]=224|(61440&e)>>>12,t[i++]=128|(4032&e)>>>6,t[i++]=128|(63&e)>>>0):(t[i++]=240|(1835008&e)>>>18,t[i++]=128|(258048&e)>>>12,t[i++]=128|(4032&e)>>>6,t[i++]=128|(63&e)>>>0),i>=64&&(this._step(),i-=64,this._totalLen+=64,t[0]=t[64],t[1]=t[65],t[2]=t[66]),i}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),Ia(this._h0)+Ia(this._h1)+Ia(this._h2)+Ia(this._h3)+Ia(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,Oa(this._buff,this._buffLen),this._buffLen>56&&(this._step(),Oa(this._buff));const t=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(t/4294967296),!1),this._buffDV.setUint32(60,t%4294967296,!1),this._step()}_step(){const t=_a._bigBlock32,i=this._buffDV;for(let e=0;e<64;e+=4)t.setUint32(e,i.getUint32(e,!1),!1);for(let i=64;i<320;i+=4)t.setUint32(i,Ra(t.getUint32(i-12,!1)^t.getUint32(i-32,!1)^t.getUint32(i-56,!1)^t.getUint32(i-64,!1),1),!1);let e,s,n,o=this._h0,r=this._h1,h=this._h2,c=this._h3,a=this._h4;for(let i=0;i<80;i++)i<20?(e=r&h|~r&c,s=1518500249):i<40?(e=r^h^c,s=1859775393):i<60?(e=r&h|r&c|h&c,s=2400959708):(e=r^h^c,s=3395469782),n=Ra(o,5)+e+a+s+t.getUint32(4*i,!1)&4294967295,a=c,c=h,h=Ra(r,30),r=o,o=n;this._h0=this._h0+o&4294967295,this._h1=this._h1+r&4294967295,this._h2=this._h2+h&4294967295,this._h3=this._h3+c&4294967295,this._h4=this._h4+a&4294967295}}_a._bigBlock32=new DataView(new ArrayBuffer(320));const{getWindow:Na,getWindows:Ba,getWindowsCount:Pa,getWindowId:$a,onDidRegisterWindow:Wa,onWillUnregisterWindow:ja}=function(){const t=new Map;var i;"number"!=typeof(i=$n).vscodeWindowId&&Object.defineProperty(i,"vscodeWindowId",{get:()=>1}),t.set($n.vscodeWindowId,{window:$n,disposables:new Xi});const e=new de,s=new de,n=new de;return{onDidRegisterWindow:e.event,onWillUnregisterWindow:n.event,onDidUnregisterWindow:s.event,registerWindow(i){if(t.has(i.vscodeWindowId))return te.None;const o=new Xi,r={window:i,disposables:o.add(new Xi)};return t.set(i.vscodeWindowId,r),o.add(Yi((()=>{t.delete(i.vscodeWindowId),s.fire(i)}))),o.add(Va(i,Ll.BEFORE_UNLOAD,(()=>{n.fire(i)}))),e.fire(r),o},getWindows:()=>t.values(),getWindowsCount:()=>t.size,getWindowId:t=>t.vscodeWindowId,hasWindow:i=>t.has(i),getWindowById:i=>t.get(i),getWindow(t){var i;return(null===(i=null==t?void 0:t.ownerDocument)||void 0===i?void 0:i.defaultView)?t.ownerDocument.defaultView.window:(null==t?void 0:t.view)?t.view.window:$n},getDocument:t=>Na(t).document}}();function za(t){for(;t.firstChild;)t.firstChild.remove()}class Ha{constructor(t,i,e,s){this._node=t,this._type=i,this._handler=e,this._options=s||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}}function Va(t,i,e,s){return new Ha(t,i,e,s)}function Ua(t,i){return function(e){return i(new tc(t,e))}}const qa=function(t,i,e,s){let n=e;return"click"===i||"mousedown"===i?n=Ua(Na(t),e):"keydown"!==i&&"keypress"!==i&&"keyup"!==i||(n=function(t){return function(i){return t(new Qh(i))}}(e)),Va(t,i,n,s)};function Ka(t,i,e){return mc(t,i,e)}class Ga extends wc{constructor(t,i){super(t,i)}}let Za,Qa;class Ja extends fc{cancelAndSet(t,i,e){return super.cancelAndSet(t,i,e)}}class Ya{constructor(t,i=0){this._runner=t,this.priority=i,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(t){Bi(t)}}static sort(t,i){return i.priority-t.priority}}function Xa(t){return Na(t).getComputedStyle(t,null)}function tl(t,i){const e=Na(t),s=e.document;if(t!==s.body)return new el(t.clientWidth,t.clientHeight);if(Mt&&(null==e?void 0:e.visualViewport))return new el(e.visualViewport.width,e.visualViewport.height);if((null==e?void 0:e.innerWidth)&&e.innerHeight)return new el(e.innerWidth,e.innerHeight);if(s.body&&s.body.clientWidth&&s.body.clientHeight)return new el(s.body.clientWidth,s.body.clientHeight);if(s.documentElement&&s.documentElement.clientWidth&&s.documentElement.clientHeight)return new el(s.documentElement.clientWidth,s.documentElement.clientHeight);if(i)return tl(i);throw new Error("Unable to figure out browser width and height")}!function(){const t=new Map,i=new Map,e=new Map,s=new Map;Qa=(n,o,r=0)=>{const h=$a(n),c=new Ya(o,r);let a=t.get(h);return a||(a=[],t.set(h,a)),a.push(c),e.get(h)||(e.set(h,!0),n.requestAnimationFrame((()=>(n=>{var o;e.set(n,!1);const r=null!==(o=t.get(n))&&void 0!==o?o:[];for(i.set(n,r),t.set(n,[]),s.set(n,!0);r.length>0;)r.sort(Ya.sort),r.shift().execute();s.set(n,!1)})(h)))),c},Za=(t,e,n)=>{const o=$a(t);if(s.get(o)){const t=new Ya(e,n);let s=i.get(o);return s||(s=[],i.set(o,s)),s.push(t),t}return Qa(t,e,n)}}();class il{static convertToPixels(t,i){return parseFloat(i)||0}static getDimension(t,i,e){const s=Xa(t),n=s?s.getPropertyValue(i):"0";return il.convertToPixels(t,n)}static getBorderLeftWidth(t){return il.getDimension(t,"border-left-width","borderLeftWidth")}static getBorderRightWidth(t){return il.getDimension(t,"border-right-width","borderRightWidth")}static getBorderTopWidth(t){return il.getDimension(t,"border-top-width","borderTopWidth")}static getBorderBottomWidth(t){return il.getDimension(t,"border-bottom-width","borderBottomWidth")}static getPaddingLeft(t){return il.getDimension(t,"padding-left","paddingLeft")}static getPaddingRight(t){return il.getDimension(t,"padding-right","paddingRight")}static getPaddingTop(t){return il.getDimension(t,"padding-top","paddingTop")}static getPaddingBottom(t){return il.getDimension(t,"padding-bottom","paddingBottom")}static getMarginLeft(t){return il.getDimension(t,"margin-left","marginLeft")}static getMarginTop(t){return il.getDimension(t,"margin-top","marginTop")}static getMarginRight(t){return il.getDimension(t,"margin-right","marginRight")}static getMarginBottom(t){return il.getDimension(t,"margin-bottom","marginBottom")}}class el{constructor(t,i){this.width=t,this.height=i}with(t=this.width,i=this.height){return t!==this.width||i!==this.height?new el(t,i):this}static is(t){return"object"==typeof t&&"number"==typeof t.height&&"number"==typeof t.width}static lift(t){return t instanceof el?t:new el(t.width,t.height)}static equals(t,i){return t===i||!(!t||!i)&&t.width===i.width&&t.height===i.height}}function sl(t){let i=t.offsetParent,e=t.offsetTop,s=t.offsetLeft;for(;null!==(t=t.parentNode)&&t!==t.ownerDocument.body&&t!==t.ownerDocument.documentElement;){e-=t.scrollTop;const n=ul(t)?null:Xa(t);n&&(s-="rtl"!==n.direction?t.scrollLeft:-t.scrollLeft),t===i&&(s+=il.getBorderLeftWidth(t),e+=il.getBorderTopWidth(t),e+=t.offsetTop,s+=t.offsetLeft,i=t.offsetParent)}return{left:s,top:e}}function nl(t){const i=t.getBoundingClientRect(),e=Na(t);return{left:i.left+e.scrollX,top:i.top+e.scrollY,width:i.width,height:i.height}}function ol(t){const i=il.getMarginLeft(t)+il.getMarginRight(t);return t.offsetWidth+i}function rl(t){const i=il.getBorderLeftWidth(t)+il.getBorderRightWidth(t),e=il.getPaddingLeft(t)+il.getPaddingRight(t);return t.offsetWidth-i-e}function hl(t){const i=il.getBorderTopWidth(t)+il.getBorderBottomWidth(t),e=il.getPaddingTop(t)+il.getPaddingBottom(t);return t.offsetHeight-i-e}function cl(t){const i=il.getMarginTop(t)+il.getMarginBottom(t);return t.offsetHeight+i}function al(t,i){return Boolean(null==i?void 0:i.contains(t))}function ll(t,i,e){return!!function(t,i,e){for(;t&&t.nodeType===t.ELEMENT_NODE;){if(t.classList.contains(i))return t;if(e)if("string"==typeof e){if(t.classList.contains(e))return null}else if(t===e)return null;t=t.parentNode}return null}(t,i,e)}function ul(t){return t&&!!t.host&&!!t.mode}function dl(t){return!!fl(t)}function fl(t){for(var i;t.parentNode;){if(t===(null===(i=t.ownerDocument)||void 0===i?void 0:i.body))return null;t=t.parentNode}return ul(t)?t:null}function pl(){let t=ml().activeElement;for(;null==t?void 0:t.shadowRoot;)t=t.shadowRoot.activeElement;return t}function gl(t){return t.ownerDocument.activeElement===t}function ml(){var t;return Pa()<=1?document:null!==(t=Array.from(Ba()).map((({window:t})=>t.document)).find((t=>t.hasFocus())))&&void 0!==t?t:document}el.None=new el(0,0);const wl=new Map;function vl(t=$n.document.head,i,e){const s=document.createElement("style");if(s.type="text/css",s.media="screen",null==i||i(s),t.appendChild(s),e&&e.add(Yi((()=>t.removeChild(s)))),t===$n.document.head){const t=new Set;wl.set(s,t);for(const{window:i,disposables:n}of Ba()){if(i===$n)continue;const o=n.add(bl(s,t,i));null==e||e.add(o)}}return s}function bl(t,i,e){var s,n;const o=new Xi,r=t.cloneNode(!0);e.document.head.appendChild(r),o.add(Yi((()=>e.document.head.removeChild(r))));for(const i of Cl(t))null===(s=r.sheet)||void 0===s||s.insertRule(i.cssText,null===(n=r.sheet)||void 0===n?void 0:n.cssRules.length);return o.add(yl.observe(t,o,{childList:!0})((()=>{r.textContent=t.textContent}))),i.add(r),o.add(Yi((()=>i.delete(r)))),o}const yl=new class{constructor(){this.mutationObservers=new Map}observe(t,i,e){let s=this.mutationObservers.get(t);s||(s=new Map,this.mutationObservers.set(t,s));const n=Ma(e);let o=s.get(n);if(o)o.users+=1;else{const r=new de,h=new MutationObserver((t=>r.fire(t)));h.observe(t,e);const c=o={users:1,observer:h,onDidMutate:r.event};i.add(Yi((()=>{c.users-=1,0===c.users&&(r.dispose(),h.disconnect(),null==s||s.delete(n),0===(null==s?void 0:s.size)&&this.mutationObservers.delete(t))}))),s.set(n,o)}return o.onDidMutate}};let kl=null;function xl(){return kl||(kl=vl()),kl}function Cl(t){var i,e;return(null===(i=null==t?void 0:t.sheet)||void 0===i?void 0:i.rules)?t.sheet.rules:(null===(e=null==t?void 0:t.sheet)||void 0===e?void 0:e.cssRules)?t.sheet.cssRules:[]}function Sl(t,i,e=xl()){var s,n;if(e&&i){null===(s=e.sheet)||void 0===s||s.insertRule(`${t} {${i}}`,0);for(const s of null!==(n=wl.get(e))&&void 0!==n?n:[])Sl(t,i,s)}}function Dl(t,i=xl()){var e,s;if(!i)return;const n=Cl(i),o=[];for(let i=0;i=0;t--)null===(e=i.sheet)||void 0===e||e.deleteRule(o[t]);for(const e of null!==(s=wl.get(i))&&void 0!==s?s:[])Dl(t,e)}function El(t){return"string"==typeof t.selectorText}function Al(t){return t instanceof MouseEvent||t instanceof Na(t).MouseEvent}function Ml(t){return t instanceof KeyboardEvent||t instanceof Na(t).KeyboardEvent}const Ll={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",BEFORE_UNLOAD:"beforeunload",UNLOAD:"unload",PAGE_SHOW:"pageshow",PAGE_HIDE:"pagehide",PASTE:"paste",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_CHANGE:"fullscreenchange",WK_FULLSCREEN_CHANGE:"webkitfullscreenchange",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:qo?"webkitAnimationStart":"animationstart",ANIMATION_END:qo?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:qo?"webkitAnimationIteration":"animationiteration"},Fl=(t,i)=>(t.preventDefault(),i&&t.stopPropagation(),t);class Tl extends te{static hasFocusWithin(t){if(t instanceof HTMLElement){const i=fl(t);return al(i?i.activeElement:t.ownerDocument.activeElement,t)}return al(t.document.activeElement,t.document)}constructor(t){super(),this._onDidFocus=this._register(new de),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new de),this.onDidBlur=this._onDidBlur.event;let i=Tl.hasFocusWithin(t),e=!1;const s=()=>{e=!1,i||(i=!0,this._onDidFocus.fire())},n=()=>{i&&(e=!0,(t instanceof HTMLElement?Na(t):t).setTimeout((()=>{e&&(e=!1,i=!1,this._onDidBlur.fire())}),0))};this._refreshStateHandler=()=>{Tl.hasFocusWithin(t)!==i&&(i?n():s())},this._register(Va(t,Ll.FOCUS,s,!0)),this._register(Va(t,Ll.BLUR,n,!0)),t instanceof HTMLElement&&(this._register(Va(t,Ll.FOCUS_IN,(()=>this._refreshStateHandler()))),this._register(Va(t,Ll.FOCUS_OUT,(()=>this._refreshStateHandler()))))}}function Rl(t){return new Tl(t)}function Ol(t,...i){if(t.append(...i),1===i.length&&"string"!=typeof i[0])return i[0]}function Il(t,i){return t.insertBefore(i,t.firstChild),i}function _l(t,...i){t.innerText="",Ol(t,...i)}const Nl=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;var Bl;function Pl(t,i,e,...s){const n=Nl.exec(i);if(!n)throw new Error("Bad use of emmet");const o=n[1]||"div";let r;return r=t!==Bl.HTML?document.createElementNS(t,o):document.createElement(o),n[3]&&(r.id=n[3]),n[4]&&(r.className=n[4].replace(/\./g," ").trim()),e&&Object.entries(e).forEach((([t,i])=>{void 0!==i&&(/^on\w+$/.test(t)?r[t]=i:"selected"===t?i&&r.setAttribute(t,"true"):r.setAttribute(t,i))})),r.append(...s),r}function $l(t,i,...e){return Pl(Bl.HTML,t,i,...e)}function Wl(...t){for(const i of t)i.style.display="",i.removeAttribute("aria-hidden")}function jl(...t){for(const i of t)i.style.display="none",i.setAttribute("aria-hidden","true")}function zl(t,i){return Math.max(1,Math.floor(t.devicePixelRatio*i))/t.devicePixelRatio}function Hl(t){$n.open(t,"_blank","noopener")}function Vl(t){return t?`url('${Ea.uriToBrowserUri(t).toString(!0).replace(/'/g,"%27")}')`:"url('')"}function Ul(t){return`'${t.replace(/'/g,"%27")}'`}function ql(t,i){if(void 0!==t){const e=t.match(/^\s*var\((.+)\)$/);if(e){const t=e[1].split(",",2);return 2===t.length&&(i=ql(t[1].trim(),i)),`var(${t[0]}, ${i})`}return t}return i}!function(t){t.HTML="http://www.w3.org/1999/xhtml",t.SVG="http://www.w3.org/2000/svg"}(Bl||(Bl={})),$l.SVG=function(t,i,...e){return Pl(Bl.SVG,t,i,...e)},Sa.setPreferredWebSchema(/^https:/.test($n.location.href)?"https":"http");const Kl=Object.freeze(["a","abbr","b","bdo","blockquote","br","caption","cite","code","col","colgroup","dd","del","details","dfn","div","dl","dt","em","figcaption","figure","h1","h2","h3","h4","h5","h6","hr","i","img","ins","kbd","label","li","mark","ol","p","pre","q","rp","rt","ruby","samp","small","small","source","span","strike","strong","sub","summary","sup","table","tbody","td","tfoot","th","thead","time","tr","tt","u","ul","var","video","wbr"]);Object.freeze({ALLOWED_TAGS:["a","button","blockquote","code","div","h1","h2","h3","h4","h5","h6","hr","input","label","li","p","pre","select","small","span","strong","textarea","ul","ol"],ALLOWED_ATTR:["href","data-href","data-command","target","title","name","src","alt","class","id","role","tabindex","style","data-code","width","height","align","x-dispatch","required","checked","placeholder","type","start"],RETURN_DOM:!1,RETURN_DOM_FRAGMENT:!1,RETURN_TRUSTED_TYPE:!0});class Gl extends de{constructor(){super(),this._subscriptions=new Xi,this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},this._subscriptions.add(he.runAndSubscribe(Wa,(({window:t,disposables:i})=>this.registerListeners(t,i)),{window:$n,disposables:this._subscriptions}))}registerListeners(t,i){i.add(Va(t,"keydown",(t=>{if(t.defaultPrevented)return;const i=new Qh(t);if(6!==i.keyCode||!t.repeat){if(t.altKey&&!this._keyStatus.altKey)this._keyStatus.lastKeyPressed="alt";else if(t.ctrlKey&&!this._keyStatus.ctrlKey)this._keyStatus.lastKeyPressed="ctrl";else if(t.metaKey&&!this._keyStatus.metaKey)this._keyStatus.lastKeyPressed="meta";else if(t.shiftKey&&!this._keyStatus.shiftKey)this._keyStatus.lastKeyPressed="shift";else{if(6===i.keyCode)return;this._keyStatus.lastKeyPressed=void 0}this._keyStatus.altKey=t.altKey,this._keyStatus.ctrlKey=t.ctrlKey,this._keyStatus.metaKey=t.metaKey,this._keyStatus.shiftKey=t.shiftKey,this._keyStatus.lastKeyPressed&&(this._keyStatus.event=t,this.fire(this._keyStatus))}}),!0)),i.add(Va(t,"keyup",(t=>{t.defaultPrevented||(this._keyStatus.lastKeyReleased=!t.altKey&&this._keyStatus.altKey?"alt":!t.ctrlKey&&this._keyStatus.ctrlKey?"ctrl":!t.metaKey&&this._keyStatus.metaKey?"meta":!t.shiftKey&&this._keyStatus.shiftKey?"shift":void 0,this._keyStatus.lastKeyPressed!==this._keyStatus.lastKeyReleased&&(this._keyStatus.lastKeyPressed=void 0),this._keyStatus.altKey=t.altKey,this._keyStatus.ctrlKey=t.ctrlKey,this._keyStatus.metaKey=t.metaKey,this._keyStatus.shiftKey=t.shiftKey,this._keyStatus.lastKeyReleased&&(this._keyStatus.event=t,this.fire(this._keyStatus)))}),!0)),i.add(Va(t.document.body,"mousedown",(()=>{this._keyStatus.lastKeyPressed=void 0}),!0)),i.add(Va(t.document.body,"mouseup",(()=>{this._keyStatus.lastKeyPressed=void 0}),!0)),i.add(Va(t.document.body,"mousemove",(t=>{t.buttons&&(this._keyStatus.lastKeyPressed=void 0)}),!0)),i.add(Va(t,"blur",(()=>{this.resetKeyStatus()})))}get keyStatus(){return this._keyStatus}resetKeyStatus(){this.doResetKeyStatus(),this.fire(this._keyStatus)}doResetKeyStatus(){this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1}}static getInstance(){return Gl.instance||(Gl.instance=new Gl),Gl.instance}dispose(){super.dispose(),this._subscriptions.dispose()}}class Zl extends te{constructor(t,i){super(),this.element=t,this.callbacks=i,this.counter=0,this.dragStartTime=0,this.registerListeners()}registerListeners(){this.callbacks.onDragStart&&this._register(Va(this.element,Ll.DRAG_START,(t=>{var i,e;null===(e=(i=this.callbacks).onDragStart)||void 0===e||e.call(i,t)}))),this.callbacks.onDrag&&this._register(Va(this.element,Ll.DRAG,(t=>{var i,e;null===(e=(i=this.callbacks).onDrag)||void 0===e||e.call(i,t)}))),this._register(Va(this.element,Ll.DRAG_ENTER,(t=>{var i,e;this.counter++,this.dragStartTime=t.timeStamp,null===(e=(i=this.callbacks).onDragEnter)||void 0===e||e.call(i,t)}))),this._register(Va(this.element,Ll.DRAG_OVER,(t=>{var i,e;t.preventDefault(),null===(e=(i=this.callbacks).onDragOver)||void 0===e||e.call(i,t,t.timeStamp-this.dragStartTime)}))),this._register(Va(this.element,Ll.DRAG_LEAVE,(t=>{var i,e;this.counter--,0===this.counter&&(this.dragStartTime=0,null===(e=(i=this.callbacks).onDragLeave)||void 0===e||e.call(i,t))}))),this._register(Va(this.element,Ll.DRAG_END,(t=>{var i,e;this.counter=0,this.dragStartTime=0,null===(e=(i=this.callbacks).onDragEnd)||void 0===e||e.call(i,t)}))),this._register(Va(this.element,Ll.DROP,(t=>{var i,e;this.counter=0,this.dragStartTime=0,null===(e=(i=this.callbacks).onDrop)||void 0===e||e.call(i,t)})))}}const Ql=/(?[\w\-]+)?(?:#(?[\w\-]+))?(?(?:\.(?:[\w\-]+))*)(?:@(?(?:[\w\_])+))?/;function Jl(t,...i){let e,s;Array.isArray(i[0])?(e={},s=i[0]):(e=i[0]||{},s=i[1]);const n=Ql.exec(t);if(!n||!n.groups)throw new Error("Bad use of h");const o=document.createElement(n.groups.tag||"div");n.groups.id&&(o.id=n.groups.id);const r=[];if(n.groups.class)for(const t of n.groups.class.split("."))""!==t&&r.push(t);if(void 0!==e.className)for(const t of e.className.split("."))""!==t&&r.push(t);r.length>0&&(o.className=r.join(" "));const h={};if(n.groups.name&&(h[n.groups.name]=o),s)for(const t of s)t instanceof HTMLElement?o.appendChild(t):"string"==typeof t?o.append(t):"root"in t&&(Object.assign(h,t),o.appendChild(t.root));for(const[t,i]of Object.entries(e))if("className"!==t)if("style"===t)for(const[t,e]of Object.entries(i))o.style.setProperty(Yl(t),"number"==typeof e?e+"px":""+e);else"tabIndex"===t?o.tabIndex=i:o.setAttribute(Yl(t),i.toString());return h.root=o,h}function Yl(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}class Xl{constructor(t){this.id=t.id,this.precondition=t.precondition,this._kbOpts=t.kbOpts,this._menuOpts=t.menuOpts,this.metadata=t.metadata}register(){if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){const t=Array.isArray(this._kbOpts)?this._kbOpts:[this._kbOpts];for(const i of t){let t=i.kbExpr;this.precondition&&(t=t?zr.and(t,this.precondition):this.precondition),Ah.registerKeybindingRule({id:this.id,weight:i.weight,args:i.args,when:t,primary:i.primary,secondary:i.secondary,win:i.win,linux:i.linux,mac:i.mac})}}Dr.registerCommand({id:this.id,handler:(t,i)=>this.runCommand(t,i),metadata:this.metadata})}_registerMenuItem(t){_h.appendMenuItem(t.menuId,{group:t.group,command:{id:this.id,title:t.title,icon:t.icon,precondition:this.precondition},when:t.when,order:t.order})}}class tu extends Xl{constructor(){super(...arguments),this._implementations=[]}addImplementation(t,i,e,s){return this._implementations.push({priority:t,name:i,implementation:e,when:s}),this._implementations.sort(((t,i)=>i.priority-t.priority)),{dispose:()=>{for(let t=0;t{if(t.get(ah).contextMatchesRules(null!=e?e:void 0))return s(t,o,i)}))}runCommand(t,i){return eu.runEditorCommand(t,i,this.precondition,((t,i,e)=>this.runEditorCommand(t,i,e)))}}class su extends eu{static convertOptions(t){let i;function e(i){return i.menuId||(i.menuId=Rh.EditorContext),i.title||(i.title=t.label),i.when=zr.and(t.precondition,i.when),i}return i=Array.isArray(t.menuOpts)?t.menuOpts:t.menuOpts?[t.menuOpts]:[],Array.isArray(t.contextMenuOpts)?i.push(...t.contextMenuOpts.map(e)):t.contextMenuOpts&&i.push(e(t.contextMenuOpts)),t.menuOpts=i,t}constructor(t){super(su.convertOptions(t)),this.label=t.label,this.alias=t.alias}runEditorCommand(t,i,e){return this.reportTelemetry(t,i),this.run(t,i,e||{})}reportTelemetry(t,i){t.get(Wh).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}}class nu extends su{constructor(){super(...arguments),this._implementations=[]}addImplementation(t,i){return this._implementations.push([t,i]),this._implementations.sort(((t,i)=>i[0]-t[0])),{dispose:()=>{for(let t=0;t{var e,n;const o=t.get(ah),r=t.get(jh);if(o.contextMatchesRules(null!==(e=this.desc.precondition)&&void 0!==e?e:void 0))return this.runEditorCommand(t,s,...i);r.debug("[EditorAction2] NOT running command because its precondition is FALSE",this.desc.id,null===(n=this.desc.precondition)||void 0===n?void 0:n.serialize())}))}}function ru(t,i){Dr.registerCommand(t,(function(t,...e){const s=t.get(ur),[n,o]=e;q(ms.isUri(n)),q(As.isIPosition(o));const r=t.get(pr).getModel(n);if(r){const t=As.lift(o);return s.invokeFunction(i,r,t,...e.slice(2))}return t.get(gr).createModelReference(n).then((t=>new Promise(((n,r)=>{try{n(s.invokeFunction(i,t.object.textEditorModel,As.lift(o),e.slice(2)))}catch(t){r(t)}})).finally((()=>{t.dispose()}))))}))}function hu(t){return du.INSTANCE.registerEditorCommand(t),t}function cu(t){const i=new t;return du.INSTANCE.registerEditorAction(i),i}function au(t){return du.INSTANCE.registerEditorAction(t),t}function lu(t,i,e){du.INSTANCE.registerEditorContribution(t,i,e)}var uu;!function(t){t.getEditorCommand=function(t){return du.INSTANCE.getEditorCommand(t)},t.getEditorActions=function(){return du.INSTANCE.getEditorActions()},t.getEditorContributions=function(){return du.INSTANCE.getEditorContributions()},t.getSomeEditorContributions=function(t){return du.INSTANCE.getEditorContributions().filter((i=>t.indexOf(i.id)>=0))},t.getDiffEditorContributions=function(){return du.INSTANCE.getDiffEditorContributions()}}(uu||(uu={}));class du{constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(t,i,e){this.editorContributions.push({id:t,ctor:i,instantiation:e})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(t){t.register(),this.editorActions.push(t)}getEditorActions(){return this.editorActions}registerEditorCommand(t){t.register(),this.editorCommands[t.id]=t}getEditorCommand(t){return this.editorCommands[t]||null}}function fu(t){return t.register(),t}du.INSTANCE=new du,Dh.add("editor.contributions",du.INSTANCE);const pu=fu(new tu({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:Rh.MenubarEditMenu,group:"1_do",title:ot(0,"&&Undo"),order:1},{menuId:Rh.CommandPalette,group:"",title:ot(0,"Undo"),order:1}]}));fu(new iu(pu,{id:"default:undo",precondition:void 0}));const gu=fu(new tu({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:Rh.MenubarEditMenu,group:"1_do",title:ot(0,"&&Redo"),order:2},{menuId:Rh.CommandPalette,group:"",title:ot(0,"Redo"),order:1}]}));fu(new iu(gu,{id:"default:redo",precondition:void 0}));const mu=fu(new tu({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:Rh.MenubarSelectionMenu,group:"1_basic",title:ot(0,"&&Select All"),order:1},{menuId:Rh.CommandPalette,group:"",title:ot(0,"Select All"),order:1}]}));let wu=!1;function vu(t){Et&&(wu||(wu=!0,console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq")),console.warn(t.message))}class bu{constructor(t,i,e,s){this.vsWorker=t,this.req=i,this.method=e,this.args=s,this.type=0}}class yu{constructor(t,i,e,s){this.vsWorker=t,this.seq=i,this.res=e,this.err=s,this.type=1}}class ku{constructor(t,i,e,s){this.vsWorker=t,this.req=i,this.eventName=e,this.arg=s,this.type=2}}class xu{constructor(t,i,e){this.vsWorker=t,this.req=i,this.event=e,this.type=3}}class Cu{constructor(t,i){this.vsWorker=t,this.req=i,this.type=4}}class Su{constructor(t){this._workerId=-1,this._handler=t,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(t){this._workerId=t}sendMessage(t,i){const e=String(++this._lastSentReq);return new Promise(((s,n)=>{this._pendingReplies[e]={resolve:s,reject:n},this._send(new bu(this._workerId,e,t,i))}))}listen(t,i){let e=null;const s=new de({onWillAddFirstListener:()=>{e=String(++this._lastSentReq),this._pendingEmitters.set(e,s),this._send(new ku(this._workerId,e,t,i))},onDidRemoveLastListener:()=>{this._pendingEmitters.delete(e),this._send(new Cu(this._workerId,e)),e=null}});return s.event}handleMessage(t){t&&t.vsWorker&&(-1!==this._workerId&&t.vsWorker!==this._workerId||this._handleMessage(t))}_handleMessage(t){switch(t.type){case 1:return this._handleReplyMessage(t);case 0:return this._handleRequestMessage(t);case 2:return this._handleSubscribeEventMessage(t);case 3:return this._handleEventMessage(t);case 4:return this._handleUnsubscribeEventMessage(t)}}_handleReplyMessage(t){if(!this._pendingReplies[t.seq])return void console.warn("Got reply to unknown seq");const i=this._pendingReplies[t.seq];if(delete this._pendingReplies[t.seq],t.err){let e=t.err;return t.err.$isError&&(e=new Error,e.name=t.err.name,e.message=t.err.message,e.stack=t.err.stack),void i.reject(e)}i.resolve(t.res)}_handleRequestMessage(t){const i=t.req;this._handler.handleMessage(t.method,t.args).then((t=>{this._send(new yu(this._workerId,i,t,void 0))}),(t=>{t.detail instanceof Error&&(t.detail=$i(t.detail)),this._send(new yu(this._workerId,i,void 0,$i(t)))}))}_handleSubscribeEventMessage(t){const i=t.req,e=this._handler.handleEvent(t.eventName,t.arg)((t=>{this._send(new xu(this._workerId,i,t))}));this._pendingEvents.set(i,e)}_handleEventMessage(t){this._pendingEmitters.has(t.req)?this._pendingEmitters.get(t.req).fire(t.event):console.warn("Got event for unknown req")}_handleUnsubscribeEventMessage(t){this._pendingEvents.has(t.req)?(this._pendingEvents.get(t.req).dispose(),this._pendingEvents.delete(t.req)):console.warn("Got unsubscribe for unknown req")}_send(t){const i=[];if(0===t.type)for(let e=0;e{this._protocol.handleMessage(t)}),(t=>{null==s||s(t)}))),this._protocol=new Su({sendMessage:(t,i)=>{this._worker.postMessage(t,i)},handleMessage:(t,i)=>{if("function"!=typeof e[t])return Promise.reject(new Error("Missing method "+t+" on main thread host."));try{return Promise.resolve(e[t].apply(e,i))}catch(t){return Promise.reject(t)}},handleEvent:(t,i)=>{if(Au(t)){const s=e[t].call(e,i);if("function"!=typeof s)throw new Error(`Missing dynamic event ${t} on main thread host.`);return s}if(Eu(t)){const i=e[t];if("function"!=typeof i)throw new Error(`Missing event ${t} on main thread host.`);return i}throw new Error(`Malformed event name ${t}`)}}),this._protocol.setWorkerId(this._worker.getId());let n=null;const o=globalThis.require;void 0!==o&&"function"==typeof o.getConfig?n=o.getConfig():void 0!==globalThis.requirejs&&(n=globalThis.requirejs.s.contexts._.config);const r=et(e);this._onModuleLoaded=this._protocol.sendMessage("$initialize",[this._worker.getId(),JSON.parse(JSON.stringify(n)),i,r]);const h=(t,i)=>this._request(t,i),c=(t,i)=>this._protocol.listen(t,i);this._lazyProxy=new Promise(((t,e)=>{s=e,this._onModuleLoaded.then((i=>{t(function(t,i,e){const s=t=>function(){const e=Array.prototype.slice.call(arguments,0);return i(t,e)},n=t=>function(i){return e(t,i)},o={};for(const i of t)o[i]=Au(i)?n(i):Eu(i)?e(i,void 0):s(i);return o}(i,h,c))}),(t=>{e(t),this._onError("Worker failed to load "+i,t)}))}))}getProxyObject(){return this._lazyProxy}_request(t,i){return new Promise(((e,s)=>{this._onModuleLoaded.then((()=>{this._protocol.sendMessage(t,i).then(e,s)}),s)}))}_onError(t,i){console.error(t),console.info(i)}}function Eu(t){return"o"===t[0]&&"n"===t[1]&&ao(t.charCodeAt(2))}function Au(t){return/^onDynamic/.test(t)&&ao(t.charCodeAt(9))}function Mu(t,i){var e;const s=globalThis.MonacoEnvironment;if(null==s?void 0:s.createTrustedTypesPolicy)try{return s.createTrustedTypesPolicy(t,i)}catch(t){return void Bi(t)}try{return null===(e=$n.trustedTypes)||void 0===e?void 0:e.createPolicy(t,i)}catch(t){return void Bi(t)}}const Lu=Mu("defaultWorkerFactory",{createScriptURL:t=>t});class Fu{constructor(t,i,e,s,n){this.id=i,this.label=e;const o=function(t){const i=globalThis.MonacoEnvironment;if(i){if("function"==typeof i.getWorker)return i.getWorker("workerMain.js",t);if("function"==typeof i.getWorkerUrl){const e=i.getWorkerUrl("workerMain.js",t);return new Worker(Lu?Lu.createScriptURL(e):e,{name:t})}}throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}(e);this.worker="function"==typeof o.then?o:Promise.resolve(o),this.postMessage(t,[]),this.worker.then((t=>{t.onmessage=function(t){s(t.data)},t.onmessageerror=n,"function"==typeof t.addEventListener&&t.addEventListener("error",n)}))}getId(){return this.id}postMessage(t,i){var e;null===(e=this.worker)||void 0===e||e.then((e=>{try{e.postMessage(t,i)}catch(t){Bi(t),Bi(new Error(`FAILED to post message to '${this.label}'-worker`,{cause:t}))}}))}dispose(){var t;null===(t=this.worker)||void 0===t||t.then((t=>t.terminate())),this.worker=null}}class Tu{constructor(t){this._label=t,this._webWorkerFailedBeforeError=!1}create(t,i,e){const s=++Tu.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new Fu(t,s,this._label||"anonymous"+s,i,(t=>{vu(t),this._webWorkerFailedBeforeError=t,e(t)}))}}var Ru;Tu.LAST_WORKER_ID=0,function(t){t[t.None=0]="None",t[t.Indent=1]="Indent",t[t.IndentOutdent=2]="IndentOutdent",t[t.Outdent=3]="Outdent"}(Ru||(Ru={}));class Ou{constructor(t){if(this._neutralCharacter=null,this._neutralCharacterSearched=!1,this.open=t.open,this.close=t.close,this._inString=!0,this._inComment=!0,this._inRegEx=!0,Array.isArray(t.notIn))for(let i=0,e=t.notIn.length;i0&&t.getLanguageId(r-1)===n;)r--;return new Bu(t,n,r,o+1,t.getStartOffset(r),t.getEndOffset(o))}class Bu{constructor(t,i,e,s,n,o){this._scopedLineTokensBrand=void 0,this._actual=t,this.languageId=i,this._firstTokenIndex=e,this._lastTokenIndex=s,this.firstCharOffset=n,this._lastCharOffset=o}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getActualLineContentBefore(t){return this._actual.getLineContent().substring(0,this.firstCharOffset+t)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(t){return this._actual.findTokenIndexAtOffset(t+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(t){return this._actual.getStandardTokenType(t+this._firstTokenIndex)}}function Pu(t){return!!(3&t)}class $u{constructor(t){if(this._autoClosingPairs=t.autoClosingPairs?t.autoClosingPairs.map((t=>new Ou(t))):t.brackets?t.brackets.map((t=>new Ou({open:t[0],close:t[1]}))):[],t.__electricCharacterSupport&&t.__electricCharacterSupport.docComment){const i=t.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new Ou({open:i.open,close:i.close||""}))}this._autoCloseBeforeForQuotes="string"==typeof t.autoCloseBefore?t.autoCloseBefore:$u.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES,this._autoCloseBeforeForBrackets="string"==typeof t.autoCloseBefore?t.autoCloseBefore:$u.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS,this._surroundingPairs=t.surroundingPairs||this._autoClosingPairs}getAutoClosingPairs(){return this._autoClosingPairs}getAutoCloseBeforeSet(t){return t?this._autoCloseBeforeForQuotes:this._autoCloseBeforeForBrackets}getSurroundingPairs(){return this._surroundingPairs}}$u.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES=";:.,=}])> \n\t",$u.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS="'\"`;:.,=}])> \n\t";const Wu="undefined"!=typeof Buffer;let ju,zu,Hu,Vu;new zn((()=>new Uint8Array(256)));class Uu{static wrap(t){return Wu&&!Buffer.isBuffer(t)&&(t=Buffer.from(t.buffer,t.byteOffset,t.byteLength)),new Uu(t)}constructor(t){this.buffer=t,this.byteLength=this.buffer.byteLength}toString(){return Wu?this.buffer.toString():(ju||(ju=new TextDecoder),ju.decode(this.buffer))}}function qu(t,i){return(0|t[i+0])>>>0|t[i+1]<<8>>>0}function Ku(t,i,e){t[e+0]=255&i,t[e+1]=255&(i>>>=8)}function Gu(t,i){return t[i]*2**24+65536*t[i+1]+256*t[i+2]+t[i+3]}function Zu(t,i,e){t[e+3]=i,t[e+2]=i>>>=8,t[e+1]=i>>>=8,t[e]=i>>>=8}function Qu(t,i){return t[i]}function Ju(t,i,e){t[e]=i}function Yu(){return zu||(zu=new TextDecoder("UTF-16LE")),zu}function Xu(){return Vu||(Vu=Bt()?Yu():(Hu||(Hu=new TextDecoder("UTF-16BE")),Hu)),Vu}class td{constructor(t){this._capacity=0|t,this._buffer=new Uint16Array(this._capacity),this._completedStrings=null,this._bufferLength=0}reset(){this._completedStrings=null,this._bufferLength=0}build(){return null!==this._completedStrings?(this._flushBuffer(),this._completedStrings.join("")):this._buildBuffer()}_buildBuffer(){if(0===this._bufferLength)return"";const t=new Uint16Array(this._buffer.buffer,0,this._bufferLength);return Xu().decode(t)}_flushBuffer(){const t=this._buildBuffer();this._bufferLength=0,null===this._completedStrings?this._completedStrings=[t]:this._completedStrings[this._completedStrings.length]=t}appendCharCode(t){const i=this._capacity-this._bufferLength;i<=1&&(0===i||go(t))&&this._flushBuffer(),this._buffer[this._bufferLength++]=t}appendASCIICharCode(t){this._bufferLength===this._capacity&&this._flushBuffer(),this._buffer[this._bufferLength++]=t}appendString(t){const i=t.length;if(this._bufferLength+i>=this._capacity)return this._flushBuffer(),void(this._completedStrings[this._completedStrings.length]=t);for(let e=0;e[t[0].toLowerCase(),t[1].toLowerCase()]));const e=[];for(let t=0;t{const[e,s]=t,[n,o]=i;return e===n||e===o||s===n||s===o},n=(t,s)=>{const n=Math.min(t,s),o=Math.max(t,s);for(let t=0;t0&&o.push({open:n,close:r})}return o}(i);this.brackets=e.map(((i,s)=>new id(t,s,i.open,i.close,function(t,i,e,s){let n=[];n=n.concat(t),n=n.concat(i);for(let t=0,i=n.length;t=0&&s.push(i);for(const i of o.close)i.indexOf(t)>=0&&s.push(i)}}function nd(t,i){return t.length-i.length}function od(t){if(t.length<=1)return t;const i=[],e=new Set;for(const s of t)e.has(s)||(i.push(s),e.add(s));return i}function rd(t){const i=/^[\w ]+$/.test(t);return t=Gn(t),i?`\\b${t}\\b`:t}function hd(t){return Yn(`(${t.map(rd).join(")|(")})`,!0)}const cd=function(){let t=null,i=null;return function(e){return t!==e&&(t=e,i=function(t){const i=new Uint16Array(t.length);let e=0;for(let s=t.length-1;s>=0;s--)i[e++]=t.charCodeAt(s);return Xu().decode(i)}(t)),i}}();class ad{static _findPrevBracketInText(t,i,e,s){const n=e.match(t);if(!n)return null;const o=s+(e.length-(n.index||0));return new Ms(i,o-n[0].length+1,i,o+1)}static findPrevBracketInRange(t,i,e,s,n){const o=cd(e).substring(e.length-n,e.length-s);return this._findPrevBracketInText(t,i,o,s)}static findNextBracketInText(t,i,e,s){const n=e.match(t);if(!n)return null;const o=n[0].length;if(0===o)return null;const r=s+(n.index||0);return new Ms(i,r+1,i,r+1+o)}static findNextBracketInRange(t,i,e,s,n){const o=e.substring(s,n);return this.findNextBracketInText(t,i,o,s)}}class ld{constructor(t){this._richEditBrackets=t}getElectricCharacters(){const t=[];if(this._richEditBrackets)for(const i of this._richEditBrackets.brackets)for(const e of i.close){const i=e.charAt(e.length-1);t.push(i)}return y(t)}onElectricCharacter(t,i,e){if(!this._richEditBrackets||0===this._richEditBrackets.brackets.length)return null;const s=i.findTokenIndexAtOffset(e-1);if(Pu(i.getStandardTokenType(s)))return null;const n=this._richEditBrackets.reversedRegex,o=i.getLineContent().substring(0,e-1)+t,r=ad.findPrevBracketInRange(n,1,o,0,o.length);if(!r)return null;const h=o.substring(r.startColumn-1,r.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[h])return null;const c=i.getActualLineContentBefore(r.startColumn-1);return/^\s*$/.test(c)?{matchOpenBracket:h}:null}}function ud(t){return t.global&&(t.lastIndex=0),!0}class dd{constructor(t){this._indentationRules=t}shouldIncrease(t){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&ud(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(t))}shouldDecrease(t){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&ud(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(t))}shouldIndentNextLine(t){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&ud(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(t))}shouldIgnore(t){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&ud(this._indentationRules.unIndentedLinePattern)&&this._indentationRules.unIndentedLinePattern.test(t))}getIndentMetadata(t){let i=0;return this.shouldIncrease(t)&&(i+=1),this.shouldDecrease(t)&&(i+=2),this.shouldIndentNextLine(t)&&(i+=4),this.shouldIgnore(t)&&(i+=8),i}}class fd{constructor(t){(t=t||{}).brackets=t.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],t.brackets.forEach((t=>{const i=fd._createOpenBracketRegExp(t[0]),e=fd._createCloseBracketRegExp(t[1]);i&&e&&this._brackets.push({open:t[0],openRegExp:i,close:t[1],closeRegExp:e})})),this._regExpRules=t.onEnterRules||[]}onEnter(t,i,e,s){if(t>=3)for(let t=0,n=this._regExpRules.length;t!t.reg||(t.reg.lastIndex=0,t.reg.test(t.text)))))return n.action}if(t>=2&&e.length>0&&s.length>0)for(let t=0,i=this._brackets.length;t=2&&e.length>0)for(let t=0,i=this._brackets.length;t0&&"#"===e.charAt(e.length-1)?e.substring(0,e.length-1):e)]=i,this._onDidChangeSchema.fire(t)}notifySchemaChanged(t){this._onDidChangeSchema.fire(t)}};Dh.add(Ed,Ad);const Md="base.contributions.configuration",Ld={properties:{},patternProperties:{}},Fd={properties:{},patternProperties:{}},Td={properties:{},patternProperties:{}},Rd={properties:{},patternProperties:{}},Od={properties:{},patternProperties:{}},Id={properties:{},patternProperties:{}},_d="vscode://schemas/settings/resourceLanguage",Nd=Dh.as(Ed),Bd="\\[([^\\]]+)\\]",Pd=new RegExp(Bd,"g"),$d=`^(${Bd})+$`,Wd=new RegExp($d);function jd(t){const i=[];if(Wd.test(t)){let e=Pd.exec(t);for(;null==e?void 0:e.length;){const s=e[1].trim();s&&i.push(s),e=Pd.exec(t)}}return y(i)}const zd=new class{constructor(){this.overrideIdentifiers=new Set,this._onDidSchemaChange=new de,this._onDidUpdateConfiguration=new de,this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:ot(0,"Default Language Configuration Overrides"),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},Nd.registerSchema(_d,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(t,i=!0){this.registerConfigurations([t],i)}registerConfigurations(t,i=!0){const e=new Set;this.doRegisterConfigurations(t,i,e),Nd.registerSchema(_d,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:e})}registerDefaultConfigurations(t){const i=new Set;this.doRegisterDefaultConfigurations(t,i),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:i,defaultsOverrides:!0})}doRegisterDefaultConfigurations(t,i){var e;const s=[];for(const{overrides:n,source:o}of t)for(const t in n)if(i.add(t),Wd.test(t)){const i=this.configurationDefaultsOverrides.get(t),r=null!==(e=null==i?void 0:i.valuesSources)&&void 0!==e?e:new Map;if(o)for(const i of Object.keys(n[t]))r.set(i,o);const h={...(null==i?void 0:i.value)||{},...n[t]};this.configurationDefaultsOverrides.set(t,{source:o,value:h,valuesSources:r});const c={type:"object",default:h,description:ot(0,"Configure settings to be overridden for the {0} language.",t.replace(/[\[\]]/g,"")),$ref:_d,defaultDefaultValue:h,source:B(o)?void 0:o,defaultValueSource:o};s.push(...jd(t)),this.configurationProperties[t]=c,this.defaultLanguageConfigurationOverridesNode.properties[t]=c}else{this.configurationDefaultsOverrides.set(t,{value:n[t],source:o});const i=this.configurationProperties[t];i&&(this.updatePropertyDefaultValue(t,i),this.updateSchema(t,i))}this.doRegisterOverrideIdentifiers(s)}registerOverrideIdentifiers(t){this.doRegisterOverrideIdentifiers(t),this._onDidSchemaChange.fire()}doRegisterOverrideIdentifiers(t){for(const i of t)this.overrideIdentifiers.add(i);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(t,i,e){t.forEach((t=>{this.validateAndRegisterProperties(t,i,t.extensionInfo,t.restrictedProperties,void 0,e),this.configurationContributors.push(t),this.registerJSONConfiguration(t)}))}validateAndRegisterProperties(t,i=!0,e,s,n=3,o){var r;n=U(t.scope)?n:t.scope;const h=t.properties;if(h)for(const t in h){const c=h[t];i&&Hd(t,c)?delete h[t]:(c.source=e,c.defaultDefaultValue=h[t].default,this.updatePropertyDefaultValue(t,c),Wd.test(t)?c.scope=void 0:(c.scope=U(c.scope)?n:c.scope,c.restricted=U(c.restricted)?!!(null==s?void 0:s.includes(t)):c.restricted),!h[t].hasOwnProperty("included")||h[t].included?(this.configurationProperties[t]=h[t],(null===(r=h[t].policy)||void 0===r?void 0:r.name)&&this.policyConfigurations.set(h[t].policy.name,t),!h[t].deprecationMessage&&h[t].markdownDeprecationMessage&&(h[t].deprecationMessage=h[t].markdownDeprecationMessage),o.add(t)):(this.excludedConfigurationProperties[t]=h[t],delete h[t]))}const c=t.allOf;if(c)for(const t of c)this.validateAndRegisterProperties(t,i,e,s,n,o)}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}registerJSONConfiguration(t){const i=t=>{const e=t.properties;if(e)for(const t in e)this.updateSchema(t,e[t]);const s=t.allOf;null==s||s.forEach(i)};i(t)}updateSchema(t,i){switch(Ld.properties[t]=i,i.scope){case 1:Fd.properties[t]=i;break;case 2:Td.properties[t]=i;break;case 6:Rd.properties[t]=i;break;case 3:Od.properties[t]=i;break;case 4:Id.properties[t]=i;break;case 5:Id.properties[t]=i,this.resourceLanguageSettingsSchema.properties[t]=i}}updateOverridePropertyPatternKey(){for(const t of this.overrideIdentifiers.values()){const i=`[${t}]`,e={type:"object",description:ot(0,"Configure editor settings to be overridden for a language."),errorMessage:ot(0,"This setting does not support per-language configuration."),$ref:_d};this.updatePropertyDefaultValue(i,e),Ld.properties[i]=e,Fd.properties[i]=e,Td.properties[i]=e,Rd.properties[i]=e,Od.properties[i]=e,Id.properties[i]=e}}registerOverridePropertyPatternKey(){const t={type:"object",description:ot(0,"Configure editor settings to be overridden for a language."),errorMessage:ot(0,"This setting does not support per-language configuration."),$ref:_d};Ld.patternProperties[$d]=t,Fd.patternProperties[$d]=t,Td.patternProperties[$d]=t,Rd.patternProperties[$d]=t,Od.patternProperties[$d]=t,Id.patternProperties[$d]=t,this._onDidSchemaChange.fire()}updatePropertyDefaultValue(t,i){const e=this.configurationDefaultsOverrides.get(t);let s=null==e?void 0:e.value,n=null==e?void 0:e.source;H(s)&&(s=i.defaultDefaultValue,n=void 0),H(s)&&(s=function(t){switch(Array.isArray(t)?t[0]:t){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}(i.type)),i.default=s,i.defaultValueSource=n}};function Hd(t,i){var e,s,n,o;return t.trim()?Wd.test(t)?ot(0,"Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",t):void 0!==zd.getConfigurationProperties()[t]?ot(0,"Cannot register '{0}'. This property is already registered.",t):(null===(e=i.policy)||void 0===e?void 0:e.name)&&void 0!==zd.getPolicyConfigurations().get(null===(s=i.policy)||void 0===s?void 0:s.name)?ot(0,"Cannot register '{0}'. The associated policy {1} is already registered with {2}.",t,null===(n=i.policy)||void 0===n?void 0:n.name,zd.getPolicyConfigurations().get(null===(o=i.policy)||void 0===o?void 0:o.name)):null:ot(0,"Cannot register an empty property")}Dh.add(Md,zd);const Vd=new class{constructor(){this._onDidChangeLanguages=new de,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[]}registerLanguage(t){return this._languages.push(t),this._onDidChangeLanguages.fire(void 0),{dispose:()=>{for(let i=0,e=this._languages.length;i{const i=new Set;return{info:new Zd(this,t,i),closing:i}})),n=new jn((t=>{const i=new Set,e=new Set;return{info:new Qd(this,t,i,e),opening:i,openingColorized:e}}));for(const[t,i]of e){const e=s.get(t),o=n.get(i);e.closing.add(o.info),o.opening.add(e.info)}const o=i.colorizedBracketPairs?Kd(i.colorizedBracketPairs):e.filter((t=>!("<"===t[0]&&">"===t[1])));for(const[t,i]of o){const e=s.get(t),o=n.get(i);e.closing.add(o.info),o.openingColorized.add(e.info),o.opening.add(e.info)}this._openingBrackets=new Map([...s.cachedValues].map((([t,i])=>[t,i.info]))),this._closingBrackets=new Map([...n.cachedValues].map((([t,i])=>[t,i.info])))}get openingBrackets(){return[...this._openingBrackets.values()]}get closingBrackets(){return[...this._closingBrackets.values()]}getOpeningBracketInfo(t){return this._openingBrackets.get(t)}getClosingBracketInfo(t){return this._closingBrackets.get(t)}getBracketInfo(t){return this.getOpeningBracketInfo(t)||this.getClosingBracketInfo(t)}}function Kd(t){return t.filter((([t,i])=>""!==t&&""!==i))}class Gd{constructor(t,i){this.config=t,this.bracketText=i}get languageId(){return this.config.languageId}}class Zd extends Gd{constructor(t,i,e){super(t,i),this.openedBrackets=e,this.isOpeningBracket=!0}}class Qd extends Gd{constructor(t,i,e,s){super(t,i),this.openingBrackets=e,this.openingColorizedBrackets=s,this.isOpeningBracket=!1}closes(t){return t.config===this.config&&this.openingBrackets.has(t)}closesColorized(t){return t.config===this.config&&this.openingColorizedBrackets.has(t)}getOpeningBrackets(){return[...this.openingBrackets]}}var Jd=function(t,i){return function(e,s){i(e,s,t)}};class Yd{constructor(t){this.languageId=t}affects(t){return!this.languageId||this.languageId===t}}const Xd=dr("languageConfigurationService");let tf=class extends te{constructor(t,i){super(),this.configurationService=t,this.languageService=i,this._registry=this._register(new lf),this.onDidChangeEmitter=this._register(new de),this.onDidChange=this.onDidChangeEmitter.event,this.configurations=new Map;const e=new Set(Object.values(ef));this._register(this.configurationService.onDidChangeConfiguration((t=>{const i=t.change.keys.some((t=>e.has(t))),s=t.change.overrides.filter((([t,i])=>i.some((t=>e.has(t))))).map((([t])=>t));if(i)this.configurations.clear(),this.onDidChangeEmitter.fire(new Yd(void 0));else for(const t of s)this.languageService.isRegisteredLanguageId(t)&&(this.configurations.delete(t),this.onDidChangeEmitter.fire(new Yd(t)))}))),this._register(this._registry.onDidChange((t=>{this.configurations.delete(t.languageId),this.onDidChangeEmitter.fire(new Yd(t.languageId))})))}register(t,i,e){return this._registry.register(t,i,e)}getLanguageConfiguration(t){let i=this.configurations.get(t);return i||(i=function(t,i,e,s){let n=i.getLanguageConfiguration(t);if(!n){if(!s.isRegisteredLanguageId(t))return new uf(t,{});n=new uf(t,{})}const o=function(t,i){const e=i.getValue(ef.brackets,{overrideIdentifier:t}),s=i.getValue(ef.colorizedBracketPairs,{overrideIdentifier:t});return{brackets:sf(e),colorizedBracketPairs:sf(s)}}(n.languageId,e),r=hf([n.underlyingConfig,o]);return new uf(n.languageId,r)}(t,this._registry,this.configurationService,this.languageService),this.configurations.set(t,i)),i}};tf=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Jd(0,pd),Jd(1,yd)],tf);const ef={brackets:"editor.language.brackets",colorizedBracketPairs:"editor.language.colorizedBracketPairs"};function sf(t){if(Array.isArray(t))return t.map((t=>{if(Array.isArray(t)&&2===t.length)return[t[0],t[1]]})).filter((t=>!!t))}function nf(t,i,e){let s=io(t.getLineContent(i));return s.length>e-1&&(s=s.substring(0,e-1)),s}function of(t,i,e){return t.tokenization.forceTokenization(i),Nu(t.tokenization.getLineTokens(i),void 0===e?t.getLineMaxColumn(i)-1:e-1)}class rf{constructor(t){this.languageId=t,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}register(t,i){const e=new cf(t,i,++this._order);return this._entries.push(e),this._resolved=null,Yi((()=>{for(let t=0;tt.configuration))))}}function hf(t){let i={comments:void 0,brackets:void 0,wordPattern:void 0,indentationRules:void 0,onEnterRules:void 0,autoClosingPairs:void 0,surroundingPairs:void 0,autoCloseBefore:void 0,folding:void 0,colorizedBracketPairs:void 0,__electricCharacterSupport:void 0};for(const e of t)i={comments:e.comments||i.comments,brackets:e.brackets||i.brackets,wordPattern:e.wordPattern||i.wordPattern,indentationRules:e.indentationRules||i.indentationRules,onEnterRules:e.onEnterRules||i.onEnterRules,autoClosingPairs:e.autoClosingPairs||i.autoClosingPairs,surroundingPairs:e.surroundingPairs||i.surroundingPairs,autoCloseBefore:e.autoCloseBefore||i.autoCloseBefore,folding:e.folding||i.folding,colorizedBracketPairs:e.colorizedBracketPairs||i.colorizedBracketPairs,__electricCharacterSupport:e.__electricCharacterSupport||i.__electricCharacterSupport};return i}class cf{constructor(t,i,e){this.configuration=t,this.priority=i,this.order=e}static cmp(t,i){return t.priority===i.priority?t.order-i.order:t.priority-i.priority}}class af{constructor(t){this.languageId=t}}class lf extends te{constructor(){super(),this._entries=new Map,this._onDidChange=this._register(new de),this.onDidChange=this._onDidChange.event,this._register(this.register(Ud,{brackets:[["(",")"],["[","]"],["{","}"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],colorizedBracketPairs:[],folding:{offSide:!0}},0))}register(t,i,e=0){let s=this._entries.get(t);s||(s=new rf(t),this._entries.set(t,s));const n=s.register(i,e);return this._onDidChange.fire(new af(t)),Yi((()=>{n.dispose(),this._onDidChange.fire(new af(t))}))}getLanguageConfiguration(t){const i=this._entries.get(t);return(null==i?void 0:i.getResolvedConfiguration())||null}}class uf{constructor(t,i){this.languageId=t,this.underlyingConfig=i,this._brackets=null,this._electricCharacter=null,this._onEnterSupport=this.underlyingConfig.brackets||this.underlyingConfig.indentationRules||this.underlyingConfig.onEnterRules?new fd(this.underlyingConfig):null,this.comments=uf._handleComments(this.underlyingConfig),this.characterPair=new $u(this.underlyingConfig),this.wordDefinition=this.underlyingConfig.wordPattern||Kt,this.indentationRules=this.underlyingConfig.indentationRules,this.indentRulesSupport=this.underlyingConfig.indentationRules?new dd(this.underlyingConfig.indentationRules):null,this.foldingRules=this.underlyingConfig.folding||{},this.bracketsNew=new qd(t,this.underlyingConfig)}getWordDefinition(){return Gt(this.wordDefinition)}get brackets(){return!this._brackets&&this.underlyingConfig.brackets&&(this._brackets=new ed(this.languageId,this.underlyingConfig.brackets)),this._brackets}get electricCharacter(){return this._electricCharacter||(this._electricCharacter=new ld(this.brackets)),this._electricCharacter}onEnter(t,i,e,s){return this._onEnterSupport?this._onEnterSupport.onEnter(t,i,e,s):null}getAutoClosingPairs(){return new Iu(this.characterPair.getAutoClosingPairs())}getAutoCloseBeforeSet(t){return this.characterPair.getAutoCloseBeforeSet(t)}getSurroundingPairs(){return this.characterPair.getSurroundingPairs()}static _handleComments(t){const i=t.comments;if(!i)return null;const e={};if(i.lineComment&&(e.lineCommentToken=i.lineComment),i.blockComment){const[t,s]=i.blockComment;e.blockCommentStartToken=t,e.blockCommentEndToken=s}return e}}Cd(Xd,tf,1);class df{constructor(t,i,e,s){this.originalStart=t,this.originalLength=i,this.modifiedStart=e,this.modifiedLength=s}getOriginalEnd(){return this.originalStart+this.originalLength}getModifiedEnd(){return this.modifiedStart+this.modifiedLength}}class ff{constructor(t){this.source=t}getElements(){const t=this.source,i=new Int32Array(t.length);for(let e=0,s=t.length;e0||this.m_modifiedCount>0)&&this.m_changes.push(new df(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(t,i){this.m_originalStart=Math.min(this.m_originalStart,t),this.m_modifiedStart=Math.min(this.m_modifiedStart,i),this.m_originalCount++}AddModifiedElement(t,i){this.m_originalStart=Math.min(this.m_originalStart,t),this.m_modifiedStart=Math.min(this.m_modifiedStart,i),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class vf{constructor(t,i,e=null){this.ContinueProcessingPredicate=e,this._originalSequence=t,this._modifiedSequence=i;const[s,n,o]=vf._getElements(t),[r,h,c]=vf._getElements(i);this._hasStrings=o&&c,this._originalStringElements=s,this._originalElementsOrHash=n,this._modifiedStringElements=r,this._modifiedElementsOrHash=h,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(t){return t.length>0&&"string"==typeof t[0]}static _getElements(t){const i=t.getElements();if(vf._isStringArray(i)){const t=new Int32Array(i.length);for(let e=0,s=i.length;e=t&&s>=e&&this.ElementsAreEqual(i,s);)i--,s--;if(t>i||e>s){let n;return e<=s?(gf.Assert(t===i+1,"originalStart should only be one more than originalEnd"),n=[new df(t,0,e,s-e+1)]):t<=i?(gf.Assert(e===s+1,"modifiedStart should only be one more than modifiedEnd"),n=[new df(t,i-t+1,e,0)]):(gf.Assert(t===i+1,"originalStart should only be one more than originalEnd"),gf.Assert(e===s+1,"modifiedStart should only be one more than modifiedEnd"),n=[]),n}const o=[0],r=[0],h=this.ComputeRecursionPoint(t,i,e,s,o,r,n),c=o[0],a=r[0];if(null!==h)return h;if(!n[0]){const o=this.ComputeDiffRecursive(t,c,e,a,n);let r=[];return r=n[0]?[new df(c+1,i-(c+1)+1,a+1,s-(a+1)+1)]:this.ComputeDiffRecursive(c+1,i,a+1,s,n),this.ConcatenateChanges(o,r)}return[new df(t,i-t+1,e,s-e+1)]}WALKTRACE(t,i,e,s,n,o,r,h,c,a,l,u,d,f,p,g,m,w){let v=null,b=null,y=new wf,k=i,x=e,C=d[0]-g[0]-s,S=-1073741824,D=this.m_forwardHistory.length-1;do{const i=C+t;i===k||i=0&&(t=(c=this.m_forwardHistory[D])[0],k=1,x=c.length-1)}while(--D>=-1);if(v=y.getReverseChanges(),w[0]){let t=d[0]+1,i=g[0]+1;if(null!==v&&v.length>0){const e=v[v.length-1];t=Math.max(t,e.getOriginalEnd()),i=Math.max(i,e.getModifiedEnd())}b=[new df(t,u-t+1,i,p-i+1)]}else{y=new wf,k=o,x=r,C=d[0]-g[0]-h,S=1073741824,D=m?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const t=C+n;t===k||t=a[t+1]?(f=(l=a[t+1]-1)-C-h,l>S&&y.MarkNextChange(),S=l+1,y.AddOriginalElement(l+1,f+1),C=t+1-n):(f=(l=a[t-1])-C-h,l>S&&y.MarkNextChange(),S=l,y.AddModifiedElement(l+1,f+1),C=t-1-n),D>=0&&(n=(a=this.m_reverseHistory[D])[0],k=1,x=a.length-1)}while(--D>=-1);b=y.getChanges()}return this.ConcatenateChanges(v,b)}ComputeRecursionPoint(t,i,e,s,n,o,r){let h=0,c=0,a=0,l=0,u=0,d=0;t--,e--,n[0]=0,o[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const f=i-t+(s-e),p=f+1,g=new Int32Array(p),m=new Int32Array(p),w=s-e,v=i-t,b=t-e,y=i-s,k=(v-w)%2==0;g[w]=t,m[v]=i,r[0]=!1;for(let x=1;x<=f/2+1;x++){let f=0,C=0;a=this.ClipDiagonalBound(w-x,x,w,p),l=this.ClipDiagonalBound(w+x,x,w,p);for(let t=a;t<=l;t+=2){h=t===a||tf+C&&(f=h,C=c),!k&&Math.abs(t-v)<=x-1&&h>=m[t])return n[0]=h,o[0]=c,e<=m[t]&&x<=1448?this.WALKTRACE(w,a,l,b,v,u,d,y,g,m,h,i,n,c,s,o,k,r):null}const S=(f-t+(C-e)-x)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(f,S))return r[0]=!0,n[0]=f,o[0]=C,S>0&&x<=1448?this.WALKTRACE(w,a,l,b,v,u,d,y,g,m,h,i,n,c,s,o,k,r):(t++,e++,[new df(t,i-t+1,e,s-e+1)]);u=this.ClipDiagonalBound(v-x,x,v,p),d=this.ClipDiagonalBound(v+x,x,v,p);for(let f=u;f<=d;f+=2){h=f===u||f=m[f+1]?m[f+1]-1:m[f-1],c=h-(f-v)-y;const p=h;for(;h>t&&c>e&&this.ElementsAreEqual(h,c);)h--,c--;if(m[f]=h,k&&Math.abs(f-w)<=x&&h<=g[f])return n[0]=h,o[0]=c,p>=g[f]&&x<=1448?this.WALKTRACE(w,a,l,b,v,u,d,y,g,m,h,i,n,c,s,o,k,r):null}if(x<=1447){let t=new Int32Array(l-a+2);t[0]=w-a+1,mf.Copy2(g,a,t,1,l-a+1),this.m_forwardHistory.push(t),t=new Int32Array(d-u+2),t[0]=v-u+1,mf.Copy2(m,u,t,1,d-u+1),this.m_reverseHistory.push(t)}}return this.WALKTRACE(w,a,l,b,v,u,d,y,g,m,h,i,n,c,s,o,k,r)}PrettifyChanges(t){for(let i=0;i0,r=e.modifiedLength>0;for(;e.originalStart+e.originalLength=0;i--){const e=t[i];let s=0,n=0;if(i>0){const e=t[i-1];s=e.originalStart+e.originalLength,n=e.modifiedStart+e.modifiedLength}const o=e.originalLength>0,r=e.modifiedLength>0;let h=0,c=this._boundaryScore(e.originalStart,e.originalLength,e.modifiedStart,e.modifiedLength);for(let t=1;;t++){const i=e.originalStart-t,a=e.modifiedStart-t;if(ic&&(c=l,h=t)}e.originalStart-=h,e.modifiedStart-=h;const a=[null];i>0&&this.ChangesOverlap(t[i-1],t[i],a)&&(t[i-1]=a[0],t.splice(i,1),i++)}if(this._hasStrings)for(let i=1,e=t.length;i0&&e>h&&(h=e,c=i,a=t)}return h>0?[c,a]:null}_contiguousSequenceScore(t,i,e){let s=0;for(let n=0;n=this._originalElementsOrHash.length-1||this._hasStrings&&/^\s*$/.test(this._originalStringElements[t])}_OriginalRegionIsBoundary(t,i){if(this._OriginalIsBoundary(t)||this._OriginalIsBoundary(t-1))return!0;if(i>0){const e=t+i;if(this._OriginalIsBoundary(e-1)||this._OriginalIsBoundary(e))return!0}return!1}_ModifiedIsBoundary(t){return t<=0||t>=this._modifiedElementsOrHash.length-1||this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[t])}_ModifiedRegionIsBoundary(t,i){if(this._ModifiedIsBoundary(t)||this._ModifiedIsBoundary(t-1))return!0;if(i>0){const e=t+i;if(this._ModifiedIsBoundary(e-1)||this._ModifiedIsBoundary(e))return!0}return!1}_boundaryScore(t,i,e,s){return(this._OriginalRegionIsBoundary(t,i)?1:0)+(this._ModifiedRegionIsBoundary(e,s)?1:0)}ConcatenateChanges(t,i){const e=[];if(0===t.length||0===i.length)return i.length>0?i:t;if(this.ChangesOverlap(t[t.length-1],i[0],e)){const s=new Array(t.length+i.length-1);return mf.Copy(t,0,s,0,t.length-1),s[t.length-1]=e[0],mf.Copy(i,1,s,t.length,i.length-1),s}{const e=new Array(t.length+i.length);return mf.Copy(t,0,e,0,t.length),mf.Copy(i,0,e,t.length,i.length),e}}ChangesOverlap(t,i,e){if(gf.Assert(t.originalStart<=i.originalStart,"Left change is not less than or equal to right change"),gf.Assert(t.modifiedStart<=i.modifiedStart,"Left change is not less than or equal to right change"),t.originalStart+t.originalLength>=i.originalStart||t.modifiedStart+t.modifiedLength>=i.modifiedStart){let s=t.originalLength,n=t.modifiedLength;return t.originalStart+t.originalLength>=i.originalStart&&(s=i.originalStart+i.originalLength-t.originalStart),t.modifiedStart+t.modifiedLength>=i.modifiedStart&&(n=i.modifiedStart+i.modifiedLength-t.modifiedStart),e[0]=new df(t.originalStart,s,t.modifiedStart,n),!0}return e[0]=null,!1}ClipDiagonalBound(t,i,e,s){if(t>=0&&t255?255:0|t}function yf(t){return t<0?0:t>4294967295?4294967295:0|t}class kf{constructor(t){this.values=t,this.prefixSum=new Uint32Array(t.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(t,i){t=yf(t);const e=this.values,s=this.prefixSum,n=i.length;return 0!==n&&(this.values=new Uint32Array(e.length+n),this.values.set(e.subarray(0,t),0),this.values.set(e.subarray(t),t+n),this.values.set(i,t),t-1=0&&this.prefixSum.set(s.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(t,i){return t=yf(t),i=yf(i),this.values[t]!==i&&(this.values[t]=i,t-1=e.length)return!1;const n=e.length-t;return i>=n&&(i=n),0!==i&&(this.values=new Uint32Array(e.length-i),this.values.set(e.subarray(0,t),0),this.values.set(e.subarray(t+i),t),this.prefixSum=new Uint32Array(this.values.length),t-1=0&&this.prefixSum.set(s.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return 0===this.values.length?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(t){return t<0?0:(t=yf(t),this._getPrefixSum(t))}_getPrefixSum(t){if(t<=this.prefixSumValidIndex[0])return this.prefixSum[t];let i=this.prefixSumValidIndex[0]+1;0===i&&(this.prefixSum[0]=this.values[0],i++),t>=this.values.length&&(t=this.values.length-1);for(let e=i;e<=t;e++)this.prefixSum[e]=this.prefixSum[e-1]+this.values[e];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],t),this.prefixSum[t]}getIndexOf(t){t=Math.floor(t),this.getTotalSum();let i=0,e=this.values.length-1,s=0,n=0,o=0;for(;i<=e;)if(s=i+(e-i)/2|0,n=this.prefixSum[s],o=n-this.values[s],t=n))break;i=s+1}return new Cf(s,t-o)}}class xf{constructor(t){this._values=t,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(t){return this._ensureValid(),0===t?0:this._prefixSum[t-1]}getIndexOf(t){this._ensureValid();const i=this._indexBySum[t];return new Cf(i,t-(i>0?this._prefixSum[i-1]:0))}removeValues(t,i){this._values.splice(t,i),this._invalidate(t)}insertValues(t,i){this._values=C(this._values,t,i),this._invalidate(t)}_invalidate(t){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,t-1)}_ensureValid(){if(!this._isValid){for(let t=this._validEndIndex+1,i=this._values.length;t0?this._prefixSum[t-1]:0;this._prefixSum[t]=e+i;for(let s=0;s=0&&t<256?this._asciiMap[t]=e:this._map.set(t,e)}get(t){return t>=0&&t<256?this._asciiMap[t]:this._map.get(t)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}}class Ef{constructor(){this._actual=new Df(0)}add(t){this._actual.set(t,1)}has(t){return 1===this._actual.get(t)}clear(){return this._actual.clear()}}class Af{constructor(t,i,e){const s=new Uint8Array(t*i);for(let n=0,o=t*i;ni&&(i=o),n>e&&(e=n),r>e&&(e=r)}i++,e++;const s=new Af(e,i,0);for(let i=0,e=t.length;i=this._maxCharCode?0:this._states.get(t,i)}}let Lf=null,Ff=null;class Tf{static _createLink(t,i,e,s,n){let o=n-1;do{const e=i.charCodeAt(o);if(2!==t.get(e))break;o--}while(o>s);if(s>0){const t=i.charCodeAt(s-1),e=i.charCodeAt(o);(40===t&&41===e||91===t&&93===e||123===t&&125===e)&&o--}return{range:{startLineNumber:e,startColumn:s+1,endLineNumber:e,endColumn:o+2},url:i.substring(s,o+1)}}static computeLinks(t,i=function(){return null===Lf&&(Lf=new Mf([[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]])),Lf}()){const e=function(){if(null===Ff){Ff=new Df(0);const t=" \t<>'\"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…";for(let i=0;i=0?(s+=e?1:-1,s<0?s=t.length-1:s%=t.length,t[s]):null}}Rf.INSTANCE=new Rf;class Of extends Df{constructor(t){super(0);for(let i=0,e=t.length;i(t.hasOwnProperty(i)||(t[i]=(t=>new Of(t))(i)),t[i])}();var _f,Nf,Bf,Pf,$f,Wf;!function(t){t[t.Left=1]="Left",t[t.Center=2]="Center",t[t.Right=4]="Right",t[t.Full=7]="Full"}(_f||(_f={})),function(t){t[t.Left=1]="Left",t[t.Right=2]="Right"}(Nf||(Nf={})),function(t){t[t.Inline=1]="Inline",t[t.Gutter=2]="Gutter"}(Bf||(Bf={})),function(t){t[t.Both=0]="Both",t[t.Right=1]="Right",t[t.Left=2]="Left",t[t.None=3]="None"}(Pf||(Pf={}));class jf{get originalIndentSize(){return this._indentSizeIsTabSize?"tabSize":this.indentSize}constructor(t){this._textModelResolvedOptionsBrand=void 0,this.tabSize=Math.max(1,0|t.tabSize),"tabSize"===t.indentSize?(this.indentSize=this.tabSize,this._indentSizeIsTabSize=!0):(this.indentSize=Math.max(1,0|t.indentSize),this._indentSizeIsTabSize=!1),this.insertSpaces=Boolean(t.insertSpaces),this.defaultEOL=0|t.defaultEOL,this.trimAutoWhitespace=Boolean(t.trimAutoWhitespace),this.bracketPairColorizationOptions=t.bracketPairColorizationOptions}equals(t){return this.tabSize===t.tabSize&&this._indentSizeIsTabSize===t._indentSizeIsTabSize&&this.indentSize===t.indentSize&&this.insertSpaces===t.insertSpaces&&this.defaultEOL===t.defaultEOL&&this.trimAutoWhitespace===t.trimAutoWhitespace&&it(this.bracketPairColorizationOptions,t.bracketPairColorizationOptions)}createChangeEvent(t){return{tabSize:this.tabSize!==t.tabSize,indentSize:this.indentSize!==t.indentSize,insertSpaces:this.insertSpaces!==t.insertSpaces,trimAutoWhitespace:this.trimAutoWhitespace!==t.trimAutoWhitespace}}}class zf{constructor(t,i){this._findMatchBrand=void 0,this.range=t,this.matches=i}}class Hf{constructor(t,i,e,s,n,o){this.identifier=t,this.range=i,this.text=e,this.forceMoveMarkers=s,this.isAutoWhitespaceEdit=n,this._isTracked=o}}class Vf{constructor(t,i,e){this.regex=t,this.wordSeparators=i,this.simpleSearch=e}}class Uf{constructor(t,i,e){this.reverseEdits=t,this.changes=i,this.trimAutoWhitespaceLineNumbers=e}}function qf(t){return!t.isTooLargeForSyncing()&&!t.isForSimpleWidget}class Kf{constructor(t,i,e,s){this.searchString=t,this.isRegex=i,this.matchCase=e,this.wordSeparators=s}parseSearchRequest(){if(""===this.searchString)return null;let t;t=this.isRegex?function(t){if(!t||0===t.length)return!1;for(let i=0,e=t.length;i=e)break;const s=t.charCodeAt(i);if(110===s||114===s||87===s)return!0}}return!1}(this.searchString):this.searchString.indexOf("\n")>=0;let i=null;try{i=Yn(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:t,global:!0,unicode:!0})}catch(t){return null}if(!i)return null;let e=!this.isRegex&&!t;return e&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(e=this.matchCase),new Vf(i,this.wordSeparators?If(this.wordSeparators):null,e?this.searchString:null)}}function Gf(t,i,e){if(!e)return new zf(t,null);const s=[];for(let t=0,e=i.length;t=t?s=n-1:i[n+1]>=t?(e=n,s=n):e=n+1}return e+1}}class Qf{static findMatches(t,i,e,s,n){const o=i.parseSearchRequest();return o?o.regex.multiline?this._doFindMatchesMultiline(t,e,new Yf(o.wordSeparators,o.regex),s,n):this._doFindMatchesLineByLine(t,e,o,s,n):[]}static _getMultilineMatchRange(t,i,e,s,n,o){let r,h,c=0;if(s?(c=s.findLineFeedCountBeforeOffset(n),r=i+n+c):r=i+n,s){const t=s.findLineFeedCountBeforeOffset(n+o.length);h=r+o.length+(t-c)}else h=r+o.length;const a=t.getPositionAt(r),l=t.getPositionAt(h);return new Ms(a.lineNumber,a.column,l.lineNumber,l.column)}static _doFindMatchesMultiline(t,i,e,s,n){const o=t.getOffsetAt(i.getStartPosition()),r=t.getValueInRange(i,1),h="\r\n"===t.getEOL()?new Zf(r):null,c=[];let a,l=0;for(e.reset(0);a=e.next(r);)if(c[l++]=Gf(this._getMultilineMatchRange(t,o,r,h,a.index,a[0]),a,s),l>=n)return c;return c}static _doFindMatchesLineByLine(t,i,e,s,n){const o=[];let r=0;if(i.startLineNumber===i.endLineNumber){const h=t.getLineContent(i.startLineNumber).substring(i.startColumn-1,i.endColumn-1);return r=this._findMatchesInLine(e,h,i.startLineNumber,i.startColumn-1,r,o,s,n),o}const h=t.getLineContent(i.startLineNumber).substring(i.startColumn-1);r=this._findMatchesInLine(e,h,i.startLineNumber,i.startColumn-1,r,o,s,n);for(let h=i.startLineNumber+1;h=h))return n;return n}const a=new Yf(t.wordSeparators,t.regex);let l;a.reset(0);do{if(l=a.next(i),l&&(o[n++]=Gf(new Ms(e,l.index+1+s,e,l.index+1+l[0].length+s),l,r),n>=h))return n}while(l);return n}static findNextMatch(t,i,e,s){const n=i.parseSearchRequest();if(!n)return null;const o=new Yf(n.wordSeparators,n.regex);return n.regex.multiline?this._doFindNextMatchMultiline(t,e,o,s):this._doFindNextMatchLineByLine(t,e,o,s)}static _doFindNextMatchMultiline(t,i,e,s){const n=new As(i.lineNumber,1),o=t.getOffsetAt(n),r=t.getLineCount(),h=t.getValueInRange(new Ms(n.lineNumber,n.column,r,t.getLineMaxColumn(r)),1),c="\r\n"===t.getEOL()?new Zf(h):null;e.reset(i.column-1);const a=e.next(h);return a?Gf(this._getMultilineMatchRange(t,o,h,c,a.index,a[0]),a,s):1!==i.lineNumber||1!==i.column?this._doFindNextMatchMultiline(t,new As(1,1),e,s):null}static _doFindNextMatchLineByLine(t,i,e,s){const n=t.getLineCount(),o=i.lineNumber,r=t.getLineContent(o),h=this._findFirstMatchInLine(e,r,o,i.column,s);if(h)return h;for(let i=1;i<=n;i++){const r=(o+i-1)%n,h=t.getLineContent(r+1),c=this._findFirstMatchInLine(e,h,r+1,1,s);if(c)return c}return null}static _findFirstMatchInLine(t,i,e,s,n){t.reset(s-1);const o=t.next(i);return o?Gf(new Ms(e,o.index+1,e,o.index+1+o[0].length),o,n):null}static findPreviousMatch(t,i,e,s){const n=i.parseSearchRequest();if(!n)return null;const o=new Yf(n.wordSeparators,n.regex);return n.regex.multiline?this._doFindPreviousMatchMultiline(t,e,o,s):this._doFindPreviousMatchLineByLine(t,e,o,s)}static _doFindPreviousMatchMultiline(t,i,e,s){const n=this._doFindMatchesMultiline(t,new Ms(1,1,i.lineNumber,i.column),e,s,9990);if(n.length>0)return n[n.length-1];const o=t.getLineCount();return i.lineNumber!==o||i.column!==t.getLineMaxColumn(o)?this._doFindPreviousMatchMultiline(t,new As(o,t.getLineMaxColumn(o)),e,s):null}static _doFindPreviousMatchLineByLine(t,i,e,s){const n=t.getLineCount(),o=i.lineNumber,r=t.getLineContent(o).substring(0,i.column-1),h=this._findLastMatchInLine(e,r,o,s);if(h)return h;for(let i=1;i<=n;i++){const r=(n+o-i-1)%n,h=t.getLineContent(r+1),c=this._findLastMatchInLine(e,h,r+1,s);if(c)return c}return null}static _findLastMatchInLine(t,i,e,s){let n,o=null;for(t.reset(0);n=t.next(i);)o=Gf(new Ms(e,n.index+1,e,n.index+1+n[0].length),n,s);return o}}function Jf(t,i,e,s,n){return function(t,i,e,s,n){if(0===s)return!0;const o=i.charCodeAt(s-1);if(0!==t.get(o))return!0;if(13===o||10===o)return!0;if(n>0){const e=i.charCodeAt(s);if(0!==t.get(e))return!0}return!1}(t,i,0,s,n)&&function(t,i,e,s,n){if(s+n===e)return!0;const o=i.charCodeAt(s+n);if(0!==t.get(o))return!0;if(13===o||10===o)return!0;if(n>0){const e=i.charCodeAt(s+n-1);if(0!==t.get(e))return!0}return!1}(t,i,e,s,n)}class Yf{constructor(t,i){this._wordSeparators=t,this._searchRegex=i,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(t){this._searchRegex.lastIndex=t,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(t){const i=t.length;let e;do{if(this._prevMatchStartIndex+this._prevMatchLength===i)return null;if(e=this._searchRegex.exec(t),!e)return null;const s=e.index,n=e[0].length;if(s===this._prevMatchStartIndex&&n===this._prevMatchLength){if(0===n){vo(t,i,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=s,this._prevMatchLength=n,!this._wordSeparators||Jf(this._wordSeparators,t,i,s,n))return e}while(e);return null}}class Xf{static computeUnicodeHighlights(t,i,e){const s=e?e.startLineNumber:1,n=e?e.endLineNumber:t.getLineCount(),o=new tp(i),r=o.getCandidateCodePoints();let h;h="allNonBasicAscii"===r?new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):new RegExp(`[${Gn(Array.from(r).map((t=>String.fromCodePoint(t))).join(""))}]`,"g");const c=new Yf(null,h),a=[];let l,u=!1,d=0,f=0,p=0;t:for(let i=s,e=n;i<=e;i++){const e=t.getLineContent(i),s=e.length;c.reset(0);do{if(l=c.next(e),l){let t=l.index,n=l.index+l[0].length;t>0&&go(e.charCodeAt(t-1))&&t--,n+1=1e3){u=!0;break t}a.push(new Ms(i,t+1,i,n+1))}}}while(l)}return{ranges:a,hasMore:u,ambiguousCharacterCount:d,invisibleCharacterCount:f,nonBasicAsciiCharacterCount:p}}static computeUnicodeHighlightReason(t,i){const e=new tp(i);switch(e.shouldHighlightNonBasicASCII(t,null)){case 0:return null;case 2:return{kind:1};case 3:{const s=t.codePointAt(0),n=e.ambiguousCharacters.getPrimaryConfusable(s),o=Bo.getLocales().filter((t=>!Bo.getInstance(new Set([...i.allowedLocales,t])).isAmbiguous(s)));return{kind:0,confusableWith:String.fromCodePoint(n),notAmbiguousInLocales:o}}case 1:return{kind:2}}}}class tp{constructor(t){this.options=t,this.allowedCodePoints=new Set(t.allowedCodePoints),this.ambiguousCharacters=Bo.getInstance(new Set(t.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return"allNonBasicAscii";const t=new Set;if(this.options.invisibleCharacters)for(const i of Po.codePoints)ip(String.fromCodePoint(i))||t.add(i);if(this.options.ambiguousCharacters)for(const i of this.ambiguousCharacters.getConfusableCodePoints())t.add(i);for(const i of this.allowedCodePoints)t.delete(i);return t}shouldHighlightNonBasicASCII(t,i){const e=t.codePointAt(0);if(this.allowedCodePoints.has(e))return 0;if(this.options.nonBasicASCII)return 1;let s=!1,n=!1;if(i)for(const t of i){const i=t.codePointAt(0),e=Eo(t);s=s||e,e||this.ambiguousCharacters.isAmbiguous(i)||Po.isInvisibleCharacter(i)||(n=!0)}return!s&&n?0:this.options.invisibleCharacters&&!ip(t)&&Po.isInvisibleCharacter(e)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(e)?3:0}}function ip(t){return" "===t||"\n"===t||"\t"===t}class ep{constructor(t,i,e){this.changes=t,this.moves=i,this.hitTimeout=e}}class sp{constructor(t,i){this.lineRangeMapping=t,this.changes=i}}class np{static addRange(t,i){let e=0;for(;ei))return new np(t,i)}static ofLength(t){return new np(0,t)}static ofStartAndLength(t,i){return new np(t,t+i)}constructor(t,i){if(this.start=t,this.endExclusive=i,t>i)throw new Ki(`Invalid range: ${this.toString()}`)}get isEmpty(){return this.start===this.endExclusive}delta(t){return new np(this.start+t,this.endExclusive+t)}deltaStart(t){return new np(this.start+t,this.endExclusive)}deltaEnd(t){return new np(this.start,this.endExclusive+t)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}equals(t){return this.start===t.start&&this.endExclusive===t.endExclusive}containsRange(t){return this.start<=t.start&&t.endExclusive<=this.endExclusive}contains(t){return this.start<=t&&t=t.endExclusive}slice(t){return t.slice(this.start,this.endExclusive)}clip(t){if(this.isEmpty)throw new Ki(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,t))}clipCyclic(t){if(this.isEmpty)throw new Ki(`Invalid clipping range: ${this.toString()}`);return t=this.endExclusive?this.start+(t-this.start)%this.length:t}forEach(t){for(let i=this.start;it.toString())).join(", ")}intersectsStrict(t){let i=0;for(;it+i.length),0)}}function rp(t,i){const e=function(t,i,e=t.length-1){for(let s=e;s>=0;s--)if(i(t[s]))return s;return-1}(t,i);if(-1!==e)return t[e]}function hp(t,i){const e=cp(t,i);return-1===e?void 0:t[e]}function cp(t,i,e=0,s=t.length){let n=e,o=s;for(;n0&&(e=n)}return e}function dp(t,i){if(0===t.length)return-1;let e=0;for(let s=1;s0&&(e=s);return e}lp.assertInvariants=!1;class fp{static fromRange(t){return new fp(t.startLineNumber,t.endLineNumber)}static fromRangeInclusive(t){return new fp(t.startLineNumber,t.endLineNumber+1)}static joinMany(t){if(0===t.length)return[];let i=new pp(t[0].slice());for(let e=1;ei)throw new Ki(`startLineNumber ${t} cannot be after endLineNumberExclusive ${i}`);this.startLineNumber=t,this.endLineNumberExclusive=i}contains(t){return this.startLineNumber<=t&&ti.endLineNumberExclusive>=t.startLineNumber)),e=cp(this._normalizedRanges,(i=>i.startLineNumber<=t.endLineNumberExclusive))+1;if(i===e)this._normalizedRanges.splice(i,0,t);else if(i===e-1)this._normalizedRanges[i]=this._normalizedRanges[i].join(t);else{const s=this._normalizedRanges[i].join(this._normalizedRanges[e-1]).join(t);this._normalizedRanges.splice(i,e-i,s)}}contains(t){const i=hp(this._normalizedRanges,(i=>i.startLineNumber<=t));return!!i&&i.endLineNumberExclusive>t}intersects(t){const i=hp(this._normalizedRanges,(i=>i.startLineNumbert.startLineNumber}getUnion(t){if(0===this._normalizedRanges.length)return t;if(0===t._normalizedRanges.length)return this;const i=[];let e=0,s=0,n=null;for(;e=o.startLineNumber?n=new fp(n.startLineNumber,Math.max(n.endLineNumberExclusive,o.endLineNumberExclusive)):(i.push(n),n=o)}return null!==n&&i.push(n),new pp(i)}subtractFrom(t){const i=ap(this._normalizedRanges,(i=>i.endLineNumberExclusive>=t.startLineNumber)),e=cp(this._normalizedRanges,(i=>i.startLineNumber<=t.endLineNumberExclusive))+1;if(i===e)return new pp([t]);const s=[];let n=t.startLineNumber;for(let t=i;tn&&s.push(new fp(n,i.startLineNumber)),n=i.endLineNumberExclusive}return nt.toString())).join(", ")}getIntersection(t){const i=[];let e=0,s=0;for(;ei.delta(t))))}}class gp{static inverse(t,i,e){const s=[];let n=1,o=1;for(const i of t){const t=new mp(new fp(n,i.original.startLineNumber),new fp(o,i.modified.startLineNumber),void 0);t.modified.isEmpty||s.push(t),n=i.original.endLineNumberExclusive,o=i.modified.endLineNumberExclusive}const r=new mp(new fp(n,i+1),new fp(o,e+1),void 0);return r.modified.isEmpty||s.push(r),s}constructor(t,i){this.original=t,this.modified=i}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new gp(this.modified,this.original)}join(t){return new gp(this.original.join(t.original),this.modified.join(t.modified))}}class mp extends gp{constructor(t,i,e){super(t,i),this.innerChanges=e}flip(){var t;return new mp(this.modified,this.original,null===(t=this.innerChanges)||void 0===t?void 0:t.map((t=>t.flip())))}}class wp{constructor(t,i){this.originalRange=t,this.modifiedRange=i}toString(){return`{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`}flip(){return new wp(this.modifiedRange,this.originalRange)}}class vp{computeDiff(t,i,e){var s;const n=new Sp(t,i,{maxComputationTime:e.maxComputationTimeMs,shouldIgnoreTrimWhitespace:e.ignoreTrimWhitespace,shouldComputeCharChanges:!0,shouldMakePrettyDiff:!0,shouldPostProcessCharChanges:!0}).computeDiff(),o=[];let r=null;for(const t of n.changes){let i,e;i=0===t.originalEndLineNumber?new fp(t.originalStartLineNumber+1,t.originalStartLineNumber+1):new fp(t.originalStartLineNumber,t.originalEndLineNumber+1),e=0===t.modifiedEndLineNumber?new fp(t.modifiedStartLineNumber+1,t.modifiedStartLineNumber+1):new fp(t.modifiedStartLineNumber,t.modifiedEndLineNumber+1);let n=new mp(i,e,null===(s=t.charChanges)||void 0===s?void 0:s.map((t=>new wp(new Ms(t.originalStartLineNumber,t.originalStartColumn,t.originalEndLineNumber,t.originalEndColumn),new Ms(t.modifiedStartLineNumber,t.modifiedStartColumn,t.modifiedEndLineNumber,t.modifiedEndColumn)))));r&&(r.modified.endLineNumberExclusive!==n.modified.startLineNumber&&r.original.endLineNumberExclusive!==n.original.startLineNumber||(n=new mp(r.original.join(n.original),r.modified.join(n.modified),r.innerChanges&&n.innerChanges?r.innerChanges.concat(n.innerChanges):void 0),o.pop())),o.push(n),r=n}return Ch((()=>Sh(o,((t,i)=>i.original.startLineNumber-t.original.endLineNumberExclusive==i.modified.startLineNumber-t.modified.endLineNumberExclusive&&t.original.endLineNumberExclusive(10===t?"\\n":String.fromCharCode(t))+`-(${this._lineNumbers[i]},${this._columns[i]})`)).join(", ")+"]"}_assertIndex(t,i){if(t<0||t>=i.length)throw new Error("Illegal index")}getElements(){return this._charCodes}getStartLineNumber(t){return t>0&&t===this._lineNumbers.length?this.getEndLineNumber(t-1):(this._assertIndex(t,this._lineNumbers),this._lineNumbers[t])}getEndLineNumber(t){return-1===t?this.getStartLineNumber(t+1):(this._assertIndex(t,this._lineNumbers),10===this._charCodes[t]?this._lineNumbers[t]+1:this._lineNumbers[t])}getStartColumn(t){return t>0&&t===this._columns.length?this.getEndColumn(t-1):(this._assertIndex(t,this._columns),this._columns[t])}getEndColumn(t){return-1===t?this.getStartColumn(t+1):(this._assertIndex(t,this._columns),10===this._charCodes[t]?1:this._columns[t]+1)}}class xp{constructor(t,i,e,s,n,o,r,h){this.originalStartLineNumber=t,this.originalStartColumn=i,this.originalEndLineNumber=e,this.originalEndColumn=s,this.modifiedStartLineNumber=n,this.modifiedStartColumn=o,this.modifiedEndLineNumber=r,this.modifiedEndColumn=h}static createFromDiffChange(t,i,e){const s=i.getStartLineNumber(t.originalStart),n=i.getStartColumn(t.originalStart),o=i.getEndLineNumber(t.originalStart+t.originalLength-1),r=i.getEndColumn(t.originalStart+t.originalLength-1),h=e.getStartLineNumber(t.modifiedStart),c=e.getStartColumn(t.modifiedStart),a=e.getEndLineNumber(t.modifiedStart+t.modifiedLength-1),l=e.getEndColumn(t.modifiedStart+t.modifiedLength-1);return new xp(s,n,o,r,h,c,a,l)}}class Cp{constructor(t,i,e,s,n){this.originalStartLineNumber=t,this.originalEndLineNumber=i,this.modifiedStartLineNumber=e,this.modifiedEndLineNumber=s,this.charChanges=n}static createFromDiffResult(t,i,e,s,n,o,r){let h,c,a,l,u;if(0===i.originalLength?(h=e.getStartLineNumber(i.originalStart)-1,c=0):(h=e.getStartLineNumber(i.originalStart),c=e.getEndLineNumber(i.originalStart+i.originalLength-1)),0===i.modifiedLength?(a=s.getStartLineNumber(i.modifiedStart)-1,l=0):(a=s.getStartLineNumber(i.modifiedStart),l=s.getEndLineNumber(i.modifiedStart+i.modifiedLength-1)),o&&i.originalLength>0&&i.originalLength<20&&i.modifiedLength>0&&i.modifiedLength<20&&n()){const o=e.createCharSequence(t,i.originalStart,i.originalStart+i.originalLength-1),h=s.createCharSequence(t,i.modifiedStart,i.modifiedStart+i.modifiedLength-1);if(o.getElements().length>0&&h.getElements().length>0){let t=bp(o,h,n,!0).changes;r&&(t=function(t){if(t.length<=1)return t;const i=[t[0]];let e=i[0];for(let s=1,n=t.length;s1&&r>1&&t.charCodeAt(e-2)===i.charCodeAt(r-2);)e--,r--;(e>1||r>1)&&this._pushTrimWhitespaceCharChange(s,n+1,1,e,o+1,1,r)}{let e=Ep(t,1),r=Ep(i,1);const h=t.length+1,c=i.length+1;for(;e!0;const i=Date.now();return()=>Date.now()-i{e.push(Lp.fromOffsetPairs(t?t.getEndExclusives():Fp.zero,s?s.getStarts():new Fp(i,(t?t.seq2Range.endExclusive-t.seq1Range.endExclusive:0)+i)))})),e}static fromOffsetPairs(t,i){return new Lp(new np(t.offset1,i.offset1),new np(t.offset2,i.offset2))}constructor(t,i){this.seq1Range=t,this.seq2Range=i}swap(){return new Lp(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(t){return new Lp(this.seq1Range.join(t.seq1Range),this.seq2Range.join(t.seq2Range))}delta(t){return 0===t?this:new Lp(this.seq1Range.delta(t),this.seq2Range.delta(t))}deltaStart(t){return 0===t?this:new Lp(this.seq1Range.deltaStart(t),this.seq2Range.deltaStart(t))}deltaEnd(t){return 0===t?this:new Lp(this.seq1Range.deltaEnd(t),this.seq2Range.deltaEnd(t))}intersect(t){const i=this.seq1Range.intersect(t.seq1Range),e=this.seq2Range.intersect(t.seq2Range);if(i&&e)return new Lp(i,e)}getStarts(){return new Fp(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new Fp(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}}class Fp{constructor(t,i){this.offset1=t,this.offset2=i}toString(){return`${this.offset1} <-> ${this.offset2}`}}Fp.zero=new Fp(0,0),Fp.max=new Fp(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);class Tp{isValid(){return!0}}Tp.instance=new Tp;class Rp{constructor(t){if(this.timeout=t,this.startTime=Date.now(),this.valid=!0,t<=0)throw new Ki("timeout must be positive")}isValid(){return!(Date.now()-this.startTime0&&c>0&&3===o.get(h-1,c-1)&&(u+=r.get(h-1,c-1)),u+=s?s(h,c):1):u=-1;const d=Math.max(a,l,u);if(d===u){const t=h>0&&c>0?r.get(h-1,c-1):0;r.set(h,c,t+1),o.set(h,c,3)}else d===a?(r.set(h,c,0),o.set(h,c,1)):d===l&&(r.set(h,c,0),o.set(h,c,2));n.set(h,c,d)}const h=[];let c=t.length,a=i.length;function l(t,i){t+1===c&&i+1===a||h.push(new Lp(new np(t+1,c),new np(i+1,a))),c=t,a=i}let u=t.length-1,d=i.length-1;for(;u>=0&&d>=0;)3===o.get(u,d)?(l(u,d),u--,d--):1===o.get(u,d)?u--:d--;return l(-1,-1),h.reverse(),new Mp(h,!1)}}class Bp{compute(t,i,e=Tp.instance){if(0===t.length||0===i.length)return Mp.trivial(t,i);const s=t,n=i;function o(t,i){for(;ts.length||u>n.length)continue;const d=o(l,u);h.set(a,d);const f=c.get(l===e?a+1:a-1);if(c.set(a,d!==l?new Pp(f,l,u,d-l):f),h.get(a)===s.length&&h.get(a)-a===n.length)break t}}let l=c.get(a);const u=[];let d=s.length,f=n.length;for(;;){const t=l?l.x+l.length:0,i=l?l.y+l.length:0;if(t===d&&i===f||u.push(new Lp(new np(t,d),new np(i,f))),!l)break;d=l.x,f=l.y,l=l.prev}return u.reverse(),new Mp(u,!1)}}class Pp{constructor(t,i,e,s){this.prev=t,this.x=i,this.y=e,this.length=s}}class $p{constructor(){this.positiveArr=new Int32Array(10),this.negativeArr=new Int32Array(10)}get(t){return t<0?this.negativeArr[t=-t-1]:this.positiveArr[t]}set(t,i){if(t<0){if((t=-t-1)>=this.negativeArr.length){const t=this.negativeArr;this.negativeArr=new Int32Array(2*t.length),this.negativeArr.set(t)}this.negativeArr[t]=i}else{if(t>=this.positiveArr.length){const t=this.positiveArr;this.positiveArr=new Int32Array(2*t.length),this.positiveArr.set(t)}this.positiveArr[t]=i}}}class Wp{constructor(){this.positiveArr=[],this.negativeArr=[]}get(t){return t<0?this.negativeArr[t=-t-1]:this.positiveArr[t]}set(t,i){t<0?this.negativeArr[t=-t-1]=i:this.positiveArr[t]=i}}class jp{constructor(t,i){this.uri=t,this.value=i}}class zp{constructor(t,i){if(this[$f]="ResourceMap",t instanceof zp)this.map=new Map(t.map),this.toKey=null!=i?i:zp.defaultToKey;else if(function(t){return Array.isArray(t)}(t)){this.map=new Map,this.toKey=null!=i?i:zp.defaultToKey;for(const[i,e]of t)this.set(i,e)}else this.map=new Map,this.toKey=null!=t?t:zp.defaultToKey}set(t,i){return this.map.set(this.toKey(t),new jp(t,i)),this}get(t){var i;return null===(i=this.map.get(this.toKey(t)))||void 0===i?void 0:i.value}has(t){return this.map.has(this.toKey(t))}get size(){return this.map.size}clear(){this.map.clear()}delete(t){return this.map.delete(this.toKey(t))}forEach(t,i){void 0!==i&&(t=t.bind(i));for(const[i,e]of this.map)t(e.value,e.uri,this)}*values(){for(const t of this.map.values())yield t.value}*keys(){for(const t of this.map.values())yield t.uri}*entries(){for(const t of this.map.values())yield[t.uri,t.value]}*[($f=Symbol.toStringTag,Symbol.iterator)](){for(const[,t]of this.map)yield[t.uri,t.value]}}zp.defaultToKey=t=>t.toString();class Hp{constructor(){this[Wf]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){var t;return null===(t=this._head)||void 0===t?void 0:t.value}get last(){var t;return null===(t=this._tail)||void 0===t?void 0:t.value}has(t){return this._map.has(t)}get(t,i=0){const e=this._map.get(t);if(e)return 0!==i&&this.touch(e,i),e.value}set(t,i,e=0){let s=this._map.get(t);if(s)s.value=i,0!==e&&this.touch(s,e);else{switch(s={key:t,value:i,next:void 0,previous:void 0},e){case 0:case 2:default:this.addItemLast(s);break;case 1:this.addItemFirst(s)}this._map.set(t,s),this._size++}return this}delete(t){return!!this.remove(t)}remove(t){const i=this._map.get(t);if(i)return this._map.delete(t),this.removeItem(i),this._size--,i.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const t=this._head;return this._map.delete(t.key),this.removeItem(t),this._size--,t.value}forEach(t,i){const e=this._state;let s=this._head;for(;s;){if(i?t.bind(i)(s.value,s.key,this):t(s.value,s.key,this),this._state!==e)throw new Error("LinkedMap got modified during iteration.");s=s.next}}keys(){const t=this,i=this._state;let e=this._head;const s={[Symbol.iterator]:()=>s,next(){if(t._state!==i)throw new Error("LinkedMap got modified during iteration.");if(e){const t={value:e.key,done:!1};return e=e.next,t}return{value:void 0,done:!0}}};return s}values(){const t=this,i=this._state;let e=this._head;const s={[Symbol.iterator]:()=>s,next(){if(t._state!==i)throw new Error("LinkedMap got modified during iteration.");if(e){const t={value:e.value,done:!1};return e=e.next,t}return{value:void 0,done:!0}}};return s}entries(){const t=this,i=this._state;let e=this._head;const s={[Symbol.iterator]:()=>s,next(){if(t._state!==i)throw new Error("LinkedMap got modified during iteration.");if(e){const t={value:[e.key,e.value],done:!1};return e=e.next,t}return{value:void 0,done:!0}}};return s}[(Wf=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(t){if(t>=this.size)return;if(0===t)return void this.clear();let i=this._head,e=this.size;for(;i&&e>t;)this._map.delete(i.key),i=i.next,e--;this._head=i,this._size=e,i&&(i.previous=void 0),this._state++}addItemFirst(t){if(this._head||this._tail){if(!this._head)throw new Error("Invalid list");t.next=this._head,this._head.previous=t}else this._tail=t;this._head=t,this._state++}addItemLast(t){if(this._head||this._tail){if(!this._tail)throw new Error("Invalid list");t.previous=this._tail,this._tail.next=t}else this._head=t;this._tail=t,this._state++}removeItem(t){if(t===this._head&&t===this._tail)this._head=void 0,this._tail=void 0;else if(t===this._head){if(!t.next)throw new Error("Invalid list");t.next.previous=void 0,this._head=t.next}else if(t===this._tail){if(!t.previous)throw new Error("Invalid list");t.previous.next=void 0,this._tail=t.previous}else{const i=t.next,e=t.previous;if(!i||!e)throw new Error("Invalid list");i.previous=e,e.next=i}t.next=void 0,t.previous=void 0,this._state++}touch(t,i){if(!this._head||!this._tail)throw new Error("Invalid list");if(1===i||2===i)if(1===i){if(t===this._head)return;const i=t.next,e=t.previous;t===this._tail?(e.next=void 0,this._tail=e):(i.previous=e,e.next=i),t.previous=void 0,t.next=this._head,this._head.previous=t,this._head=t,this._state++}else if(2===i){if(t===this._tail)return;const i=t.next,e=t.previous;t===this._head?(i.previous=void 0,this._head=i):(i.previous=e,e.next=i),t.next=void 0,t.previous=this._tail,this._tail.next=t,this._tail=t,this._state++}}toJSON(){const t=[];return this.forEach(((i,e)=>{t.push([e,i])})),t}fromJSON(t){this.clear();for(const[i,e]of t)this.set(i,e)}}class Vp extends Hp{constructor(t,i=1){super(),this._limit=t,this._ratio=Math.min(Math.max(0,i),1)}get limit(){return this._limit}set limit(t){this._limit=t,this.checkTrim()}get(t,i=2){return super.get(t,i)}peek(t){return super.get(t,0)}set(t,i){return super.set(t,i,2),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}class Up{constructor(t){if(this._m1=new Map,this._m2=new Map,t)for(const[i,e]of t)this.set(i,e)}clear(){this._m1.clear(),this._m2.clear()}set(t,i){this._m1.set(t,i),this._m2.set(i,t)}get(t){return this._m1.get(t)}getKey(t){return this._m2.get(t)}delete(t){const i=this._m1.get(t);return void 0!==i&&(this._m1.delete(t),this._m2.delete(i),!0)}keys(){return this._m1.keys()}values(){return this._m1.values()}}class qp{constructor(){this.map=new Map}add(t,i){let e=this.map.get(t);e||(e=new Set,this.map.set(t,e)),e.add(i)}delete(t,i){const e=this.map.get(t);e&&(e.delete(i),0===e.size&&this.map.delete(t))}forEach(t,i){const e=this.map.get(t);e&&e.forEach(i)}get(t){return this.map.get(t)||new Set}}class Kp{constructor(t,i,e){this.lines=t,this.considerWhitespaceChanges=e,this.elements=[],this.firstCharOffsetByLine=[],this.additionalOffsetByLine=[];let s=!1;i.start>0&&i.endExclusive>=t.length&&(i=new np(i.start-1,i.endExclusive),s=!0),this.lineRange=i,this.firstCharOffsetByLine[0]=0;for(let i=this.lineRange.start;iString.fromCharCode(t))).join("")}getElement(t){return this.elements[t]}get length(){return this.elements.length}getBoundaryScore(t){const i=Jp(t>0?this.elements[t-1]:-1),e=Jp(ti<=t));return new As(this.lineRange.start+i+1,t-this.firstCharOffsetByLine[i]+this.additionalOffsetByLine[i]+1)}translateRange(t){return Ms.fromPositions(this.translateOffset(t.start),this.translateOffset(t.endExclusive))}findWordContaining(t){if(t<0||t>=this.elements.length)return;if(!Gp(this.elements[t]))return;let i=t;for(;i>0&&Gp(this.elements[i-1]);)i--;let e=t;for(;ei<=t.start)))&&void 0!==i?i:0,n=null!==(e=function(i){const e=ap(i,(i=>t.endExclusive<=i));return e===i.length?void 0:i[e]}(this.firstCharOffsetByLine))&&void 0!==e?e:this.elements.length;return new np(s,n)}}function Gp(t){return t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57}const Zp={0:0,1:0,2:0,3:10,4:2,5:3,6:3,7:10,8:10};function Qp(t){return Zp[t]}function Jp(t){return 10===t?8:13===t?7:Ip(t)?6:t>=97&&t<=122?0:t>=65&&t<=90?1:t>=48&&t<=57?2:-1===t?3:44===t||59===t?5:4}function Yp(t,i,e){if(t.trim()===i.trim())return!0;if(t.length>300&&i.length>300)return!1;const s=(new Bp).compute(new Kp([t],new np(0,1),!1),new Kp([i],new np(0,1),!1),e);let n=0;const o=Lp.invert(s.diffs,t.length);for(const i of o)i.seq1Range.forEach((i=>{Ip(t.charCodeAt(i))||n++}));const r=function(i){let e=0;for(let s=0;si.length?t:i);return n/r>.6&&r>10}function Xp(t,i,e){let s=e;return s=tg(t,i,s),s=tg(t,i,s),s=function(t,i,e){if(!t.getBoundaryScore||!i.getBoundaryScore)return e;for(let s=0;s0?e[s-1]:void 0,o=e[s],r=s+10&&(r=r.delta(h))}n.push(r)}return s.length>0&&n.push(s[s.length-1]),n}function ig(t,i,e,s,n){let o=1;for(;t.seq1Range.start-o>=s.start&&t.seq2Range.start-o>=n.start&&e.isStronglyEqual(t.seq2Range.start-o,t.seq2Range.endExclusive-o)&&o<100;)o++;o--;let r=0;for(;t.seq1Range.start+rc&&(c=r,h=s)}return t.delta(h)}class eg{constructor(t,i){this.trimmedHash=t,this.lines=i}getElement(t){return this.trimmedHash[t]}get length(){return this.trimmedHash.length}getBoundaryScore(t){return 1e3-((0===t?0:sg(this.lines[t-1]))+(t===this.lines.length?0:sg(this.lines[t])))}getText(t){return this.lines.slice(t.start,t.endExclusive).join("\n")}isStronglyEqual(t,i){return this.lines[t]===this.lines[i]}}function sg(t){let i=0;for(;it===i)))return new ep([],[],!1);if(1===t.length&&0===t[0].length||1===i.length&&0===i[0].length)return new ep([new mp(new fp(1,t.length+1),new fp(1,i.length+1),[new wp(new Ms(1,1,t.length,t[0].length+1),new Ms(1,1,i.length,i[0].length+1))])],[],!1);const s=0===e.maxComputationTimeMs?Tp.instance:new Rp(e.maxComputationTimeMs),n=!e.ignoreTrimWhitespace,o=new Map;function r(t){let i=o.get(t);return void 0===i&&(i=o.size,o.set(t,i)),i}const h=t.map((t=>r(t.trim()))),c=i.map((t=>r(t.trim()))),a=new eg(h,t),u=new eg(c,i),d=(()=>a.length+u.length<1700?this.dynamicProgrammingDiffing.compute(a,u,s,((e,s)=>t[e]===i[s]?0===i[s].length?.1:1+Math.log(1+i[s].length):.99)):this.myersDiffingAlgorithm.compute(a,u))();let f=d.diffs,p=d.hitTimeout;f=Xp(a,u,f),f=function(t,i,e){let s=e;if(0===s.length)return s;let n,o=0;do{n=!1;const r=[s[0]];for(let h=1;h5||e.seq1Range.length+e.seq2Range.length>5)}l(a,c)?(n=!0,r[r.length-1]=r[r.length-1].join(c)):r.push(c)}s=r}while(o++<10&&n);return s}(a,0,f);const g=[],m=e=>{if(n)for(let o=0;oe.seq1Range.start-w==e.seq2Range.start-v)),m(e.seq1Range.start-w),w=e.seq1Range.endExclusive,v=e.seq2Range.endExclusive;const o=this.refineDiff(t,i,e,s,n);o.hitTimeout&&(p=!0);for(const t of o.mappings)g.push(t)}m(t.length-w);const b=og(g,t,i);let y=[];return e.computeMoves&&(y=this.computeMoves(b,t,i,h,c,s,n)),Ch((()=>{function e(t,i){return!(t.lineNumber<1||t.lineNumber>i.length)&&!(t.column<1||t.column>i[t.lineNumber-1].length+1)}function s(t,i){return!(t.startLineNumber<1||t.startLineNumber>i.length+1||t.endLineNumberExclusive<1||t.endLineNumberExclusive>i.length+1)}for(const n of b){if(!n.innerChanges)return!1;for(const s of n.innerChanges)if(!(e(s.modifiedRange.getStartPosition(),i)&&e(s.modifiedRange.getEndPosition(),i)&&e(s.originalRange.getStartPosition(),t)&&e(s.originalRange.getEndPosition(),t)))return!1;if(!s(n.modified,i)||!s(n.original,t))return!1}return!0})),new ep(b,y,p)}computeMoves(t,i,e,s,n,o,r){return function(t,i,e,s,n,o){let{moves:r,excludedChanges:h}=function(t,i,e,s){const n=[],o=t.filter((t=>t.modified.isEmpty&&t.original.length>=3)).map((t=>new _p(t.original,i,t))),r=new Set(t.filter((t=>t.original.isEmpty&&t.modified.length>=3)).map((t=>new _p(t.modified,e,t)))),h=new Set;for(const t of o){let i,e=-1;for(const s of r){const n=t.computeSimilarity(s);n>e&&(e=n,i=s)}if(e>.9&&i&&(r.delete(i),n.push(new gp(t.range,i.range)),h.add(t.source),h.add(i.source)),!s.isValid())return{moves:n,excludedChanges:h}}return{moves:n,excludedChanges:h}}(t,i,e,o);if(!o.isValid())return[];const c=function(t,i,e,s,n,o){const r=[],h=new qp;for(const e of t)for(let t=e.original.startLineNumber;tt.modified.startLineNumber),R));for(const i of t){let t=[];for(let s=i.modified.startLineNumber;s{for(const e of t)if(e.originalLineRange.endLineNumberExclusive+1===i.endLineNumberExclusive&&e.modifiedLineRange.endLineNumberExclusive+1===n.endLineNumberExclusive)return e.originalLineRange=new fp(e.originalLineRange.startLineNumber,i.endLineNumberExclusive),e.modifiedLineRange=new fp(e.modifiedLineRange.startLineNumber,n.endLineNumberExclusive),void o.push(e);const e={modifiedLineRange:n,originalLineRange:i};c.push(e),o.push(e)})),t=o}if(!o.isValid())return[]}c.sort(I(T((t=>t.modifiedLineRange.length),R)));const a=new pp,l=new pp;for(const t of c){const i=t.modifiedLineRange.startLineNumber-t.originalLineRange.startLineNumber,e=a.subtractFrom(t.modifiedLineRange),s=l.subtractFrom(t.originalLineRange).getWithDelta(i),n=e.getIntersection(s);for(const t of n.ranges){if(t.length<3)continue;const e=t,s=t.delta(-i);r.push(new gp(s,e)),a.addRange(e),l.addRange(s)}}r.sort(T((t=>t.original.startLineNumber),R));const u=new lp(t);for(let i=0;it.original.startLineNumber<=e.original.startLineNumber)),c=hp(t,(t=>t.modified.startLineNumber<=e.modified.startLineNumber)),d=Math.max(e.original.startLineNumber-h.original.startLineNumber,e.modified.startLineNumber-c.modified.startLineNumber),f=u.findLastMonotonous((t=>t.original.startLineNumbert.modified.startLineNumbers.length||i>n.length)break;if(a.contains(i)||l.contains(t))break;if(!Yp(s[t-1],n[i-1],o))break}for(m>0&&(l.addRange(new fp(e.original.startLineNumber-m,e.original.startLineNumber)),a.addRange(new fp(e.modified.startLineNumber-m,e.modified.startLineNumber))),w=0;ws.length||i>n.length)break;if(a.contains(i)||l.contains(t))break;if(!Yp(s[t-1],n[i-1],o))break}w>0&&(l.addRange(new fp(e.original.endLineNumberExclusive,e.original.endLineNumberExclusive+w)),a.addRange(new fp(e.modified.endLineNumberExclusive,e.modified.endLineNumberExclusive+w))),(m>0||w>0)&&(r[i]=new gp(new fp(e.original.startLineNumber-m,e.original.endLineNumberExclusive+w),new fp(e.modified.startLineNumber-m,e.modified.endLineNumberExclusive+w)))}return r}(t.filter((t=>!h.has(t))),s,n,i,e,o);return E(r,c),r=function(t){if(0===t.length)return t;t.sort(T((t=>t.original.startLineNumber),R));const i=[t[0]];for(let e=1;e=0&&r>=0&&o+r<=2?i[i.length-1]=s.join(n):i.push(n)}return i}(r),r=r.filter((t=>{const e=t.original.toOffsetRange().slice(i).map((t=>t.trim()));return e.join("\n").length>=15&&function(t){let i=0;for(const e of t)e.length>=2&&i++;return i}(e)>=2})),r=function(t,i){const e=new lp(t);return i.filter((i=>(e.findLastMonotonous((t=>t.original.startLineNumbert.modified.startLineNumber{const s=og(this.refineDiff(i,e,new Lp(t.original.toOffsetRange(),t.modified.toOffsetRange()),o,r).mappings,i,e,!0);return new sp(t,s)}))}refineDiff(t,i,e,s,n){const o=new Kp(t,e.seq1Range,n),r=new Kp(i,e.seq2Range,n),h=o.length+r.length<500?this.dynamicProgrammingDiffing.compute(o,r,s):this.myersDiffingAlgorithm.compute(o,r,s);let c=h.diffs;return c=Xp(o,r,c),c=function(t,i,e){const s=[];let n;function o(){if(!n)return;const t=n.s1Range.length-n.deleted;Math.max(n.deleted,n.added)+(n.count-1)>t&&s.push(new Lp(n.s1Range,n.s2Range)),n=void 0}for(const r of e){function h(t,i){var e,s,h,c;if(!n||!n.s1Range.containsRange(t)||!n.s2Range.containsRange(i))if(!n||n.s1Range.endExclusive0||i.length>0;){const s=t[0],n=i[0];let o;o=s&&(!n||s.seq1Range.start0&&e[e.length-1].seq1Range.endExclusive>=o.seq1Range.start?e[e.length-1]=e[e.length-1].join(o):e.push(o)}return e}(e,s)}(o,r,c),c=function(t,i,e){const s=[];for(const t of e){const i=s[s.length-1];i&&(t.seq1Range.start-i.seq1Range.endExclusive<=2||t.seq2Range.start-i.seq2Range.endExclusive<=2)?s[s.length-1]=new Lp(i.seq1Range.join(t.seq1Range),i.seq2Range.join(t.seq2Range)):s.push(t)}return s}(0,0,c),c=function(t,i,e){let s=e;if(0===s.length)return s;let n,o=0;do{n=!1;const h=[s[0]];for(let c=1;c5||n.length>500)return!1;const o=t.getText(n).trim();if(o.length>20||o.split(/\r\n|\r|\n/).length>1)return!1;const r=t.countLinesIn(e.seq1Range),h=e.seq1Range.length,c=i.countLinesIn(e.seq2Range),u=e.seq2Range.length,d=t.countLinesIn(s.seq1Range),f=s.seq1Range.length,p=i.countLinesIn(s.seq2Range),g=s.seq2Range.length;function m(t){return Math.min(t,130)}return Math.pow(Math.pow(m(40*r+h),1.5)+Math.pow(m(40*c+u),1.5),1.5)+Math.pow(Math.pow(m(40*d+f),1.5)+Math.pow(m(40*p+g),1.5),1.5)>74184.96480721243}u(l,a)?(n=!0,h[h.length-1]=h[h.length-1].join(a)):h.push(a)}s=h}while(o++<10&&n);const r=[];return function(t,i){for(let e=0;e{let n=e;function o(t){return t.length>0&&t.trim().length<=3&&e.seq1Range.length+e.seq2Range.length>100}const h=t.extendToFullLines(e.seq1Range),c=t.getText(new np(h.start,e.seq1Range.start));o(c)&&(n=n.deltaStart(-c.length));const a=t.getText(new np(e.seq1Range.endExclusive,h.endExclusive));o(a)&&(n=n.deltaEnd(a.length));const l=Lp.fromOffsetPairs(i?i.getEndExclusives():Fp.zero,s?s.getStarts():Fp.max),u=n.intersect(l);r.push(u)})),r}(o,r,c),{mappings:c.map((t=>new wp(o.translateRange(t.seq1Range),r.translateRange(t.seq2Range)))),hitTimeout:h.hitTimeout}}}function og(t,i,e,s=!1){const n=[];for(const s of p(t.map((t=>function(t,i,e){let s=0,n=0;1===t.modifiedRange.endColumn&&1===t.originalRange.endColumn&&t.originalRange.startLineNumber+s<=t.originalRange.endLineNumber&&t.modifiedRange.startLineNumber+s<=t.modifiedRange.endLineNumber&&(n=-1),t.modifiedRange.startColumn-1>=e[t.modifiedRange.startLineNumber-1].length&&t.originalRange.startColumn-1>=i[t.originalRange.startLineNumber-1].length&&t.originalRange.startLineNumber<=t.originalRange.endLineNumber+n&&t.modifiedRange.startLineNumber<=t.modifiedRange.endLineNumber+n&&(s=1);const o=new fp(t.originalRange.startLineNumber+s,t.originalRange.endLineNumber+1+n),r=new fp(t.modifiedRange.startLineNumber+s,t.modifiedRange.endLineNumber+1+n);return new mp(o,r,[t])}(t,i,e))),((t,i)=>t.original.overlapOrTouch(i.original)||t.modified.overlapOrTouch(i.modified)))){const t=s[0],i=s[s.length-1];n.push(new mp(t.original.join(i.original),t.modified.join(i.modified),s.map((t=>t.innerChanges[0]))))}return Ch((()=>!(!s&&n.length>0&&n[0].original.startLineNumber!==n[0].modified.startLineNumber)&&Sh(n,((t,i)=>i.original.startLineNumber-t.original.endLineNumberExclusive==i.modified.startLineNumber-t.modified.endLineNumberExclusive&&t.original.endLineNumberExclusive0){switch(c=Math.min(a<=.5?l/(2*a):l/(2-2*a),1),o){case i:h=(e-s)/l+(e1&&(e-=1),e<1/6?t+6*(i-t)*e:e<.5?i:e<2/3?t+(i-t)*(2/3-e)*6:t}static toRGBA(t){const i=t.h/360,{s:e,l:s,a:n}=t;let o,r,h;if(0===e)o=r=h=s;else{const t=s<.5?s*(1+e):s+e-s*e,n=2*s-t;o=cg._hue2rgb(n,t,i+1/3),r=cg._hue2rgb(n,t,i),h=cg._hue2rgb(n,t,i-1/3)}return new hg(Math.round(255*o),Math.round(255*r),Math.round(255*h),n)}}class ag{constructor(t,i,e,s){this._hsvaBrand=void 0,this.h=0|Math.max(Math.min(360,t),0),this.s=rg(Math.max(Math.min(1,i),0),3),this.v=rg(Math.max(Math.min(1,e),0),3),this.a=rg(Math.max(Math.min(1,s),0),3)}static equals(t,i){return t.h===i.h&&t.s===i.s&&t.v===i.v&&t.a===i.a}static fromRGBA(t){const i=t.r/255,e=t.g/255,s=t.b/255,n=Math.max(i,e,s),o=n-Math.min(i,e,s),r=0===n?0:o/n;let h;return h=0===o?0:n===i?((e-s)/o%6+6)%6:n===e?(s-i)/o+2:(i-e)/o+4,new ag(Math.round(60*h),r,n,t.a)}static toRGBA(t){const{h:i,s:e,v:s,a:n}=t,o=s*e,r=o*(1-Math.abs(i/60%2-1)),h=s-o;let[c,a,l]=[0,0,0];return i<60?(c=o,a=r):i<120?(c=r,a=o):i<180?(a=o,l=r):i<240?(a=r,l=o):i<300?(c=r,l=o):i<=360&&(c=o,l=r),c=Math.round(255*(c+h)),a=Math.round(255*(a+h)),l=Math.round(255*(l+h)),new hg(c,a,l,n)}}class lg{static fromHex(t){return lg.Format.CSS.parseHex(t)||lg.red}static equals(t,i){return!t&&!i||!(!t||!i)&&t.equals(i)}get hsla(){return this._hsla?this._hsla:cg.fromRGBA(this.rgba)}get hsva(){return this._hsva?this._hsva:ag.fromRGBA(this.rgba)}constructor(t){if(!t)throw new Error("Color needs a value");if(t instanceof hg)this.rgba=t;else if(t instanceof cg)this._hsla=t,this.rgba=cg.toRGBA(t);else{if(!(t instanceof ag))throw new Error("Invalid color ctor argument");this._hsva=t,this.rgba=ag.toRGBA(t)}}equals(t){return!!t&&hg.equals(this.rgba,t.rgba)&&cg.equals(this.hsla,t.hsla)&&ag.equals(this.hsva,t.hsva)}getRelativeLuminance(){return rg(.2126*lg._relativeLuminanceForComponent(this.rgba.r)+.7152*lg._relativeLuminanceForComponent(this.rgba.g)+.0722*lg._relativeLuminanceForComponent(this.rgba.b),4)}static _relativeLuminanceForComponent(t){const i=t/255;return i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4)}isLighter(){return(299*this.rgba.r+587*this.rgba.g+114*this.rgba.b)/1e3>=128}isLighterThan(t){return this.getRelativeLuminance()>t.getRelativeLuminance()}isDarkerThan(t){return this.getRelativeLuminance()this._lines.length)i=this._lines.length,e=this._lines[i-1].length+1,s=!0;else{const t=this._lines[i-1].length+1;e<1?(e=1,s=!0):e>t&&(e=t,s=!0)}return s?{lineNumber:i,column:e}:t}}class bg{constructor(t,i){this._host=t,this._models=Object.create(null),this._foreignModuleFactory=i,this._foreignModule=null}dispose(){this._models=Object.create(null)}_getModel(t){return this._models[t]}_getModels(){const t=[];return Object.keys(this._models).forEach((i=>t.push(this._models[i]))),t}acceptNewModel(t){this._models[t.url]=new vg(ms.parse(t.url),t.lines,t.EOL,t.versionId)}acceptModelChanged(t,i){this._models[t]&&this._models[t].onEvents(i)}acceptRemovedModel(t){this._models[t]&&delete this._models[t]}async computeUnicodeHighlights(t,i,e){const s=this._getModel(t);return s?Xf.computeUnicodeHighlights(s,i,e):{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}}async computeDiff(t,i,e,s){const n=this._getModel(t),o=this._getModel(i);return n&&o?bg.computeDiff(n,o,e,s):null}static computeDiff(t,i,e,s){const n="advanced"===s?new ng:new vp,o=t.getLinesContent(),r=i.getLinesContent(),h=n.computeDiff(o,r,e);function c(t){return t.map((t=>{var i;return[t.original.startLineNumber,t.original.endLineNumberExclusive,t.modified.startLineNumber,t.modified.endLineNumberExclusive,null===(i=t.innerChanges)||void 0===i?void 0:i.map((t=>[t.originalRange.startLineNumber,t.originalRange.startColumn,t.originalRange.endLineNumber,t.originalRange.endColumn,t.modifiedRange.startLineNumber,t.modifiedRange.startColumn,t.modifiedRange.endLineNumber,t.modifiedRange.endColumn]))]}))}return{identical:!(h.changes.length>0)&&this._modelsAreIdentical(t,i),quitEarly:h.hitTimeout,changes:c(h.changes),moves:h.moves.map((t=>[t.lineRangeMapping.original.startLineNumber,t.lineRangeMapping.original.endLineNumberExclusive,t.lineRangeMapping.modified.startLineNumber,t.lineRangeMapping.modified.endLineNumberExclusive,c(t.changes)]))}}static _modelsAreIdentical(t,i){const e=t.getLineCount();if(e!==i.getLineCount())return!1;for(let s=1;s<=e;s++)if(t.getLineContent(s)!==i.getLineContent(s))return!1;return!0}async computeMoreMinimalEdits(t,i,e){const s=this._getModel(t);if(!s)return i;const n=[];let o;i=i.slice(0).sort(((t,i)=>t.range&&i.range?Ms.compareRangesUsingStarts(t.range,i.range):(t.range?0:1)-(i.range?0:1)));let r=0;for(let t=1;tbg._diffLimit){n.push({range:t,text:r});continue}const c=pf(i,r,e),a=s.offsetAt(Ms.lift(t).getStartPosition());for(const t of c){const i=s.positionAt(a+t.originalStart),e=s.positionAt(a+t.originalStart+t.originalLength),o={text:r.substr(t.modifiedStart,t.modifiedLength),range:{startLineNumber:i.lineNumber,startColumn:i.column,endLineNumber:e.lineNumber,endColumn:e.column}};s.getValueInRange(o.range)!==o.text&&n.push(o)}}return"number"==typeof o&&n.push({eol:o,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),n}async computeLinks(t){const i=this._getModel(t);return i?function(t){return t&&"function"==typeof t.getLineCount&&"function"==typeof t.getLineContent?Tf.computeLinks(t):[]}(i):null}async computeDefaultDocumentColors(t){const i=this._getModel(t);return i?function(t){return t&&"function"==typeof t.getValue&&"function"==typeof t.positionAt?function(t){const i=[],e=wg(t,/\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%]*\))|(#)([A-Fa-f0-9]{3})\b|(#)([A-Fa-f0-9]{4})\b|(#)([A-Fa-f0-9]{6})\b|(#)([A-Fa-f0-9]{8})\b/gm);if(e.length>0)for(const s of e){const e=s.filter((t=>void 0!==t)),n=e[1],o=e[2];if(!o)continue;let r;if("rgb"===n){const i=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;r=gg(fg(t,s),wg(o,i),!1)}else if("rgba"===n){const i=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;r=gg(fg(t,s),wg(o,i),!0)}else if("hsl"===n){const i=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;r=mg(fg(t,s),wg(o,i),!1)}else if("hsla"===n){const i=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;r=mg(fg(t,s),wg(o,i),!0)}else"#"===n&&(r=pg(fg(t,s),n+o));r&&i.push(r)}return i}(t):[]}(i):null}async textualSuggest(t,i,e,s){const n=new re,o=new RegExp(e,s),r=new Set;t:for(const e of t){const t=this._getModel(e);if(t)for(const e of t.words(o))if(e!==i&&isNaN(Number(e))&&(r.add(e),r.size>bg._suggestionsLimit))break t}return{words:Array.from(r),duration:n.elapsed()}}async computeWordRanges(t,i,e,s){const n=this._getModel(t);if(!n)return Object.create(null);const o=new RegExp(e,s),r=Object.create(null);for(let t=i.startLineNumber;tfunction(){const e=Array.prototype.slice.call(arguments,0);return i(t,e)},s={};for(const i of t)s[i]=e(i);return s}(e,((t,i)=>this._host.fhr(t,i)));return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory({host:s,getMirrorModels:()=>this._getModels()},i),Promise.resolve(et(this._foreignModule))):Promise.reject(new Error("Unexpected usage"))}fmr(t,i){if(!this._foreignModule||"function"!=typeof this._foreignModule[t])return Promise.reject(new Error("Missing requestHandler or method: "+t));try{return Promise.resolve(this._foreignModule[t].apply(this._foreignModule,i))}catch(t){return Promise.reject(t)}}}bg._diffLimit=1e5,bg._suggestionsLimit=1e4,"function"==typeof importScripts&&(globalThis.monaco=Pn());const yg=dr("textResourceConfigurationService"),kg=dr("textResourcePropertiesService"),xg=dr("ILanguageFeaturesService");var Cg=function(t,i){return function(e,s){i(e,s,t)}};function Sg(t,i){const e=t.getModel(i);return!!e&&!e.isTooLargeForSyncing()}let Dg=class extends te{constructor(t,i,e,s,n){super(),this._modelService=t,this._workerManager=this._register(new Ag(this._modelService,s)),this._logService=e,this._register(n.linkProvider.register({language:"*",hasAccessToAllModels:!0},{provideLinks:t=>Sg(this._modelService,t.uri)?this._workerManager.withWorker().then((i=>i.computeLinks(t.uri))).then((t=>t&&{links:t})):Promise.resolve({links:[]})})),this._register(n.completionProvider.register("*",new Eg(this._workerManager,i,this._modelService,s)))}dispose(){super.dispose()}canComputeUnicodeHighlights(t){return Sg(this._modelService,t)}computedUnicodeHighlights(t,i,e){return this._workerManager.withWorker().then((s=>s.computedUnicodeHighlights(t,i,e)))}async computeDiff(t,i,e,s){const n=await this._workerManager.withWorker().then((n=>n.computeDiff(t,i,e,s)));return n?{identical:n.identical,quitEarly:n.quitEarly,changes:o(n.changes),moves:n.moves.map((t=>new sp(new gp(new fp(t[0],t[1]),new fp(t[2],t[3])),o(t[4]))))}:null;function o(t){return t.map((t=>{var i;return new mp(new fp(t[0],t[1]),new fp(t[2],t[3]),null===(i=t[4])||void 0===i?void 0:i.map((t=>new wp(new Ms(t[0],t[1],t[2],t[3]),new Ms(t[4],t[5],t[6],t[7])))))}))}}computeMoreMinimalEdits(t,i,e=!1){if(b(i)){if(!Sg(this._modelService,t))return Promise.resolve(i);const s=re.create(),n=this._workerManager.withWorker().then((s=>s.computeMoreMinimalEdits(t,i,e)));return n.finally((()=>this._logService.trace("FORMAT#computeMoreMinimalEdits",t.toString(!0),s.elapsed()))),Promise.race([n,ac(1e3).then((()=>i))])}return Promise.resolve(void 0)}canNavigateValueSet(t){return Sg(this._modelService,t)}navigateValueSet(t,i,e){return this._workerManager.withWorker().then((s=>s.navigateValueSet(t,i,e)))}canComputeWordRanges(t){return Sg(this._modelService,t)}computeWordRanges(t,i){return this._workerManager.withWorker().then((e=>e.computeWordRanges(t,i)))}};Dg=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Cg(0,pr),Cg(1,yg),Cg(2,jh),Cg(3,Xd),Cg(4,xg)],Dg);class Eg{constructor(t,i,e,s){this.languageConfigurationService=s,this._debugDisplayName="wordbasedCompletions",this._workerManager=t,this._configurationService=i,this._modelService=e}async provideCompletionItems(t,i){const e=this._configurationService.getValue(t.uri,i,"editor");if("off"===e.wordBasedSuggestions)return;const s=[];if("currentDocument"===e.wordBasedSuggestions)Sg(this._modelService,t.uri)&&s.push(t.uri);else for(const i of this._modelService.getModels())Sg(this._modelService,i.uri)&&(i===t?s.unshift(i.uri):"allDocuments"!==e.wordBasedSuggestions&&i.getLanguageId()!==t.getLanguageId()||s.push(i.uri));if(0===s.length)return;const n=this.languageConfigurationService.getLanguageConfiguration(t.getLanguageId()).getWordDefinition(),o=t.getWordAtPosition(i),r=o?new Ms(i.lineNumber,o.startColumn,i.lineNumber,o.endColumn):Ms.fromPositions(i),h=r.setEndPosition(i.lineNumber,i.column),c=await this._workerManager.withWorker(),a=await c.textualSuggest(s,null==o?void 0:o.word,n);return a?{duration:a.duration,suggestions:a.words.map((t=>({kind:18,label:t,insertText:t,range:{insert:h,replace:r}})))}:void 0}}class Ag extends te{constructor(t,i){super(),this.languageConfigurationService=i,this._modelService=t,this._editorWorkerClient=null,this._lastWorkerUsedTime=(new Date).getTime(),this._register(new Ja).cancelAndSet((()=>this._checkStopIdleWorker()),Math.round(15e4),Wn),this._register(this._modelService.onModelRemoved((()=>this._checkStopEmptyWorker())))}dispose(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),super.dispose()}_checkStopEmptyWorker(){this._editorWorkerClient&&0===this._modelService.getModels().length&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}_checkStopIdleWorker(){this._editorWorkerClient&&(new Date).getTime()-this._lastWorkerUsedTime>3e5&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}withWorker(){return this._lastWorkerUsedTime=(new Date).getTime(),this._editorWorkerClient||(this._editorWorkerClient=new Tg(this._modelService,!1,"editorWorkerService",this.languageConfigurationService)),Promise.resolve(this._editorWorkerClient)}}class Mg extends te{constructor(t,i,e){if(super(),this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),this._proxy=t,this._modelService=i,!e){const t=new fc;t.cancelAndSet((()=>this._checkStopModelSync()),Math.round(3e4)),this._register(t)}}dispose(){for(const t in this._syncedModels)Qi(this._syncedModels[t]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),super.dispose()}ensureSyncedResources(t,i){for(const e of t){const t=e.toString();this._syncedModels[t]||this._beginModelSync(e,i),this._syncedModels[t]&&(this._syncedModelsLastUsedTime[t]=(new Date).getTime())}}_checkStopModelSync(){const t=(new Date).getTime(),i=[];for(const e in this._syncedModelsLastUsedTime)t-this._syncedModelsLastUsedTime[e]>6e4&&i.push(e);for(const t of i)this._stopModelSync(t)}_beginModelSync(t,i){const e=this._modelService.getModel(t);if(!e)return;if(!i&&e.isTooLargeForSyncing())return;const s=t.toString();this._proxy.acceptNewModel({url:e.uri.toString(),lines:e.getLinesContent(),EOL:e.getEOL(),versionId:e.getVersionId()});const n=new Xi;n.add(e.onDidChangeContent((t=>{this._proxy.acceptModelChanged(s.toString(),t)}))),n.add(e.onWillDispose((()=>{this._stopModelSync(s)}))),n.add(Yi((()=>{this._proxy.acceptRemovedModel(s)}))),this._syncedModels[s]=n}_stopModelSync(t){const i=this._syncedModels[t];delete this._syncedModels[t],delete this._syncedModelsLastUsedTime[t],Qi(i)}}class Lg{constructor(t){this._instance=t,this._proxyObj=Promise.resolve(this._instance)}dispose(){this._instance.dispose()}getProxyObject(){return this._proxyObj}}class Fg{constructor(t){this._workerClient=t}fhr(t,i){return this._workerClient.fhr(t,i)}}class Tg extends te{constructor(t,i,e,s){super(),this.languageConfigurationService=s,this._disposed=!1,this._modelService=t,this._keepIdleModels=i,this._workerFactory=new Tu(e),this._worker=null,this._modelManager=null}fhr(t,i){throw new Error("Not implemented!")}_getOrCreateWorker(){if(!this._worker)try{this._worker=this._register(new Du(this._workerFactory,"vs/editor/common/services/editorSimpleWorker",new Fg(this)))}catch(t){vu(t),this._worker=new Lg(new bg(new Fg(this),null))}return this._worker}_getProxy(){return this._getOrCreateWorker().getProxyObject().then(void 0,(t=>(vu(t),this._worker=new Lg(new bg(new Fg(this),null)),this._getOrCreateWorker().getProxyObject())))}_getOrCreateModelManager(t){return this._modelManager||(this._modelManager=this._register(new Mg(t,this._modelService,this._keepIdleModels))),this._modelManager}async _withSyncedResources(t,i=!1){return this._disposed?Promise.reject(function(){const t=new Error(Wi);return t.name=t.message,t}()):this._getProxy().then((e=>(this._getOrCreateModelManager(e).ensureSyncedResources(t,i),e)))}computedUnicodeHighlights(t,i,e){return this._withSyncedResources([t]).then((s=>s.computeUnicodeHighlights(t.toString(),i,e)))}computeDiff(t,i,e,s){return this._withSyncedResources([t,i],!0).then((n=>n.computeDiff(t.toString(),i.toString(),e,s)))}computeMoreMinimalEdits(t,i,e){return this._withSyncedResources([t]).then((s=>s.computeMoreMinimalEdits(t.toString(),i,e)))}computeLinks(t){return this._withSyncedResources([t]).then((i=>i.computeLinks(t.toString())))}computeDefaultDocumentColors(t){return this._withSyncedResources([t]).then((i=>i.computeDefaultDocumentColors(t.toString())))}async textualSuggest(t,i,e){const s=await this._withSyncedResources(t),n=e.source,o=e.flags;return s.textualSuggest(t.map((t=>t.toString())),i,n,o)}computeWordRanges(t,i){return this._withSyncedResources([t]).then((e=>{const s=this._modelService.getModel(t);if(!s)return Promise.resolve(null);const n=this.languageConfigurationService.getLanguageConfiguration(s.getLanguageId()).getWordDefinition(),o=n.source,r=n.flags;return e.computeWordRanges(t.toString(),i,o,r)}))}navigateValueSet(t,i,e){return this._withSyncedResources([t]).then((s=>{const n=this._modelService.getModel(t);if(!n)return null;const o=this.languageConfigurationService.getLanguageConfiguration(n.getLanguageId()).getWordDefinition(),r=o.source,h=o.flags;return s.navigateValueSet(t.toString(),i,e,r,h)}))}dispose(){super.dispose(),this._disposed=!0}}class Rg extends Tg{constructor(t,i,e){super(t,e.keepIdleModels||!1,e.label,i),this._foreignModuleId=e.moduleId,this._foreignModuleCreateData=e.createData||null,this._foreignModuleHost=e.host||null,this._foreignProxy=null}fhr(t,i){if(!this._foreignModuleHost||"function"!=typeof this._foreignModuleHost[t])return Promise.reject(new Error("Missing method "+t+" or missing main thread foreign host."));try{return Promise.resolve(this._foreignModuleHost[t].apply(this._foreignModuleHost,i))}catch(t){return Promise.reject(t)}}_getForeignProxy(){return this._foreignProxy||(this._foreignProxy=this._getProxy().then((t=>{const i=this._foreignModuleHost?et(this._foreignModuleHost):[];return t.loadForeignModule(this._foreignModuleId,this._foreignModuleCreateData,i).then((i=>{this._foreignModuleCreateData=null;const e=(i,e)=>t.fmr(i,e),s=(t,i)=>function(){const e=Array.prototype.slice.call(arguments,0);return i(t,e)},n={};for(const t of i)n[t]=s(t,e);return n}))}))),this._foreignProxy}getProxy(){return this._getForeignProxy()}withSyncedResources(t){return this._withSyncedResources(t).then((()=>this.getProxy()))}}const Og={ICodeEditor:"vs.editor.ICodeEditor",IDiffEditor:"vs.editor.IDiffEditor"},Ig=new class{clone(){return this}equals(t){return this===t}};function _g(t,i){return new Ns([new _s(0,"",t)],i)}function Ng(t,i){const e=new Uint32Array(2);return e[0]=0,e[1]=(32768|t|2<<24)>>>0,new Bs(e,null===i?Ig:i)}class Bg{static getLanguageId(t){return(255&t)>>>0}static getTokenType(t){return(768&t)>>>8}static containsBalancedBrackets(t){return!!(1024&t)}static getFontStyle(t){return(30720&t)>>>11}static getForeground(t){return(16744448&t)>>>15}static getBackground(t){return(4278190080&t)>>>24}static getClassNameFromMetadata(t){let i="mtk"+this.getForeground(t);const e=this.getFontStyle(t);return 1&e&&(i+=" mtki"),2&e&&(i+=" mtkb"),4&e&&(i+=" mtku"),8&e&&(i+=" mtks"),i}static getInlineStyleFromMetadata(t,i){const e=this.getForeground(t),s=this.getFontStyle(t);let n=`color: ${i[e]};`;1&s&&(n+="font-style: italic;"),2&s&&(n+="font-weight: bold;");let o="";return 4&s&&(o+=" underline"),8&s&&(o+=" line-through"),o&&(n+=`text-decoration:${o};`),n}static getPresentationFromMetadata(t){const i=this.getForeground(t),e=this.getFontStyle(t);return{foreground:i,italic:Boolean(1&e),bold:Boolean(2&e),underline:Boolean(4&e),strikethrough:Boolean(8&e)}}}class Pg{static createEmpty(t,i){const e=Pg.defaultTokenMetadata,s=new Uint32Array(2);return s[0]=t.length,s[1]=e,new Pg(s,t,i)}constructor(t,i,e){this._lineTokensBrand=void 0,this._tokens=t,this._tokensCount=this._tokens.length>>>1,this._text=i,this._languageIdCodec=e}equals(t){return t instanceof Pg&&this.slicedEquals(t,0,this._tokensCount)}slicedEquals(t,i,e){if(this._text!==t._text)return!1;if(this._tokensCount!==t._tokensCount)return!1;const s=i<<1,n=s+(e<<1);for(let i=s;i0?this._tokens[t-1<<1]:0}getMetadata(t){return this._tokens[1+(t<<1)]}getLanguageId(t){const i=Bg.getLanguageId(this._tokens[1+(t<<1)]);return this._languageIdCodec.decodeLanguageId(i)}getStandardTokenType(t){return Bg.getTokenType(this._tokens[1+(t<<1)])}getForeground(t){return Bg.getForeground(this._tokens[1+(t<<1)])}getClassName(t){return Bg.getClassNameFromMetadata(this._tokens[1+(t<<1)])}getInlineStyle(t,i){return Bg.getInlineStyleFromMetadata(this._tokens[1+(t<<1)],i)}getPresentation(t){return Bg.getPresentationFromMetadata(this._tokens[1+(t<<1)])}getEndOffset(t){return this._tokens[t<<1]}findTokenIndexAtOffset(t){return Pg.findIndexInTokensArray(this._tokens,t)}inflate(){return this}sliceAndInflate(t,i,e){return new $g(this,t,i,e)}static convertToEndOffset(t,i){const e=(t.length>>>1)-1;for(let i=0;i>>1)-1;for(;ei&&(s=n)}return e}withInserted(t){if(0===t.length)return this;let i=0,e=0,s="";const n=new Array;let o=0;for(;;){const r=io&&(s+=this._text.substring(o,h.offset),n.push(s.length,this._tokens[1+(i<<1)]),o=h.offset),s+=h.text,n.push(s.length,h.tokenMetadata),e++}}return new Pg(new Uint32Array(n),s,this._languageIdCodec)}}Pg.defaultTokenMetadata=33587200;class $g{constructor(t,i,e,s){this._source=t,this._startOffset=i,this._endOffset=e,this._deltaOffset=s,this._firstTokenIndex=t.findTokenIndexAtOffset(i),this._tokensCount=0;for(let i=this._firstTokenIndex,s=t.getCount();i=e);i++)this._tokensCount++}getMetadata(t){return this._source.getMetadata(this._firstTokenIndex+t)}getLanguageId(t){return this._source.getLanguageId(this._firstTokenIndex+t)}getLineContent(){return this._source.getLineContent().substring(this._startOffset,this._endOffset)}equals(t){return t instanceof $g&&this._startOffset===t._startOffset&&this._endOffset===t._endOffset&&this._deltaOffset===t._deltaOffset&&this._source.slicedEquals(t._source,this._firstTokenIndex,this._tokensCount)}getCount(){return this._tokensCount}getForeground(t){return this._source.getForeground(this._firstTokenIndex+t)}getEndOffset(t){const i=this._source.getEndOffset(this._firstTokenIndex+t);return Math.min(this._endOffset,i)-this._startOffset+this._deltaOffset}getClassName(t){return this._source.getClassName(this._firstTokenIndex+t)}getInlineStyle(t,i){return this._source.getInlineStyle(this._firstTokenIndex+t,i)}getPresentation(t){return this._source.getPresentation(this._firstTokenIndex+t)}findTokenIndexAtOffset(t){return this._source.findTokenIndexAtOffset(t+this._startOffset-this._deltaOffset)-this._firstTokenIndex}}class Wg{constructor(t,i,e,s){this.startColumn=t,this.endColumn=i,this.className=e,this.type=s,this._lineDecorationBrand=void 0}static _equals(t,i){return t.startColumn===i.startColumn&&t.endColumn===i.endColumn&&t.className===i.className&&t.type===i.type}static equalsArr(t,i){const e=t.length;if(e!==i.length)return!1;for(let s=0;s=n||(r[h++]=new Wg(Math.max(1,i.startColumn-s+1),Math.min(o+1,i.endColumn-s+1),i.className,i.type));return r}static filter(t,i,e,s){if(0===t.length)return[];const n=[];let o=0;for(let r=0,h=t.length;ri||(!c.isEmpty()||0!==h.type&&3!==h.type)&&(n[o++]=new Wg(c.startLineNumber===i?c.startColumn:e,c.endLineNumber===i?c.endColumn:s,h.inlineClassName,h.type))}return n}static _typeCompare(t,i){const e=[2,0,1,3];return e[t]-e[i]}static compare(t,i){if(t.startColumn!==i.startColumn)return t.startColumn-i.startColumn;if(t.endColumn!==i.endColumn)return t.endColumn-i.endColumn;const e=Wg._typeCompare(t.type,i.type);return 0!==e?e:t.className!==i.className?t.className0&&this.stopOffsets[0]0&&i=t){this.stopOffsets.splice(s,0,t),this.classNames.splice(s,0,i),this.metadata.splice(s,0,e);break}this.count++}}class Hg{static normalize(t,i){if(0===i.length)return[];const e=[],s=new zg;let n=0;for(let o=0,r=i.length;o1&&go(t.charCodeAt(h-2))&&h--,c>1&&go(t.charCodeAt(c-2))&&c--;const u=h-1,d=c-2;n=s.consumeLowerThan(u,n,e),0===s.count&&(n=u),s.insert(d,a,l)}return s.consumeLowerThan(1073741824,n,e),e}}class Vg{constructor(t,i,e,s){this.endIndex=t,this.type=i,this.metadata=e,this.containsRTL=s,this._linePartBrand=void 0}isWhitespace(){return!!(1&this.metadata)}isPseudoAfter(){return!!(4&this.metadata)}}class Ug{constructor(t,i){this.startOffset=t,this.endOffset=i}equals(t){return this.startOffset===t.startOffset&&this.endOffset===t.endOffset}}class qg{constructor(t,i,e,s,n,o,r,h,c,a,l,u,d,f,p,g,m,w,v){this.useMonospaceOptimizations=t,this.canUseHalfwidthRightwardsArrow=i,this.lineContent=e,this.continuesWithWrappedLine=s,this.isBasicASCII=n,this.containsRTL=o,this.fauxIndentLength=r,this.lineTokens=h,this.lineDecorations=c.sort(Wg.compare),this.tabSize=a,this.startVisibleColumn=l,this.spaceWidth=u,this.stopRenderingLineAfter=p,this.renderWhitespace="all"===g?4:"boundary"===g?1:"selection"===g?2:"trailing"===g?3:0,this.renderControlCharacters=m,this.fontLigatures=w,this.selectionsOnLine=v&&v.sort(((t,i)=>t.startOffset>>16}static getCharIndex(t){return(65535&t)>>>0}constructor(t,i){this.length=t,this._data=new Uint32Array(this.length),this._horizontalOffset=new Uint32Array(this.length)}setColumnInfo(t,i,e,s){this._data[t-1]=(i<<16|e)>>>0,this._horizontalOffset[t-1]=s}getHorizontalOffset(t){return 0===this._horizontalOffset.length?0:this._horizontalOffset[t-1]}charOffsetToPartData(t){return 0===this.length?0:t<0?this._data[0]:t>=this.length?this._data[this.length-1]:this._data[t]}getDomPosition(t){const i=this.charOffsetToPartData(t-1),e=Gg.getPartIndex(i),s=Gg.getCharIndex(i);return new Kg(e,s)}getColumn(t,i){return this.partDataToCharOffset(t.partIndex,i,t.charIndex)+1}partDataToCharOffset(t,i,e){if(0===this.length)return 0;const s=(t<<16|e)>>>0;let n=0,o=this.length-1;for(;n+1>>1,i=this._data[t];if(i===s)return t;i>s?o=t:n=t}if(n===o)return n;const r=this._data[n],h=this._data[o];if(r===s)return n;if(h===s)return o;const c=Gg.getPartIndex(r),a=Gg.getCharIndex(r);let l;return l=c!==Gg.getPartIndex(h)?i:Gg.getCharIndex(h),e-a<=l-e?n:o}}class Zg{constructor(t,i,e){this._renderLineOutputBrand=void 0,this.characterMapping=t,this.containsRTL=i,this.containsForeignElements=e}}function Qg(t,i){if(0===t.lineContent.length){if(t.lineDecorations.length>0){i.appendString("");let e=0,s=0,n=0;for(const o of t.lineDecorations)1!==o.type&&2!==o.type||(i.appendString(''),1===o.type&&(n|=1,e++),2===o.type&&(n|=2,s++));i.appendString("");const o=new Gg(1,e+s);return o.setColumnInfo(1,e,0,0),new Zg(o,!1,n)}return i.appendString(""),new Zg(new Gg(0,0),!1,0)}return function(t,i){const e=t.fontIsMonospace,s=t.canUseHalfwidthRightwardsArrow,n=t.containsForeignElements,o=t.lineContent,r=t.len,h=t.isOverflowing,c=t.overflowingCharCount,a=t.parts,l=t.fauxIndentLength,u=t.tabSize,d=t.startVisibleColumn,f=t.containsRTL,p=t.spaceWidth,g=t.renderSpaceCharCode,m=t.renderWhitespace,w=t.renderControlCharacters,v=new Gg(r+1,a.length);let b=!1,y=0,k=d,x=0,C=0,S=0;i.appendString(f?'':"");for(let t=0,h=a.length;t=l&&(i+=s)}}for(E&&(i.appendString(' style="width:'),i.appendString(String(p*e)),i.appendString('px"')),i.appendASCIICharCode(62);y1?8594:65515);for(let t=2;t<=n;t++)i.appendCharCode(160)}else e=2,n=1,i.appendCharCode(g),i.appendCharCode(8204);x+=e,C+=n,y>=l&&(k+=n)}}else for(i.appendASCIICharCode(62);y=l&&(k+=n)}A?S++:S=0,y>=r&&!b&&h.isPseudoAfter()&&(b=!0,v.setColumnInfo(y+1,t,x,C)),i.appendString("")}return b||v.setColumnInfo(r+1,a.length-1,x,C),h&&(i.appendString(''),i.appendString(ot(0,"Show more ({0})",function(t){return t<1024?ot(0,"{0} chars",t):t<1048576?`${(t/1024).toFixed(1)} KB`:`${(t/1024/1024).toFixed(1)} MB`}(c))),i.appendString("")),i.appendString(""),new Zg(v,f,n)}(function(t){const i=t.lineContent;let e,s,n;-1!==t.stopRenderingLineAfter&&t.stopRenderingLineAfter0&&(o[r++]=new Vg(s,"",0,!1));let h=s;for(let c=0,a=e.getCount();c=n){const e=!!i&&So(t.substring(h,n));o[r++]=new Vg(n,l,0,e);break}const u=!!i&&So(t.substring(h,a));o[r++]=new Vg(a,l,0,u),h=a}return o}(i,t.containsRTL,t.lineTokens,t.fauxIndentLength,n);t.renderControlCharacters&&!t.isBasicASCII&&(o=function(t,i){const e=[];let s=new Vg(0,"",0,!1),n=0;for(const o of i){const i=o.endIndex;for(;ns.endIndex&&(s=new Vg(n,o.type,o.metadata,o.containsRTL),e.push(s)),s=new Vg(n+1,"mtkcontrol",o.metadata,!1),e.push(s));n>s.endIndex&&(s=new Vg(i,o.type,o.metadata,o.containsRTL),e.push(s))}return e}(i,o)),(4===t.renderWhitespace||1===t.renderWhitespace||2===t.renderWhitespace&&t.selectionsOnLine||3===t.renderWhitespace&&!t.continuesWithWrappedLine)&&(o=function(t,i,e,s){const n=t.continuesWithWrappedLine,o=t.fauxIndentLength,r=t.tabSize,h=t.startVisibleColumn,c=t.useMonospaceOptimizations,a=t.selectionsOnLine,l=1===t.renderWhitespace,u=3===t.renderWhitespace,d=t.renderSpaceWidth!==t.spaceWidth,f=[];let p=0,g=0,m=s[g].type,w=s[g].containsRTL,v=s[g].endIndex;const b=s.length;let y,k=!1,x=to(i);-1===x?(k=!0,x=e,y=e):y=eo(i);let C=!1,S=0,D=a&&a[S],E=h%r;for(let t=o;t=D.endOffset&&(S++,D=a&&a[S]),ty)h=!0;else if(9===n)h=!0;else if(32===n)if(l)if(C)h=!0;else{const s=t+1t),h&&u&&(h=k||t>y),h&&w&&t>=x&&t<=y&&(h=!1),C){if(!h||!c&&E>=r){if(d)for(let i=(p>0?f[p-1].endIndex:o)+1;i<=t;i++)f[p++]=new Vg(i,"mtkw",1,!1);else f[p++]=new Vg(t,"mtkw",1,!1);E%=r}}else(t===v||h&&t>o)&&(f[p++]=new Vg(t,m,0,w),E%=r);for(9===n?E=r:Lo(n)?E+=2:E++,C=h;t===v&&(g++,g0?i.charCodeAt(e-1):0,s=e>1?i.charCodeAt(e-2):0;32===t&&32!==s&&9!==s||(A=!0)}else A=!0;if(A)if(d)for(let t=(p>0?f[p-1].endIndex:o)+1;t<=e;t++)f[p++]=new Vg(t,"mtkw",1,!1);else f[p++]=new Vg(e,"mtkw",1,!1);else f[p++]=new Vg(e,m,0,w);return f}(t,i,n,o));let r=0;if(t.lineDecorations.length>0){for(let i=0,e=t.lineDecorations.length;ia&&(a=t.startOffset,h[c++]=new Vg(a,l,u,d)),!(t.endOffset+1<=s)){a=s,h[c++]=new Vg(a,l+" "+t.className,u|t.metadata,d);break}a=t.endOffset+1,h[c++]=new Vg(a,l+" "+t.className,u|t.metadata,d),r++}s>a&&(a=s,h[c++]=new Vg(a,l,u,d))}const l=e[e.length-1].endIndex;if(r=50&&(n[o++]=new Vg(a+1,i,e,c),l=a+1,a=-1);l!==h&&(n[o++]=new Vg(h,i,e,c))}else n[o++]=r;s=h}else for(let t=0,e=i.length;t50){const t=e.type,i=e.metadata,c=e.containsRTL,a=Math.ceil(h/50);for(let e=1;e=8234&&t<=8238||t>=8294&&t<=8297||t>=8206&&t<=8207||1564===t}class im{constructor(t,i,e,s){this._viewportBrand=void 0,this.top=0|t,this.left=0|i,this.width=0|e,this.height=0|s}}class em{constructor(t,i){this.tabSize=t,this.data=i}}class sm{constructor(t,i,e,s,n,o,r){this._viewLineDataBrand=void 0,this.content=t,this.continuesWithWrappedLine=i,this.minColumn=e,this.maxColumn=s,this.startVisibleColumn=n,this.tokens=o,this.inlineDecorations=r}}class nm{constructor(t,i,e,s,n,o,r,h,c,a){this.minColumn=t,this.maxColumn=i,this.content=e,this.continuesWithWrappedLine=s,this.isBasicASCII=nm.isBasicASCII(e,o),this.containsRTL=nm.containsRTL(e,this.isBasicASCII,n),this.tokens=r,this.inlineDecorations=h,this.tabSize=c,this.startVisibleColumn=a}static isBasicASCII(t,i){return!i||Eo(t)}static containsRTL(t,i,e){return!(i||!e)&&So(t)}}class om{constructor(t,i,e){this.range=t,this.inlineClassName=i,this.type=e}}class rm{constructor(t,i,e,s){this.startOffset=t,this.endOffset=i,this.inlineClassName=e,this.inlineClassNameAffectsLetterSpacing=s}toInlineDecoration(t){return new om(new Ms(t,this.startOffset+1,t,this.endOffset+1),this.inlineClassName,this.inlineClassNameAffectsLetterSpacing?3:0)}}class hm{constructor(t,i){this._viewModelDecorationBrand=void 0,this.range=t,this.options=i}}class cm{constructor(t,i,e){this.color=t,this.zIndex=i,this.data=e}static compareByRenderingProps(t,i){return t.zIndex===i.zIndex?t.colori.color?1:0:t.zIndex-i.zIndex}static equals(t,i){return t.color===i.color&&t.zIndex===i.zIndex&&l(t.data,i.data)}static equalsArr(t,i){return l(t,i,cm.equals)}}function am(t){return"string"==typeof t}function lm(t){return!am(t)}function um(t){return!t}function dm(t,i){return t.ignoreCase&&i?i.toLowerCase():i}function fm(t){return t.replace(/[&<>'"_]/g,"-")}function pm(t,i){return new Error(`${t.languageId}: ${i}`)}function gm(t,i,e,s,n){let o=null;return i.replace(/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g,(function(i,r,h,c,a,l,u){return um(h)?um(c)?!um(a)&&a0;){const i=t.tokenizer[e];if(i)return i;const s=e.lastIndexOf(".");e=s<0?null:e.substr(0,s)}return null}var wm;class vm{static create(t,i){return this._INSTANCE.create(t,i)}constructor(t){this._maxCacheDepth=t,this._entries=Object.create(null)}create(t,i){if(null!==t&&t.depth>=this._maxCacheDepth)return new bm(t,i);let e=bm.getStackElementId(t);e.length>0&&(e+="|"),e+=i;let s=this._entries[e];return s||(s=new bm(t,i),this._entries[e]=s,s)}}vm._INSTANCE=new vm(5);class bm{constructor(t,i){this.parent=t,this.state=i,this.depth=(this.parent?this.parent.depth:0)+1}static getStackElementId(t){let i="";for(;null!==t;)i.length>0&&(i+="|"),i+=t.state,t=t.parent;return i}static _equals(t,i){for(;null!==t&&null!==i;){if(t===i)return!0;if(t.state!==i.state)return!1;t=t.parent,i=i.parent}return null===t&&null===i}equals(t){return bm._equals(this,t)}push(t){return vm.create(this,t)}pop(){return this.parent}popall(){let t=this;for(;t.parent;)t=t.parent;return t}switchTo(t){return vm.create(this.parent,t)}}class ym{constructor(t,i){this.languageId=t,this.state=i}equals(t){return this.languageId===t.languageId&&this.state.equals(t.state)}clone(){return this.state.clone()===this.state?this:new ym(this.languageId,this.state)}}class km{static create(t,i){return this._INSTANCE.create(t,i)}constructor(t){this._maxCacheDepth=t,this._entries=Object.create(null)}create(t,i){if(null!==i)return new xm(t,i);if(null!==t&&t.depth>=this._maxCacheDepth)return new xm(t,i);const e=bm.getStackElementId(t);let s=this._entries[e];return s||(s=new xm(t,null),this._entries[e]=s,s)}}km._INSTANCE=new km(5);class xm{constructor(t,i){this.stack=t,this.embeddedLanguageData=i}clone(){return(this.embeddedLanguageData?this.embeddedLanguageData.clone():null)===this.embeddedLanguageData?this:km.create(this.stack,this.embeddedLanguageData)}equals(t){return t instanceof xm&&!!this.stack.equals(t.stack)&&(null===this.embeddedLanguageData&&null===t.embeddedLanguageData||null!==this.embeddedLanguageData&&null!==t.embeddedLanguageData&&this.embeddedLanguageData.equals(t.embeddedLanguageData))}}class Cm{constructor(){this._tokens=[],this._languageId=null,this._lastTokenType=null,this._lastTokenLanguage=null}enterLanguage(t){this._languageId=t}emit(t,i){this._lastTokenType===i&&this._lastTokenLanguage===this._languageId||(this._lastTokenType=i,this._lastTokenLanguage=this._languageId,this._tokens.push(new _s(t,i,this._languageId)))}nestedLanguageTokenize(t,i,e,s){const n=e.languageId,o=e.state,r=Zs.get(n);if(!r)return this.enterLanguage(n),this.emit(s,""),o;const h=r.tokenize(t,i,o);if(0!==s)for(const t of h.tokens)this._tokens.push(new _s(t.offset+s,t.type,t.language));else this._tokens=this._tokens.concat(h.tokens);return this._lastTokenType=null,this._lastTokenLanguage=null,this._languageId=null,h.endState}finalize(t){return new Ns(this._tokens,t)}}class Sm{constructor(t,i){this._languageService=t,this._theme=i,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}enterLanguage(t){this._currentLanguageId=this._languageService.languageIdCodec.encodeLanguageId(t)}emit(t,i){const e=1024|this._theme.match(this._currentLanguageId,i);this._lastTokenMetadata!==e&&(this._lastTokenMetadata=e,this._tokens.push(t),this._tokens.push(e))}static _merge(t,i,e){const s=null!==t?t.length:0,n=i.length,o=null!==e?e.length:0;if(0===s&&0===n&&0===o)return new Uint32Array(0);if(0===s&&0===n)return e;if(0===n&&0===o)return t;const r=new Uint32Array(s+n+o);null!==t&&r.set(t);for(let t=0;t{if(o)return;let i=!1;for(let e=0,s=t.changedLanguages.length;e{t.affectsConfiguration("editor.maxTokenizationLineLength")&&(this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}))})))}getLoadStatus(){const t=[];for(const i in this._embeddedLanguages){const e=Zs.get(i);if(e){if(e instanceof wm){const i=e.getLoadStatus();!1===i.loaded&&t.push(i.promise)}}else Zs.isResolved(i)||t.push(Zs.getOrCreate(i))}return 0===t.length?{loaded:!0}:{loaded:!1,promise:Promise.all(t).then((()=>{}))}}getInitialState(){const t=vm.create(null,this._lexer.start);return km.create(t,null)}tokenize(t,i,e){if(t.length>=this._maxTokenizationLineLength)return _g(this._languageId,e);const s=new Cm,n=this._tokenize(t,i,e,s);return s.finalize(n)}tokenizeEncoded(t,i,e){if(t.length>=this._maxTokenizationLineLength)return Ng(this._languageService.languageIdCodec.encodeLanguageId(this._languageId),e);const s=new Sm(this._languageService,this._standaloneThemeService.getColorTheme().tokenTheme),n=this._tokenize(t,i,e,s);return s.finalize(n)}_tokenize(t,i,e,s){return e.embeddedLanguageData?this._nestedTokenize(t,i,e,0,s):this._myTokenize(t,i,e,0,s)}_findLeavingNestedLanguageOffset(t,i){let e=this._lexer.tokenizer[i.stack.state];if(!e&&(e=mm(this._lexer,i.stack.state),!e))throw pm(this._lexer,"tokenizer state is not defined: "+i.stack.state);let s=-1,n=!1;for(const i of e){if(!lm(i.action)||"@pop"!==i.action.nextEmbedded)continue;n=!0;let e=i.regex;const o=i.regex.source;if("^(?:"===o.substr(0,4)&&")"===o.substr(o.length-1,1)){const t=(e.ignoreCase?"i":"")+(e.unicode?"u":"");e=new RegExp(o.substr(4,o.length-5),t)}const r=t.search(e);-1===r||0!==r&&i.matchOnlyAtLineStart||(-1===s||r0&&n.nestedLanguageTokenize(r,!1,e.embeddedLanguageData,s);const h=t.substring(o);return this._myTokenize(h,i,e,s+o,n)}_safeRuleName(t){return t?t.name:"(unknown)"}_myTokenize(t,i,e,s,n){n.enterLanguage(this._languageId);const o=t.length,r=i&&this._lexer.includeLF?t+"\n":t,h=r.length;let c=e.embeddedLanguageData,a=e.stack,l=0,u=null,d=!0;for(;d||l=h)break;d=!1;let t=this._lexer.tokenizer[w];if(!t&&(t=mm(this._lexer,w),!t))throw pm(this._lexer,"tokenizer state is not defined: "+w);const i=r.substr(l);for(const e of t)if((0===l||!e.matchOnlyAtLineStart)&&(v=i.match(e.regex),v)){b=v[0],y=e.action;break}}if(v||(v=[""],b=""),y||(l=this._lexer.maxStack)throw pm(this._lexer,"maximum tokenizer stack size reached: ["+a.state+","+a.parent.state+",...]");a=a.push(w)}else if("@pop"===y.next){if(a.depth<=1)throw pm(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(k));a=a.pop()}else if("@popall"===y.next)a=a.popall();else{let t=gm(this._lexer,y.next,b,v,w);if("@"===t[0]&&(t=t.substr(1)),!mm(this._lexer,t))throw pm(this._lexer,"trying to set a next state '"+t+"' that is undefined in rule: "+this._safeRuleName(k));a=a.push(t)}}y.log&&"string"==typeof y.log&&(f=this._lexer,p=this._lexer.languageId+": "+gm(this._lexer,y.log,b,v,w),console.log(`${f.languageId}: ${p}`))}if(null===C)throw pm(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(k));const S=e=>{const o=this._languageService.getLanguageIdByLanguageName(e)||this._languageService.getLanguageIdByMimeType(e)||e,r=this._getNestedEmbeddedLanguageData(o);if(l0)throw pm(this._lexer,"groups cannot be nested: "+this._safeRuleName(k));if(v.length!==C.length+1)throw pm(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(k));let t=0;for(let i=1;i=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([(Am=4,Mm=pd,function(t,i){Mm(t,i,Am)})],Dm);const Lm=Mu("standaloneColorizer",{createHTML:t=>t});class Fm{static colorizeElement(t,i,e,s){const n=(s=s||{}).theme||"vs",o=s.mimeType||e.getAttribute("lang")||e.getAttribute("data-lang");if(!o)return console.error("Mode not detected"),Promise.resolve();const r=i.getLanguageIdByMimeType(o)||o;t.setTheme(n);const h=e.firstChild?e.firstChild.nodeValue:"";return e.className+=" "+n,this.colorize(i,h||"",r,s).then((t=>{var i;const s=null!==(i=null==Lm?void 0:Lm.createHTML(t))&&void 0!==i?i:t;e.innerHTML=s}),(t=>console.error(t)))}static async colorize(t,i,e,s){const n=t.languageIdCodec;let o=4;s&&"number"==typeof s.tabSize&&(o=s.tabSize),Ro(i)&&(i=i.substr(1));const r=Xn(i);if(!t.isRegisteredLanguageId(e))return Tm(r,o,n);const h=await Zs.getOrCreate(e);return h?function(t,i,e,s){return new Promise(((n,o)=>{const r=()=>{const h=function(t,i,e,s){let n=[],o=e.getInitialState();for(let r=0,h=t.length;r"),o=c.endState}return n.join("")}(t,i,e,s);if(e instanceof Dm){const t=e.getLoadStatus();if(!1===t.loaded)return void t.promise.then(r,o)}n(h)};r()}))}(r,o,h,n):Tm(r,o,n)}static colorizeLine(t,i,e,s,n=4){const o=nm.isBasicASCII(t,i),r=nm.containsRTL(t,o,e);return Yg(new qg(!1,!0,t,!1,o,r,0,s,[],n,0,0,0,0,-1,"none",!1,!1,null)).html}static colorizeModelLine(t,i,e=4){const s=t.getLineContent(i);t.tokenization.forceTokenization(i);const n=t.tokenization.getLineTokens(i).inflate();return this.colorizeLine(s,t.mightContainNonBasicASCII(),t.mightContainRTL(),n,e)}}function Tm(t,i,e){let s=[];const n=new Uint32Array(2);n[0]=0,n[1]=33587200;for(let o=0,r=t.length;o")}return s.join("")}const Rm=2e4;let Om,Im,_m,Nm,Bm;function Pm(t){Om&&(Im.textContent!==t?(za(_m),Wm(Im,t)):(za(Im),Wm(_m,t)))}function $m(t){Om&&(Nm.textContent!==t?(za(Bm),Wm(Nm,t)):(za(Nm),Wm(Bm,t)))}function Wm(t,i){za(t),i.length>Rm&&(i=i.substr(0,Rm)),t.textContent=i,t.style.visibility="hidden",t.style.visibility="visible"}const jm=dr("markerDecorationsService");let zm=class{constructor(t,i){}dispose(){}};zm.ID="editor.contrib.markerDecorations",zm=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,jm)],zm),lu(zm.ID,zm,0);class Hm extends te{constructor(t,i){super(),this._onDidChange=this._register(new de),this.onDidChange=this._onDidChange.event,this._referenceDomElement=t,this._width=-1,this._height=-1,this._resizeObserver=null,this.measureReferenceDomElement(!1,i)}dispose(){this.stopObserving(),super.dispose()}getWidth(){return this._width}getHeight(){return this._height}startObserving(){if(!this._resizeObserver&&this._referenceDomElement){let t=null;const i=()=>{t?this.observe({width:t.width,height:t.height}):this.observe()};let e=!1,s=!1;const n=()=>{if(e&&!s)try{e=!1,s=!0,i()}finally{Qa(Na(this._referenceDomElement),(()=>{s=!1,n()}))}};this._resizeObserver=new ResizeObserver((i=>{t=i&&i[0]&&i[0].contentRect?i[0].contentRect:null,e=!0,n()})),this._resizeObserver.observe(this._referenceDomElement)}}stopObserving(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)}observe(t){this.measureReferenceDomElement(!0,t)}measureReferenceDomElement(t,i){let e=0,s=0;i?(e=i.width,s=i.height):this._referenceDomElement&&(e=this._referenceDomElement.clientWidth,s=this._referenceDomElement.clientHeight),e=Math.max(5,e),s=Math.max(5,s),this._width===e&&this._height===s||(this._width=e,this._height=s,t&&this._onDidChange.fire())}}class Vm{constructor(t,i){this.key=t,this.migrate=i}apply(t){const i=Vm._read(t,this.key);this.migrate(i,(i=>Vm._read(t,i)),((i,e)=>Vm._write(t,i,e)))}static _read(t,i){if(void 0===t)return;const e=i.indexOf(".");if(e>=0){const s=i.substring(0,e);return this._read(t[s],i.substring(e+1))}return t[i]}static _write(t,i,e){const s=i.indexOf(".");if(s>=0){const n=i.substring(0,s);return t[n]=t[n]||{},void this._write(t[n],i.substring(s+1),e)}t[i]=e}}function Um(t,i){Vm.items.push(new Vm(t,i))}function qm(t,i){Um(t,((e,s,n)=>{if(void 0!==e)for(const[s,o]of i)if(e===s)return void n(t,o)}))}Vm.items=[],qm("wordWrap",[[!0,"on"],[!1,"off"]]),qm("lineNumbers",[[!0,"on"],[!1,"off"]]),qm("cursorBlinking",[["visible","solid"]]),qm("renderWhitespace",[[!0,"boundary"],[!1,"none"]]),qm("renderLineHighlight",[[!0,"line"],[!1,"none"]]),qm("acceptSuggestionOnEnter",[[!0,"on"],[!1,"off"]]),qm("tabCompletion",[[!1,"off"],[!0,"onlySnippets"]]),qm("hover",[[!0,{enabled:!0}],[!1,{enabled:!1}]]),qm("parameterHints",[[!0,{enabled:!0}],[!1,{enabled:!1}]]),qm("autoIndent",[[!1,"advanced"],[!0,"full"]]),qm("matchBrackets",[[!0,"always"],[!1,"never"]]),qm("renderFinalNewline",[[!0,"on"],[!1,"off"]]),qm("cursorSmoothCaretAnimation",[[!0,"on"],[!1,"off"]]),qm("occurrencesHighlight",[[!0,"singleFile"],[!1,"off"]]),qm("wordBasedSuggestions",[[!0,"matchingDocuments"],[!1,"off"]]),Um("autoClosingBrackets",((t,i,e)=>{!1===t&&(e("autoClosingBrackets","never"),void 0===i("autoClosingQuotes")&&e("autoClosingQuotes","never"),void 0===i("autoSurround")&&e("autoSurround","never"))})),Um("renderIndentGuides",((t,i,e)=>{void 0!==t&&(e("renderIndentGuides",void 0),void 0===i("guides.indentation")&&e("guides.indentation",!!t))})),Um("highlightActiveIndentGuide",((t,i,e)=>{void 0!==t&&(e("highlightActiveIndentGuide",void 0),void 0===i("guides.highlightActiveIndentation")&&e("guides.highlightActiveIndentation",!!t))}));const Km={method:"showMethods",function:"showFunctions",constructor:"showConstructors",deprecated:"showDeprecated",field:"showFields",variable:"showVariables",class:"showClasses",struct:"showStructs",interface:"showInterfaces",module:"showModules",property:"showProperties",event:"showEvents",operator:"showOperators",unit:"showUnits",value:"showValues",constant:"showConstants",enum:"showEnums",enumMember:"showEnumMembers",keyword:"showKeywords",text:"showWords",color:"showColors",file:"showFiles",reference:"showReferences",folder:"showFolders",typeParameter:"showTypeParameters",snippet:"showSnippets"};Um("suggest.filteredTypes",((t,i,e)=>{if(t&&"object"==typeof t){for(const s of Object.entries(Km))!1===t[s[0]]&&void 0===i(`suggest.${s[1]}`)&&e(`suggest.${s[1]}`,!1);e("suggest.filteredTypes",void 0)}})),Um("quickSuggestions",((t,i,e)=>{if("boolean"==typeof t){const i=t?"on":"off";e("quickSuggestions",{comments:i,strings:i,other:i})}})),Um("experimental.stickyScroll.enabled",((t,i,e)=>{"boolean"==typeof t&&(e("experimental.stickyScroll.enabled",void 0),void 0===i("stickyScroll.enabled")&&e("stickyScroll.enabled",t))})),Um("experimental.stickyScroll.maxLineCount",((t,i,e)=>{"number"==typeof t&&(e("experimental.stickyScroll.maxLineCount",void 0),void 0===i("stickyScroll.maxLineCount")&&e("stickyScroll.maxLineCount",t))})),Um("codeActionsOnSave",((t,i,e)=>{if(t&&"object"==typeof t){let i=!1;const s={};for(const e of Object.entries(t))"boolean"==typeof e[1]?(i=!0,s[e[0]]=e[1]?"explicit":"never"):s[e[0]]=e[1];i&&e("codeActionsOnSave",s)}})),Um("codeActionWidget.includeNearbyQuickfixes",((t,i,e)=>{"boolean"==typeof t&&(e("codeActionWidget.includeNearbyQuickfixes",void 0),void 0===i("codeActionWidget.includeNearbyQuickFixes")&&e("codeActionWidget.includeNearbyQuickFixes",t))}));const Gm=new class{constructor(){this._tabFocus=!1,this._onDidChangeTabFocus=new de,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}getTabFocusMode(){return this._tabFocus}setTabFocusMode(t){this._tabFocus=t,this._onDidChangeTabFocus.fire(this._tabFocus)}},Zm=dr("accessibilityService"),Qm=new ch("accessibilityModeEnabled",!1),Jm=dr("accessibleNotificationService");let Ym=class extends te{constructor(t,i,e,s){super(),this._accessibilityService=s,this._onDidChange=this._register(new de),this.onDidChange=this._onDidChange.event,this._onDidChangeFast=this._register(new de),this.onDidChangeFast=this._onDidChangeFast.event,this._isDominatedByLongLines=!1,this._viewLineCount=1,this._lineNumbersDigitCount=1,this._reservedHeight=0,this._glyphMarginDecorationLaneCount=1,this._computeOptionsMemory=new Xt,this.isSimpleWidget=t,this._containerObserver=this._register(new Hm(e,i.dimension)),this._rawOptions=sw(i),this._validatedOptions=ew.validateOptions(this._rawOptions),this.options=this._computeOptions(),this.options.get(13)&&this._containerObserver.startObserving(),this._register(nr.onDidChangeZoomLevel((()=>this._recomputeOptions()))),this._register(Gm.onDidChangeTabFocus((()=>this._recomputeOptions()))),this._register(this._containerObserver.onDidChange((()=>this._recomputeOptions()))),this._register(ar.onDidChange((()=>this._recomputeOptions()))),this._register(Ho.onDidChange((()=>this._recomputeOptions()))),this._register(this._accessibilityService.onDidChangeScreenReaderOptimized((()=>this._recomputeOptions())))}_recomputeOptions(){const t=this._computeOptions(),i=ew.checkEquals(this.options,t);null!==i&&(this.options=t,this._onDidChangeFast.fire(i),this._onDidChange.fire(i))}_computeOptions(){const t=this._readEnvConfiguration(),i=rr.createFromValidatedSettings(this._validatedOptions,t.pixelRatio,this.isSimpleWidget),e=this._readFontInfo(i),s={memory:this._computeOptionsMemory,outerWidth:t.outerWidth,outerHeight:t.outerHeight-this._reservedHeight,fontInfo:e,extraEditorClassName:t.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:t.emptySelectionClipboard,pixelRatio:t.pixelRatio,tabFocusMode:Gm.getTabFocusMode(),accessibilitySupport:t.accessibilitySupport,glyphMarginDecorationLaneCount:this._glyphMarginDecorationLaneCount};return ew.computeOptions(this._validatedOptions,s)}_readEnvConfiguration(){return{extraEditorClassName:Xm(),outerWidth:this._containerObserver.getWidth(),outerHeight:this._containerObserver.getHeight(),emptySelectionClipboard:qo||Uo,pixelRatio:Ho.value,accessibilitySupport:this._accessibilityService.isScreenReaderOptimized()?2:this._accessibilityService.getAccessibilitySupport()}}_readFontInfo(t){return ar.readFontInfo(t)}getRawOptions(){return this._rawOptions}updateOptions(t){const i=sw(t);ew.applyUpdate(this._rawOptions,i)&&(this._validatedOptions=ew.validateOptions(this._rawOptions),this._recomputeOptions())}observeContainer(t){this._containerObserver.observe(t)}setIsDominatedByLongLines(t){this._isDominatedByLongLines!==t&&(this._isDominatedByLongLines=t,this._recomputeOptions())}setModelLineCount(t){const i=function(t){let i=0;for(;t;)t=Math.floor(t/10),i++;return i||1}(t);this._lineNumbersDigitCount!==i&&(this._lineNumbersDigitCount=i,this._recomputeOptions())}setViewLineCount(t){this._viewLineCount!==t&&(this._viewLineCount=t,this._recomputeOptions())}setReservedHeight(t){this._reservedHeight!==t&&(this._reservedHeight=t,this._recomputeOptions())}setGlyphMarginDecorationLaneCount(t){this._glyphMarginDecorationLaneCount!==t&&(this._glyphMarginDecorationLaneCount=t,this._recomputeOptions())}};function Xm(){let t="";return Go||Zo||(t+="no-user-select "),Go&&(t+="no-minimap-shadow ",t+="enable-user-select "),Ct&&(t+="mac "),t}Ym=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(3,Zm)],Ym);class tw{constructor(){this._values=[]}_read(t){return this._values[t]}get(t){return this._values[t]}_write(t,i){this._values[t]=i}}class iw{constructor(){this._values=[]}_read(t){if(t>=this._values.length)throw new Error("Cannot read uninitialized value");return this._values[t]}get(t){return this._read(t)}_write(t,i){this._values[t]=i}}class ew{static validateOptions(t){const i=new tw;for(const e of Oi)i._write(e.id,e.validate("_never_"===e.name?void 0:t[e.name]));return i}static computeOptions(t,i){const e=new iw;for(const s of Oi)e._write(s.id,s.compute(i,e,t._read(s.id)));return e}static _deepEquals(t,i){if("object"!=typeof t||"object"!=typeof i||!t||!i)return t===i;if(Array.isArray(t)||Array.isArray(i))return!(!Array.isArray(t)||!Array.isArray(i))&&l(t,i);if(Object.keys(t).length!==Object.keys(i).length)return!1;for(const e in t)if(!ew._deepEquals(t[e],i[e]))return!1;return!0}static checkEquals(t,i){const e=[];let s=!1;for(const n of Oi){const o=!ew._deepEquals(t._read(n.id),i._read(n.id));e[n.id]=o,o&&(s=!0)}return s?new Yt(e):null}static applyUpdate(t,i){let e=!1;for(const s of Oi)if(i.hasOwnProperty(s.name)){const n=s.applyUpdate(t[s.name],i[s.name]);t[s.name]=n.newValue,e=e||n.didChange}return e}}function sw(t){const i=Q(t);return function(t){Vm.items.forEach((i=>i.apply(t)))}(i),i}function nw(t,i,e){let s=null,n=null;if("function"==typeof e.value?(s="value",n=e.value,0!==n.length&&console.warn("Memoize should only be used in functions with zero parameters")):"function"==typeof e.get&&(s="get",n=e.get),!n)throw new Error("not supported");const o=`$memoize$${i}`;e[s]=function(...t){return this.hasOwnProperty(o)||Object.defineProperty(this,o,{configurable:!1,enumerable:!1,writable:!1,value:n.apply(this,t)}),this[o]}}var ow;!function(t){t.Tap="-monaco-gesturetap",t.Change="-monaco-gesturechange",t.Start="-monaco-gesturestart",t.End="-monaco-gesturesend",t.Contextmenu="-monaco-gesturecontextmenu"}(ow||(ow={}));class rw extends te{constructor(){super(),this.dispatched=!1,this.targets=new Ut,this.ignoreTargets=new Ut,this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register(he.runAndSubscribe(Wa,(({window:t,disposables:i})=>{i.add(Va(t.document,"touchstart",(t=>this.onTouchStart(t)),{passive:!1})),i.add(Va(t.document,"touchend",(i=>this.onTouchEnd(t,i)))),i.add(Va(t.document,"touchmove",(t=>this.onTouchMove(t)),{passive:!1}))}),{window:$n,disposables:this._store}))}static addTarget(t){return rw.isTouchDevice()?(rw.INSTANCE||(rw.INSTANCE=new rw),Yi(rw.INSTANCE.targets.push(t))):te.None}static ignoreTarget(t){return rw.isTouchDevice()?(rw.INSTANCE||(rw.INSTANCE=new rw),Yi(rw.INSTANCE.ignoreTargets.push(t))):te.None}static isTouchDevice(){return"ontouchstart"in $n||navigator.maxTouchPoints>0}dispose(){this.handle&&(this.handle.dispose(),this.handle=null),super.dispose()}onTouchStart(t){const i=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(let e=0,s=t.targetTouches.length;e=rw.HOLD_DELAY&&Math.abs(r.initialPageX-a(r.rollingPageX))<30&&Math.abs(r.initialPageY-a(r.rollingPageY))<30){const t=this.newGestureEvent(ow.Contextmenu,r.initialTarget);t.pageX=a(r.rollingPageX),t.pageY=a(r.rollingPageY),this.dispatchEvent(t)}else if(1===s){const i=a(r.rollingPageX),s=a(r.rollingPageY),n=a(r.rollingTimestamps)-r.rollingTimestamps[0],o=i-r.rollingPageX[0],h=s-r.rollingPageY[0],c=[...this.targets].filter((t=>r.initialTarget instanceof Node&&t.contains(r.initialTarget)));this.inertia(t,c,e,Math.abs(o)/n,o>0?1:-1,i,Math.abs(h)/n,h>0?1:-1,s)}this.dispatchEvent(this.newGestureEvent(ow.End,r.initialTarget)),delete this.activeTouches[o.identifier]}this.dispatched&&(i.preventDefault(),i.stopPropagation(),this.dispatched=!1)}newGestureEvent(t,i){const e=document.createEvent("CustomEvent");return e.initEvent(t,!1,!0),e.initialTarget=i,e.tapCount=0,e}dispatchEvent(t){if(t.type===ow.Tap){const i=(new Date).getTime();let e=0;e=i-this._lastSetTapCountTime>rw.CLEAR_TAP_COUNT_TIME?1:2,this._lastSetTapCountTime=i,t.tapCount=e}else t.type!==ow.Change&&t.type!==ow.Contextmenu||(this._lastSetTapCountTime=0);if(t.initialTarget instanceof Node){for(const i of this.ignoreTargets)if(i.contains(t.initialTarget))return;for(const i of this.targets)i.contains(t.initialTarget)&&(i.dispatchEvent(t),this.dispatched=!0)}}inertia(t,i,e,s,n,o,r,h,c){this.handle=Qa(t,(()=>{const a=Date.now(),l=a-e;let u=0,d=0,f=!0;(s+=rw.SCROLL_FRICTION*l)>0&&(f=!1,u=n*s*l),(r+=rw.SCROLL_FRICTION*l)>0&&(f=!1,d=h*r*l);const p=this.newGestureEvent(ow.Change);p.translationX=u,p.translationY=d,i.forEach((t=>t.dispatchEvent(p))),f||this.inertia(t,i,a,s,n,o+u,r,h,c+d)}))}onTouchMove(t){const i=Date.now();for(let e=0,s=t.changedTouches.length;e3&&(n.rollingPageX.shift(),n.rollingPageY.shift(),n.rollingTimestamps.shift()),n.rollingPageX.push(s.pageX),n.rollingPageY.push(s.pageY),n.rollingTimestamps.push(i)}this.dispatched&&(t.preventDefault(),t.stopPropagation(),this.dispatched=!1)}}rw.SCROLL_FRICTION=-.005,rw.HOLD_DELAY=700,rw.CLEAR_TAP_COUNT_TIME=400,function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);o>3&&r&&Object.defineProperty(i,e,r)}([nw],rw,"isTouchDevice",null);class hw{constructor(){this._hooks=new Xi,this._pointerMoveCallback=null,this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(t,i){if(!this.isMonitoring())return;this._hooks.clear(),this._pointerMoveCallback=null;const e=this._onStopCallback;this._onStopCallback=null,t&&e&&e(i)}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(t,i,e,s,n){this.isMonitoring()&&this.stopMonitoring(!1),this._pointerMoveCallback=s,this._onStopCallback=n;let o=t;try{t.setPointerCapture(i),this._hooks.add(Yi((()=>{try{t.releasePointerCapture(i)}catch(t){}})))}catch(i){o=Na(t)}this._hooks.add(Va(o,Ll.POINTER_MOVE,(t=>{t.buttons===e?(t.preventDefault(),this._pointerMoveCallback(t)):this.stopMonitoring(!0)}))),this._hooks.add(Va(o,Ll.POINTER_UP,(()=>this.stopMonitoring(!0))))}}function cw(t){return`--vscode-${t.replace(/\./g,"-")}`}function aw(t){return`var(${cw(t)})`}const lw="base.contributions.colors",uw=new class{constructor(){this._onDidChangeSchema=new de,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:"object",properties:{}},this.colorReferenceSchema={type:"string",enum:[],enumDescriptions:[]},this.colorsById={}}registerColor(t,i,e,s=!1,n){this.colorsById[t]={id:t,description:e,defaults:i,needsTransparency:s,deprecationMessage:n};const o={type:"string",description:e,format:"color-hex",defaultSnippets:[{body:"${1:#ff0000}"}]};return n&&(o.deprecationMessage=n),this.colorSchema.properties[t]=o,this.colorReferenceSchema.enum.push(t),this.colorReferenceSchema.enumDescriptions.push(e),this._onDidChangeSchema.fire(),t}getColors(){return Object.keys(this.colorsById).map((t=>this.colorsById[t]))}resolveDefaultColor(t,i){const e=this.colorsById[t];if(e&&e.defaults)return fy(e.defaults[i.type],i)}getColorSchema(){return this.colorSchema}toString(){return Object.keys(this.colorsById).sort(((t,i)=>{const e=-1===t.indexOf(".")?0:1,s=-1===i.indexOf(".")?0:1;return e!==s?e-s:t.localeCompare(i)})).map((t=>`- \`${t}\`: ${this.colorsById[t].description}`)).join("\n")}};function dw(t,i,e,s,n){return uw.registerColor(t,i,e,s,n)}Dh.add(lw,uw);const fw=dw("foreground",{dark:"#CCCCCC",light:"#616161",hcDark:"#FFFFFF",hcLight:"#292929"},ot(0,"Overall foreground color. This color is only used if not overridden by a component."));dw("disabledForeground",{dark:"#CCCCCC80",light:"#61616180",hcDark:"#A5A5A5",hcLight:"#7F7F7F"},ot(0,"Overall foreground for disabled elements. This color is only used if not overridden by a component."));const pw=dw("errorForeground",{dark:"#F48771",light:"#A1260D",hcDark:"#F48771",hcLight:"#B5200D"},ot(0,"Overall foreground color for error messages. This color is only used if not overridden by a component."));dw("descriptionForeground",{light:"#717171",dark:ly(fw,.7),hcDark:ly(fw,.7),hcLight:ly(fw,.7)},ot(0,"Foreground color for description text providing additional information, for example for a label."));const gw=dw("icon.foreground",{dark:"#C5C5C5",light:"#424242",hcDark:"#FFFFFF",hcLight:"#292929"},ot(0,"The default color for icons in the workbench.")),mw=dw("focusBorder",{dark:"#007FD4",light:"#0090F1",hcDark:"#F38518",hcLight:"#006BBD"},ot(0,"Overall border color for focused elements. This color is only used if not overridden by a component.")),ww=dw("contrastBorder",{light:null,dark:null,hcDark:"#6FC3DF",hcLight:"#0F4A85"},ot(0,"An extra border around elements to separate them from others for greater contrast.")),vw=dw("contrastActiveBorder",{light:null,dark:null,hcDark:mw,hcLight:mw},ot(0,"An extra border around active elements to separate them from others for greater contrast."));dw("selection.background",{light:null,dark:null,hcDark:null,hcLight:null},ot(0,"The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.")),dw("textSeparator.foreground",{light:"#0000002e",dark:"#ffffff2e",hcDark:lg.black,hcLight:"#292929"},ot(0,"Color for text separators."));const bw=dw("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hcDark:"#3794FF",hcLight:"#0F4A85"},ot(0,"Foreground color for links in text."));dw("textLink.activeForeground",{light:"#006AB1",dark:"#3794FF",hcDark:"#3794FF",hcLight:"#0F4A85"},ot(0,"Foreground color for links in text when clicked on and on mouse hover.")),dw("textPreformat.foreground",{light:"#A31515",dark:"#D7BA7D",hcDark:"#000000",hcLight:"#FFFFFF"},ot(0,"Foreground color for preformatted text segments.")),dw("textPreformat.background",{light:"#0000001A",dark:"#FFFFFF1A",hcDark:"#FFFFFF",hcLight:"#09345f"},ot(0,"Background color for preformatted text segments.")),dw("textBlockQuote.background",{light:"#f2f2f2",dark:"#222222",hcDark:null,hcLight:"#F2F2F2"},ot(0,"Background color for block quotes in text.")),dw("textBlockQuote.border",{light:"#007acc80",dark:"#007acc80",hcDark:lg.white,hcLight:"#292929"},ot(0,"Border color for block quotes in text.")),dw("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hcDark:lg.black,hcLight:"#F2F2F2"},ot(0,"Background color for code blocks in text."));const yw=dw("widget.shadow",{dark:ly(lg.black,.36),light:ly(lg.black,.16),hcDark:null,hcLight:null},ot(0,"Shadow color of widgets such as find/replace inside the editor.")),kw=dw("widget.border",{dark:null,light:null,hcDark:ww,hcLight:ww},ot(0,"Border color of widgets such as find/replace inside the editor.")),xw=dw("input.background",{dark:"#3C3C3C",light:lg.white,hcDark:lg.black,hcLight:lg.white},ot(0,"Input box background.")),Cw=dw("input.foreground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"Input box foreground.")),Sw=dw("input.border",{dark:null,light:null,hcDark:ww,hcLight:ww},ot(0,"Input box border.")),Dw=dw("inputOption.activeBorder",{dark:"#007ACC",light:"#007ACC",hcDark:ww,hcLight:ww},ot(0,"Border color of activated options in input fields."));dw("inputOption.hoverBackground",{dark:"#5a5d5e80",light:"#b8b8b850",hcDark:null,hcLight:null},ot(0,"Background color of activated options in input fields."));const Ew=dw("inputOption.activeBackground",{dark:ly(mw,.4),light:ly(mw,.2),hcDark:lg.transparent,hcLight:lg.transparent},ot(0,"Background hover color of options in input fields.")),Aw=dw("inputOption.activeForeground",{dark:lg.white,light:lg.black,hcDark:fw,hcLight:fw},ot(0,"Foreground color of activated options in input fields."));dw("input.placeholderForeground",{light:ly(fw,.5),dark:ly(fw,.5),hcDark:ly(fw,.7),hcLight:ly(fw,.7)},ot(0,"Input box foreground color for placeholder text."));const Mw=dw("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hcDark:lg.black,hcLight:lg.white},ot(0,"Input validation background color for information severity.")),Lw=dw("inputValidation.infoForeground",{dark:null,light:null,hcDark:null,hcLight:fw},ot(0,"Input validation foreground color for information severity.")),Fw=dw("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hcDark:ww,hcLight:ww},ot(0,"Input validation border color for information severity.")),Tw=dw("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hcDark:lg.black,hcLight:lg.white},ot(0,"Input validation background color for warning severity.")),Rw=dw("inputValidation.warningForeground",{dark:null,light:null,hcDark:null,hcLight:fw},ot(0,"Input validation foreground color for warning severity.")),Ow=dw("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hcDark:ww,hcLight:ww},ot(0,"Input validation border color for warning severity.")),Iw=dw("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hcDark:lg.black,hcLight:lg.white},ot(0,"Input validation background color for error severity.")),_w=dw("inputValidation.errorForeground",{dark:null,light:null,hcDark:null,hcLight:fw},ot(0,"Input validation foreground color for error severity.")),Nw=dw("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hcDark:ww,hcLight:ww},ot(0,"Input validation border color for error severity.")),Bw=dw("dropdown.background",{dark:"#3C3C3C",light:lg.white,hcDark:lg.black,hcLight:lg.white},ot(0,"Dropdown background.")),Pw=dw("dropdown.listBackground",{dark:null,light:null,hcDark:lg.black,hcLight:lg.white},ot(0,"Dropdown list background.")),$w=dw("dropdown.foreground",{dark:"#F0F0F0",light:fw,hcDark:lg.white,hcLight:fw},ot(0,"Dropdown foreground.")),Ww=dw("dropdown.border",{dark:Bw,light:"#CECECE",hcDark:ww,hcLight:ww},ot(0,"Dropdown border.")),jw=dw("button.foreground",{dark:lg.white,light:lg.white,hcDark:lg.white,hcLight:lg.white},ot(0,"Button foreground color.")),zw=dw("button.separator",{dark:ly(jw,.4),light:ly(jw,.4),hcDark:ly(jw,.4),hcLight:ly(jw,.4)},ot(0,"Button separator color.")),Hw=dw("button.background",{dark:"#0E639C",light:"#007ACC",hcDark:null,hcLight:"#0F4A85"},ot(0,"Button background color.")),Vw=dw("button.hoverBackground",{dark:ay(Hw,.2),light:cy(Hw,.2),hcDark:Hw,hcLight:Hw},ot(0,"Button background color when hovering.")),Uw=dw("button.border",{dark:ww,light:ww,hcDark:ww,hcLight:ww},ot(0,"Button border color.")),qw=dw("button.secondaryForeground",{dark:lg.white,light:lg.white,hcDark:lg.white,hcLight:fw},ot(0,"Secondary button foreground color.")),Kw=dw("button.secondaryBackground",{dark:"#3A3D41",light:"#5F6A79",hcDark:null,hcLight:lg.white},ot(0,"Secondary button background color.")),Gw=dw("button.secondaryHoverBackground",{dark:ay(Kw,.2),light:cy(Kw,.2),hcDark:null,hcLight:null},ot(0,"Secondary button background color when hovering.")),Zw=dw("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hcDark:lg.black,hcLight:"#0F4A85"},ot(0,"Badge background color. Badges are small information labels, e.g. for search results count.")),Qw=dw("badge.foreground",{dark:lg.white,light:"#333",hcDark:lg.white,hcLight:lg.white},ot(0,"Badge foreground color. Badges are small information labels, e.g. for search results count.")),Jw=dw("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hcDark:null,hcLight:null},ot(0,"Scrollbar shadow to indicate that the view is scrolled.")),Yw=dw("scrollbarSlider.background",{dark:lg.fromHex("#797979").transparent(.4),light:lg.fromHex("#646464").transparent(.4),hcDark:ly(ww,.6),hcLight:ly(ww,.4)},ot(0,"Scrollbar slider background color.")),Xw=dw("scrollbarSlider.hoverBackground",{dark:lg.fromHex("#646464").transparent(.7),light:lg.fromHex("#646464").transparent(.7),hcDark:ly(ww,.8),hcLight:ly(ww,.8)},ot(0,"Scrollbar slider background color when hovering.")),tv=dw("scrollbarSlider.activeBackground",{dark:lg.fromHex("#BFBFBF").transparent(.4),light:lg.fromHex("#000000").transparent(.6),hcDark:ww,hcLight:ww},ot(0,"Scrollbar slider background color when clicked on.")),iv=dw("progressBar.background",{dark:lg.fromHex("#0E70C0"),light:lg.fromHex("#0E70C0"),hcDark:ww,hcLight:ww},ot(0,"Background color of the progress bar that can show for long running operations."));dw("editorError.background",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0);const ev=dw("editorError.foreground",{dark:"#F14C4C",light:"#E51400",hcDark:"#F48771",hcLight:"#B5200D"},ot(0,"Foreground color of error squigglies in the editor.")),sv=dw("editorError.border",{dark:null,light:null,hcDark:lg.fromHex("#E47777").transparent(.8),hcLight:"#B5200D"},ot(0,"If set, color of double underlines for errors in the editor."));dw("editorWarning.background",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0);const nv=dw("editorWarning.foreground",{dark:"#CCA700",light:"#BF8803",hcDark:"#FFD370",hcLight:"#895503"},ot(0,"Foreground color of warning squigglies in the editor.")),ov=dw("editorWarning.border",{dark:null,light:null,hcDark:lg.fromHex("#FFCC00").transparent(.8),hcLight:lg.fromHex("#FFCC00").transparent(.8)},ot(0,"If set, color of double underlines for warnings in the editor."));dw("editorInfo.background",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0);const rv=dw("editorInfo.foreground",{dark:"#3794FF",light:"#1a85ff",hcDark:"#3794FF",hcLight:"#1a85ff"},ot(0,"Foreground color of info squigglies in the editor.")),hv=dw("editorInfo.border",{dark:null,light:null,hcDark:lg.fromHex("#3794FF").transparent(.8),hcLight:"#292929"},ot(0,"If set, color of double underlines for infos in the editor.")),cv=dw("editorHint.foreground",{dark:lg.fromHex("#eeeeee").transparent(.7),light:"#6c6c6c",hcDark:null,hcLight:null},ot(0,"Foreground color of hint squigglies in the editor."));dw("editorHint.border",{dark:null,light:null,hcDark:lg.fromHex("#eeeeee").transparent(.8),hcLight:"#292929"},ot(0,"If set, color of double underlines for hints in the editor.")),dw("sash.hoverBorder",{dark:mw,light:mw,hcDark:mw,hcLight:mw},ot(0,"Border color of active sashes."));const av=dw("editor.background",{light:"#ffffff",dark:"#1E1E1E",hcDark:lg.black,hcLight:lg.white},ot(0,"Editor background color.")),lv=dw("editor.foreground",{light:"#333333",dark:"#BBBBBB",hcDark:lg.white,hcLight:fw},ot(0,"Editor default foreground color."));dw("editorStickyScroll.background",{light:av,dark:av,hcDark:av,hcLight:av},ot(0,"Sticky scroll background color for the editor")),dw("editorStickyScrollHover.background",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:null,hcLight:lg.fromHex("#0F4A85").transparent(.1)},ot(0,"Sticky scroll on hover background color for the editor"));const uv=dw("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hcDark:"#0C141F",hcLight:lg.white},ot(0,"Background color of editor widgets, such as find/replace.")),dv=dw("editorWidget.foreground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"Foreground color of editor widgets, such as find/replace.")),fv=dw("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hcDark:ww,hcLight:ww},ot(0,"Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.")),pv=dw("editorWidget.resizeBorder",{light:null,dark:null,hcDark:null,hcLight:null},ot(0,"Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.")),gv=dw("quickInput.background",{dark:uv,light:uv,hcDark:uv,hcLight:uv},ot(0,"Quick picker background color. The quick picker widget is the container for pickers like the command palette.")),mv=dw("quickInput.foreground",{dark:dv,light:dv,hcDark:dv,hcLight:dv},ot(0,"Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.")),wv=dw("quickInputTitle.background",{dark:new lg(new hg(255,255,255,.105)),light:new lg(new hg(0,0,0,.06)),hcDark:"#000000",hcLight:lg.white},ot(0,"Quick picker title background color. The quick picker widget is the container for pickers like the command palette.")),vv=dw("pickerGroup.foreground",{dark:"#3794FF",light:"#0066BF",hcDark:lg.white,hcLight:"#0F4A85"},ot(0,"Quick picker color for grouping labels.")),bv=dw("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hcDark:lg.white,hcLight:"#0F4A85"},ot(0,"Quick picker color for grouping borders.")),yv=dw("keybindingLabel.background",{dark:new lg(new hg(128,128,128,.17)),light:new lg(new hg(221,221,221,.4)),hcDark:lg.transparent,hcLight:lg.transparent},ot(0,"Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.")),kv=dw("keybindingLabel.foreground",{dark:lg.fromHex("#CCCCCC"),light:lg.fromHex("#555555"),hcDark:lg.white,hcLight:fw},ot(0,"Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.")),xv=dw("keybindingLabel.border",{dark:new lg(new hg(51,51,51,.6)),light:new lg(new hg(204,204,204,.4)),hcDark:new lg(new hg(111,195,223)),hcLight:ww},ot(0,"Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.")),Cv=dw("keybindingLabel.bottomBorder",{dark:new lg(new hg(68,68,68,.6)),light:new lg(new hg(187,187,187,.4)),hcDark:new lg(new hg(111,195,223)),hcLight:fw},ot(0,"Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.")),Sv=dw("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hcDark:"#f3f518",hcLight:"#0F4A85"},ot(0,"Color of the editor selection.")),Dv=dw("editor.selectionForeground",{light:null,dark:null,hcDark:"#000000",hcLight:lg.white},ot(0,"Color of the selected text for high contrast.")),Ev=dw("editor.inactiveSelectionBackground",{light:ly(Sv,.5),dark:ly(Sv,.5),hcDark:ly(Sv,.7),hcLight:ly(Sv,.5)},ot(0,"Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations."),!0),Av=dw("editor.selectionHighlightBackground",{light:dy(Sv,av,.3,.6),dark:dy(Sv,av,.3,.6),hcDark:null,hcLight:null},ot(0,"Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations."),!0);dw("editor.selectionHighlightBorder",{light:null,dark:null,hcDark:vw,hcLight:vw},ot(0,"Border color for regions with the same content as the selection."));const Mv=dw("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hcDark:null,hcLight:null},ot(0,"Color of the current search match.")),Lv=dw("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hcDark:null,hcLight:null},ot(0,"Color of the other search matches. The color must not be opaque so as not to hide underlying decorations."),!0),Fv=dw("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hcDark:null,hcLight:null},ot(0,"Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),Tv=dw("editor.findMatchBorder",{light:null,dark:null,hcDark:vw,hcLight:vw},ot(0,"Border color of the current search match.")),Rv=dw("editor.findMatchHighlightBorder",{light:null,dark:null,hcDark:vw,hcLight:vw},ot(0,"Border color of the other search matches.")),Ov=dw("editor.findRangeHighlightBorder",{dark:null,light:null,hcDark:ly(vw,.4),hcLight:ly(vw,.4)},ot(0,"Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0);dw("searchEditor.findMatchBackground",{light:ly(Lv,.66),dark:ly(Lv,.66),hcDark:Lv,hcLight:Lv},ot(0,"Color of the Search Editor query matches.")),dw("searchEditor.findMatchBorder",{light:ly(Rv,.66),dark:ly(Rv,.66),hcDark:Rv,hcLight:Rv},ot(0,"Border color of the Search Editor query matches.")),dw("search.resultsInfoForeground",{light:fw,dark:ly(fw,.65),hcDark:fw,hcLight:fw},ot(0,"Color of the text in the search viewlet's completion message.")),dw("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hcDark:"#ADD6FF26",hcLight:null},ot(0,"Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations."),!0);const Iv=dw("editorHoverWidget.background",{light:uv,dark:uv,hcDark:uv,hcLight:uv},ot(0,"Background color of the editor hover."));dw("editorHoverWidget.foreground",{light:dv,dark:dv,hcDark:dv,hcLight:dv},ot(0,"Foreground color of the editor hover."));const _v=dw("editorHoverWidget.border",{light:fv,dark:fv,hcDark:fv,hcLight:fv},ot(0,"Border color of the editor hover."));dw("editorHoverWidget.statusBarBackground",{dark:ay(Iv,.2),light:cy(Iv,.05),hcDark:uv,hcLight:uv},ot(0,"Background color of the editor hover status bar."));const Nv=dw("editorLink.activeForeground",{dark:"#4E94CE",light:lg.blue,hcDark:lg.cyan,hcLight:"#292929"},ot(0,"Color of active links.")),Bv=dw("editorInlayHint.foreground",{dark:"#969696",light:"#969696",hcDark:lg.white,hcLight:lg.black},ot(0,"Foreground color of inline hints")),Pv=dw("editorInlayHint.background",{dark:ly(Zw,.1),light:ly(Zw,.1),hcDark:ly(lg.white,.1),hcLight:ly(Zw,.1)},ot(0,"Background color of inline hints")),$v=dw("editorInlayHint.typeForeground",{dark:Bv,light:Bv,hcDark:Bv,hcLight:Bv},ot(0,"Foreground color of inline hints for types")),Wv=dw("editorInlayHint.typeBackground",{dark:Pv,light:Pv,hcDark:Pv,hcLight:Pv},ot(0,"Background color of inline hints for types")),jv=dw("editorInlayHint.parameterForeground",{dark:Bv,light:Bv,hcDark:Bv,hcLight:Bv},ot(0,"Foreground color of inline hints for parameters")),zv=dw("editorInlayHint.parameterBackground",{dark:Pv,light:Pv,hcDark:Pv,hcLight:Pv},ot(0,"Background color of inline hints for parameters"));dw("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hcDark:"#FFCC00",hcLight:"#007ACC"},ot(0,"The color used for the lightbulb actions icon.")),dw("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},ot(0,"The color used for the lightbulb auto fix actions icon.")),dw("editorLightBulbAi.foreground",{dark:cy(gw,.4),light:ay(gw,1.7),hcDark:gw,hcLight:gw},ot(0,"The color used for the lightbulb AI icon."));const Hv=new lg(new hg(155,185,85,.2)),Vv=new lg(new hg(255,0,0,.2)),Uv=dw("diffEditor.insertedTextBackground",{dark:"#9ccc2c33",light:"#9ccc2c40",hcDark:null,hcLight:null},ot(0,"Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),qv=dw("diffEditor.removedTextBackground",{dark:"#ff000033",light:"#ff000033",hcDark:null,hcLight:null},ot(0,"Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations."),!0);dw("diffEditor.insertedLineBackground",{dark:Hv,light:Hv,hcDark:null,hcLight:null},ot(0,"Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),dw("diffEditor.removedLineBackground",{dark:Vv,light:Vv,hcDark:null,hcLight:null},ot(0,"Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),dw("diffEditorGutter.insertedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"Background color for the margin where lines got inserted.")),dw("diffEditorGutter.removedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"Background color for the margin where lines got removed."));const Kv=dw("diffEditorOverview.insertedForeground",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"Diff overview ruler foreground for inserted content.")),Gv=dw("diffEditorOverview.removedForeground",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"Diff overview ruler foreground for removed content."));dw("diffEditor.insertedTextBorder",{dark:null,light:null,hcDark:"#33ff2eff",hcLight:"#374E06"},ot(0,"Outline color for the text that got inserted.")),dw("diffEditor.removedTextBorder",{dark:null,light:null,hcDark:"#FF008F",hcLight:"#AD0707"},ot(0,"Outline color for text that got removed.")),dw("diffEditor.border",{dark:null,light:null,hcDark:ww,hcLight:ww},ot(0,"Border color between the two text editors.")),dw("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hcDark:null,hcLight:null},ot(0,"Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.")),dw("diffEditor.unchangedRegionBackground",{dark:"sideBar.background",light:"sideBar.background",hcDark:"sideBar.background",hcLight:"sideBar.background"},ot(0,"The background color of unchanged blocks in the diff editor.")),dw("diffEditor.unchangedRegionForeground",{dark:"foreground",light:"foreground",hcDark:"foreground",hcLight:"foreground"},ot(0,"The foreground color of unchanged blocks in the diff editor.")),dw("diffEditor.unchangedCodeBackground",{dark:"#74747429",light:"#b8b8b829",hcDark:null,hcLight:null},ot(0,"The background color of unchanged code in the diff editor."));const Zv=dw("list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),Qv=dw("list.focusForeground",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),Jv=dw("list.focusOutline",{dark:mw,light:mw,hcDark:vw,hcLight:vw},ot(0,"List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),Yv=dw("list.focusAndSelectionOutline",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not.")),Xv=dw("list.activeSelectionBackground",{dark:"#04395E",light:"#0060C0",hcDark:null,hcLight:lg.fromHex("#0F4A85").transparent(.1)},ot(0,"List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),tb=dw("list.activeSelectionForeground",{dark:lg.white,light:lg.white,hcDark:null,hcLight:null},ot(0,"List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),ib=dw("list.activeSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),eb=dw("list.inactiveSelectionBackground",{dark:"#37373D",light:"#E4E6F1",hcDark:null,hcLight:lg.fromHex("#0F4A85").transparent(.1)},ot(0,"List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),sb=dw("list.inactiveSelectionForeground",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),nb=dw("list.inactiveSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),ob=dw("list.inactiveFocusBackground",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),rb=dw("list.inactiveFocusOutline",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),hb=dw("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:lg.white.transparent(.1),hcLight:lg.fromHex("#0F4A85").transparent(.1)},ot(0,"List/Tree background when hovering over items using the mouse.")),cb=dw("list.hoverForeground",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"List/Tree foreground when hovering over items using the mouse.")),ab=dw("list.dropBackground",{dark:"#062F4A",light:"#D6EBFF",hcDark:null,hcLight:null},ot(0,"List/Tree drag and drop background when moving items around using the mouse.")),lb=dw("list.highlightForeground",{dark:"#2AAAFF",light:"#0066BF",hcDark:mw,hcLight:mw},ot(0,"List/Tree foreground color of the match highlights when searching inside the list/tree.")),ub=dw("list.focusHighlightForeground",{dark:lb,light:(db=Xv,fb=lb,"#BBE7FF",{op:6,if:db,then:fb,else:"#BBE7FF"}),hcDark:lb,hcLight:lb},ot(0,"List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree."));var db,fb;dw("list.invalidItemForeground",{dark:"#B89500",light:"#B89500",hcDark:"#B89500",hcLight:"#B5200D"},ot(0,"List/Tree foreground color for invalid items, for example an unresolved root in explorer.")),dw("list.errorForeground",{dark:"#F88070",light:"#B01011",hcDark:null,hcLight:null},ot(0,"Foreground color of list items containing errors.")),dw("list.warningForeground",{dark:"#CCA700",light:"#855F00",hcDark:null,hcLight:null},ot(0,"Foreground color of list items containing warnings."));const pb=dw("listFilterWidget.background",{light:cy(uv,0),dark:ay(uv,0),hcDark:uv,hcLight:uv},ot(0,"Background color of the type filter widget in lists and trees.")),gb=dw("listFilterWidget.outline",{dark:lg.transparent,light:lg.transparent,hcDark:"#f38518",hcLight:"#007ACC"},ot(0,"Outline color of the type filter widget in lists and trees.")),mb=dw("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hcDark:ww,hcLight:ww},ot(0,"Outline color of the type filter widget in lists and trees, when there are no matches.")),wb=dw("listFilterWidget.shadow",{dark:yw,light:yw,hcDark:yw,hcLight:yw},ot(0,"Shadow color of the type filter widget in lists and trees."));dw("list.filterMatchBackground",{dark:Lv,light:Lv,hcDark:null,hcLight:null},ot(0,"Background color of the filtered match.")),dw("list.filterMatchBorder",{dark:Rv,light:Rv,hcDark:ww,hcLight:vw},ot(0,"Border color of the filtered match."));const vb=dw("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hcDark:"#a9a9a9",hcLight:"#a5a5a5"},ot(0,"Tree stroke color for the indentation guides.")),bb=dw("tree.inactiveIndentGuidesStroke",{dark:ly(vb,.4),light:ly(vb,.4),hcDark:ly(vb,.4),hcLight:ly(vb,.4)},ot(0,"Tree stroke color for the indentation guides that are not active.")),yb=dw("tree.tableColumnsBorder",{dark:"#CCCCCC20",light:"#61616120",hcDark:null,hcLight:null},ot(0,"Table border color between columns.")),kb=dw("tree.tableOddRowsBackground",{dark:ly(fw,.04),light:ly(fw,.04),hcDark:null,hcLight:null},ot(0,"Background color for odd table rows."));dw("list.deemphasizedForeground",{dark:"#8C8C8C",light:"#8E8E90",hcDark:"#A7A8A9",hcLight:"#666666"},ot(0,"List/Tree foreground color for items that are deemphasized. "));const xb=dw("checkbox.background",{dark:Bw,light:Bw,hcDark:Bw,hcLight:Bw},ot(0,"Background color of checkbox widget."));dw("checkbox.selectBackground",{dark:uv,light:uv,hcDark:uv,hcLight:uv},ot(0,"Background color of checkbox widget when the element it's in is selected."));const Cb=dw("checkbox.foreground",{dark:$w,light:$w,hcDark:$w,hcLight:$w},ot(0,"Foreground color of checkbox widget.")),Sb=dw("checkbox.border",{dark:Ww,light:Ww,hcDark:Ww,hcLight:Ww},ot(0,"Border color of checkbox widget."));dw("checkbox.selectBorder",{dark:gw,light:gw,hcDark:gw,hcLight:gw},ot(0,"Border color of checkbox widget when the element it's in is selected."));const Db=dw("quickInput.list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},"",void 0,ot(0,"Please use quickInputList.focusBackground instead")),Eb=dw("quickInputList.focusForeground",{dark:tb,light:tb,hcDark:tb,hcLight:tb},ot(0,"Quick picker foreground color for the focused item.")),Ab=dw("quickInputList.focusIconForeground",{dark:ib,light:ib,hcDark:ib,hcLight:ib},ot(0,"Quick picker icon foreground color for the focused item.")),Mb=dw("quickInputList.focusBackground",{dark:uy(Db,Xv),light:uy(Db,Xv),hcDark:null,hcLight:null},ot(0,"Quick picker background color for the focused item.")),Lb=dw("menu.border",{dark:null,light:null,hcDark:ww,hcLight:ww},ot(0,"Border color of menus.")),Fb=dw("menu.foreground",{dark:$w,light:$w,hcDark:$w,hcLight:$w},ot(0,"Foreground color of menu items.")),Tb=dw("menu.background",{dark:Bw,light:Bw,hcDark:Bw,hcLight:Bw},ot(0,"Background color of menu items.")),Rb=dw("menu.selectionForeground",{dark:tb,light:tb,hcDark:tb,hcLight:tb},ot(0,"Foreground color of the selected menu item in menus.")),Ob=dw("menu.selectionBackground",{dark:Xv,light:Xv,hcDark:Xv,hcLight:Xv},ot(0,"Background color of the selected menu item in menus.")),Ib=dw("menu.selectionBorder",{dark:null,light:null,hcDark:vw,hcLight:vw},ot(0,"Border color of the selected menu item in menus.")),_b=dw("menu.separatorBackground",{dark:"#606060",light:"#D4D4D4",hcDark:ww,hcLight:ww},ot(0,"Color of a separator menu item in menus.")),Nb=dw("toolbar.hoverBackground",{dark:"#5a5d5e50",light:"#b8b8b850",hcDark:null,hcLight:null},ot(0,"Toolbar background when hovering over actions using the mouse"));dw("toolbar.hoverOutline",{dark:null,light:null,hcDark:vw,hcLight:vw},ot(0,"Toolbar outline when hovering over actions using the mouse")),dw("toolbar.activeBackground",{dark:ay(Nb,.1),light:cy(Nb,.1),hcDark:null,hcLight:null},ot(0,"Toolbar background when holding the mouse over actions")),dw("editor.snippetTabstopHighlightBackground",{dark:new lg(new hg(124,124,124,.3)),light:new lg(new hg(10,50,100,.2)),hcDark:new lg(new hg(124,124,124,.3)),hcLight:new lg(new hg(10,50,100,.2))},ot(0,"Highlight background color of a snippet tabstop.")),dw("editor.snippetTabstopHighlightBorder",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"Highlight border color of a snippet tabstop.")),dw("editor.snippetFinalTabstopHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"Highlight background color of the final tabstop of a snippet.")),dw("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new lg(new hg(10,50,100,.5)),hcDark:"#525252",hcLight:"#292929"},ot(0,"Highlight border color of the final tabstop of a snippet."));const Bb=dw("breadcrumb.foreground",{light:ly(fw,.8),dark:ly(fw,.8),hcDark:ly(fw,.8),hcLight:ly(fw,.8)},ot(0,"Color of focused breadcrumb items.")),Pb=dw("breadcrumb.background",{light:av,dark:av,hcDark:av,hcLight:av},ot(0,"Background color of breadcrumb items.")),$b=dw("breadcrumb.focusForeground",{light:cy(fw,.2),dark:ay(fw,.1),hcDark:ay(fw,.1),hcLight:ay(fw,.1)},ot(0,"Color of focused breadcrumb items.")),Wb=dw("breadcrumb.activeSelectionForeground",{light:cy(fw,.2),dark:ay(fw,.1),hcDark:ay(fw,.1),hcLight:ay(fw,.1)},ot(0,"Color of selected breadcrumb items."));dw("breadcrumbPicker.background",{light:uv,dark:uv,hcDark:uv,hcLight:uv},ot(0,"Background color of breadcrumb item picker."));const jb=lg.fromHex("#40C8AE").transparent(.5),zb=lg.fromHex("#40A6FF").transparent(.5),Hb=lg.fromHex("#606060").transparent(.4),Vb=.4,Ub=dw("merge.currentHeaderBackground",{dark:jb,light:jb,hcDark:null,hcLight:null},ot(0,"Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);dw("merge.currentContentBackground",{dark:ly(Ub,Vb),light:ly(Ub,Vb),hcDark:ly(Ub,Vb),hcLight:ly(Ub,Vb)},ot(0,"Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const qb=dw("merge.incomingHeaderBackground",{dark:zb,light:zb,hcDark:null,hcLight:null},ot(0,"Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);dw("merge.incomingContentBackground",{dark:ly(qb,Vb),light:ly(qb,Vb),hcDark:ly(qb,Vb),hcLight:ly(qb,Vb)},ot(0,"Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const Kb=dw("merge.commonHeaderBackground",{dark:Hb,light:Hb,hcDark:null,hcLight:null},ot(0,"Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);dw("merge.commonContentBackground",{dark:ly(Kb,Vb),light:ly(Kb,Vb),hcDark:ly(Kb,Vb),hcLight:ly(Kb,Vb)},ot(0,"Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const Gb=dw("merge.border",{dark:null,light:null,hcDark:"#C3DF6F",hcLight:"#007ACC"},ot(0,"Border color on headers and the splitter in inline merge-conflicts."));dw("editorOverviewRuler.currentContentForeground",{dark:ly(Ub,1),light:ly(Ub,1),hcDark:Gb,hcLight:Gb},ot(0,"Current overview ruler foreground for inline merge-conflicts.")),dw("editorOverviewRuler.incomingContentForeground",{dark:ly(qb,1),light:ly(qb,1),hcDark:Gb,hcLight:Gb},ot(0,"Incoming overview ruler foreground for inline merge-conflicts.")),dw("editorOverviewRuler.commonContentForeground",{dark:ly(Kb,1),light:ly(Kb,1),hcDark:Gb,hcLight:Gb},ot(0,"Common ancestor overview ruler foreground for inline merge-conflicts."));const Zb=dw("editorOverviewRuler.findMatchForeground",{dark:"#d186167e",light:"#d186167e",hcDark:"#AB5A00",hcLight:""},ot(0,"Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations."),!0),Qb=dw("editorOverviewRuler.selectionHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},ot(0,"Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations."),!0),Jb=dw("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hcDark:"#AB5A00",hcLight:"#0F4A85"},ot(0,"Minimap marker color for find matches."),!0),Yb=dw("minimap.selectionOccurrenceHighlight",{light:"#c9c9c9",dark:"#676767",hcDark:"#ffffff",hcLight:"#0F4A85"},ot(0,"Minimap marker color for repeating editor selections."),!0),Xb=dw("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hcDark:"#ffffff",hcLight:"#0F4A85"},ot(0,"Minimap marker color for the editor selection."),!0),ty=dw("minimap.infoHighlight",{dark:rv,light:rv,hcDark:hv,hcLight:hv},ot(0,"Minimap marker color for infos.")),iy=dw("minimap.warningHighlight",{dark:nv,light:nv,hcDark:ov,hcLight:ov},ot(0,"Minimap marker color for warnings.")),ey=dw("minimap.errorHighlight",{dark:new lg(new hg(255,18,18,.7)),light:new lg(new hg(255,18,18,.7)),hcDark:new lg(new hg(255,50,50,1)),hcLight:"#B5200D"},ot(0,"Minimap marker color for errors.")),sy=dw("minimap.background",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"Minimap background color.")),ny=dw("minimap.foregroundOpacity",{dark:lg.fromHex("#000f"),light:lg.fromHex("#000f"),hcDark:lg.fromHex("#000f"),hcLight:lg.fromHex("#000f")},ot(0,'Opacity of foreground elements rendered in the minimap. For example, "#000000c0" will render the elements with 75% opacity.'));dw("minimapSlider.background",{light:ly(Yw,.5),dark:ly(Yw,.5),hcDark:ly(Yw,.5),hcLight:ly(Yw,.5)},ot(0,"Minimap slider background color.")),dw("minimapSlider.hoverBackground",{light:ly(Xw,.5),dark:ly(Xw,.5),hcDark:ly(Xw,.5),hcLight:ly(Xw,.5)},ot(0,"Minimap slider background color when hovering.")),dw("minimapSlider.activeBackground",{light:ly(tv,.5),dark:ly(tv,.5),hcDark:ly(tv,.5),hcLight:ly(tv,.5)},ot(0,"Minimap slider background color when clicked on."));const oy=dw("problemsErrorIcon.foreground",{dark:ev,light:ev,hcDark:ev,hcLight:ev},ot(0,"The color used for the problems error icon.")),ry=dw("problemsWarningIcon.foreground",{dark:nv,light:nv,hcDark:nv,hcLight:nv},ot(0,"The color used for the problems warning icon.")),hy=dw("problemsInfoIcon.foreground",{dark:rv,light:rv,hcDark:rv,hcLight:rv},ot(0,"The color used for the problems info icon."));function cy(t,i){return{op:0,value:t,factor:i}}function ay(t,i){return{op:1,value:t,factor:i}}function ly(t,i){return{op:2,value:t,factor:i}}function uy(...t){return{op:4,values:t}}function dy(t,i,e,s){return{op:5,value:t,background:i,factor:e,transparency:s}}function fy(t,i){if(null!==t)return"string"==typeof t?"#"===t[0]?lg.fromHex(t):i.getColor(t):t instanceof lg?t:"object"==typeof t?function(t,i){var e,s,n,o;switch(t.op){case 0:return null===(e=fy(t.value,i))||void 0===e?void 0:e.darken(t.factor);case 1:return null===(s=fy(t.value,i))||void 0===s?void 0:s.lighten(t.factor);case 2:return null===(n=fy(t.value,i))||void 0===n?void 0:n.transparent(t.factor);case 3:{const e=fy(t.background,i);return e?null===(o=fy(t.value,i))||void 0===o?void 0:o.makeOpaque(e):fy(t.value,i)}case 4:for(const e of t.values){const t=fy(e,i);if(t)return t}return;case 6:return fy(i.defines(t.if)?t.then:t.else,i);case 5:{const e=fy(t.value,i);if(!e)return;const s=fy(t.background,i);return s?e.isDarkerThan(s)?lg.getLighterColor(e,s,t.factor).transparent(t.transparency):lg.getDarkerColor(e,s,t.factor).transparent(t.transparency):e.transparent(t.factor*t.transparency)}default:throw xh()}}(t,i):void 0}dw("charts.foreground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color used in charts.")),dw("charts.lines",{dark:ly(fw,.5),light:ly(fw,.5),hcDark:ly(fw,.5),hcLight:ly(fw,.5)},ot(0,"The color used for horizontal lines in charts.")),dw("charts.red",{dark:ev,light:ev,hcDark:ev,hcLight:ev},ot(0,"The red color used in chart visualizations.")),dw("charts.blue",{dark:rv,light:rv,hcDark:rv,hcLight:rv},ot(0,"The blue color used in chart visualizations.")),dw("charts.yellow",{dark:nv,light:nv,hcDark:nv,hcLight:nv},ot(0,"The yellow color used in chart visualizations.")),dw("charts.orange",{dark:Jb,light:Jb,hcDark:Jb,hcLight:Jb},ot(0,"The orange color used in chart visualizations.")),dw("charts.green",{dark:"#89D185",light:"#388A34",hcDark:"#89D185",hcLight:"#374e06"},ot(0,"The green color used in chart visualizations.")),dw("charts.purple",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},ot(0,"The purple color used in chart visualizations."));const py="vscode://schemas/workbench-colors",gy=Dh.as(Ed);gy.registerSchema(py,uw.getColorSchema());const my=new pc((()=>gy.notifySchemaChanged(py)),200);uw.onDidChangeSchema((()=>{my.isScheduled()||my.schedule()}));class wy{constructor(t,i){this.x=t,this.y=i,this._pageCoordinatesBrand=void 0}toClientCoordinates(t){return new vy(this.x-t.scrollX,this.y-t.scrollY)}}class vy{constructor(t,i){this.clientX=t,this.clientY=i,this._clientCoordinatesBrand=void 0}toPageCoordinates(t){return new wy(this.clientX+t.scrollX,this.clientY+t.scrollY)}}class by{constructor(t,i,e,s){this.x=t,this.y=i,this.width=e,this.height=s,this._editorPagePositionBrand=void 0}}class yy{constructor(t,i){this.x=t,this.y=i,this._positionRelativeToEditorBrand=void 0}}function ky(t){const i=nl(t);return new by(i.left,i.top,i.width,i.height)}function xy(t,i,e){return new yy((e.x-i.x)/(i.width/t.offsetWidth),(e.y-i.y)/(i.height/t.offsetHeight))}class Cy extends tc{constructor(t,i,e){super(Na(e),t),this._editorMouseEventBrand=void 0,this.isFromPointerCapture=i,this.pos=new wy(this.posx,this.posy),this.editorPos=ky(e),this.relativePos=xy(e,this.editorPos,this.pos)}}class Sy{constructor(t){this._editorViewDomNode=t}_create(t){return new Cy(t,!1,this._editorViewDomNode)}onContextMenu(t,i){return Va(t,"contextmenu",(t=>{i(this._create(t))}))}onMouseUp(t,i){return Va(t,"mouseup",(t=>{i(this._create(t))}))}onMouseDown(t,i){return Va(t,Ll.MOUSE_DOWN,(t=>{i(this._create(t))}))}onPointerDown(t,i){return Va(t,Ll.POINTER_DOWN,(t=>{i(this._create(t),t.pointerId)}))}onMouseLeave(t,i){return Va(t,Ll.MOUSE_LEAVE,(t=>{i(this._create(t))}))}onMouseMove(t,i){return Va(t,"mousemove",(t=>i(this._create(t))))}}class Dy{constructor(t){this._editorViewDomNode=t}_create(t){return new Cy(t,!1,this._editorViewDomNode)}onPointerUp(t,i){return Va(t,"pointerup",(t=>{i(this._create(t))}))}onPointerDown(t,i){return Va(t,Ll.POINTER_DOWN,(t=>{i(this._create(t),t.pointerId)}))}onPointerLeave(t,i){return Va(t,Ll.POINTER_LEAVE,(t=>{i(this._create(t))}))}onPointerMove(t,i){return Va(t,"pointermove",(t=>i(this._create(t))))}}class Ey extends te{constructor(t){super(),this._editorViewDomNode=t,this._globalPointerMoveMonitor=this._register(new hw),this._keydownListener=null}startMonitoring(t,i,e,s,n){this._keydownListener=qa(t.ownerDocument,"keydown",(t=>{t.toKeyCodeChord().isModifierKey()||this._globalPointerMoveMonitor.stopMonitoring(!0,t.browserEvent)}),!0),this._globalPointerMoveMonitor.startMonitoring(t,i,e,(t=>{s(new Cy(t,!0,this._editorViewDomNode))}),(t=>{this._keydownListener.dispose(),n(t)}))}stopMonitoring(){this._globalPointerMoveMonitor.stopMonitoring(!0)}}class Ay{constructor(t){this._editor=t,this._instanceId=++Ay._idPool,this._counter=0,this._rules=new Map,this._garbageCollectionScheduler=new pc((()=>this.garbageCollect()),1e3)}createClassNameRef(t){const i=this.getOrCreateRule(t);return i.increaseRefCount(),{className:i.className,dispose:()=>{i.decreaseRefCount(),this._garbageCollectionScheduler.schedule()}}}getOrCreateRule(t){const i=this.computeUniqueKey(t);let e=this._rules.get(i);if(!e){const s=this._counter++;e=new My(i,`dyn-rule-${this._instanceId}-${s}`,dl(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0,t),this._rules.set(i,e)}return e}computeUniqueKey(t){return JSON.stringify(t)}garbageCollect(){for(const t of this._rules.values())t.hasReferences()||(this._rules.delete(t.key),t.dispose())}}Ay._idPool=0;class My{constructor(t,i,e,s){this.key=t,this.className=i,this.properties=s,this._referenceCount=0,this._styleElementDisposables=new Xi,this._styleElement=vl(e,void 0,this._styleElementDisposables),this._styleElement.textContent=this.getCssText(this.className,this.properties)}getCssText(t,i){let e=`.${t} {`;for(const t in i){const s=i[t];let n;n="object"==typeof s?aw(s.id):s,e+=`\n\t${Ly(t)}: ${n};`}return e+="\n}",e}dispose(){this._styleElementDisposables.dispose(),this._styleElement=void 0}increaseRefCount(){this._referenceCount++}decreaseRefCount(){this._referenceCount--}hasReferences(){return this._referenceCount>0}}function Ly(t){return t.replace(/(^[A-Z])/,(([t])=>t.toLowerCase())).replace(/([A-Z])/g,(([t])=>`-${t.toLowerCase()}`))}class Fy extends te{constructor(){super(),this._shouldRender=!0}shouldRender(){return this._shouldRender}forceShouldRender(){this._shouldRender=!0}setShouldRender(){this._shouldRender=!0}onDidRender(){this._shouldRender=!1}onCompositionStart(t){return!1}onCompositionEnd(t){return!1}onConfigurationChanged(t){return!1}onCursorStateChanged(t){return!1}onDecorationsChanged(t){return!1}onFlushed(t){return!1}onFocusChanged(t){return!1}onLanguageConfigurationChanged(t){return!1}onLineMappingChanged(t){return!1}onLinesChanged(t){return!1}onLinesDeleted(t){return!1}onLinesInserted(t){return!1}onRevealRangeRequest(t){return!1}onScrollChanged(t){return!1}onThemeChanged(t){return!1}onTokensChanged(t){return!1}onTokensColorsChanged(t){return!1}onZonesChanged(t){return!1}handleEvents(t){let i=!1;for(let e=0,s=t.length;e=o.left?s.width=Math.max(s.width,o.left+o.width-s.left):(i[e++]=s,s=o)}return i[e++]=s,i}static _createHorizontalRangesFromClientRects(t,i,e){if(!t||0===t.length)return null;const s=[];for(let n=0,o=t.length;nr)return null;if((i=Math.min(r,Math.max(0,i)))===(s=Math.min(r,Math.max(0,s)))&&e===n&&0===e&&!t.children[i].firstChild){const e=t.children[i].getClientRects();return o.markDidDomLayout(),this._createHorizontalRangesFromClientRects(e,o.clientRectDeltaLeft,o.clientRectScale)}i!==s&&s>0&&0===n&&(s--,n=1073741824);let h=t.children[i].firstChild,c=t.children[s].firstChild;if(h&&c||(!h&&0===e&&i>0&&(h=t.children[i-1].firstChild,e=1073741824),!c&&0===n&&s>0&&(c=t.children[s-1].firstChild,n=1073741824)),!h||!c)return null;e=Math.min(h.textContent.length,Math.max(0,e)),n=Math.min(c.textContent.length,Math.max(0,n));const a=this._readClientRects(h,e,c,n,o.endNode);return o.markDidDomLayout(),this._createHorizontalRangesFromClientRects(a,o.clientRectDeltaLeft,o.clientRectScale)}}var jy;function zy(t){return t===jy.HIGH_CONTRAST_DARK||t===jy.HIGH_CONTRAST_LIGHT}function Hy(t){return t===jy.DARK||t===jy.HIGH_CONTRAST_DARK}!function(t){t.DARK="dark",t.LIGHT="light",t.HIGH_CONTRAST_DARK="hcDark",t.HIGH_CONTRAST_LIGHT="hcLight"}(jy||(jy={}));const Vy=!!Dt||!(St||Uo||Go);let Uy=!0;class qy{constructor(t,i){this.themeType=i;const e=t.options,s=e.get(50),n=e.get(38);this.renderWhitespace="off"===n?e.get(98):"none",this.renderControlCharacters=e.get(93),this.spaceWidth=s.spaceWidth,this.middotWidth=s.middotWidth,this.wsmiddotWidth=s.wsmiddotWidth,this.useMonospaceOptimizations=s.isMonospace&&!e.get(33),this.canUseHalfwidthRightwardsArrow=s.canUseHalfwidthRightwardsArrow,this.lineHeight=e.get(66),this.stopRenderingLineAfter=e.get(116),this.fontLigatures=e.get(51)}equals(t){return this.themeType===t.themeType&&this.renderWhitespace===t.renderWhitespace&&this.renderControlCharacters===t.renderControlCharacters&&this.spaceWidth===t.spaceWidth&&this.middotWidth===t.middotWidth&&this.wsmiddotWidth===t.wsmiddotWidth&&this.useMonospaceOptimizations===t.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===t.canUseHalfwidthRightwardsArrow&&this.lineHeight===t.lineHeight&&this.stopRenderingLineAfter===t.stopRenderingLineAfter&&this.fontLigatures===t.fontLigatures}}class Ky{constructor(t){this._options=t,this._isMaybeInvalid=!0,this._renderedViewLine=null}getDomNode(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null}setDomNode(t){if(!this._renderedViewLine)throw new Error("I have no rendered view line to set the dom node to...");this._renderedViewLine.domNode=tr(t)}onContentChanged(){this._isMaybeInvalid=!0}onTokensChanged(){this._isMaybeInvalid=!0}onDecorationsChanged(){this._isMaybeInvalid=!0}onOptionsChanged(t){this._isMaybeInvalid=!0,this._options=t}onSelectionChanged(){return!(!zy(this._options.themeType)&&"selection"!==this._options.renderWhitespace||(this._isMaybeInvalid=!0,0))}renderLine(t,i,e,s){if(!1===this._isMaybeInvalid)return!1;this._isMaybeInvalid=!1;const n=e.getViewLineRenderingData(t),o=this._options,r=Wg.filter(n.inlineDecorations,t,n.minColumn,n.maxColumn);let h=null;if(zy(o.themeType)||"selection"===this._options.renderWhitespace){const i=e.selections;for(const e of i){if(e.endLineNumbert)continue;const i=e.startLineNumber===t?e.startColumn:n.minColumn,s=e.endLineNumber===t?e.endColumn:n.maxColumn;i');const a=Qg(c,s);s.appendString("");let l=null;return Uy&&Vy&&n.isBasicASCII&&o.useMonospaceOptimizations&&0===a.containsForeignElements&&(l=new Gy(this._renderedViewLine?this._renderedViewLine.domNode:null,c,a.characterMapping)),l||(l=Jy(this._renderedViewLine?this._renderedViewLine.domNode:null,c,a.characterMapping,a.containsRTL,a.containsForeignElements)),this._renderedViewLine=l,!0}layoutLine(t,i){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(i),this._renderedViewLine.domNode.setHeight(this._options.lineHeight))}getWidth(t){return this._renderedViewLine?this._renderedViewLine.getWidth(t):0}getWidthIsFast(){return!this._renderedViewLine||this._renderedViewLine.getWidthIsFast()}needsMonospaceFontCheck(){return!!this._renderedViewLine&&this._renderedViewLine instanceof Gy}monospaceAssumptionsAreValid(){return this._renderedViewLine&&this._renderedViewLine instanceof Gy?this._renderedViewLine.monospaceAssumptionsAreValid():Uy}onMonospaceAssumptionsInvalidated(){this._renderedViewLine&&this._renderedViewLine instanceof Gy&&(this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine())}getVisibleRangesForRange(t,i,e,s){if(!this._renderedViewLine)return null;i=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,i)),e=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,e));const n=this._renderedViewLine.input.stopRenderingLineAfter;if(-1!==n&&i>n+1&&e>n+1)return new $y(!0,[new By(this.getWidth(s),0)]);-1!==n&&i>n+1&&(i=n+1),-1!==n&&e>n+1&&(e=n+1);const o=this._renderedViewLine.getVisibleRangesForRange(t,i,e,s);return o&&o.length>0?new $y(!1,o):null}getColumnOfNodeOffset(t,i){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(t,i):1}}Ky.CLASS_NAME="view-line";class Gy{constructor(t,i,e){this._cachedWidth=-1,this.domNode=t,this.input=i;const s=Math.floor(i.lineContent.length/300);if(s>0){this._keyColumnPixelOffsetCache=new Float32Array(s);for(let t=0;t=2&&(console.warn("monospace assumptions have been violated, therefore disabling monospace optimizations!"),Uy=!1)}return Uy}toSlowRenderedLine(){return Jy(this.domNode,this.input,this._characterMapping,!1,0)}getVisibleRangesForRange(t,i,e,s){const n=this._getColumnPixelOffset(t,i,s),o=this._getColumnPixelOffset(t,e,s);return[new By(n,o-n)]}_getColumnPixelOffset(t,i,e){if(i<=300){const t=this._characterMapping.getHorizontalOffset(i);return this._charWidth*t}const s=Math.floor((i-1)/300)-1,n=300*(s+1)+1;let o=-1;if(this._keyColumnPixelOffsetCache&&(o=this._keyColumnPixelOffsetCache[s],-1===o&&(o=this._actualReadPixelOffset(t,n,e),this._keyColumnPixelOffsetCache[s]=o)),-1===o){const t=this._characterMapping.getHorizontalOffset(i);return this._charWidth*t}const r=this._characterMapping.getHorizontalOffset(n),h=this._characterMapping.getHorizontalOffset(i);return o+this._charWidth*(h-r)}_getReadingTarget(t){return t.domNode.firstChild}_actualReadPixelOffset(t,i,e){if(!this.domNode)return-1;const s=this._characterMapping.getDomPosition(i),n=Wy.readHorizontalRanges(this._getReadingTarget(this.domNode),s.partIndex,s.charIndex,s.partIndex,s.charIndex,e);return n&&0!==n.length?n[0].left:-1}getColumnOfNodeOffset(t,i){return Yy(this._characterMapping,t,i)}}class Zy{constructor(t,i,e,s,n){if(this.domNode=t,this.input=i,this._characterMapping=e,this._isWhitespaceOnly=/^\s*$/.test(i.lineContent),this._containsForeignElements=n,this._cachedWidth=-1,this._pixelOffsetCache=null,!s||0===this._characterMapping.length){this._pixelOffsetCache=new Float32Array(Math.max(2,this._characterMapping.length+1));for(let t=0,i=this._characterMapping.length;t<=i;t++)this._pixelOffsetCache[t]=-1}}_getReadingTarget(t){return t.domNode.firstChild}getWidth(t){return this.domNode?(-1===this._cachedWidth&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth,null==t||t.markDidDomLayout()),this._cachedWidth):0}getWidthIsFast(){return-1!==this._cachedWidth}getVisibleRangesForRange(t,i,e,s){if(!this.domNode)return null;if(null!==this._pixelOffsetCache){const n=this._readPixelOffset(this.domNode,t,i,s);if(-1===n)return null;const o=this._readPixelOffset(this.domNode,t,e,s);return-1===o?null:[new By(n,o-n)]}return this._readVisibleRangesForRange(this.domNode,t,i,e,s)}_readVisibleRangesForRange(t,i,e,s,n){if(e===s){const s=this._readPixelOffset(t,i,e,n);return-1===s?null:[new By(s,0)]}return this._readRawVisibleRangesForRange(t,e,s,n)}_readPixelOffset(t,i,e,s){if(0===this._characterMapping.length){if(0===this._containsForeignElements)return 0;if(2===this._containsForeignElements)return 0;if(1===this._containsForeignElements)return this.getWidth(s);const i=this._getReadingTarget(t);return i.firstChild?(s.markDidDomLayout(),i.firstChild.offsetWidth):0}if(null!==this._pixelOffsetCache){const n=this._pixelOffsetCache[e];if(-1!==n)return n;const o=this._actualReadPixelOffset(t,i,e,s);return this._pixelOffsetCache[e]=o,o}return this._actualReadPixelOffset(t,i,e,s)}_actualReadPixelOffset(t,i,e,s){if(0===this._characterMapping.length){const i=Wy.readHorizontalRanges(this._getReadingTarget(t),0,0,0,0,s);return i&&0!==i.length?i[0].left:-1}if(e===this._characterMapping.length&&this._isWhitespaceOnly&&0===this._containsForeignElements)return this.getWidth(s);const n=this._characterMapping.getDomPosition(e),o=Wy.readHorizontalRanges(this._getReadingTarget(t),n.partIndex,n.charIndex,n.partIndex,n.charIndex,s);if(!o||0===o.length)return-1;const r=o[0].left;if(this.input.isBasicASCII){const t=this._characterMapping.getHorizontalOffset(e),i=Math.round(this.input.spaceWidth*t);if(Math.abs(i-r)<=1)return i}return r}_readRawVisibleRangesForRange(t,i,e,s){if(1===i&&e===this._characterMapping.length)return[new By(0,this.getWidth(s))];const n=this._characterMapping.getDomPosition(i),o=this._characterMapping.getDomPosition(e);return Wy.readHorizontalRanges(this._getReadingTarget(t),n.partIndex,n.charIndex,o.partIndex,o.charIndex,s)}getColumnOfNodeOffset(t,i){return Yy(this._characterMapping,t,i)}}class Qy extends Zy{_readVisibleRangesForRange(t,i,e,s,n){const o=super._readVisibleRangesForRange(t,i,e,s,n);if(!o||0===o.length||e===s||1===e&&s===this._characterMapping.length)return o;if(!this.input.containsRTL){const e=this._readPixelOffset(t,i,s,n);if(-1!==e){const t=o[o.length-1];t.left=i)return c-i=4&&3===t[0]&&7===t[3]}static isStrictChildOfViewLines(t){return t.length>4&&3===t[0]&&7===t[3]}static isChildOfScrollableElement(t){return t.length>=2&&3===t[0]&&5===t[1]}static isChildOfMinimap(t){return t.length>=2&&3===t[0]&&8===t[1]}static isChildOfContentWidgets(t){return t.length>=4&&3===t[0]&&1===t[3]}static isChildOfOverflowGuard(t){return t.length>=1&&3===t[0]}static isChildOfOverflowingContentWidgets(t){return t.length>=1&&2===t[0]}static isChildOfOverlayWidgets(t){return t.length>=2&&3===t[0]&&4===t[1]}}class hk{constructor(t,i,e){this.viewModel=t.viewModel;const s=t.configuration.options;this.layoutInfo=s.get(143),this.viewDomNode=i.viewDomNode,this.lineHeight=s.get(66),this.stickyTabStops=s.get(115),this.typicalHalfwidthCharacterWidth=s.get(50).typicalHalfwidthCharacterWidth,this.lastRenderData=e,this._context=t,this._viewHelper=i}getZoneAtCoord(t){return hk.getZoneAtCoord(this._context,t)}static getZoneAtCoord(t,i){const e=t.viewLayout.getWhitespaceAtVerticalOffset(i);if(e){const s=e.verticalOffset+e.height/2,n=t.viewModel.getLineCount();let o,r=null,h=null;return e.afterLineNumber!==n&&(h=new As(e.afterLineNumber+1,1)),e.afterLineNumber>0&&(r=new As(e.afterLineNumber,t.viewModel.getLineMaxColumn(e.afterLineNumber))),o=null===h?r:null===r?h:i=t.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,dk._getMouseColumn(this.mouseContentHorizontalOffset,t.typicalHalfwidthCharacterWidth))}}class ak extends ck{constructor(t,i,e,s,n){super(t,i,e,s),this._ctx=t,n?(this.target=n,this.targetPath=Ry.collect(n,t.viewDomNode)):(this.target=null,this.targetPath=new Uint8Array(0))}toString(){return`pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), relativePos(${this.relativePos.x},${this.relativePos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset}\n\ttarget: ${this.target?this.target.outerHTML:null}`}_getMouseColumn(t=null){return t&&t.columno.contentLeft+o.width)continue;const e=t.getVerticalOffsetForLineNumber(o.position.lineNumber);if(e<=n&&n<=e+o.height)return i.fulfillContentText(o.position,null,{mightBeForeignElement:!1,injectedText:null})}}return null}static _hitTestViewZone(t,i){const e=t.getZoneAtCoord(i.mouseVerticalOffset);return e?i.fulfillViewZone(i.isInContentArea?8:5,e.position,e):null}static _hitTestTextArea(t,i){return rk.isTextArea(i.targetPath)?t.lastRenderData.lastTextareaPosition?i.fulfillContentText(t.lastRenderData.lastTextareaPosition,null,{mightBeForeignElement:!1,injectedText:null}):i.fulfillTextarea():null}static _hitTestMargin(t,i){if(i.isInMarginArea){const e=t.getFullLineRangeAtCoord(i.mouseVerticalOffset),s=e.range.getStartPosition();let n=Math.abs(i.relativePos.x);const o={isAfterLines:e.isAfterLines,glyphMarginLeft:t.layoutInfo.glyphMarginLeft,glyphMarginWidth:t.layoutInfo.glyphMarginWidth,lineNumbersWidth:t.layoutInfo.lineNumbersWidth,offsetX:n};return n-=t.layoutInfo.glyphMarginLeft,n<=t.layoutInfo.glyphMarginWidth?i.fulfillMargin(2,s,e.range,o):(n-=t.layoutInfo.glyphMarginWidth,n<=t.layoutInfo.lineNumbersWidth?i.fulfillMargin(3,s,e.range,o):(n-=t.layoutInfo.lineNumbersWidth,i.fulfillMargin(4,s,e.range,o)))}return null}static _hitTestViewLines(t,i,e){if(!rk.isChildOfViewLines(i.targetPath))return null;if(t.isInTopPadding(i.mouseVerticalOffset))return i.fulfillContentEmpty(new As(1,1),lk);if(t.isAfterLines(i.mouseVerticalOffset)||t.isInBottomPadding(i.mouseVerticalOffset)){const e=t.viewModel.getLineCount(),s=t.viewModel.getLineMaxColumn(e);return i.fulfillContentEmpty(new As(e,s),lk)}if(e){if(rk.isStrictChildOfViewLines(i.targetPath)){const e=t.getLineNumberAtVerticalOffset(i.mouseVerticalOffset);if(0===t.viewModel.getLineLength(e)){const s=t.getLineWidth(e),n=uk(i.mouseContentHorizontalOffset-s);return i.fulfillContentEmpty(new As(e,1),n)}const s=t.getLineWidth(e);if(i.mouseContentHorizontalOffset>=s){const n=uk(i.mouseContentHorizontalOffset-s),o=new As(e,t.viewModel.getLineMaxColumn(e));return i.fulfillContentEmpty(o,n)}}return i.fulfillUnknown()}const s=dk._doHitTest(t,i);return 1===s.type?dk.createMouseTargetFromHitTestPosition(t,i,s.spanNode,s.position,s.injectedText):this._createMouseTarget(t,i.withTarget(s.hitTarget),!0)}static _hitTestMinimap(t,i){if(rk.isChildOfMinimap(i.targetPath)){const e=t.getLineNumberAtVerticalOffset(i.mouseVerticalOffset),s=t.viewModel.getLineMaxColumn(e);return i.fulfillScrollbar(new As(e,s))}return null}static _hitTestScrollbarSlider(t,i){if(rk.isChildOfScrollableElement(i.targetPath)&&i.target&&1===i.target.nodeType){const e=i.target.className;if(e&&/\b(slider|scrollbar)\b/.test(e)){const e=t.getLineNumberAtVerticalOffset(i.mouseVerticalOffset),s=t.viewModel.getLineMaxColumn(e);return i.fulfillScrollbar(new As(e,s))}}return null}static _hitTestScrollbar(t,i){if(rk.isChildOfScrollableElement(i.targetPath)){const e=t.getLineNumberAtVerticalOffset(i.mouseVerticalOffset),s=t.viewModel.getLineMaxColumn(e);return i.fulfillScrollbar(new As(e,s))}return null}getMouseColumn(t){const i=this._context.configuration.options,e=i.get(143),s=this._context.viewLayout.getCurrentScrollLeft()+t.x-e.contentLeft;return dk._getMouseColumn(s,i.get(50).typicalHalfwidthCharacterWidth)}static _getMouseColumn(t,i){return t<0?1:Math.round(t/i)+1}static createMouseTargetFromHitTestPosition(t,i,e,s,n){const o=s.lineNumber,r=s.column,h=t.getLineWidth(o);if(i.mouseContentHorizontalOffset>h){const t=uk(i.mouseContentHorizontalOffset-h);return i.fulfillContentEmpty(s,t)}const c=t.visibleRangeForPosition(o,r);if(!c)return i.fulfillUnknown(s);if(Math.abs(i.mouseContentHorizontalOffset-c.left)<1)return i.fulfillContentText(s,null,{mightBeForeignElement:!!n,injectedText:n});const a=[];if(a.push({offset:c.left,column:r}),r>1){const i=t.visibleRangeForPosition(o,r-1);i&&a.push({offset:i.left,column:r-1})}if(rt.offset-i.offset));const l=i.pos.toClientCoordinates(Na(t.viewDomNode)),u=e.getBoundingClientRect(),d=u.left<=l.clientX&&l.clientX<=u.right;let f=null;for(let t=1;tn)){const e=Math.floor((s+n)/2);let o=i.pos.y+(e-i.mouseVerticalOffset);o<=i.editorPos.y&&(o=i.editorPos.y+1),o>=i.editorPos.y+i.editorPos.height&&(o=i.editorPos.y+i.editorPos.height-1);const r=new wy(i.pos.x,o),h=this._actualDoHitTestWithCaretRangeFromPoint(t,r.toClientCoordinates(Na(t.viewDomNode)));if(1===h.type)return h}return this._actualDoHitTestWithCaretRangeFromPoint(t,i.pos.toClientCoordinates(Na(t.viewDomNode)))}static _actualDoHitTestWithCaretRangeFromPoint(t,i){const e=fl(t.viewDomNode);let s;if(s=e?void 0===e.caretRangeFromPoint?function(t,i,e){const s=document.createRange();let n=t.elementFromPoint(i,e);if(null!==n){for(;n&&n.firstChild&&n.firstChild.nodeType!==n.firstChild.TEXT_NODE&&n.lastChild&&n.lastChild.firstChild;)n=n.lastChild;const t=n.getBoundingClientRect(),e=Na(n),o=`${e.getComputedStyle(n,null).getPropertyValue("font-style")} ${e.getComputedStyle(n,null).getPropertyValue("font-variant")} ${e.getComputedStyle(n,null).getPropertyValue("font-weight")} ${e.getComputedStyle(n,null).getPropertyValue("font-size")}/${e.getComputedStyle(n,null).getPropertyValue("line-height")} ${e.getComputedStyle(n,null).getPropertyValue("font-family")}`,r=n.innerText;let h,c=t.left,a=0;if(i>t.left+t.width)a=r.length;else{const t=fk.getInstance();for(let e=0;ei(new tc(Na(t),e)))))}onmousedown(t,i){this._register(Va(t,Ll.MOUSE_DOWN,(e=>i(new tc(Na(t),e)))))}onmouseover(t,i){this._register(Va(t,Ll.MOUSE_OVER,(e=>i(new tc(Na(t),e)))))}onmouseleave(t,i){this._register(Va(t,Ll.MOUSE_LEAVE,(e=>i(new tc(Na(t),e)))))}onkeydown(t,i){this._register(Va(t,Ll.KEY_DOWN,(t=>i(new Qh(t)))))}onkeyup(t,i){this._register(Va(t,Ll.KEY_UP,(t=>i(new Qh(t)))))}oninput(t,i){this._register(Va(t,Ll.INPUT,i))}onblur(t,i){this._register(Va(t,Ll.BLUR,i))}onfocus(t,i){this._register(Va(t,Ll.FOCUS,i))}ignoreGesture(t){return rw.ignoreTarget(t)}}class gk extends pk{constructor(t){super(),this._onActivate=t.onActivate,this.bgDomNode=document.createElement("div"),this.bgDomNode.className="arrow-background",this.bgDomNode.style.position="absolute",this.bgDomNode.style.width=t.bgWidth+"px",this.bgDomNode.style.height=t.bgHeight+"px",void 0!==t.top&&(this.bgDomNode.style.top="0px"),void 0!==t.left&&(this.bgDomNode.style.left="0px"),void 0!==t.bottom&&(this.bgDomNode.style.bottom="0px"),void 0!==t.right&&(this.bgDomNode.style.right="0px"),this.domNode=document.createElement("div"),this.domNode.className=t.className,this.domNode.classList.add(...Cr.asClassNameArray(t.icon)),this.domNode.style.position="absolute",this.domNode.style.width="11px",this.domNode.style.height="11px",void 0!==t.top&&(this.domNode.style.top=t.top+"px"),void 0!==t.left&&(this.domNode.style.left=t.left+"px"),void 0!==t.bottom&&(this.domNode.style.bottom=t.bottom+"px"),void 0!==t.right&&(this.domNode.style.right=t.right+"px"),this._pointerMoveMonitor=this._register(new hw),this._register(qa(this.bgDomNode,Ll.POINTER_DOWN,(t=>this._arrowPointerDown(t)))),this._register(qa(this.domNode,Ll.POINTER_DOWN,(t=>this._arrowPointerDown(t)))),this._pointerdownRepeatTimer=this._register(new Ja),this._pointerdownScheduleRepeatTimer=this._register(new dc)}_arrowPointerDown(t){t.target&&t.target instanceof Element&&(this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet((()=>{this._pointerdownRepeatTimer.cancelAndSet((()=>this._onActivate()),1e3/24,Na(t))}),200),this._pointerMoveMonitor.startMonitoring(t.target,t.pointerId,t.buttons,(()=>{}),(()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()})),t.preventDefault())}}class mk extends te{constructor(t,i,e){super(),this._visibility=t,this._visibleClassName=i,this._invisibleClassName=e,this._domNode=null,this._isVisible=!1,this._isNeeded=!1,this._rawShouldBeVisible=!1,this._shouldBeVisible=!1,this._revealTimer=this._register(new dc)}setVisibility(t){this._visibility!==t&&(this._visibility=t,this._updateShouldBeVisible())}setShouldBeVisible(t){this._rawShouldBeVisible=t,this._updateShouldBeVisible()}_applyVisibilitySetting(){return 2!==this._visibility&&(3===this._visibility||this._rawShouldBeVisible)}_updateShouldBeVisible(){const t=this._applyVisibilitySetting();this._shouldBeVisible!==t&&(this._shouldBeVisible=t,this.ensureVisibility())}setIsNeeded(t){this._isNeeded!==t&&(this._isNeeded=t,this.ensureVisibility())}setDomNode(t){this._domNode=t,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}ensureVisibility(){this._isNeeded?this._shouldBeVisible?this._reveal():this._hide(!0):this._hide(!1)}_reveal(){this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet((()=>{var t;null===(t=this._domNode)||void 0===t||t.setClassName(this._visibleClassName)}),0))}_hide(t){var i;this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,null===(i=this._domNode)||void 0===i||i.setClassName(this._invisibleClassName+(t?" fade":"")))}}class wk extends pk{constructor(t){super(),this._lazyRender=t.lazyRender,this._host=t.host,this._scrollable=t.scrollable,this._scrollByPage=t.scrollByPage,this._scrollbarState=t.scrollbarState,this._visibilityController=this._register(new mk(t.visibility,"visible scrollbar "+t.extraScrollbarClassName,"invisible scrollbar "+t.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new hw),this._shouldRender=!0,this.domNode=tr(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition("absolute"),this._register(Va(this.domNode.domNode,Ll.POINTER_DOWN,(t=>this._domNodePointerDown(t))))}_createArrow(t){const i=this._register(new gk(t));this.domNode.domNode.appendChild(i.bgDomNode),this.domNode.domNode.appendChild(i.domNode)}_createSlider(t,i,e,s){this.slider=tr(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(t),this.slider.setLeft(i),"number"==typeof e&&this.slider.setWidth(e),"number"==typeof s&&this.slider.setHeight(s),this.slider.setLayerHinting(!0),this.slider.setContain("strict"),this.domNode.domNode.appendChild(this.slider.domNode),this._register(Va(this.slider.domNode,Ll.POINTER_DOWN,(t=>{0===t.button&&(t.preventDefault(),this._sliderPointerDown(t))}))),this.onclick(this.slider.domNode,(t=>{t.leftButton&&t.stopPropagation()}))}_onElementSize(t){return this._scrollbarState.setVisibleSize(t)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(t){return this._scrollbarState.setScrollSize(t)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(t){return this._scrollbarState.setScrollPosition(t)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodePointerDown(t){t.target===this.domNode.domNode&&this._onPointerDown(t)}delegatePointerDown(t){const i=this.domNode.domNode.getClientRects()[0].top,e=i+this._scrollbarState.getSliderPosition(),s=i+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),n=this._sliderPointerPosition(t);e<=n&&n<=s?0===t.button&&(t.preventDefault(),this._sliderPointerDown(t)):this._onPointerDown(t)}_onPointerDown(t){let i,e;if(t.target===this.domNode.domNode&&"number"==typeof t.offsetX&&"number"==typeof t.offsetY)i=t.offsetX,e=t.offsetY;else{const s=nl(this.domNode.domNode);i=t.pageX-s.left,e=t.pageY-s.top}const s=this._pointerDownRelativePosition(i,e);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(s):this._scrollbarState.getDesiredScrollPositionFromOffset(s)),0===t.button&&(t.preventDefault(),this._sliderPointerDown(t))}_sliderPointerDown(t){if(!(t.target&&t.target instanceof Element))return;const i=this._sliderPointerPosition(t),e=this._sliderOrthogonalPointerPosition(t),s=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._pointerMoveMonitor.startMonitoring(t.target,t.pointerId,t.buttons,(t=>{const n=this._sliderOrthogonalPointerPosition(t),o=Math.abs(n-e);if(xt&&o>140)return void this._setDesiredScrollPositionNow(s.getScrollPosition());const r=this._sliderPointerPosition(t);this._setDesiredScrollPositionNow(s.getDesiredScrollPositionFromDelta(r-i))}),(()=>{this.slider.toggleClassName("active",!1),this._host.onDragEnd()})),this._host.onDragStart()}_setDesiredScrollPositionNow(t){const i={};this.writeScrollPosition(i,t),this._scrollable.setScrollPositionNow(i)}updateScrollbarSize(t){this._updateScrollbarSize(t),this._scrollbarState.setScrollbarSize(t),this._shouldRender=!0,this._lazyRender||this.render()}isNeeded(){return this._scrollbarState.isNeeded()}}class vk{constructor(t,i,e,s,n,o){this._scrollbarSize=Math.round(i),this._oppositeScrollbarSize=Math.round(e),this._arrowSize=Math.round(t),this._visibleSize=s,this._scrollSize=n,this._scrollPosition=o,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new vk(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(t){const i=Math.round(t);return this._visibleSize!==i&&(this._visibleSize=i,this._refreshComputedValues(),!0)}setScrollSize(t){const i=Math.round(t);return this._scrollSize!==i&&(this._scrollSize=i,this._refreshComputedValues(),!0)}setScrollPosition(t){const i=Math.round(t);return this._scrollPosition!==i&&(this._scrollPosition=i,this._refreshComputedValues(),!0)}setScrollbarSize(t){this._scrollbarSize=Math.round(t)}setOppositeScrollbarSize(t){this._oppositeScrollbarSize=Math.round(t)}static _computeValues(t,i,e,s,n){const o=Math.max(0,e-t),r=Math.max(0,o-2*i),h=s>0&&s>e;if(!h)return{computedAvailableSize:Math.round(o),computedIsNeeded:h,computedSliderSize:Math.round(r),computedSliderRatio:0,computedSliderPosition:0};const c=Math.round(Math.max(20,Math.floor(e*r/s))),a=(r-c)/(s-e),l=n*a;return{computedAvailableSize:Math.round(o),computedIsNeeded:h,computedSliderSize:Math.round(c),computedSliderRatio:a,computedSliderPosition:Math.round(l)}}_refreshComputedValues(){const t=vk._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=t.computedAvailableSize,this._computedIsNeeded=t.computedIsNeeded,this._computedSliderSize=t.computedSliderSize,this._computedSliderRatio=t.computedSliderRatio,this._computedSliderPosition=t.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(t){return this._computedIsNeeded?Math.round((t-this._arrowSize-this._computedSliderSize/2)/this._computedSliderRatio):0}getDesiredScrollPositionFromOffsetPaged(t){if(!this._computedIsNeeded)return 0;let i=this._scrollPosition;return t-this._arrowSizethis._host.onMouseWheel(new ic(null,1,0))}),this._createArrow({className:"scra",icon:Os.scrollbarButtonRight,top:e,left:void 0,bottom:void 0,right:t,bgWidth:i.arrowSize,bgHeight:i.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new ic(null,-1,0))})}this._createSlider(Math.floor((i.horizontalScrollbarSize-i.horizontalSliderSize)/2),0,void 0,i.horizontalSliderSize)}_updateSlider(t,i){this.slider.setWidth(t),this.slider.setLeft(i)}_renderDomNode(t,i){this.domNode.setWidth(t),this.domNode.setHeight(i),this.domNode.setLeft(0),this.domNode.setBottom(0)}onDidScroll(t){return this._shouldRender=this._onElementScrollSize(t.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(t.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(t.width)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(t,i){return t}_sliderPointerPosition(t){return t.pageX}_sliderOrthogonalPointerPosition(t){return t.pageY}_updateScrollbarSize(t){this.slider.setHeight(t)}writeScrollPosition(t,i){t.scrollLeft=i}updateOptions(t){this.updateScrollbarSize(2===t.horizontal?0:t.horizontalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(2===t.vertical?0:t.verticalScrollbarSize),this._visibilityController.setVisibility(t.horizontal),this._scrollByPage=t.scrollByPage}}class yk extends wk{constructor(t,i,e){const s=t.getScrollDimensions(),n=t.getCurrentScrollPosition();if(super({lazyRender:i.lazyRender,host:e,scrollbarState:new vk(i.verticalHasArrows?i.arrowSize:0,2===i.vertical?0:i.verticalScrollbarSize,0,s.height,s.scrollHeight,n.scrollTop),visibility:i.vertical,extraScrollbarClassName:"vertical",scrollable:t,scrollByPage:i.scrollByPage}),i.verticalHasArrows){const t=(i.arrowSize-11)/2,e=(i.verticalScrollbarSize-11)/2;this._createArrow({className:"scra",icon:Os.scrollbarButtonUp,top:t,left:e,bottom:void 0,right:void 0,bgWidth:i.verticalScrollbarSize,bgHeight:i.arrowSize,onActivate:()=>this._host.onMouseWheel(new ic(null,0,1))}),this._createArrow({className:"scra",icon:Os.scrollbarButtonDown,top:void 0,left:e,bottom:t,right:void 0,bgWidth:i.verticalScrollbarSize,bgHeight:i.arrowSize,onActivate:()=>this._host.onMouseWheel(new ic(null,0,-1))})}this._createSlider(0,Math.floor((i.verticalScrollbarSize-i.verticalSliderSize)/2),i.verticalSliderSize,void 0)}_updateSlider(t,i){this.slider.setHeight(t),this.slider.setTop(i)}_renderDomNode(t,i){this.domNode.setWidth(i),this.domNode.setHeight(t),this.domNode.setRight(0),this.domNode.setTop(0)}onDidScroll(t){return this._shouldRender=this._onElementScrollSize(t.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(t.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(t.height)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(t,i){return i}_sliderPointerPosition(t){return t.pageY}_sliderOrthogonalPointerPosition(t){return t.pageX}_updateScrollbarSize(t){this.slider.setWidth(t)}writeScrollPosition(t,i){t.scrollTop=i}updateOptions(t){this.updateScrollbarSize(2===t.vertical?0:t.verticalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(0),this._visibilityController.setVisibility(t.vertical),this._scrollByPage=t.scrollByPage}}class kk{constructor(t,i,e,s,n,o,r){this._forceIntegerValues=t,this._scrollStateBrand=void 0,this._forceIntegerValues&&(i|=0,e|=0,s|=0,n|=0,o|=0,r|=0),this.rawScrollLeft=s,this.rawScrollTop=r,i<0&&(i=0),s+i>e&&(s=e-i),s<0&&(s=0),n<0&&(n=0),r+n>o&&(r=o-n),r<0&&(r=0),this.width=i,this.scrollWidth=e,this.scrollLeft=s,this.height=n,this.scrollHeight=o,this.scrollTop=r}equals(t){return this.rawScrollLeft===t.rawScrollLeft&&this.rawScrollTop===t.rawScrollTop&&this.width===t.width&&this.scrollWidth===t.scrollWidth&&this.scrollLeft===t.scrollLeft&&this.height===t.height&&this.scrollHeight===t.scrollHeight&&this.scrollTop===t.scrollTop}withScrollDimensions(t,i){return new kk(this._forceIntegerValues,void 0!==t.width?t.width:this.width,void 0!==t.scrollWidth?t.scrollWidth:this.scrollWidth,i?this.rawScrollLeft:this.scrollLeft,void 0!==t.height?t.height:this.height,void 0!==t.scrollHeight?t.scrollHeight:this.scrollHeight,i?this.rawScrollTop:this.scrollTop)}withScrollPosition(t){return new kk(this._forceIntegerValues,this.width,this.scrollWidth,void 0!==t.scrollLeft?t.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,void 0!==t.scrollTop?t.scrollTop:this.rawScrollTop)}createScrollEvent(t,i){return{inSmoothScrolling:i,oldWidth:t.width,oldScrollWidth:t.scrollWidth,oldScrollLeft:t.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:t.height,oldScrollHeight:t.scrollHeight,oldScrollTop:t.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:this.width!==t.width,scrollWidthChanged:this.scrollWidth!==t.scrollWidth,scrollLeftChanged:this.scrollLeft!==t.scrollLeft,heightChanged:this.height!==t.height,scrollHeightChanged:this.scrollHeight!==t.scrollHeight,scrollTopChanged:this.scrollTop!==t.scrollTop}}}class xk extends te{constructor(t){super(),this._scrollableBrand=void 0,this._onScroll=this._register(new de),this.onScroll=this._onScroll.event,this._smoothScrollDuration=t.smoothScrollDuration,this._scheduleAtNextAnimationFrame=t.scheduleAtNextAnimationFrame,this._state=new kk(t.forceIntegerValues,0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),super.dispose()}setSmoothScrollDuration(t){this._smoothScrollDuration=t}validateScrollPosition(t){return this._state.withScrollPosition(t)}getScrollDimensions(){return this._state}setScrollDimensions(t,i){var e;const s=this._state.withScrollDimensions(t,i);this._setState(s,Boolean(this._smoothScrolling)),null===(e=this._smoothScrolling)||void 0===e||e.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(t){const i=this._state.withScrollPosition(t);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(i,!1)}setScrollPositionSmooth(t,i){if(0===this._smoothScrollDuration)return this.setScrollPositionNow(t);if(this._smoothScrolling){const e=this._state.withScrollPosition(t={scrollLeft:void 0===t.scrollLeft?this._smoothScrolling.to.scrollLeft:t.scrollLeft,scrollTop:void 0===t.scrollTop?this._smoothScrolling.to.scrollTop:t.scrollTop});if(this._smoothScrolling.to.scrollLeft===e.scrollLeft&&this._smoothScrolling.to.scrollTop===e.scrollTop)return;let s;s=i?new Dk(this._smoothScrolling.from,e,this._smoothScrolling.startTime,this._smoothScrolling.duration):this._smoothScrolling.combine(this._state,e,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=s}else{const i=this._state.withScrollPosition(t);this._smoothScrolling=Dk.start(this._state,i,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())}))}hasPendingScrollAnimation(){return Boolean(this._smoothScrolling)}_performSmoothScrolling(){if(!this._smoothScrolling)return;const t=this._smoothScrolling.tick(),i=this._state.withScrollPosition(t);return this._setState(i,!0),this._smoothScrolling?t.isDone?(this._smoothScrolling.dispose(),void(this._smoothScrolling=null)):void(this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())}))):void 0}_setState(t,i){const e=this._state;e.equals(t)||(this._state=t,this._onScroll.fire(this._state.createScrollEvent(e,i)))}}class Ck{constructor(t,i,e){this.scrollLeft=t,this.scrollTop=i,this.isDone=e}}function Sk(t,i){const e=i-t;return function(i){return t+e*(1-Math.pow(1-i,3))}}class Dk{constructor(t,i,e,s){this.from=t,this.to=i,this.duration=s,this.startTime=e,this.animationFrameDisposable=null,this._initAnimations()}_initAnimations(){this.scrollLeft=this._initAnimation(this.from.scrollLeft,this.to.scrollLeft,this.to.width),this.scrollTop=this._initAnimation(this.from.scrollTop,this.to.scrollTop,this.to.height)}_initAnimation(t,i,e){if(Math.abs(t-i)>2.5*e){let r,h;return t0&&Math.abs(t.deltaY)>0)return 1;let i=.5;return this._isAlmostInt(t.deltaX)&&this._isAlmostInt(t.deltaY)||(i+=.25),Math.min(Math.max(i,0),1)}_isAlmostInt(t){return Math.abs(Math.round(t)-t)<.01}}Ak.INSTANCE=new Ak;class Mk extends pk{get options(){return this._options}constructor(t,i,e){super(),this._onScroll=this._register(new de),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new de),t.style.overflow="hidden",this._options=function(t){const i={lazyRender:void 0!==t.lazyRender&&t.lazyRender,className:void 0!==t.className?t.className:"",useShadows:void 0===t.useShadows||t.useShadows,handleMouseWheel:void 0===t.handleMouseWheel||t.handleMouseWheel,flipAxes:void 0!==t.flipAxes&&t.flipAxes,consumeMouseWheelIfScrollbarIsNeeded:void 0!==t.consumeMouseWheelIfScrollbarIsNeeded&&t.consumeMouseWheelIfScrollbarIsNeeded,alwaysConsumeMouseWheel:void 0!==t.alwaysConsumeMouseWheel&&t.alwaysConsumeMouseWheel,scrollYToX:void 0!==t.scrollYToX&&t.scrollYToX,mouseWheelScrollSensitivity:void 0!==t.mouseWheelScrollSensitivity?t.mouseWheelScrollSensitivity:1,fastScrollSensitivity:void 0!==t.fastScrollSensitivity?t.fastScrollSensitivity:5,scrollPredominantAxis:void 0===t.scrollPredominantAxis||t.scrollPredominantAxis,mouseWheelSmoothScroll:void 0===t.mouseWheelSmoothScroll||t.mouseWheelSmoothScroll,arrowSize:void 0!==t.arrowSize?t.arrowSize:11,listenOnDomNode:void 0!==t.listenOnDomNode?t.listenOnDomNode:null,horizontal:void 0!==t.horizontal?t.horizontal:1,horizontalScrollbarSize:void 0!==t.horizontalScrollbarSize?t.horizontalScrollbarSize:10,horizontalSliderSize:void 0!==t.horizontalSliderSize?t.horizontalSliderSize:0,horizontalHasArrows:void 0!==t.horizontalHasArrows&&t.horizontalHasArrows,vertical:void 0!==t.vertical?t.vertical:1,verticalScrollbarSize:void 0!==t.verticalScrollbarSize?t.verticalScrollbarSize:10,verticalHasArrows:void 0!==t.verticalHasArrows&&t.verticalHasArrows,verticalSliderSize:void 0!==t.verticalSliderSize?t.verticalSliderSize:0,scrollByPage:void 0!==t.scrollByPage&&t.scrollByPage};return i.horizontalSliderSize=void 0!==t.horizontalSliderSize?t.horizontalSliderSize:i.horizontalScrollbarSize,i.verticalSliderSize=void 0!==t.verticalSliderSize?t.verticalSliderSize:i.verticalScrollbarSize,Ct&&(i.className+=" mac"),i}(i),this._scrollable=e,this._register(this._scrollable.onScroll((t=>{this._onWillScroll.fire(t),this._onDidScroll(t),this._onScroll.fire(t)})));const s={onMouseWheel:t=>this._onMouseWheel(t),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new yk(this._scrollable,this._options,s)),this._horizontalScrollbar=this._register(new bk(this._scrollable,this._options,s)),this._domNode=document.createElement("div"),this._domNode.className="monaco-scrollable-element "+this._options.className,this._domNode.setAttribute("role","presentation"),this._domNode.style.position="relative",this._domNode.style.overflow="hidden",this._domNode.appendChild(t),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode),this._options.useShadows?(this._leftShadowDomNode=tr(document.createElement("div")),this._leftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=tr(document.createElement("div")),this._topShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=tr(document.createElement("div")),this._topLeftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,(t=>this._onMouseOver(t))),this.onmouseleave(this._listenOnDomNode,(t=>this._onMouseLeave(t))),this._hideTimeout=this._register(new dc),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}dispose(){this._mouseWheelToDispose=Qi(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(t){this._verticalScrollbar.delegatePointerDown(t)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(t){this._scrollable.setScrollDimensions(t,!1)}updateClassName(t){this._options.className=t,Ct&&(this._options.className+=" mac"),this._domNode.className="monaco-scrollable-element "+this._options.className}updateOptions(t){void 0!==t.handleMouseWheel&&(this._options.handleMouseWheel=t.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),void 0!==t.mouseWheelScrollSensitivity&&(this._options.mouseWheelScrollSensitivity=t.mouseWheelScrollSensitivity),void 0!==t.fastScrollSensitivity&&(this._options.fastScrollSensitivity=t.fastScrollSensitivity),void 0!==t.scrollPredominantAxis&&(this._options.scrollPredominantAxis=t.scrollPredominantAxis),void 0!==t.horizontal&&(this._options.horizontal=t.horizontal),void 0!==t.vertical&&(this._options.vertical=t.vertical),void 0!==t.horizontalScrollbarSize&&(this._options.horizontalScrollbarSize=t.horizontalScrollbarSize),void 0!==t.verticalScrollbarSize&&(this._options.verticalScrollbarSize=t.verticalScrollbarSize),void 0!==t.scrollByPage&&(this._options.scrollByPage=t.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}delegateScrollFromMouseWheelEvent(t){this._onMouseWheel(new ic(t))}_setListeningToMouseWheel(t){this._mouseWheelToDispose.length>0!==t&&(this._mouseWheelToDispose=Qi(this._mouseWheelToDispose),t)&&this._mouseWheelToDispose.push(Va(this._listenOnDomNode,Ll.MOUSE_WHEEL,(t=>{this._onMouseWheel(new ic(t))}),{passive:!1}))}_onMouseWheel(t){var i;if(null===(i=t.browserEvent)||void 0===i?void 0:i.defaultPrevented)return;const e=Ak.INSTANCE;e.acceptStandardWheelEvent(t);let s=!1;if(t.deltaY||t.deltaX){let i=t.deltaY*this._options.mouseWheelScrollSensitivity,n=t.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(this._options.scrollYToX&&n+i===0?n=i=0:Math.abs(i)>=Math.abs(n)?n=0:i=0),this._options.flipAxes&&([i,n]=[n,i]),!this._options.scrollYToX&&!(!Ct&&t.browserEvent&&t.browserEvent.shiftKey)||n||(n=i,i=0),t.browserEvent&&t.browserEvent.altKey&&(n*=this._options.fastScrollSensitivity,i*=this._options.fastScrollSensitivity);const o=this._scrollable.getFutureScrollPosition();let r={};if(i){const t=50*i,e=o.scrollTop-(t<0?Math.floor(t):Math.ceil(t));this._verticalScrollbar.writeScrollPosition(r,e)}if(n){const t=50*n,i=o.scrollLeft-(t<0?Math.floor(t):Math.ceil(t));this._horizontalScrollbar.writeScrollPosition(r,i)}r=this._scrollable.validateScrollPosition(r),(o.scrollLeft!==r.scrollLeft||o.scrollTop!==r.scrollTop)&&(this._options.mouseWheelSmoothScroll&&e.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(r):this._scrollable.setScrollPositionNow(r),s=!0)}let n=s;!n&&this._options.alwaysConsumeMouseWheel&&(n=!0),!n&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(n=!0),n&&(t.preventDefault(),t.stopPropagation())}_onDidScroll(t){this._shouldRender=this._horizontalScrollbar.onDidScroll(t)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(t)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}renderNow(){if(!this._options.lazyRender)throw new Error("Please use `lazyRender` together with `renderNow`!");this._render()}_render(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){const t=this._scrollable.getCurrentScrollPosition(),i=t.scrollTop>0,e=t.scrollLeft>0,s=e?" left":"",n=i?" top":"",o=e||i?" top-left-corner":"";this._leftShadowDomNode.setClassName(`shadow${s}`),this._topShadowDomNode.setClassName(`shadow${n}`),this._topLeftShadowDomNode.setClassName(`shadow${o}${n}${s}`)}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseLeave(t){this._mouseIsOver=!1,this._hide()}_onMouseOver(t){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){this._mouseIsOver||this._isDragging||(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){this._mouseIsOver||this._isDragging||this._hideTimeout.cancelAndSet((()=>this._hide()),500)}}class Lk extends Mk{constructor(t,i){(i=i||{}).mouseWheelSmoothScroll=!1;const e=new xk({forceIntegerValues:!0,smoothScrollDuration:0,scheduleAtNextAnimationFrame:i=>Qa(Na(t),i)});super(t,i,e),this._register(e)}setScrollPosition(t){this._scrollable.setScrollPositionNow(t)}}class Fk extends Mk{constructor(t,i,e){super(t,i,e)}setScrollPosition(t){t.reuseAnimation?this._scrollable.setScrollPositionSmooth(t,t.reuseAnimation):this._scrollable.setScrollPositionNow(t)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}}class Tk extends Mk{constructor(t,i){(i=i||{}).mouseWheelSmoothScroll=!1;const e=new xk({forceIntegerValues:!1,smoothScrollDuration:0,scheduleAtNextAnimationFrame:i=>Qa(Na(t),i)});super(t,i,e),this._register(e),this._element=t,this._register(this.onScroll((t=>{t.scrollTopChanged&&(this._element.scrollTop=t.scrollTop),t.scrollLeftChanged&&(this._element.scrollLeft=t.scrollLeft)}))),this.scanDomNode()}setScrollPosition(t){this._scrollable.setScrollPositionNow(t)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}scanDomNode(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})}}class Rk extends Fy{constructor(t,i,e){super(),this._mouseLeaveMonitor=null,this._context=t,this.viewController=i,this.viewHelper=e,this.mouseTargetFactory=new dk(this._context,e),this._mouseDownOperation=this._register(new Ok(this._context,this.viewController,this.viewHelper,this.mouseTargetFactory,((t,i)=>this._createMouseTarget(t,i)),(t=>this._getMouseColumn(t)))),this.lastMouseLeaveTime=-1,this._height=this._context.configuration.options.get(143).height;const s=new Sy(this.viewHelper.viewDomNode);this._register(s.onContextMenu(this.viewHelper.viewDomNode,(t=>this._onContextMenu(t,!0)))),this._register(s.onMouseMove(this.viewHelper.viewDomNode,(t=>{this._onMouseMove(t),this._mouseLeaveMonitor||(this._mouseLeaveMonitor=Va(this.viewHelper.viewDomNode.ownerDocument,"mousemove",(t=>{this.viewHelper.viewDomNode.contains(t.target)||this._onMouseLeave(new Cy(t,!1,this.viewHelper.viewDomNode))})))}))),this._register(s.onMouseUp(this.viewHelper.viewDomNode,(t=>this._onMouseUp(t)))),this._register(s.onMouseLeave(this.viewHelper.viewDomNode,(t=>this._onMouseLeave(t))));let n=0;this._register(s.onPointerDown(this.viewHelper.viewDomNode,((t,i)=>{n=i}))),this._register(Va(this.viewHelper.viewDomNode,Ll.POINTER_UP,(()=>{this._mouseDownOperation.onPointerUp()}))),this._register(s.onMouseDown(this.viewHelper.viewDomNode,(t=>this._onMouseDown(t,n)))),this._setupMouseWheelZoomListener(),this._context.addEventHandler(this)}_setupMouseWheelZoomListener(){const t=Ak.INSTANCE;let i=0,e=nr.getZoomLevel(),s=!1,n=0;function o(t){return Ct?(t.metaKey||t.ctrlKey)&&!t.shiftKey&&!t.altKey:t.ctrlKey&&!t.metaKey&&!t.shiftKey&&!t.altKey}this._register(Va(this.viewHelper.viewDomNode,Ll.MOUSE_WHEEL,(r=>{if(this.viewController.emitMouseWheel(r),!this._context.configuration.options.get(75))return;const h=new ic(r);if(t.acceptStandardWheelEvent(h),t.isPhysicalMouseWheel()){if(o(r)){const t=nr.getZoomLevel();nr.setZoomLevel(t+(h.deltaY>0?1:-1)),h.preventDefault(),h.stopPropagation()}}else Date.now()-i>50&&(e=nr.getZoomLevel(),s=o(r),n=0),i=Date.now(),n+=h.deltaY,s&&(nr.setZoomLevel(e+n/5),h.preventDefault(),h.stopPropagation())}),{capture:!0,passive:!1}))}dispose(){this._context.removeEventHandler(this),this._mouseLeaveMonitor&&(this._mouseLeaveMonitor.dispose(),this._mouseLeaveMonitor=null),super.dispose()}onConfigurationChanged(t){if(t.hasChanged(143)){const t=this._context.configuration.options.get(143).height;this._height!==t&&(this._height=t,this._mouseDownOperation.onHeightChanged())}return!1}onCursorStateChanged(t){return this._mouseDownOperation.onCursorStateChanged(t),!1}onFocusChanged(t){return!1}getTargetAtClientPoint(t,i){const e=new vy(t,i).toPageCoordinates(Na(this.viewHelper.viewDomNode)),s=ky(this.viewHelper.viewDomNode);if(e.ys.y+s.height||e.xs.x+s.width)return null;const n=xy(this.viewHelper.viewDomNode,s,e);return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),s,e,n,null)}_createMouseTarget(t,i){let e=t.target;if(!this.viewHelper.viewDomNode.contains(e)){const i=fl(this.viewHelper.viewDomNode);i&&(e=i.elementsFromPoint(t.posx,t.posy).find((t=>this.viewHelper.viewDomNode.contains(t))))}return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),t.editorPos,t.pos,t.relativePos,i?e:null)}_getMouseColumn(t){return this.mouseTargetFactory.getMouseColumn(t.relativePos)}_onContextMenu(t,i){this.viewController.emitContextMenu({event:t,target:this._createMouseTarget(t,i)})}_onMouseMove(t){this.mouseTargetFactory.mouseTargetIsWidget(t)||t.preventDefault(),this._mouseDownOperation.isActive()||t.timestamp{t.preventDefault(),this.viewHelper.focusTextArea()};a&&(s||o&&r)?(l(),this._mouseDownOperation.start(e.type,t,i)):n?t.preventDefault():h?a&&this.viewHelper.shouldSuppressMouseDownOnViewZone(e.detail.viewZoneId)&&(l(),this._mouseDownOperation.start(e.type,t,i),t.preventDefault()):c&&this.viewHelper.shouldSuppressMouseDownOnWidget(e.detail)&&(l(),t.preventDefault()),this.viewController.emitMouseDown({event:t,target:e})}}class Ok extends te{constructor(t,i,e,s,n,o){super(),this._context=t,this._viewController=i,this._viewHelper=e,this._mouseTargetFactory=s,this._createMouseTarget=n,this._getMouseColumn=o,this._mouseMoveMonitor=this._register(new Ey(this._viewHelper.viewDomNode)),this._topBottomDragScrolling=this._register(new Ik(this._context,this._viewHelper,this._mouseTargetFactory,((t,i,e)=>this._dispatchMouse(t,i,e)))),this._mouseState=new Nk,this._currentSelection=new Ls(1,1,1,1),this._isActive=!1,this._lastMouseEvent=null}dispose(){super.dispose()}isActive(){return this._isActive}_onMouseDownThenMove(t){this._lastMouseEvent=t,this._mouseState.setModifiers(t);const i=this._findMousePosition(t,!1);i&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:t,target:i}):13!==i.type||"above"!==i.outsidePosition&&"below"!==i.outsidePosition?(this._topBottomDragScrolling.stop(),this._dispatchMouse(i,!0,1)):this._topBottomDragScrolling.start(i,t))}start(t,i,e){this._lastMouseEvent=i,this._mouseState.setStartedOnLineNumbers(3===t),this._mouseState.setStartButtons(i),this._mouseState.setModifiers(i);const s=this._findMousePosition(i,!0);if(!s||!s.position)return;this._mouseState.trySetCount(i.detail,s.position),i.detail=this._mouseState.count;const n=this._context.configuration.options;if(!n.get(90)&&n.get(35)&&!n.get(22)&&!this._mouseState.altKey&&i.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&6===s.type&&s.position&&this._currentSelection.containsPosition(s.position))return this._mouseState.isDragAndDrop=!0,this._isActive=!0,void this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,e,i.buttons,(t=>this._onMouseDownThenMove(t)),(t=>{const i=this._findMousePosition(this._lastMouseEvent,!1);Ml(t)?this._viewController.emitMouseDropCanceled():this._viewController.emitMouseDrop({event:this._lastMouseEvent,target:i?this._createMouseTarget(this._lastMouseEvent,!0):null}),this._stop()}));this._mouseState.isDragAndDrop=!1,this._dispatchMouse(s,i.shiftKey,1),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,e,i.buttons,(t=>this._onMouseDownThenMove(t)),(()=>this._stop())))}_stop(){this._isActive=!1,this._topBottomDragScrolling.stop()}onHeightChanged(){this._mouseMoveMonitor.stopMonitoring()}onPointerUp(){this._mouseMoveMonitor.stopMonitoring()}onCursorStateChanged(t){this._currentSelection=t.selections[0]}_getPositionOutsideEditor(t){const i=t.editorPos,e=this._context.viewModel,s=this._context.viewLayout,n=this._getMouseColumn(t);if(t.posyi.y+i.height){const o=t.posy-i.y-i.height,r=s.getCurrentScrollTop()+t.relativePos.y,h=hk.getZoneAtCoord(this._context,r);if(h){const t=this._helpPositionJumpOverViewZone(h);if(t)return ok.createOutsideEditor(n,t,"below",o)}const c=s.getLineNumberAtVerticalOffset(r);return ok.createOutsideEditor(n,new As(c,e.getLineMaxColumn(c)),"below",o)}const o=s.getLineNumberAtVerticalOffset(s.getCurrentScrollTop()+t.relativePos.y);if(t.posxi.x+i.width){const s=t.posx-i.x-i.width;return ok.createOutsideEditor(n,new As(o,e.getLineMaxColumn(o)),"right",s)}return null}_findMousePosition(t,i){const e=this._getPositionOutsideEditor(t);if(e)return e;const s=this._createMouseTarget(t,i);if(!s.position)return null;if(8===s.type||5===s.type){const t=this._helpPositionJumpOverViewZone(s.detail);if(t)return ok.createViewZone(s.type,s.element,s.mouseColumn,t,s.detail)}return s}_helpPositionJumpOverViewZone(t){const i=new As(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),e=t.positionBefore,s=t.positionAfter;return e&&s?e.isBefore(i)?e:s:null}_dispatchMouse(t,i,e){t.position&&this._viewController.dispatchMouse({position:t.position,mouseColumn:t.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,revealType:e,inSelectionMode:i,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton,onInjectedText:6===t.type&&null!==t.detail.injectedText})}}class Ik extends te{constructor(t,i,e,s){super(),this._context=t,this._viewHelper=i,this._mouseTargetFactory=e,this._dispatchMouse=s,this._operation=null}dispose(){super.dispose(),this.stop()}start(t,i){this._operation?this._operation.setPosition(t,i):this._operation=new _k(this._context,this._viewHelper,this._mouseTargetFactory,this._dispatchMouse,t,i)}stop(){this._operation&&(this._operation.dispose(),this._operation=null)}}class _k extends te{constructor(t,i,e,s,n,o){super(),this._context=t,this._viewHelper=i,this._mouseTargetFactory=e,this._dispatchMouse=s,this._position=n,this._mouseEvent=o,this._lastTime=Date.now(),this._animationFrameDisposable=Qa(Na(o.browserEvent),(()=>this._execute()))}dispose(){this._animationFrameDisposable.dispose()}setPosition(t,i){this._position=t,this._mouseEvent=i}_tick(){const t=Date.now(),i=t-this._lastTime;return this._lastTime=t,i}_getScrollSpeed(){const t=this._context.configuration.options.get(66),i=this._context.configuration.options.get(143).height/t,e=this._position.outsideDistance/t;return e<=1.5?Math.max(30,i*(1+e)):e<=3?Math.max(60,i*(2+e)):Math.max(200,i*(7+e))}_execute(){const t=this._context.configuration.options.get(66),i=this._getScrollSpeed()*(this._tick()/1e3)*t;this._context.viewModel.viewLayout.deltaScrollNow(0,"above"===this._position.outsidePosition?-i:i),this._viewHelper.renderNow();const e=this._context.viewLayout.getLinesViewportData(),s="above"===this._position.outsidePosition?e.startLineNumber:e.endLineNumber;let n;{const t=ky(this._viewHelper.viewDomNode),i=this._context.configuration.options.get(143).horizontalScrollbarHeight,e=new wy(this._mouseEvent.pos.x,t.y+t.height-i-.1),s=xy(this._viewHelper.viewDomNode,t,e);n=this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(),t,e,s,null)}n.position&&n.position.lineNumber===s||(n="above"===this._position.outsidePosition?ok.createOutsideEditor(this._position.mouseColumn,new As(s,1),"above",this._position.outsideDistance):ok.createOutsideEditor(this._position.mouseColumn,new As(s,this._context.viewModel.getLineMaxColumn(s)),"below",this._position.outsideDistance)),this._dispatchMouse(n,!0,2),this._animationFrameDisposable=Qa(Na(n.element),(()=>this._execute()))}}class Nk{get altKey(){return this._altKey}get ctrlKey(){return this._ctrlKey}get metaKey(){return this._metaKey}get shiftKey(){return this._shiftKey}get leftButton(){return this._leftButton}get middleButton(){return this._middleButton}get startedOnLineNumbers(){return this._startedOnLineNumbers}constructor(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}get count(){return this._lastMouseDownCount}setModifiers(t){this._altKey=t.altKey,this._ctrlKey=t.ctrlKey,this._metaKey=t.metaKey,this._shiftKey=t.shiftKey}setStartButtons(t){this._leftButton=t.leftButton,this._middleButton=t.middleButton}setStartedOnLineNumbers(t){this._startedOnLineNumbers=t}trySetCount(t,i){const e=(new Date).getTime();e-this._lastSetMouseDownCountTime>Nk.CLEAR_MOUSE_DOWN_COUNT_TIME&&(t=1),this._lastSetMouseDownCountTime=e,t>this._lastMouseDownCount+1&&(t=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(i)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=i,this._lastMouseDownCount=Math.min(t,this._lastMouseDownPositionEqualCount)}}Nk.CLEAR_MOUSE_DOWN_COUNT_TIME=400;class Bk{get event(){return this.emitter.event}constructor(t,i,e){const s=t=>this.emitter.fire(t);this.emitter=new de({onWillAddFirstListener:()=>t.addEventListener(i,s,e),onDidRemoveLastListener:()=>t.removeEventListener(i,s,e)})}dispose(){this.emitter.dispose()}}var Pk;!function(t){const i={total:0,min:Number.MAX_VALUE,max:0},e={...i},s={...i},n={...i};let o=0;const r={keydown:0,input:0,render:0};function h(){1===r.keydown&&(performance.mark("keydown/end"),r.keydown=2)}function c(){performance.mark("input/start"),r.input=1,u()}function a(){1===r.input&&(performance.mark("input/end"),r.input=2)}function l(){1===r.render&&(performance.mark("render/end"),r.render=2)}function u(){setTimeout(d)}function d(){2===r.keydown&&2===r.input&&2===r.render&&(performance.mark("inputlatency/end"),performance.measure("keydown","keydown/start","keydown/end"),performance.measure("input","input/start","input/end"),performance.measure("render","render/start","render/end"),performance.measure("inputlatency","inputlatency/start","inputlatency/end"),f("keydown",i),f("input",e),f("render",s),f("inputlatency",n),o++,performance.clearMarks("keydown/start"),performance.clearMarks("keydown/end"),performance.clearMarks("input/start"),performance.clearMarks("input/end"),performance.clearMarks("render/start"),performance.clearMarks("render/end"),performance.clearMarks("inputlatency/start"),performance.clearMarks("inputlatency/end"),performance.clearMeasures("keydown"),performance.clearMeasures("input"),performance.clearMeasures("render"),performance.clearMeasures("inputlatency"),r.keydown=0,r.input=0,r.render=0)}function f(t,i){const e=performance.getEntriesByName(t)[0].duration;i.total+=e,i.min=Math.min(i.min,e),i.max=Math.max(i.max,e)}function p(t){return{average:t.total/o,max:t.max,min:t.min}}function g(t){t.total=0,t.min=Number.MAX_VALUE,t.max=0}t.onKeyDown=function(){d(),performance.mark("inputlatency/start"),performance.mark("keydown/start"),r.keydown=1,queueMicrotask(h)},t.onBeforeInput=c,t.onInput=function(){0===r.input&&c(),queueMicrotask(a)},t.onKeyUp=function(){d()},t.onSelectionChange=function(){d()},t.onRenderStart=function(){2===r.keydown&&2===r.input&&0===r.render&&(performance.mark("render/start"),r.render=1,queueMicrotask(l),u())},t.getAndClearMeasurements=function(){if(0===o)return;const t={keydown:p(i),input:p(e),render:p(s),total:p(n),sampleCount:o};return g(i),g(e),g(s),g(n),o=0,t}}(Pk||(Pk={}));class $k{constructor(t,i,e,s,n){this.value=t,this.selectionStart=i,this.selectionEnd=e,this.selection=s,this.newlineCountBeforeSelection=n}toString(){return`[ <${this.value}>, selectionStart: ${this.selectionStart}, selectionEnd: ${this.selectionEnd}]`}static readFromTextArea(t,i){const e=t.getValue(),s=t.getSelectionStart(),n=t.getSelectionEnd();let o;return i&&e.substring(0,s)===i.value.substring(0,i.selectionStart)&&(o=i.newlineCountBeforeSelection),new $k(e,s,n,null,o)}collapseSelection(){return this.selectionStart===this.value.length?this:new $k(this.value,this.value.length,this.value.length,null,void 0)}writeToTextArea(t,i,e){i.setValue(t,this.value),e&&i.setSelectionRange(t,this.selectionStart,this.selectionEnd)}deduceEditorPosition(t){var i,e,s,n,o,r,h,c;if(t<=this.selectionStart){const s=this.value.substring(t,this.selectionStart);return this._finishDeduceEditorPosition(null!==(e=null===(i=this.selection)||void 0===i?void 0:i.getStartPosition())&&void 0!==e?e:null,s,-1)}if(t>=this.selectionEnd){const i=this.value.substring(this.selectionEnd,t);return this._finishDeduceEditorPosition(null!==(n=null===(s=this.selection)||void 0===s?void 0:s.getEndPosition())&&void 0!==n?n:null,i,1)}const a=this.value.substring(this.selectionStart,t);if(-1===a.indexOf(String.fromCharCode(8230)))return this._finishDeduceEditorPosition(null!==(r=null===(o=this.selection)||void 0===o?void 0:o.getStartPosition())&&void 0!==r?r:null,a,1);const l=this.value.substring(t,this.selectionEnd);return this._finishDeduceEditorPosition(null!==(c=null===(h=this.selection)||void 0===h?void 0:h.getEndPosition())&&void 0!==c?c:null,l,-1)}_finishDeduceEditorPosition(t,i,e){let s=0,n=-1;for(;-1!==(n=i.indexOf("\n",n+1));)s++;return[t,e*i.length,s]}static deduceInput(t,i,e){if(!t)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};const s=Math.min(fo(t.value,i.value),t.selectionStart,i.selectionStart),n=Math.min(po(t.value,i.value),t.value.length-t.selectionEnd,i.value.length-i.selectionEnd);t.value.substring(s,t.value.length-n);const o=i.value.substring(s,i.value.length-n);return i.selectionStart-s==i.selectionEnd-s?{text:o,replacePrevCharCnt:t.selectionStart-s,replaceNextCharCnt:0,positionDelta:0}:{text:o,replacePrevCharCnt:t.selectionEnd-s-(t.selectionStart-s),replaceNextCharCnt:0,positionDelta:0}}static deduceAndroidCompositionInput(t,i){if(!t)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};if(t.value===i.value)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:i.selectionEnd-t.selectionEnd};const e=Math.min(fo(t.value,i.value),t.selectionEnd),s=Math.min(po(t.value,i.value),t.value.length-t.selectionEnd),n=t.value.substring(e,t.value.length-s),o=i.value.substring(e,i.value.length-s),r=t.selectionEnd-e;return{text:o,replacePrevCharCnt:r,replaceNextCharCnt:n.length-r,positionDelta:i.selectionEnd-e-o.length}}}$k.EMPTY=new $k("",0,0,null,void 0);class Wk{static _getPageOfLine(t,i){return Math.floor((t-1)/i)}static _getRangeForPage(t,i){const e=t*i;return new Ms(e+1,1,e+i+1,1)}static fromEditorSelection(t,i,e,s){const n=500,o=Wk._getPageOfLine(i.startLineNumber,e),r=Wk._getRangeForPage(o,e),h=Wk._getPageOfLine(i.endLineNumber,e),c=Wk._getRangeForPage(h,e);let a=r.intersectRanges(new Ms(1,1,i.startLineNumber,i.startColumn));if(s&&t.getValueLengthInRange(a,1)>n){const i=t.modifyPosition(a.getEndPosition(),-500);a=Ms.fromPositions(i,a.getEndPosition())}const l=t.getValueInRange(a,1),u=t.getLineCount(),d=t.getLineMaxColumn(u);let f=c.intersectRanges(new Ms(i.endLineNumber,i.endColumn,u,d));if(s&&t.getValueLengthInRange(f,1)>n){const i=t.modifyPosition(f.getStartPosition(),n);f=Ms.fromPositions(f.getStartPosition(),i)}const p=t.getValueInRange(f,1);let g;if(o===h||o+1===h)g=t.getValueInRange(i,1);else{const e=r.intersectRanges(i),s=c.intersectRanges(i);g=t.getValueInRange(e,1)+String.fromCharCode(8230)+t.getValueInRange(s,1)}return s&&g.length>1e3&&(g=g.substring(0,n)+String.fromCharCode(8230)+g.substring(g.length-n,g.length)),new $k(l+g+p,l.length,l.length+g.length,i,a.endLineNumber-a.startLineNumber)}}var jk,zk=function(t,i){return function(e,s){i(e,s,t)}};!function(t){t.Tap="-monaco-textarea-synthetic-tap"}(jk||(jk={}));const Hk={forceCopyWithSyntaxHighlighting:!1};class Vk{constructor(){this._lastState=null}set(t,i){this._lastState={lastCopiedValue:t,data:i}}get(t){return this._lastState&&this._lastState.lastCopiedValue===t?this._lastState.data:(this._lastState=null,null)}}Vk.INSTANCE=new Vk;class Uk{constructor(){this._lastTypeTextLength=0}handleCompositionUpdate(t){const i={text:t=t||"",replacePrevCharCnt:this._lastTypeTextLength,replaceNextCharCnt:0,positionDelta:0};return this._lastTypeTextLength=t.length,i}}let qk=class extends te{get textAreaState(){return this._textAreaState}constructor(t,i,e,s,n,o){super(),this._host=t,this._textArea=i,this._OS=e,this._browser=s,this._accessibilityService=n,this._logService=o,this._onFocus=this._register(new de),this.onFocus=this._onFocus.event,this._onBlur=this._register(new de),this.onBlur=this._onBlur.event,this._onKeyDown=this._register(new de),this.onKeyDown=this._onKeyDown.event,this._onKeyUp=this._register(new de),this.onKeyUp=this._onKeyUp.event,this._onCut=this._register(new de),this.onCut=this._onCut.event,this._onPaste=this._register(new de),this.onPaste=this._onPaste.event,this._onType=this._register(new de),this.onType=this._onType.event,this._onCompositionStart=this._register(new de),this.onCompositionStart=this._onCompositionStart.event,this._onCompositionUpdate=this._register(new de),this.onCompositionUpdate=this._onCompositionUpdate.event,this._onCompositionEnd=this._register(new de),this.onCompositionEnd=this._onCompositionEnd.event,this._onSelectionChangeRequest=this._register(new de),this.onSelectionChangeRequest=this._onSelectionChangeRequest.event,this._asyncFocusGainWriteScreenReaderContent=this._register(new ie),this._asyncTriggerCut=this._register(new pc((()=>this._onCut.fire()),0)),this._textAreaState=$k.EMPTY,this._selectionChangeListener=null,this._accessibilityService.isScreenReaderOptimized()&&this.writeNativeTextAreaContent("ctor"),this._register(he.runAndSubscribe(this._accessibilityService.onDidChangeScreenReaderOptimized,(()=>{this._accessibilityService.isScreenReaderOptimized()&&!this._asyncFocusGainWriteScreenReaderContent.value?this._asyncFocusGainWriteScreenReaderContent.value=this._register(new pc((()=>this.writeNativeTextAreaContent("asyncFocusGain")),0)):this._asyncFocusGainWriteScreenReaderContent.clear()}))),this._hasFocus=!1,this._currentComposition=null;let r=null;this._register(this._textArea.onKeyDown((t=>{const i=new Qh(t);(114===i.keyCode||this._currentComposition&&1===i.keyCode)&&i.stopPropagation(),i.equals(9)&&i.preventDefault(),r=i,this._onKeyDown.fire(i)}))),this._register(this._textArea.onKeyUp((t=>{const i=new Qh(t);this._onKeyUp.fire(i)}))),this._register(this._textArea.onCompositionStart((t=>{const i=new Uk;if(this._currentComposition)this._currentComposition=i;else{if(this._currentComposition=i,2===this._OS&&r&&r.equals(114)&&this._textAreaState.selectionStart===this._textAreaState.selectionEnd&&this._textAreaState.selectionStart>0&&this._textAreaState.value.substr(this._textAreaState.selectionStart-1,1)===t.data&&("ArrowRight"===r.code||"ArrowLeft"===r.code))return i.handleCompositionUpdate("x"),void this._onCompositionStart.fire({data:t.data});this._onCompositionStart.fire({data:t.data})}}))),this._register(this._textArea.onCompositionUpdate((t=>{const i=this._currentComposition;if(!i)return;if(this._browser.isAndroid){const i=$k.readFromTextArea(this._textArea,this._textAreaState),e=$k.deduceAndroidCompositionInput(this._textAreaState,i);return this._textAreaState=i,this._onType.fire(e),void this._onCompositionUpdate.fire(t)}const e=i.handleCompositionUpdate(t.data);this._textAreaState=$k.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(e),this._onCompositionUpdate.fire(t)}))),this._register(this._textArea.onCompositionEnd((t=>{const i=this._currentComposition;if(!i)return;if(this._currentComposition=null,this._browser.isAndroid){const t=$k.readFromTextArea(this._textArea,this._textAreaState),i=$k.deduceAndroidCompositionInput(this._textAreaState,t);return this._textAreaState=t,this._onType.fire(i),void this._onCompositionEnd.fire()}const e=i.handleCompositionUpdate(t.data);this._textAreaState=$k.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(e),this._onCompositionEnd.fire()}))),this._register(this._textArea.onInput((()=>{if(this._textArea.setIgnoreSelectionChangeTime("received input event"),this._currentComposition)return;const t=$k.readFromTextArea(this._textArea,this._textAreaState),i=$k.deduceInput(this._textAreaState,t,2===this._OS);(0!==i.replacePrevCharCnt||1!==i.text.length||!go(i.text.charCodeAt(0))&&127!==i.text.charCodeAt(0))&&(this._textAreaState=t,""===i.text&&0===i.replacePrevCharCnt&&0===i.replaceNextCharCnt&&0===i.positionDelta||this._onType.fire(i))}))),this._register(this._textArea.onCut((t=>{this._textArea.setIgnoreSelectionChangeTime("received cut event"),this._ensureClipboardGetsEditorSelection(t),this._asyncTriggerCut.schedule()}))),this._register(this._textArea.onCopy((t=>{this._ensureClipboardGetsEditorSelection(t)}))),this._register(this._textArea.onPaste((t=>{if(this._textArea.setIgnoreSelectionChangeTime("received paste event"),t.preventDefault(),!t.clipboardData)return;let[i,e]=Kk.getTextData(t.clipboardData);i&&(e=e||Vk.INSTANCE.get(i),this._onPaste.fire({text:i,metadata:e}))}))),this._register(this._textArea.onFocus((()=>{const t=this._hasFocus;this._setHasFocus(!0),this._accessibilityService.isScreenReaderOptimized()&&this._browser.isSafari&&!t&&this._hasFocus&&(this._asyncFocusGainWriteScreenReaderContent.value||(this._asyncFocusGainWriteScreenReaderContent.value=new pc((()=>this.writeNativeTextAreaContent("asyncFocusGain")),0)),this._asyncFocusGainWriteScreenReaderContent.value.schedule())}))),this._register(this._textArea.onBlur((()=>{this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("blurWithoutCompositionEnd"),this._onCompositionEnd.fire()),this._setHasFocus(!1)}))),this._register(this._textArea.onSyntheticTap((()=>{this._browser.isAndroid&&this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("tapWithoutCompositionEnd"),this._onCompositionEnd.fire())})))}_installSelectionChangeListener(){let t=0;return Va(this._textArea.ownerDocument,"selectionchange",(()=>{if(Pk.onSelectionChange(),!this._hasFocus)return;if(this._currentComposition)return;if(!this._browser.isChrome)return;const i=Date.now(),e=i-t;if(t=i,e<5)return;const s=i-this._textArea.getIgnoreSelectionChangeTime();if(this._textArea.resetSelectionChangeTime(),s<100)return;if(!this._textAreaState.selection)return;const n=this._textArea.getValue();if(this._textAreaState.value!==n)return;const o=this._textArea.getSelectionStart(),r=this._textArea.getSelectionEnd();if(this._textAreaState.selectionStart===o&&this._textAreaState.selectionEnd===r)return;const h=this._textAreaState.deduceEditorPosition(o),c=this._host.deduceModelPosition(h[0],h[1],h[2]),a=this._textAreaState.deduceEditorPosition(r),l=this._host.deduceModelPosition(a[0],a[1],a[2]),u=new Ls(c.lineNumber,c.column,l.lineNumber,l.column);this._onSelectionChangeRequest.fire(u)}))}dispose(){super.dispose(),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)}focusTextArea(){this._setHasFocus(!0),this.refreshFocusState()}isFocused(){return this._hasFocus}refreshFocusState(){this._setHasFocus(this._textArea.hasFocus())}_setHasFocus(t){this._hasFocus!==t&&(this._hasFocus=t,this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&this.writeNativeTextAreaContent("focusgain"),this._hasFocus?this._onFocus.fire():this._onBlur.fire())}_setAndWriteTextAreaState(t,i){this._hasFocus||(i=i.collapseSelection()),i.writeToTextArea(t,this._textArea,this._hasFocus),this._textAreaState=i}writeNativeTextAreaContent(t){!this._accessibilityService.isScreenReaderOptimized()&&"render"===t||this._currentComposition||(this._logService.trace(`writeTextAreaState(reason: ${t})`),this._setAndWriteTextAreaState(t,this._host.getScreenReaderContent()))}_ensureClipboardGetsEditorSelection(t){const i=this._host.getDataToCopy(),e={version:1,isFromEmptySelection:i.isFromEmptySelection,multicursorText:i.multicursorText,mode:i.mode};Vk.INSTANCE.set(this._browser.isFirefox?i.text.replace(/\r\n/g,"\n"):i.text,e),t.preventDefault(),t.clipboardData&&Kk.setTextData(t.clipboardData,i.text,i.html,e)}};qk=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([zk(4,Zm),zk(5,jh)],qk);const Kk={getTextData(t){const i=t.getData(Dd.text);let e=null;const s=t.getData("vscode-editor-data");if("string"==typeof s)try{e=JSON.parse(s),1!==e.version&&(e=null)}catch(t){}return 0===i.length&&null===e&&t.files.length>0?[Array.prototype.slice.call(t.files,0).map((t=>t.name)).join("\n"),null]:[i,e]},setTextData(t,i,e,s){t.setData(Dd.text,i),"string"==typeof e&&t.setData("text/html",e),t.setData("vscode-editor-data",JSON.stringify(s))}};class Gk extends te{get ownerDocument(){return this._actual.ownerDocument}constructor(t){super(),this._actual=t,this.onKeyDown=this._register(new Bk(this._actual,"keydown")).event,this.onKeyUp=this._register(new Bk(this._actual,"keyup")).event,this.onCompositionStart=this._register(new Bk(this._actual,"compositionstart")).event,this.onCompositionUpdate=this._register(new Bk(this._actual,"compositionupdate")).event,this.onCompositionEnd=this._register(new Bk(this._actual,"compositionend")).event,this.onBeforeInput=this._register(new Bk(this._actual,"beforeinput")).event,this.onInput=this._register(new Bk(this._actual,"input")).event,this.onCut=this._register(new Bk(this._actual,"cut")).event,this.onCopy=this._register(new Bk(this._actual,"copy")).event,this.onPaste=this._register(new Bk(this._actual,"paste")).event,this.onFocus=this._register(new Bk(this._actual,"focus")).event,this.onBlur=this._register(new Bk(this._actual,"blur")).event,this._onSyntheticTap=this._register(new de),this.onSyntheticTap=this._onSyntheticTap.event,this._ignoreSelectionChangeTime=0,this._register(this.onKeyDown((()=>Pk.onKeyDown()))),this._register(this.onBeforeInput((()=>Pk.onBeforeInput()))),this._register(this.onInput((()=>Pk.onInput()))),this._register(this.onKeyUp((()=>Pk.onKeyUp()))),this._register(Va(this._actual,jk.Tap,(()=>this._onSyntheticTap.fire())))}hasFocus(){const t=fl(this._actual);return t?t.activeElement===this._actual:!!this._actual.isConnected&&this._actual.ownerDocument.activeElement===this._actual}setIgnoreSelectionChangeTime(t){this._ignoreSelectionChangeTime=Date.now()}getIgnoreSelectionChangeTime(){return this._ignoreSelectionChangeTime}resetSelectionChangeTime(){this._ignoreSelectionChangeTime=0}getValue(){return this._actual.value}setValue(t,i){const e=this._actual;e.value!==i&&(this.setIgnoreSelectionChangeTime("setValue"),e.value=i)}getSelectionStart(){return"backward"===this._actual.selectionDirection?this._actual.selectionEnd:this._actual.selectionStart}getSelectionEnd(){return"backward"===this._actual.selectionDirection?this._actual.selectionStart:this._actual.selectionEnd}setSelectionRange(t,i,e){const s=this._actual;let n=null;const o=fl(s);n=o?o.activeElement:s.ownerDocument.activeElement;const r=Na(n),h=n===s;if(h&&s.selectionStart===i&&s.selectionEnd===e)Uo&&r.parent!==r&&s.focus();else{if(h)return this.setIgnoreSelectionChangeTime("setSelectionRange"),s.setSelectionRange(i,e),void(Uo&&r.parent!==r&&s.focus());try{const t=function(t){const i=[];for(let e=0;t&&t.nodeType===t.ELEMENT_NODE;e++)i[e]=t.scrollTop,t=t.parentNode;return i}(s);this.setIgnoreSelectionChangeTime("setSelectionRange"),s.focus(),s.setSelectionRange(i,e),function(t,i){for(let e=0;t&&t.nodeType===t.ELEMENT_NODE;e++)t.scrollTop!==i[e]&&(t.scrollTop=i[e]),t=t.parentNode}(s,t)}catch(t){}}}}class Zk extends Rk{constructor(t,i,e){super(t,i,e),this._register(rw.addTarget(this.viewHelper.linesContentDomNode)),this._register(Va(this.viewHelper.linesContentDomNode,ow.Tap,(t=>this.onTap(t)))),this._register(Va(this.viewHelper.linesContentDomNode,ow.Change,(t=>this.onChange(t)))),this._register(Va(this.viewHelper.linesContentDomNode,ow.Contextmenu,(t=>this._onContextMenu(new Cy(t,!1,this.viewHelper.viewDomNode),!1)))),this._lastPointerType="mouse",this._register(Va(this.viewHelper.linesContentDomNode,"pointerdown",(t=>{const i=t.pointerType;this._lastPointerType="mouse"!==i?"touch"===i?"touch":"pen":"mouse"})));const s=new Dy(this.viewHelper.viewDomNode);this._register(s.onPointerMove(this.viewHelper.viewDomNode,(t=>this._onMouseMove(t)))),this._register(s.onPointerUp(this.viewHelper.viewDomNode,(t=>this._onMouseUp(t)))),this._register(s.onPointerLeave(this.viewHelper.viewDomNode,(t=>this._onMouseLeave(t)))),this._register(s.onPointerDown(this.viewHelper.viewDomNode,((t,i)=>this._onMouseDown(t,i))))}onTap(t){if(!t.initialTarget||!this.viewHelper.linesContentDomNode.contains(t.initialTarget))return;t.preventDefault(),this.viewHelper.focusTextArea();const i=this._createMouseTarget(new Cy(t,!1,this.viewHelper.viewDomNode),!1);i.position&&this.viewController.dispatchMouse({position:i.position,mouseColumn:i.position.column,startedOnLineNumbers:!1,revealType:1,mouseDownCount:t.tapCount,inSelectionMode:!1,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1,onInjectedText:6===i.type&&null!==i.detail.injectedText})}onChange(t){"touch"===this._lastPointerType&&this._context.viewModel.viewLayout.deltaScrollNow(-t.translationX,-t.translationY)}_onMouseDown(t,i){"touch"!==t.browserEvent.pointerType&&super._onMouseDown(t,i)}}class Qk extends Rk{constructor(t,i,e){super(t,i,e),this._register(rw.addTarget(this.viewHelper.linesContentDomNode)),this._register(Va(this.viewHelper.linesContentDomNode,ow.Tap,(t=>this.onTap(t)))),this._register(Va(this.viewHelper.linesContentDomNode,ow.Change,(t=>this.onChange(t)))),this._register(Va(this.viewHelper.linesContentDomNode,ow.Contextmenu,(t=>this._onContextMenu(new Cy(t,!1,this.viewHelper.viewDomNode),!1))))}onTap(t){t.preventDefault(),this.viewHelper.focusTextArea();const i=this._createMouseTarget(new Cy(t,!1,this.viewHelper.viewDomNode),!1);if(i.position){const t=document.createEvent("CustomEvent");t.initEvent(jk.Tap,!1,!0),this.viewHelper.dispatchTextAreaEvent(t),this.viewController.moveTo(i.position,1)}}onChange(t){this._context.viewModel.viewLayout.deltaScrollNow(-t.translationX,-t.translationY)}}class Jk extends te{constructor(t,i,e){super(),this.handler=this._register(Mt&&Kh?new Zk(t,i,e):$n.TouchEvent?new Qk(t,i,e):new Rk(t,i,e))}getTargetAtClientPoint(t,i){return this.handler.getTargetAtClientPoint(t,i)}}class Yk extends Fy{}const Xk=dr("themeService");function tx(t){return{id:t}}function ix(t){switch(t){case jy.DARK:return"vs-dark";case jy.HIGH_CONTRAST_DARK:return"hc-black";case jy.HIGH_CONTRAST_LIGHT:return"hc-light";default:return"vs"}}const ex="base.contributions.theming",sx=new class{constructor(){this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new de}onColorThemeChange(t){return this.themingParticipants.push(t),this.onThemingParticipantAddedEmitter.fire(t),Yi((()=>{const i=this.themingParticipants.indexOf(t);this.themingParticipants.splice(i,1)}))}getThemingParticipants(){return this.themingParticipants}};function nx(t){return sx.onColorThemeChange(t)}Dh.add(ex,sx);class ox extends te{constructor(t){super(),this.themeService=t,this.theme=t.getColorTheme(),this._register(this.themeService.onDidColorThemeChange((t=>this.onThemeChange(t))))}onThemeChange(t){this.theme=t,this.updateStyles()}updateStyles(){}}const rx=dw("editor.lineHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"Background color for the highlight of line at the cursor position.")),hx=dw("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hcDark:"#f38518",hcLight:ww},ot(0,"Background color for the border around the line at the cursor position."));dw("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hcDark:null,hcLight:null},ot(0,"Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations."),!0),dw("editor.rangeHighlightBorder",{dark:null,light:null,hcDark:vw,hcLight:vw},ot(0,"Background color of the border around highlighted ranges."),!0),dw("editor.symbolHighlightBackground",{dark:Lv,light:Lv,hcDark:null,hcLight:null},ot(0,"Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations."),!0),dw("editor.symbolHighlightBorder",{dark:null,light:null,hcDark:vw,hcLight:vw},ot(0,"Background color of the border around highlighted symbols."),!0);const cx=dw("editorCursor.foreground",{dark:"#AEAFAD",light:lg.black,hcDark:lg.white,hcLight:"#0F4A85"},ot(0,"Color of the editor cursor.")),ax=dw("editorCursor.background",null,ot(0,"The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.")),lx=dw("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hcDark:"#e3e4e229",hcLight:"#CCCCCC"},ot(0,"Color of whitespace characters in the editor.")),ux=dw("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hcDark:lg.white,hcLight:"#292929"},ot(0,"Color of editor line numbers.")),dx=dw("editorIndentGuide.background",{dark:lx,light:lx,hcDark:lx,hcLight:lx},ot(0,"Color of the editor indentation guides."),!1,ot(0,"'editorIndentGuide.background' is deprecated. Use 'editorIndentGuide.background1' instead.")),fx=dw("editorIndentGuide.activeBackground",{dark:lx,light:lx,hcDark:lx,hcLight:lx},ot(0,"Color of the active editor indentation guides."),!1,ot(0,"'editorIndentGuide.activeBackground' is deprecated. Use 'editorIndentGuide.activeBackground1' instead.")),px=dw("editorIndentGuide.background1",{dark:dx,light:dx,hcDark:dx,hcLight:dx},ot(0,"Color of the editor indentation guides (1).")),gx=dw("editorIndentGuide.background2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Color of the editor indentation guides (2).")),mx=dw("editorIndentGuide.background3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Color of the editor indentation guides (3).")),wx=dw("editorIndentGuide.background4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Color of the editor indentation guides (4).")),vx=dw("editorIndentGuide.background5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Color of the editor indentation guides (5).")),bx=dw("editorIndentGuide.background6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Color of the editor indentation guides (6).")),yx=dw("editorIndentGuide.activeBackground1",{dark:fx,light:fx,hcDark:fx,hcLight:fx},ot(0,"Color of the active editor indentation guides (1).")),kx=dw("editorIndentGuide.activeBackground2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Color of the active editor indentation guides (2).")),xx=dw("editorIndentGuide.activeBackground3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Color of the active editor indentation guides (3).")),Cx=dw("editorIndentGuide.activeBackground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Color of the active editor indentation guides (4).")),Sx=dw("editorIndentGuide.activeBackground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Color of the active editor indentation guides (5).")),Dx=dw("editorIndentGuide.activeBackground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Color of the active editor indentation guides (6).")),Ex=dw("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hcDark:vw,hcLight:vw},ot(0,"Color of editor active line number"),!1,ot(0,"Id is deprecated. Use 'editorLineNumber.activeForeground' instead."));dw("editorLineNumber.activeForeground",{dark:Ex,light:Ex,hcDark:Ex,hcLight:Ex},ot(0,"Color of editor active line number"));const Ax=dw("editorLineNumber.dimmedForeground",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"Color of the final editor line when editor.renderFinalNewline is set to dimmed."));dw("editorRuler.foreground",{dark:"#5A5A5A",light:lg.lightgrey,hcDark:lg.white,hcLight:"#292929"},ot(0,"Color of the editor rulers.")),dw("editorCodeLens.foreground",{dark:"#999999",light:"#919191",hcDark:"#999999",hcLight:"#292929"},ot(0,"Foreground color of editor CodeLens")),dw("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hcDark:"#0064001a",hcLight:"#0000"},ot(0,"Background color behind matching brackets")),dw("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hcDark:ww,hcLight:ww},ot(0,"Color for matching brackets boxes"));const Mx=dw("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hcDark:"#7f7f7f4d",hcLight:"#666666"},ot(0,"Color of the overview ruler border.")),Lx=dw("editorOverviewRuler.background",null,ot(0,"Background color of the editor overview ruler."));dw("editorGutter.background",{dark:av,light:av,hcDark:av,hcLight:av},ot(0,"Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.")),dw("editorUnnecessaryCode.border",{dark:null,light:null,hcDark:lg.fromHex("#fff").transparent(.8),hcLight:ww},ot(0,"Border color of unnecessary (unused) source code in the editor."));const Fx=dw("editorUnnecessaryCode.opacity",{dark:lg.fromHex("#000a"),light:lg.fromHex("#0007"),hcDark:null,hcLight:null},ot(0,"Opacity of unnecessary (unused) source code in the editor. For example, \"#000000c0\" will render the code with 75% opacity. For high contrast themes, use the 'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out."));dw("editorGhostText.border",{dark:null,light:null,hcDark:lg.fromHex("#fff").transparent(.8),hcLight:lg.fromHex("#292929").transparent(.8)},ot(0,"Border color of ghost text in the editor.")),dw("editorGhostText.foreground",{dark:lg.fromHex("#ffffff56"),light:lg.fromHex("#0007"),hcDark:null,hcLight:null},ot(0,"Foreground color of the ghost text in the editor.")),dw("editorGhostText.background",{dark:null,light:null,hcDark:null,hcLight:null},ot(0,"Background color of the ghost text in the editor."));const Tx=new lg(new hg(0,122,204,.6)),Rx=dw("editorOverviewRuler.rangeHighlightForeground",{dark:Tx,light:Tx,hcDark:Tx,hcLight:Tx},ot(0,"Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations."),!0),Ox=dw("editorOverviewRuler.errorForeground",{dark:new lg(new hg(255,18,18,.7)),light:new lg(new hg(255,18,18,.7)),hcDark:new lg(new hg(255,50,50,1)),hcLight:"#B5200D"},ot(0,"Overview ruler marker color for errors.")),Ix=dw("editorOverviewRuler.warningForeground",{dark:nv,light:nv,hcDark:ov,hcLight:ov},ot(0,"Overview ruler marker color for warnings.")),_x=dw("editorOverviewRuler.infoForeground",{dark:rv,light:rv,hcDark:hv,hcLight:hv},ot(0,"Overview ruler marker color for infos.")),Nx=dw("editorBracketHighlight.foreground1",{dark:"#FFD700",light:"#0431FAFF",hcDark:"#FFD700",hcLight:"#0431FAFF"},ot(0,"Foreground color of brackets (1). Requires enabling bracket pair colorization.")),Bx=dw("editorBracketHighlight.foreground2",{dark:"#DA70D6",light:"#319331FF",hcDark:"#DA70D6",hcLight:"#319331FF"},ot(0,"Foreground color of brackets (2). Requires enabling bracket pair colorization.")),Px=dw("editorBracketHighlight.foreground3",{dark:"#179FFF",light:"#7B3814FF",hcDark:"#87CEFA",hcLight:"#7B3814FF"},ot(0,"Foreground color of brackets (3). Requires enabling bracket pair colorization.")),$x=dw("editorBracketHighlight.foreground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Foreground color of brackets (4). Requires enabling bracket pair colorization.")),Wx=dw("editorBracketHighlight.foreground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Foreground color of brackets (5). Requires enabling bracket pair colorization.")),jx=dw("editorBracketHighlight.foreground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Foreground color of brackets (6). Requires enabling bracket pair colorization.")),zx=dw("editorBracketHighlight.unexpectedBracket.foreground",{dark:new lg(new hg(255,18,18,.8)),light:new lg(new hg(255,18,18,.8)),hcDark:new lg(new hg(255,50,50,1)),hcLight:""},ot(0,"Foreground color of unexpected brackets.")),Hx=dw("editorBracketPairGuide.background1",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.")),Vx=dw("editorBracketPairGuide.background2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.")),Ux=dw("editorBracketPairGuide.background3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.")),qx=dw("editorBracketPairGuide.background4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.")),Kx=dw("editorBracketPairGuide.background5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.")),Gx=dw("editorBracketPairGuide.background6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.")),Zx=dw("editorBracketPairGuide.activeBackground1",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Background color of active bracket pair guides (1). Requires enabling bracket pair guides.")),Qx=dw("editorBracketPairGuide.activeBackground2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Background color of active bracket pair guides (2). Requires enabling bracket pair guides.")),Jx=dw("editorBracketPairGuide.activeBackground3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Background color of active bracket pair guides (3). Requires enabling bracket pair guides.")),Yx=dw("editorBracketPairGuide.activeBackground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Background color of active bracket pair guides (4). Requires enabling bracket pair guides.")),Xx=dw("editorBracketPairGuide.activeBackground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Background color of active bracket pair guides (5). Requires enabling bracket pair guides.")),tC=dw("editorBracketPairGuide.activeBackground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},ot(0,"Background color of active bracket pair guides (6). Requires enabling bracket pair guides."));dw("editorUnicodeHighlight.border",{dark:"#BD9B03",light:"#CEA33D",hcDark:"#ff0000",hcLight:"#CEA33D"},ot(0,"Border color used to highlight unicode characters.")),dw("editorUnicodeHighlight.background",{dark:"#bd9b0326",light:"#cea33d14",hcDark:"#00000000",hcLight:"#cea33d14"},ot(0,"Background color used to highlight unicode characters.")),nx(((t,i)=>{const e=t.getColor(av),s=t.getColor(rx),n=s&&!s.isTransparent()?s:e;n&&i.addRule(`.monaco-editor .inputarea.ime-input { background-color: ${n}; }`)}));class iC extends Yk{constructor(t){super(),this._context=t,this._readConfig(),this._lastCursorModelPosition=new As(1,1),this._renderResult=null,this._activeLineNumber=1,this._context.addEventHandler(this)}_readConfig(){const t=this._context.configuration.options;this._lineHeight=t.get(66);const i=t.get(67);this._renderLineNumbers=i.renderType,this._renderCustomLineNumbers=i.renderFn,this._renderFinalNewline=t.get(94);const e=t.get(143);this._lineNumbersLeft=e.lineNumbersLeft,this._lineNumbersWidth=e.lineNumbersWidth}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(t){return this._readConfig(),!0}onCursorStateChanged(t){const i=t.selections[0].getPosition();this._lastCursorModelPosition=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(i);let e=!1;return this._activeLineNumber!==i.lineNumber&&(this._activeLineNumber=i.lineNumber,e=!0),2!==this._renderLineNumbers&&3!==this._renderLineNumbers||(e=!0),e}onFlushed(t){return!0}onLinesChanged(t){return!0}onLinesDeleted(t){return!0}onLinesInserted(t){return!0}onScrollChanged(t){return t.scrollTopChanged}onZonesChanged(t){return!0}_getLineRenderLineNumber(t){const i=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new As(t,1));if(1!==i.column)return"";const e=i.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(e);if(2===this._renderLineNumbers){const t=Math.abs(this._lastCursorModelPosition.lineNumber-e);return 0===t?''+e+"":String(t)}return 3===this._renderLineNumbers?this._lastCursorModelPosition.lineNumber===e||e%10==0?String(e):"":String(e)}prepareRender(t){if(0===this._renderLineNumbers)return void(this._renderResult=null);const i=St?this._lineHeight%2==0?" lh-even":" lh-odd":"",e=t.visibleRange.startLineNumber,s=t.visibleRange.endLineNumber,n=this._context.viewModel.getLineCount(),o=[];for(let t=e;t<=s;t++){const s=t-e,r=this._getLineRenderLineNumber(t);if(!r){o[s]="";continue}let h="";if(t===n&&0===this._context.viewModel.getLineLength(t)){if("off"===this._renderFinalNewline){o[s]="";continue}"dimmed"===this._renderFinalNewline&&(h=" dimmed-line-number")}t===this._activeLineNumber&&(h=" active-line-number"),o[s]=`

      ${r}
      `}this._renderResult=o}render(t,i){if(!this._renderResult)return"";const e=i-t;return e<0||e>=this._renderResult.length?"":this._renderResult[e]}}iC.CLASS_NAME="line-numbers",nx(((t,i)=>{const e=t.getColor(ux),s=t.getColor(Ax);s?i.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${s}; }`):e&&i.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${e.transparent(.4)}; }`)}));class eC extends Ty{constructor(t){super(t);const i=this._context.configuration.options,e=i.get(143);this._canUseLayerHinting=!i.get(32),this._contentLeft=e.contentLeft,this._glyphMarginLeft=e.glyphMarginLeft,this._glyphMarginWidth=e.glyphMarginWidth,this._domNode=tr(document.createElement("div")),this._domNode.setClassName(eC.OUTER_CLASS_NAME),this._domNode.setPosition("absolute"),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._glyphMarginBackgroundDomNode=tr(document.createElement("div")),this._glyphMarginBackgroundDomNode.setClassName(eC.CLASS_NAME),this._domNode.appendChild(this._glyphMarginBackgroundDomNode)}dispose(){super.dispose()}getDomNode(){return this._domNode}onConfigurationChanged(t){const i=this._context.configuration.options,e=i.get(143);return this._canUseLayerHinting=!i.get(32),this._contentLeft=e.contentLeft,this._glyphMarginLeft=e.glyphMarginLeft,this._glyphMarginWidth=e.glyphMarginWidth,!0}onScrollChanged(t){return super.onScrollChanged(t)||t.scrollTopChanged}prepareRender(t){}render(t){this._domNode.setLayerHinting(this._canUseLayerHinting),this._domNode.setContain("strict"),this._domNode.setTop(-(t.scrollTop-t.bigNumbersDelta));const i=Math.min(t.scrollHeight,1e6);this._domNode.setHeight(i),this._domNode.setWidth(this._contentLeft),this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft),this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth),this._glyphMarginBackgroundDomNode.setHeight(i)}}eC.CLASS_NAME="glyph-margin",eC.OUTER_CLASS_NAME="margin";const sC="monaco-mouse-cursor-text",nC=new class{constructor(){this._onDidChange=new de,this.onDidChange=this._onDidChange.event,this._enabled=!0}get enabled(){return this._enabled}enable(){this._enabled=!0,this._onDidChange.fire()}disable(){this._enabled=!1,this._onDidChange.fire()}},oC=dr("keybindingService");var rC=function(t,i){return function(e,s){i(e,s,t)}};class hC{constructor(t,i,e,s,n){this._context=t,this.modelLineNumber=i,this.distanceToModelLineStart=e,this.widthOfHiddenLineTextBefore=s,this.distanceToModelLineEnd=n,this._visibleTextAreaBrand=void 0,this.startPosition=null,this.endPosition=null,this.visibleTextareaStart=null,this.visibleTextareaEnd=null,this._previousPresentation=null}prepareRender(t){const i=new As(this.modelLineNumber,this.distanceToModelLineStart+1),e=new As(this.modelLineNumber,this._context.viewModel.model.getLineMaxColumn(this.modelLineNumber)-this.distanceToModelLineEnd);this.startPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i),this.endPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(e),this.startPosition.lineNumber===this.endPosition.lineNumber?(this.visibleTextareaStart=t.visibleRangeForPosition(this.startPosition),this.visibleTextareaEnd=t.visibleRangeForPosition(this.endPosition)):(this.visibleTextareaStart=null,this.visibleTextareaEnd=null)}definePresentation(t){return this._previousPresentation||(this._previousPresentation=t||{foreground:1,italic:!1,bold:!1,underline:!1,strikethrough:!1}),this._previousPresentation}}const cC=Uo;let aC=class extends Ty{constructor(t,i,e,s,n){super(t),this._keybindingService=s,this._instantiationService=n,this._primaryCursorPosition=new As(1,1),this._primaryCursorVisibleRange=null,this._viewController=i,this._visibleRangeProvider=e,this._scrollLeft=0,this._scrollTop=0;const o=this._context.configuration.options,r=o.get(143);this._setAccessibilityOptions(o),this._contentLeft=r.contentLeft,this._contentWidth=r.contentWidth,this._contentHeight=r.height,this._fontInfo=o.get(50),this._lineHeight=o.get(66),this._emptySelectionClipboard=o.get(37),this._copyWithSyntaxHighlighting=o.get(25),this._visibleTextArea=null,this._selections=[new Ls(1,1,1,1)],this._modelSelections=[new Ls(1,1,1,1)],this._lastRenderPosition=null,this.textArea=tr(document.createElement("textarea")),Ry.write(this.textArea,6),this.textArea.setClassName(`inputarea ${sC}`),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:h}=this._context.viewModel.model.getOptions();this.textArea.domNode.style.tabSize=h*this._fontInfo.spaceWidth+"px",this.textArea.setAttribute("autocorrect","off"),this.textArea.setAttribute("autocapitalize","off"),this.textArea.setAttribute("autocomplete","off"),this.textArea.setAttribute("spellcheck","false"),this.textArea.setAttribute("aria-label",this._getAriaLabel(o)),this.textArea.setAttribute("aria-required",o.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(o.get(123))),this.textArea.setAttribute("role","textbox"),this.textArea.setAttribute("aria-roledescription",ot(0,"editor")),this.textArea.setAttribute("aria-multiline","true"),this.textArea.setAttribute("aria-autocomplete",o.get(90)?"none":"both"),this._ensureReadOnlyAttribute(),this.textAreaCover=tr(document.createElement("div")),this.textAreaCover.setPosition("absolute");const c={getLineCount:()=>this._context.viewModel.getLineCount(),getLineMaxColumn:t=>this._context.viewModel.getLineMaxColumn(t),getValueInRange:(t,i)=>this._context.viewModel.getValueInRange(t,i),getValueLengthInRange:(t,i)=>this._context.viewModel.getValueLengthInRange(t,i),modifyPosition:(t,i)=>this._context.viewModel.modifyPosition(t,i)},a={getDataToCopy:()=>{const t=this._context.viewModel.getPlainTextToCopy(this._modelSelections,this._emptySelectionClipboard,xt),i=this._context.viewModel.model.getEOL(),e=this._emptySelectionClipboard&&1===this._modelSelections.length&&this._modelSelections[0].isEmpty(),s=Array.isArray(t)?t:null,n=Array.isArray(t)?t.join(i):t;let o,r=null;if(Hk.forceCopyWithSyntaxHighlighting||this._copyWithSyntaxHighlighting&&n.length<65536){const t=this._context.viewModel.getRichTextToCopy(this._modelSelections,this._emptySelectionClipboard);t&&(o=t.html,r=t.mode)}return{isFromEmptySelection:e,multicursorText:s,text:n,html:o,mode:r}},getScreenReaderContent:()=>{if(1===this._accessibilitySupport){const t=this._selections[0];if(Ct&&t.isEmpty()){const i=t.getStartPosition();let e=this._getWordBeforePosition(i);if(0===e.length&&(e=this._getCharacterBeforePosition(i)),e.length>0)return new $k(e,e.length,e.length,Ms.fromPositions(i),0)}const i=500;if(Ct&&!t.isEmpty()&&c.getValueLengthInRange(t,0)0)return new $k(e,s,s,Ms.fromPositions(i),0)}return $k.EMPTY}return Wk.fromEditorSelection(c,this._selections[0],this._accessibilityPageSize,0===this._accessibilitySupport)},deduceModelPosition:(t,i,e)=>this._context.viewModel.deduceModelPositionRelativeToViewPosition(t,i,e)},l=this._register(new Gk(this.textArea.domNode));this._textAreaInput=this._register(this._instantiationService.createInstance(qk,a,l,It,{isAndroid:Qo,isChrome:Ko,isFirefox:Uo,isSafari:Go})),this._register(this._textAreaInput.onKeyDown((t=>{this._viewController.emitKeyDown(t)}))),this._register(this._textAreaInput.onKeyUp((t=>{this._viewController.emitKeyUp(t)}))),this._register(this._textAreaInput.onPaste((t=>{let i=!1,e=null,s=null;t.metadata&&(i=this._emptySelectionClipboard&&!!t.metadata.isFromEmptySelection,e=void 0!==t.metadata.multicursorText?t.metadata.multicursorText:null,s=t.metadata.mode),this._viewController.paste(t.text,i,e,s)}))),this._register(this._textAreaInput.onCut((()=>{this._viewController.cut()}))),this._register(this._textAreaInput.onType((t=>{t.replacePrevCharCnt||t.replaceNextCharCnt||t.positionDelta?this._viewController.compositionType(t.text,t.replacePrevCharCnt,t.replaceNextCharCnt,t.positionDelta):this._viewController.type(t.text)}))),this._register(this._textAreaInput.onSelectionChangeRequest((t=>{this._viewController.setSelection(t)}))),this._register(this._textAreaInput.onCompositionStart((()=>{const t=this.textArea.domNode,i=this._modelSelections[0],{distanceToModelLineStart:e,widthOfHiddenTextBefore:s}=(()=>{const e=t.value.substring(0,Math.min(t.selectionStart,t.selectionEnd)),s=e.lastIndexOf("\n"),n=e.substring(s+1),o=n.lastIndexOf("\t"),r=n.length-o-1,h=i.getStartPosition(),c=Math.min(h.column-1,r),a=h.column-1-c,l=n.substring(0,n.length-c),{tabSize:u}=this._context.viewModel.model.getOptions(),d=function(t,i,e,s){if(0===i.length)return 0;const n=t.createElement("div");n.style.position="absolute",n.style.top="-50000px",n.style.width="50000px";const o=t.createElement("span");ir(o,e),o.style.whiteSpace="pre",o.style.tabSize=s*e.spaceWidth+"px",o.append(i),n.appendChild(o),t.body.appendChild(n);const r=o.offsetWidth;return t.body.removeChild(n),r}(this.textArea.domNode.ownerDocument,l,this._fontInfo,u);return{distanceToModelLineStart:a,widthOfHiddenTextBefore:d}})(),{distanceToModelLineEnd:n}=(()=>{const e=t.value.substring(Math.max(t.selectionStart,t.selectionEnd)),s=e.indexOf("\n"),n=-1===s?e:e.substring(0,s),o=n.indexOf("\t"),r=-1===o?n.length:n.length-o-1,h=i.getEndPosition(),c=Math.min(this._context.viewModel.model.getLineMaxColumn(h.lineNumber)-h.column,r);return{distanceToModelLineEnd:this._context.viewModel.model.getLineMaxColumn(h.lineNumber)-h.column-c}})();this._context.viewModel.revealRange("keyboard",!0,Ms.fromPositions(this._selections[0].getStartPosition()),0,1),this._visibleTextArea=new hC(this._context,i.startLineNumber,e,s,n),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render(),this.textArea.setClassName(`inputarea ${sC} ime-input`),this._viewController.compositionStart(),this._context.viewModel.onCompositionStart()}))),this._register(this._textAreaInput.onCompositionUpdate((()=>{this._visibleTextArea&&(this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render())}))),this._register(this._textAreaInput.onCompositionEnd((()=>{this._visibleTextArea=null,this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._render(),this.textArea.setClassName(`inputarea ${sC}`),this._viewController.compositionEnd(),this._context.viewModel.onCompositionEnd()}))),this._register(this._textAreaInput.onFocus((()=>{this._context.viewModel.setHasFocus(!0)}))),this._register(this._textAreaInput.onBlur((()=>{this._context.viewModel.setHasFocus(!1)}))),this._register(nC.onDidChange((()=>{this._ensureReadOnlyAttribute()})))}writeScreenReaderContent(t){this._textAreaInput.writeNativeTextAreaContent(t)}dispose(){super.dispose()}_getAndroidWordAtPosition(t){const i=this._context.viewModel.getLineContent(t.lineNumber),e=If('`~!@#$%^&*()-=+[{]}\\|;:",.<>/?');let s=!0,n=t.column,o=!0,r=t.column,h=0;for(;h<50&&(s||o);){if(s&&n<=1&&(s=!1),s){const t=i.charCodeAt(n-2);0!==e.get(t)?s=!1:n--}if(o&&r>i.length&&(o=!1),o){const t=i.charCodeAt(r-1);0!==e.get(t)?o=!1:r++}h++}return[i.substring(n-1,r-1),t.column-n]}_getWordBeforePosition(t){const i=this._context.viewModel.getLineContent(t.lineNumber),e=If(this._context.configuration.options.get(129));let s=t.column,n=0;for(;s>1;){const o=i.charCodeAt(s-2);if(0!==e.get(o)||n>50)return i.substring(s-1,t.column-1);n++,s--}return i.substring(0,t.column-1)}_getCharacterBeforePosition(t){if(t.column>1){const i=this._context.viewModel.getLineContent(t.lineNumber).charAt(t.column-2);if(!go(i.charCodeAt(0)))return i}return""}_getAriaLabel(t){var i,e,s;if(1===t.get(2)){const t=null===(i=this._keybindingService.lookupKeybinding("editor.action.toggleScreenReaderAccessibilityMode"))||void 0===i?void 0:i.getAriaLabel(),n=null===(e=this._keybindingService.lookupKeybinding("workbench.action.showCommands"))||void 0===e?void 0:e.getAriaLabel(),o=null===(s=this._keybindingService.lookupKeybinding("workbench.action.openGlobalKeybindings"))||void 0===s?void 0:s.getAriaLabel(),r=ot(0,"The editor is not accessible at this time.");return t?ot(0,"{0} To enable screen reader optimized mode, use {1}",r,t):n?ot(0,"{0} To enable screen reader optimized mode, open the quick pick with {1} and run the command Toggle Screen Reader Accessibility Mode, which is currently not triggerable via keyboard.",r,n):o?ot(0,"{0} Please assign a keybinding for the command Toggle Screen Reader Accessibility Mode by accessing the keybindings editor with {1} and run it.",r,o):r}return t.get(4)}_setAccessibilityOptions(t){this._accessibilitySupport=t.get(2);const i=t.get(3);this._accessibilityPageSize=2===this._accessibilitySupport&&i===_i.accessibilityPageSize.defaultValue?500:i;const e=t.get(143).wrappingColumn;if(-1!==e&&1!==this._accessibilitySupport){const i=t.get(50);this._textAreaWrapping=!0,this._textAreaWidth=Math.round(e*i.typicalHalfwidthCharacterWidth)}else this._textAreaWrapping=!1,this._textAreaWidth=cC?0:1}onConfigurationChanged(t){const i=this._context.configuration.options,e=i.get(143);this._setAccessibilityOptions(i),this._contentLeft=e.contentLeft,this._contentWidth=e.contentWidth,this._contentHeight=e.height,this._fontInfo=i.get(50),this._lineHeight=i.get(66),this._emptySelectionClipboard=i.get(37),this._copyWithSyntaxHighlighting=i.get(25),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:s}=this._context.viewModel.model.getOptions();return this.textArea.domNode.style.tabSize=s*this._fontInfo.spaceWidth+"px",this.textArea.setAttribute("aria-label",this._getAriaLabel(i)),this.textArea.setAttribute("aria-required",i.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(i.get(123))),(t.hasChanged(34)||t.hasChanged(90))&&this._ensureReadOnlyAttribute(),t.hasChanged(2)&&this._textAreaInput.writeNativeTextAreaContent("strategy changed"),!0}onCursorStateChanged(t){return this._selections=t.selections.slice(0),this._modelSelections=t.modelSelections.slice(0),this._textAreaInput.writeNativeTextAreaContent("selection changed"),!0}onDecorationsChanged(t){return!0}onFlushed(t){return!0}onLinesChanged(t){return!0}onLinesDeleted(t){return!0}onLinesInserted(t){return!0}onScrollChanged(t){return this._scrollLeft=t.scrollLeft,this._scrollTop=t.scrollTop,!0}onZonesChanged(t){return!0}isFocused(){return this._textAreaInput.isFocused()}focusTextArea(){this._textAreaInput.focusTextArea()}getLastRenderData(){return this._lastRenderPosition}setAriaOptions(t){t.activeDescendant?(this.textArea.setAttribute("aria-haspopup","true"),this.textArea.setAttribute("aria-autocomplete","list"),this.textArea.setAttribute("aria-activedescendant",t.activeDescendant)):(this.textArea.setAttribute("aria-haspopup","false"),this.textArea.setAttribute("aria-autocomplete","both"),this.textArea.removeAttribute("aria-activedescendant")),t.role&&this.textArea.setAttribute("role",t.role)}_ensureReadOnlyAttribute(){const t=this._context.configuration.options;!nC.enabled||t.get(34)&&t.get(90)?this.textArea.setAttribute("readonly","true"):this.textArea.removeAttribute("readonly")}prepareRender(t){var i;this._primaryCursorPosition=new As(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=t.visibleRangeForPosition(this._primaryCursorPosition),null===(i=this._visibleTextArea)||void 0===i||i.prepareRender(t)}render(t){this._textAreaInput.writeNativeTextAreaContent("render"),this._render()}_render(){var t;if(this._visibleTextArea){const t=this._visibleTextArea.visibleTextareaStart,i=this._visibleTextArea.visibleTextareaEnd,e=this._visibleTextArea.startPosition,s=this._visibleTextArea.endPosition;if(e&&s&&t&&i&&i.left>=this._scrollLeft&&t.left<=this._scrollLeft+this._contentWidth){const n=this._context.viewLayout.getVerticalOffsetForLineNumber(this._primaryCursorPosition.lineNumber)-this._scrollTop,o=this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));let r=this._visibleTextArea.widthOfHiddenLineTextBefore,h=this._contentLeft+t.left-this._scrollLeft,c=i.left-t.left+1;if(hthis._contentWidth&&(c=this._contentWidth);const a=this._context.viewModel.getViewLineData(e.lineNumber),l=a.tokens.findTokenIndexAtOffset(e.column-1),u=a.tokens.findTokenIndexAtOffset(s.column-1),d=this._visibleTextArea.definePresentation(l===u?a.tokens.getPresentation(l):null);this.textArea.domNode.scrollTop=o*this._lineHeight,this.textArea.domNode.scrollLeft=r,this._doRender({lastRenderPosition:null,top:n,left:h,width:c,height:this._lineHeight,useCover:!1,color:(Zs.getColorMap()||[])[d.foreground],italic:d.italic,bold:d.bold,underline:d.underline,strikethrough:d.strikethrough})}return}if(!this._primaryCursorVisibleRange)return void this._renderAtTopLeft();const i=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(ithis._contentLeft+this._contentWidth)return void this._renderAtTopLeft();const e=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;if(e<0||e>this._contentHeight)this._renderAtTopLeft();else if(Ct||2===this._accessibilitySupport){this._doRender({lastRenderPosition:this._primaryCursorPosition,top:e,left:this._textAreaWrapping?this._contentLeft:i,width:this._textAreaWidth,height:this._lineHeight,useCover:!1}),this.textArea.domNode.scrollLeft=this._primaryCursorVisibleRange.left;const s=null!==(t=this._textAreaInput.textAreaState.newlineCountBeforeSelection)&&void 0!==t?t:this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));this.textArea.domNode.scrollTop=s*this._lineHeight}else this._doRender({lastRenderPosition:this._primaryCursorPosition,top:e,left:this._textAreaWrapping?this._contentLeft:i,width:this._textAreaWidth,height:cC?0:1,useCover:!1})}_newlinecount(t){let i=0,e=-1;for(;e=t.indexOf("\n",e+1),-1!==e;)i++;return i}_renderAtTopLeft(){this._doRender({lastRenderPosition:null,top:0,left:0,width:this._textAreaWidth,height:cC?0:1,useCover:!0})}_doRender(t){this._lastRenderPosition=t.lastRenderPosition;const i=this.textArea,e=this.textAreaCover;ir(i,this._fontInfo),i.setTop(t.top),i.setLeft(t.left),i.setWidth(t.width),i.setHeight(t.height),i.setColor(t.color?lg.Format.CSS.formatHex(t.color):""),i.setFontStyle(t.italic?"italic":""),t.bold&&i.setFontWeight("bold"),i.setTextDecoration(`${t.underline?" underline":""}${t.strikethrough?" line-through":""}`),e.setTop(t.useCover?t.top:0),e.setLeft(t.useCover?t.left:0),e.setWidth(t.useCover?t.width:0),e.setHeight(t.useCover?t.height:0);const s=this._context.configuration.options;s.get(57)?e.setClassName("monaco-editor-background textAreaCover "+eC.OUTER_CLASS_NAME):0!==s.get(67).renderType?e.setClassName("monaco-editor-background textAreaCover "+iC.CLASS_NAME):e.setClassName("monaco-editor-background textAreaCover")}};function lC(t,i,e){let s=to(t);return-1===s&&(s=t.length),function(t,i,e){let s=0;for(let e=0;e=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([rC(3,oC),rC(4,ur)],aC);const uC=()=>!0,dC=()=>!1,fC=t=>" "===t||"\t"===t;class pC{static shouldRecreate(t){return t.hasChanged(143)||t.hasChanged(129)||t.hasChanged(37)||t.hasChanged(76)||t.hasChanged(78)||t.hasChanged(79)||t.hasChanged(6)||t.hasChanged(7)||t.hasChanged(11)||t.hasChanged(9)||t.hasChanged(10)||t.hasChanged(14)||t.hasChanged(127)||t.hasChanged(50)||t.hasChanged(90)}constructor(t,i,e,s){var n;this.languageConfigurationService=s,this._cursorMoveConfigurationBrand=void 0,this._languageId=t;const o=e.options,r=o.get(143),h=o.get(50);this.readOnly=o.get(90),this.tabSize=i.tabSize,this.indentSize=i.indentSize,this.insertSpaces=i.insertSpaces,this.stickyTabStops=o.get(115),this.lineHeight=h.lineHeight,this.typicalHalfwidthCharacterWidth=h.typicalHalfwidthCharacterWidth,this.pageSize=Math.max(1,Math.floor(r.height/this.lineHeight)-2),this.useTabStops=o.get(127),this.wordSeparators=o.get(129),this.emptySelectionClipboard=o.get(37),this.copyWithSyntaxHighlighting=o.get(25),this.multiCursorMergeOverlapping=o.get(76),this.multiCursorPaste=o.get(78),this.multiCursorLimit=o.get(79),this.autoClosingBrackets=o.get(6),this.autoClosingComments=o.get(7),this.autoClosingQuotes=o.get(11),this.autoClosingDelete=o.get(9),this.autoClosingOvertype=o.get(10),this.autoSurround=o.get(14),this.autoIndent=o.get(12),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:this._getShouldAutoClose(t,this.autoClosingQuotes,!0),comment:this._getShouldAutoClose(t,this.autoClosingComments,!1),bracket:this._getShouldAutoClose(t,this.autoClosingBrackets,!1)},this.autoClosingPairs=this.languageConfigurationService.getLanguageConfiguration(t).getAutoClosingPairs();const c=this.languageConfigurationService.getLanguageConfiguration(t).getSurroundingPairs();if(c)for(const t of c)this.surroundingPairs[t.open]=t.close;const a=this.languageConfigurationService.getLanguageConfiguration(t).comments;this.blockCommentStartToken=null!==(n=null==a?void 0:a.blockCommentStartToken)&&void 0!==n?n:null}get electricChars(){var t;if(!this._electricChars){this._electricChars={};const i=null===(t=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter)||void 0===t?void 0:t.getElectricCharacters();if(i)for(const t of i)this._electricChars[t]=!0}return this._electricChars}onElectricCharacter(t,i,e){const s=Nu(i,e-1),n=this.languageConfigurationService.getLanguageConfiguration(s.languageId).electricCharacter;return n?n.onElectricCharacter(t,s,e-s.firstCharOffset):null}normalizeIndentation(t){return lC(t,this.indentSize,this.insertSpaces)}_getShouldAutoClose(t,i,e){switch(i){case"beforeWhitespace":return fC;case"languageDefined":return this._getLanguageDefinedShouldAutoClose(t,e);case"always":return uC;case"never":return dC}}_getLanguageDefinedShouldAutoClose(t,i){const e=this.languageConfigurationService.getLanguageConfiguration(t).getAutoCloseBeforeSet(i);return t=>-1!==e.indexOf(t)}visibleColumnFromColumn(t,i){return Xy.visibleColumnFromColumn(t.getLineContent(i.lineNumber),i.column,this.tabSize)}columnFromVisibleColumn(t,i,e){const s=Xy.columnFromVisibleColumn(t.getLineContent(i),e,this.tabSize),n=t.getLineMinColumn(i);if(so?o:s}}class gC{static fromModelState(t){return new mC(t)}static fromViewState(t){return new wC(t)}static fromModelSelection(t){const i=Ls.liftSelection(t),e=new vC(Ms.fromPositions(i.getSelectionStart()),0,0,i.getPosition(),0);return gC.fromModelState(e)}static fromModelSelections(t){const i=[];for(let e=0,s=t.length;en,c=s>o,a=so)continue;if(ps)continue;if(f0&&s--,kC.columnSelect(t,i,e.fromViewLineNumber,e.fromViewVisualColumn,e.toViewLineNumber,s)}static columnSelectRight(t,i,e){let s=0;const n=Math.min(e.fromViewLineNumber,e.toViewLineNumber),o=Math.max(e.fromViewLineNumber,e.toViewLineNumber);for(let e=n;e<=o;e++){const n=i.getLineMaxColumn(e),o=t.visibleColumnFromColumn(i,new As(e,n));s=Math.max(s,o)}let r=e.toViewVisualColumn;return rt.getLineMinColumn(i.lineNumber))return i.delta(void 0,-xo(t.getLineContent(i.lineNumber),i.column-1));if(i.lineNumber>1){const e=i.lineNumber-1;return new As(e,t.getLineMaxColumn(e))}return i}static leftPositionAtomicSoftTabs(t,i,e){if(i.column<=t.getLineIndentColumn(i.lineNumber)){const s=t.getLineMinColumn(i.lineNumber),n=t.getLineContent(i.lineNumber),o=tk.atomicPosition(n,i.column-1,e,0);if(-1!==o&&o+1>=s)return new As(i.lineNumber,o+1)}return this.leftPosition(t,i)}static left(t,i,e){const s=t.stickyTabStops?MC.leftPositionAtomicSoftTabs(i,e,t.tabSize):MC.leftPosition(i,e);return new AC(s.lineNumber,s.column,0)}static moveLeft(t,i,e,s,n){let o,r;if(e.hasSelection()&&!s)o=e.selection.startLineNumber,r=e.selection.startColumn;else{const s=e.position.delta(void 0,-(n-1)),h=i.normalizePosition(MC.clipPositionColumn(s,i),0),c=MC.left(t,i,h);o=c.lineNumber,r=c.column}return e.move(s,o,r,0)}static clipPositionColumn(t,i){return new As(t.lineNumber,MC.clipRange(t.column,i.getLineMinColumn(t.lineNumber),i.getLineMaxColumn(t.lineNumber)))}static clipRange(t,i,e){return te?e:t}static rightPosition(t,i,e){return ea?(e=a,s=r?i.getLineMaxColumn(e):Math.min(i.getLineMaxColumn(e),s)):s=t.columnFromVisibleColumn(i,e,c),n=d?0:c-Xy.visibleColumnFromColumn(i.getLineContent(e),s,t.tabSize),void 0!==h){const t=new As(e,s),o=i.normalizePosition(t,h);n+=s-o.column,e=o.lineNumber,s=o.column}return new AC(e,s,n)}static down(t,i,e,s,n,o,r){return this.vertical(t,i,e,s,n,e+o,r,4)}static moveDown(t,i,e,s,n){let o,r;e.hasSelection()&&!s?(o=e.selection.endLineNumber,r=e.selection.endColumn):(o=e.position.lineNumber,r=e.position.column);let h,c=0;do{if(h=MC.down(t,i,o+c,r,e.leftoverVisibleColumns,n,!0),i.normalizePosition(new As(h.lineNumber,h.column),2).lineNumber>o)break}while(c++<10&&o+c1&&this._isBlankLine(i,n);)n--;for(;n>1&&!this._isBlankLine(i,n);)n--;return e.move(s,n,i.getLineMinColumn(n),0)}static moveToNextBlankLine(t,i,e,s){const n=i.getLineCount();let o=e.position.lineNumber;for(;o=l.length+1)return!1;const u=l.charAt(a.column-2),d=s.get(u);if(!d)return!1;if(yC(u)){if("never"===e)return!1}else if("never"===i)return!1;const f=l.charAt(a.column-1);let p=!1;for(const t of d)t.open===u&&t.close===f&&(p=!0);if(!p)return!1;if("auto"===t){let t=!1;for(let i=0,e=r.length;i1){const t=i.getLineContent(s.lineNumber),n=to(t);if(s.column<=(-1===n?t.length+1:n+1)){const t=e.visibleColumnFromColumn(i,s),n=Xy.prevIndentTabStop(t,e.indentSize),o=e.columnFromVisibleColumn(i,s.lineNumber,n);return new Ms(s.lineNumber,o,s.lineNumber,s.column)}}return Ms.fromPositions(LC.getPositionAfterDeleteLeft(s,i),s)}static getPositionAfterDeleteLeft(t,i){if(t.column>1){const e=function(t,i){if(0===t)return 0;const e=function(t,i){const e=new bo(i,t);let s=e.prevCodePoint();for(;No(s)||65039===s||8419===s;){if(0===e.offset)return;s=e.prevCodePoint()}if(!Fo(s))return;let n=e.offset;return n>0&&8205===e.prevCodePoint()&&(n=e.offset),n}(t,i);if(void 0!==e)return e;const s=new bo(i,t);return s.prevCodePoint(),s.offset}(t.column-1,i.getLineContent(t.lineNumber));return t.with(void 0,e+1)}if(t.lineNumber>1){const e=t.lineNumber-1;return new As(e,i.getLineMaxColumn(e))}return t}static cut(t,i,e){const s=[];let n=null;e.sort(((t,i)=>As.compare(t.getStartPosition(),i.getEndPosition())));for(let o=0,r=e.length;o1&&(null==n?void 0:n.endLineNumber)!==t.lineNumber?(e=t.lineNumber-1,h=i.getLineMaxColumn(t.lineNumber-1),c=t.lineNumber,a=i.getLineMaxColumn(t.lineNumber)):(e=t.lineNumber,h=1,c=t.lineNumber,a=i.getLineMaxColumn(t.lineNumber));const l=new Ms(e,h,c,a);n=l,s[o]=l.isEmpty()?null:new xC(l,"")}else s[o]=null;else s[o]=new xC(r,"")}return new bC(0,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}class FC{static _createWord(t,i,e,s,n){return{start:s,end:n,wordType:i,nextCharClass:e}}static _findPreviousWordOnLine(t,i,e){const s=i.getLineContent(e.lineNumber);return this._doFindPreviousWordOnLine(s,t,e)}static _doFindPreviousWordOnLine(t,i,e){let s=0;for(let n=e.column-2;n>=0;n--){const e=t.charCodeAt(n),o=i.get(e);if(0===o){if(2===s)return this._createWord(t,s,o,n+1,this._findEndOfWord(t,i,s,n+1));s=1}else if(2===o){if(1===s)return this._createWord(t,s,o,n+1,this._findEndOfWord(t,i,s,n+1));s=2}else if(1===o&&0!==s)return this._createWord(t,s,o,n+1,this._findEndOfWord(t,i,s,n+1))}return 0!==s?this._createWord(t,s,1,0,this._findEndOfWord(t,i,s,0)):null}static _findEndOfWord(t,i,e,s){const n=t.length;for(let o=s;o=0;n--){const s=t.charCodeAt(n),o=i.get(s);if(1===o)return n+1;if(1===e&&2===o)return n+1;if(2===e&&0===o)return n+1}return 0}static moveWordLeft(t,i,e,s){let n=e.lineNumber,o=e.column;1===o&&n>1&&(n-=1,o=i.getLineMaxColumn(n));let r=FC._findPreviousWordOnLine(t,i,new As(n,o));if(0===s)return new As(n,r?r.start+1:1);if(1===s)return r&&2===r.wordType&&r.end-r.start==1&&0===r.nextCharClass&&(r=FC._findPreviousWordOnLine(t,i,new As(n,r.start+1))),new As(n,r?r.start+1:1);if(3===s){for(;r&&2===r.wordType;)r=FC._findPreviousWordOnLine(t,i,new As(n,r.start+1));return new As(n,r?r.start+1:1)}return r&&o<=r.end+1&&(r=FC._findPreviousWordOnLine(t,i,new As(n,r.start+1))),new As(n,r?r.end+1:1)}static _moveWordPartLeft(t,i){const e=i.lineNumber,s=t.getLineMaxColumn(e);if(1===i.column)return e>1?new As(e-1,t.getLineMaxColumn(e-1)):i;const n=t.getLineContent(e);for(let t=i.column-1;t>1;t--){const i=n.charCodeAt(t-2),o=n.charCodeAt(t-1);if(95===i&&95!==o)return new As(e,t);if(45===i&&45!==o)return new As(e,t);if((co(i)||ho(i))&&ao(o))return new As(e,t);if(ao(i)&&ao(o)&&t+1=h.start+1&&(h=FC._findNextWordOnLine(t,i,new As(n,h.end+1))),o=h?h.start+1:i.getLineMaxColumn(n);return new As(n,o)}static _moveWordPartRight(t,i){const e=i.lineNumber,s=t.getLineMaxColumn(e);if(i.column===s)return e1?c=1:(h--,c=s.getLineMaxColumn(h)):(a&&c<=a.end+1&&(a=FC._findPreviousWordOnLine(e,s,new As(h,a.start+1))),a?c=a.end+1:c>1?c=1:(h--,c=s.getLineMaxColumn(h))),new Ms(h,c,r.lineNumber,r.column)}static deleteInsideWord(t,i,e){if(!e.isEmpty())return e;const s=new As(e.positionLineNumber,e.positionColumn);return this._deleteInsideWordWhitespace(i,s)||this._deleteInsideWordDetermineDeleteRange(t,i,s)}static _charAtIsWhitespace(t,i){const e=t.charCodeAt(i);return 32===e||9===e}static _deleteInsideWordWhitespace(t,i){const e=t.getLineContent(i.lineNumber),s=e.length;if(0===s)return null;let n=Math.max(i.column-2,0);if(!this._charAtIsWhitespace(e,n))return null;let o=Math.min(i.column-1,s-1);if(!this._charAtIsWhitespace(e,o))return null;for(;n>0&&this._charAtIsWhitespace(e,n-1);)n--;for(;o+11?new Ms(e.lineNumber-1,i.getLineMaxColumn(e.lineNumber-1),e.lineNumber,1):e.lineNumbert.start+1<=e.column&&e.column<=t.end+1,r=(t,i)=>(t=Math.min(t,e.column),i=Math.max(i,e.column),new Ms(e.lineNumber,t,e.lineNumber,i)),h=t=>{let i=t.start+1,e=t.end+1,o=!1;for(;e-11&&this._charAtIsWhitespace(s,i-2);)i--;return r(i,e)},c=FC._findPreviousWordOnLine(t,i,e);if(c&&o(c))return h(c);const a=FC._findNextWordOnLine(t,i,e);return a&&o(a)?h(a):c&&a?r(c.end+1,a.start+1):c?r(c.start+1,c.end+1):a?r(a.start+1,a.end+1):r(1,n+1)}static _deleteWordPartLeft(t,i){if(!i.isEmpty())return i;const e=i.getPosition(),s=FC._moveWordPartLeft(t,e);return new Ms(e.lineNumber,e.column,s.lineNumber,s.column)}static _findFirstNonWhitespaceChar(t,i){const e=t.length;for(let s=i;s=u.start+1&&(u=FC._findNextWordOnLine(e,s,new As(h,u.end+1))),u?c=u.start+1:cBoolean(t)))}class OC{static addCursorDown(t,i,e){const s=[];let n=0;for(let o=0,r=i.length;oi&&(e=i,s=t.model.getLineMaxColumn(e)),gC.fromModelState(new vC(new Ms(o.lineNumber,1,e,s),2,0,new As(e,s),0))}const h=i.modelState.selectionStart.getStartPosition().lineNumber;if(o.lineNumberh){const e=t.getLineCount();let s=r.lineNumber+1,n=1;return s>e&&(s=e,n=t.getLineMaxColumn(s)),gC.fromViewState(i.viewState.move(!0,s,n,0))}{const t=i.modelState.selectionStart.getEndPosition();return gC.fromModelState(i.modelState.move(!0,t.lineNumber,t.column,0))}}static word(t,i,e,s){const n=t.model.validatePosition(s);return gC.fromModelState(FC.word(t.cursorConfig,t.model,i.modelState,e,n))}static cancelSelection(t,i){if(!i.modelState.hasSelection())return new gC(i.modelState,i.viewState);const e=i.viewState.position.lineNumber,s=i.viewState.position.column;return gC.fromViewState(new vC(new Ms(e,s,e,s),0,0,new As(e,s),0))}static moveTo(t,i,e,s,n){if(e){if(1===i.modelState.selectionStartKind)return this.word(t,i,e,s);if(2===i.modelState.selectionStartKind)return this.line(t,i,e,s,n)}const o=t.model.validatePosition(s),r=n?t.coordinatesConverter.validateViewPosition(new As(n.lineNumber,n.column),o):t.coordinatesConverter.convertModelPositionToViewPosition(o);return gC.fromViewState(i.viewState.move(e,r.lineNumber,r.column,0))}static simpleMove(t,i,e,s,n,o){switch(e){case 0:return 4===o?this._moveHalfLineLeft(t,i,s):this._moveLeft(t,i,s,n);case 1:return 4===o?this._moveHalfLineRight(t,i,s):this._moveRight(t,i,s,n);case 2:return 2===o?this._moveUpByViewLines(t,i,s,n):this._moveUpByModelLines(t,i,s,n);case 3:return 2===o?this._moveDownByViewLines(t,i,s,n):this._moveDownByModelLines(t,i,s,n);case 4:return i.map(2===o?i=>gC.fromViewState(MC.moveToPrevBlankLine(t.cursorConfig,t,i.viewState,s)):i=>gC.fromModelState(MC.moveToPrevBlankLine(t.cursorConfig,t.model,i.modelState,s)));case 5:return i.map(2===o?i=>gC.fromViewState(MC.moveToNextBlankLine(t.cursorConfig,t,i.viewState,s)):i=>gC.fromModelState(MC.moveToNextBlankLine(t.cursorConfig,t.model,i.modelState,s)));case 6:return this._moveToViewMinColumn(t,i,s);case 7:return this._moveToViewFirstNonWhitespaceColumn(t,i,s);case 8:return this._moveToViewCenterColumn(t,i,s);case 9:return this._moveToViewMaxColumn(t,i,s);case 10:return this._moveToViewLastNonWhitespaceColumn(t,i,s);default:return null}}static viewportMove(t,i,e,s,n){const o=t.getCompletelyVisibleViewRange(),r=t.coordinatesConverter.convertViewRangeToModelRange(o);switch(e){case 11:{const e=this._firstLineNumberInRange(t.model,r,n),o=t.model.getLineFirstNonWhitespaceColumn(e);return[this._moveToModelPosition(t,i[0],s,e,o)]}case 13:{const e=this._lastLineNumberInRange(t.model,r,n),o=t.model.getLineFirstNonWhitespaceColumn(e);return[this._moveToModelPosition(t,i[0],s,e,o)]}case 12:{const e=Math.round((r.startLineNumber+r.endLineNumber)/2),n=t.model.getLineFirstNonWhitespaceColumn(e);return[this._moveToModelPosition(t,i[0],s,e,n)]}case 14:{const e=[];for(let n=0,r=i.length;ne.endLineNumber-1?e.endLineNumber-1:ngC.fromViewState(MC.moveLeft(t.cursorConfig,t,i.viewState,e,s))))}static _moveHalfLineLeft(t,i,e){const s=[];for(let n=0,o=i.length;ngC.fromViewState(MC.moveRight(t.cursorConfig,t,i.viewState,e,s))))}static _moveHalfLineRight(t,i,e){const s=[];for(let n=0,o=i.length;n1&&0===n.firstCharOffset){const t=of(i,e.startLineNumber-1);t.languageId===n.languageId&&(a=t.getLineContent())}const l=o.onEnter(t,a,h,c);if(!l)return null;const u=l.indentAction;let d=l.appendText;const f=l.removeText||0;d?u===Ru.Indent&&(d="\t"+d):d=u===Ru.Indent||u===Ru.IndentOutdent?"\t":"";let p=nf(i,e.startLineNumber,e.startColumn);return f&&(p=p.substring(0,p.length-f)),{indentAction:u,appendText:d,removeText:f,indentation:p}}!function(t){t.metadata={description:"Move cursor to a logical position in the view",args:[{name:"Cursor move argument object",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory logical position value providing where to move the cursor.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine',\n\t\t\t\t\t\t'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'\n\t\t\t\t\t\t'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'\n\t\t\t\t\t\t'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'line', 'wrappedLine', 'character', 'halfLine'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'select': If 'true' makes the selection. Default is 'false'.\n\t\t\t\t",constraint:function(t){if(!P(t))return!1;const i=t;return!(!B(i.to)||!H(i.select)&&!z(i.select)||!H(i.by)&&!B(i.by)||!H(i.value)&&!W(i.value))},schema:{type:"object",required:["to"],properties:{to:{type:"string",enum:["left","right","up","down","prevBlankLine","nextBlankLine","wrappedLineStart","wrappedLineEnd","wrappedLineColumnCenter","wrappedLineFirstNonWhitespaceCharacter","wrappedLineLastNonWhitespaceCharacter","viewPortTop","viewPortCenter","viewPortBottom","viewPortIfOutside"]},by:{type:"string",enum:["line","wrappedLine","character","halfLine"]},value:{type:"number",default:1},select:{type:"boolean",default:!1}}}}]},t.RawDirection={Left:"left",Right:"right",Up:"up",Down:"down",PrevBlankLine:"prevBlankLine",NextBlankLine:"nextBlankLine",WrappedLineStart:"wrappedLineStart",WrappedLineFirstNonWhitespaceCharacter:"wrappedLineFirstNonWhitespaceCharacter",WrappedLineColumnCenter:"wrappedLineColumnCenter",WrappedLineEnd:"wrappedLineEnd",WrappedLineLastNonWhitespaceCharacter:"wrappedLineLastNonWhitespaceCharacter",ViewPortTop:"viewPortTop",ViewPortCenter:"viewPortCenter",ViewPortBottom:"viewPortBottom",ViewPortIfOutside:"viewPortIfOutside"},t.RawUnit={Line:"line",WrappedLine:"wrappedLine",Character:"character",HalfLine:"halfLine"},t.parse=function(i){if(!i.to)return null;let e;switch(i.to){case t.RawDirection.Left:e=0;break;case t.RawDirection.Right:e=1;break;case t.RawDirection.Up:e=2;break;case t.RawDirection.Down:e=3;break;case t.RawDirection.PrevBlankLine:e=4;break;case t.RawDirection.NextBlankLine:e=5;break;case t.RawDirection.WrappedLineStart:e=6;break;case t.RawDirection.WrappedLineFirstNonWhitespaceCharacter:e=7;break;case t.RawDirection.WrappedLineColumnCenter:e=8;break;case t.RawDirection.WrappedLineEnd:e=9;break;case t.RawDirection.WrappedLineLastNonWhitespaceCharacter:e=10;break;case t.RawDirection.ViewPortTop:e=11;break;case t.RawDirection.ViewPortBottom:e=13;break;case t.RawDirection.ViewPortCenter:e=12;break;case t.RawDirection.ViewPortIfOutside:e=14;break;default:return null}let s=0;switch(i.by){case t.RawUnit.Line:s=1;break;case t.RawUnit.WrappedLine:s=2;break;case t.RawUnit.Character:s=3;break;case t.RawUnit.HalfLine:s=4}return{direction:e,unit:s,select:!!i.select,value:i.value||1}}}(IC||(IC={}));var NC;const BC=Object.create(null);function PC(t,i){if(i<=0)return"";BC[t]||(BC[t]=["",t]);const e=BC[t];for(let s=e.length;s<=i;s++)e[s]=e[s-1]+t;return e[i]}let $C=NC=class{static unshiftIndent(t,i,e,s,n){const o=Xy.visibleColumnFromColumn(t,i,e);if(n){const t=PC(" ",s);return PC(t,Xy.prevIndentTabStop(o,s)/s)}return PC("\t",Xy.prevRenderTabStop(o,e)/e)}static shiftIndent(t,i,e,s,n){const o=Xy.visibleColumnFromColumn(t,i,e);if(n){const t=PC(" ",s);return PC(t,Xy.nextIndentTabStop(o,s)/s)}return PC("\t",Xy.nextRenderTabStop(o,e)/e)}constructor(t,i,e){this._languageConfigurationService=e,this._opts=i,this._selection=t,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}_addEditOperation(t,i,e){this._useLastEditRangeForCursorEndPosition?t.addTrackedEditOperation(i,e):t.addEditOperation(i,e)}getEditOperations(t,i){const e=this._selection.startLineNumber;let s=this._selection.endLineNumber;1===this._selection.endColumn&&e!==s&&(s-=1);const{tabSize:n,indentSize:o,insertSpaces:r}=this._opts,h=e===s;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\s*$/.test(t.getLineContent(e))&&(this._useLastEditRangeForCursorEndPosition=!0);let c=0,a=0;for(let l=e;l<=s;l++,c=a){a=0;const s=t.getLineContent(l);let u,d=to(s);if((!this._opts.isUnshift||0!==s.length&&0!==d)&&(h||this._opts.isUnshift||0!==s.length)){if(-1===d&&(d=s.length),l>1&&Xy.visibleColumnFromColumn(s,d+1,n)%o!=0&&t.tokenization.isCheapToTokenize(l-1)){const i=_C(this._opts.autoIndent,t,new Ms(l-1,t.getLineMaxColumn(l-1),l-1,t.getLineMaxColumn(l-1)),this._languageConfigurationService);if(i){if(a=c,i.appendText)for(let t=0,e=i.appendText.length;t=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(2,Xd)],$C);class WC{constructor(t,i,e){this._range=t,this._charBeforeSelection=i,this._charAfterSelection=e}getEditOperations(t,i){i.addTrackedEditOperation(new Ms(this._range.startLineNumber,this._range.startColumn,this._range.startLineNumber,this._range.startColumn),this._charBeforeSelection),i.addTrackedEditOperation(new Ms(this._range.endLineNumber,this._range.endColumn,this._range.endLineNumber,this._range.endColumn),this._charAfterSelection)}computeCursorState(t,i){const e=i.getInverseEditOperations(),s=e[0].range,n=e[1].range;return new Ls(s.endLineNumber,s.endColumn,n.endLineNumber,n.endColumn-this._charAfterSelection.length)}}class jC{constructor(t,i,e){this._position=t,this._text=i,this._charAfter=e}getEditOperations(t,i){i.addTrackedEditOperation(new Ms(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column),this._text+this._charAfter)}computeCursorState(t,i){const e=i.getInverseEditOperations()[0].range;return new Ls(e.endLineNumber,e.startColumn,e.endLineNumber,e.endColumn-this._charAfter.length)}}function zC(t,i,e,s=!0,n){if(t<4)return null;const o=n.getLanguageConfiguration(i.tokenization.getLanguageId()).indentRulesSupport;if(!o)return null;if(e<=1)return{indentation:"",action:null};for(let t=e-1;t>0&&""===i.getLineContent(t);t--)if(1===t)return{indentation:"",action:null};const r=function(t,i,e){const s=t.tokenization.getLanguageIdAtPosition(i,0);if(i>1){let n,o=-1;for(n=i-1;n>=1;n--){if(t.tokenization.getLanguageIdAtPosition(n,0)!==s)return o;const i=t.getLineContent(n);if(!e.shouldIgnore(i)&&!/^\s+$/.test(i)&&""!==i)return n;o=n}}return-1}(i,e,o);if(r<0)return null;if(r<1)return{indentation:"",action:null};const h=i.getLineContent(r);if(o.shouldIncrease(h)||o.shouldIndentNextLine(h))return{indentation:io(h),action:Ru.Indent,line:r};if(o.shouldDecrease(h))return{indentation:io(h),action:null,line:r};{if(1===r)return{indentation:io(i.getLineContent(r)),action:null,line:r};const t=r-1,e=o.getIndentMetadata(i.getLineContent(t));if(!(3&e)&&4&e){let e=0;for(let s=t-1;s>0;s--)if(!o.shouldIndentNextLine(i.getLineContent(s))){e=s;break}return{indentation:io(i.getLineContent(e+1)),action:null,line:e+1}}if(s)return{indentation:io(i.getLineContent(r)),action:null,line:r};for(let t=r;t>0;t--){const e=i.getLineContent(t);if(o.shouldIncrease(e))return{indentation:io(e),action:Ru.Indent,line:t};if(o.shouldIndentNextLine(e)){let e=0;for(let s=t-1;s>0;s--)if(!o.shouldIndentNextLine(i.getLineContent(t))){e=s;break}return{indentation:io(i.getLineContent(e+1)),action:null,line:e+1}}if(o.shouldDecrease(e))return{indentation:io(e),action:null,line:t}}return{indentation:io(i.getLineContent(1)),action:null,line:1}}}function HC(t,i,e,s,n,o){if(t<4)return null;const r=o.getLanguageConfiguration(e);if(!r)return null;const h=o.getLanguageConfiguration(e).indentRulesSupport;if(!h)return null;const c=zC(t,i,s,void 0,o),a=i.getLineContent(s);if(c){const e=c.line;if(void 0!==e){let o=!0;for(let t=e;tt.getLineCount()?null:s.getIndentMetadata(t.getLineContent(i)):null}class UC{static indent(t,i,e){if(null===i||null===e)return[];const s=[];for(let i=0,n=e.length;i1){let s;for(s=e-1;s>=1&&!(eo(i.getLineContent(s))>=0);s--);if(s<1)return null;const o=i.getLineMaxColumn(s),r=_C(t.autoIndent,i,new Ms(s,o,s,o),t.languageConfigurationService);r&&(n=r.indentation+r.appendText)}return s&&(s===Ru.Indent&&(n=UC.shiftIndent(t,n)),s===Ru.Outdent&&(n=UC.unshiftIndent(t,n)),n=t.normalizeIndentation(n)),n||null}static _replaceJumpToNextIndent(t,i,e,s){let n="";const o=e.getStartPosition();if(t.insertSpaces){const e=t.visibleColumnFromColumn(i,o),s=t.indentSize,r=s-e%s;for(let t=0;tthis._compositionType(e,t,n,o,r,h)));return new bC(4,c,{shouldPushStackElementBefore:ZC(t,4),shouldPushStackElementAfter:!1})}static _compositionType(t,i,e,s,n,o){if(!i.isEmpty())return null;const r=i.getPosition(),h=Math.max(1,r.column-s),c=Math.min(t.getLineMaxColumn(r.lineNumber),r.column+n),a=new Ms(r.lineNumber,h,r.lineNumber,c);return t.getValueInRange(a)===e&&0===o?null:new DC(a,e,0,o)}static _typeCommand(t,i,e){return e?new SC(t,i,!0):new xC(t,i,!0)}static _enter(t,i,e,s){if(0===t.autoIndent)return UC._typeCommand(s,"\n",e);if(!i.tokenization.isCheapToTokenize(s.getStartPosition().lineNumber)||1===t.autoIndent){const n=io(i.getLineContent(s.startLineNumber)).substring(0,s.startColumn-1);return UC._typeCommand(s,"\n"+t.normalizeIndentation(n),e)}const n=_C(t.autoIndent,i,s,t.languageConfigurationService);if(n){if(n.indentAction===Ru.None)return UC._typeCommand(s,"\n"+t.normalizeIndentation(n.indentation+n.appendText),e);if(n.indentAction===Ru.Indent)return UC._typeCommand(s,"\n"+t.normalizeIndentation(n.indentation+n.appendText),e);if(n.indentAction===Ru.IndentOutdent){const i=t.normalizeIndentation(n.indentation),o=t.normalizeIndentation(n.indentation+n.appendText),r="\n"+o+"\n"+i;return e?new SC(s,r,!0):new DC(s,r,-1,o.length-i.length,!0)}if(n.indentAction===Ru.Outdent){const i=UC.unshiftIndent(t,n.indentation);return UC._typeCommand(s,"\n"+t.normalizeIndentation(i+n.appendText),e)}}const o=io(i.getLineContent(s.startLineNumber)).substring(0,s.startColumn-1);if(t.autoIndent>=4){const n=function(t,i,e,s,n){if(t<4)return null;i.tokenization.forceTokenization(e.startLineNumber);const o=i.tokenization.getLineTokens(e.startLineNumber),r=Nu(o,e.startColumn-1),h=r.getLineContent();let c,a,l=!1;r.firstCharOffset>0&&o.getLanguageId(0)!==r.languageId?(l=!0,c=h.substr(0,e.startColumn-1-r.firstCharOffset)):c=o.getLineContent().substring(0,e.startColumn-1),a=e.isEmpty()?h.substr(e.startColumn-1-r.firstCharOffset):of(i,e.endLineNumber,e.endColumn).getLineContent().substr(e.endColumn-1-r.firstCharOffset);const u=n.getLanguageConfiguration(r.languageId).indentRulesSupport;if(!u)return null;const d=c,f=io(c),p={tokenization:{getLineTokens:t=>i.tokenization.getLineTokens(t),getLanguageId:()=>i.getLanguageId(),getLanguageIdAtPosition:(t,e)=>i.getLanguageIdAtPosition(t,e)},getLineContent:t=>t===e.startLineNumber?d:i.getLineContent(t)},g=io(o.getLineContent()),m=zC(t,p,e.startLineNumber+1,void 0,n);if(!m){const t=l?g:f;return{beforeEnter:t,afterEnter:t}}let w=l?g:m.indentation;return m.action===Ru.Indent&&(w=s.shiftIndent(w)),u.shouldDecrease(a)&&(w=s.unshiftIndent(w)),{beforeEnter:l?g:f,afterEnter:w}}(t.autoIndent,i,s,{unshiftIndent:i=>UC.unshiftIndent(t,i),shiftIndent:i=>UC.shiftIndent(t,i),normalizeIndentation:i=>t.normalizeIndentation(i)},t.languageConfigurationService);if(n){let o=t.visibleColumnFromColumn(i,s.getEndPosition());const r=s.endColumn,h=to(i.getLineContent(s.endLineNumber));if(s=s.setEndPosition(s.endLineNumber,h>=0?Math.max(s.endColumn,h+1):i.getLineMaxColumn(s.endLineNumber)),e)return new SC(s,"\n"+t.normalizeIndentation(n.afterEnter),!0);{let i=0;return r<=h+1&&(t.insertSpaces||(o=Math.ceil(o/t.indentSize)),i=Math.min(o+1-t.normalizeIndentation(n.afterEnter).length-1,0)),new DC(s,"\n"+t.normalizeIndentation(n.afterEnter),0,i,!0)}}}return UC._typeCommand(s,"\n"+t.normalizeIndentation(o),e)}static _isAutoIndentType(t,i,e){if(t.autoIndent<4)return!1;for(let t=0,s=e.length;tUC.shiftIndent(t,i),unshiftIndent:i=>UC.unshiftIndent(t,i)},t.languageConfigurationService);if(null===o)return null;if(o!==t.normalizeIndentation(n)){const n=i.getLineFirstNonWhitespaceColumn(e.startLineNumber);return UC._typeCommand(new Ms(e.startLineNumber,1,e.endLineNumber,e.endColumn),0===n?t.normalizeIndentation(o)+s:t.normalizeIndentation(o)+i.getLineContent(e.startLineNumber).substring(n-1,e.startColumn-1)+s,!1)}return null}static _isAutoClosingOvertype(t,i,e,s,n){if("never"===t.autoClosingOvertype)return!1;if(!t.autoClosingPairs.autoClosingPairsCloseSingleChar.has(n))return!1;for(let o=0,r=e.length;o2?c.charCodeAt(h.column-2):0)&&a)return!1;if("auto"===t.autoClosingOvertype){let t=!1;for(let i=0,e=s.length;ii.startsWith(t.open))),r=n.some((t=>i.startsWith(t.close)));return!o&&r}static _findAutoClosingPairOpen(t,i,e,s){const n=t.autoClosingPairs.autoClosingPairsOpenByEnd.get(s);if(!n)return null;let o=null;for(const t of n)if(null===o||t.open.length>o.open.length){let n=!0;for(const o of e)if(i.getValueInRange(new Ms(o.lineNumber,o.column-t.open.length+1,o.lineNumber,o.column))+s!==t.open){n=!1;break}n&&(o=t)}return o}static _findContainedAutoClosingPair(t,i){if(i.open.length<=1)return null;const e=i.close.charAt(i.close.length-1),s=t.autoClosingPairs.autoClosingPairsCloseByEnd.get(e)||[];let n=null;for(const t of s)t.open!==i.open&&i.open.includes(t.open)&&i.close.endsWith(t.close)&&(!n||t.open.length>n.open.length)&&(n=t);return n}static _getAutoClosingPairClose(t,i,e,s,n){for(const t of e)if(!t.isEmpty())return null;const o=e.map((t=>{const i=t.getPosition();return n?{lineNumber:i.lineNumber,beforeColumn:i.column-s.length,afterColumn:i.column}:{lineNumber:i.lineNumber,beforeColumn:i.column,afterColumn:i.column}})),r=this._findAutoClosingPairOpen(t,i,o.map((t=>new As(t.lineNumber,t.beforeColumn))),s);if(!r)return null;let h,c;if(yC(s)?(h=t.autoClosingQuotes,c=t.shouldAutoCloseBefore.quote):t.blockCommentStartToken&&r.open.includes(t.blockCommentStartToken)?(h=t.autoClosingComments,c=t.shouldAutoCloseBefore.comment):(h=t.autoClosingBrackets,c=t.shouldAutoCloseBefore.bracket),"never"===h)return null;const a=this._findContainedAutoClosingPair(t,r),l=a?a.close:"";let u=!0;for(const e of o){const{lineNumber:n,beforeColumn:o,afterColumn:a}=e,d=i.getLineContent(n),f=d.substring(0,o-1),p=d.substring(a-1);if(p.startsWith(l)||(u=!1),p.length>0){const i=p.charAt(0);if(!UC._isBeforeClosingBrace(t,p)&&!c(i))return null}if(1===r.open.length&&("'"===s||'"'===s)&&"always"!==h){const i=If(t.wordSeparators);if(f.length>0){const t=f.charCodeAt(f.length-1);if(0===i.get(t))return null}}if(!i.tokenization.isCheapToTokenize(n))return null;i.tokenization.forceTokenization(n);const g=Nu(i.tokenization.getLineTokens(n),o-1);if(!r.shouldAutoClose(g,o-g.firstCharOffset))return null;const m=r.findNeutralCharacter();if(m){const t=i.tokenization.getTokenTypeIfInsertingCharacter(n,o,m);if(!r.isOK(t))return null}}return u?r.close.substring(0,r.close.length-l.length):r.close}static _runAutoClosingOpenCharType(t,i,e,s,n,o,r){const h=[];for(let t=0,i=s.length;tnew xC(new Ms(t.positionLineNumber,t.positionColumn,t.positionLineNumber,t.positionColumn+1),"",!1)));return new bC(4,t,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}const a=this._getAutoClosingPairClose(i,e,n,h,!0);return null!==a?this._runAutoClosingOpenCharType(t,i,e,n,h,!0,a):null}static typeWithInterceptors(t,i,e,s,n,o,r){if(!t&&"\n"===r){const t=[];for(let i=0,o=n.length;i{const e=t.get(fr).getFocusedCodeEditor();return!(!e||!e.hasTextFocus())&&this._runEditorCommand(t,e,i)})),t.addImplementation(1e3,"generic-dom-input-textarea",(()=>{const t=pl();return!!(t&&["input","textarea"].indexOf(t.tagName.toLowerCase())>=0)&&(this.runDOMCommand(t),!0)})),t.addImplementation(0,"generic-dom",((t,i)=>{const e=t.get(fr).getActiveCodeEditor();return!!e&&(e.focus(),this._runEditorCommand(t,e,i))}))}_runEditorCommand(t,i,e){return this.runEditorCommand(t,i,e)||!0}}!function(t){class i extends eS{constructor(t){super(t),this._inSelectionMode=t.inSelectionMode}runCoreEditorCommand(t,i){i.position&&(t.model.pushStackElement(),t.setCursorStates(i.source,3,[OC.moveTo(t,t.getPrimaryCursorState(),this._inSelectionMode,i.position,i.viewPosition)])&&2!==i.revealType&&t.revealPrimaryCursor(i.source,!0,!0))}}t.MoveTo=hu(new i({id:"_moveTo",inSelectionMode:!1,precondition:void 0})),t.MoveToSelect=hu(new i({id:"_moveToSelect",inSelectionMode:!0,precondition:void 0}));class e extends eS{runCoreEditorCommand(t,i){t.model.pushStackElement();const e=this._getColumnSelectResult(t,t.getPrimaryCursorState(),t.getCursorColumnSelectData(),i);null!==e&&(t.setCursorStates(i.source,3,e.viewStates.map((t=>gC.fromViewState(t)))),t.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:e.fromLineNumber,fromViewVisualColumn:e.fromVisualColumn,toViewLineNumber:e.toLineNumber,toViewVisualColumn:e.toVisualColumn}),e.reversed?t.revealTopMostCursor(i.source):t.revealBottomMostCursor(i.source))}}t.ColumnSelect=hu(new class extends e{constructor(){super({id:"columnSelect",precondition:void 0})}_getColumnSelectResult(t,i,e,s){if(void 0===s.position||void 0===s.viewPosition||void 0===s.mouseColumn)return null;const n=t.model.validatePosition(s.position),o=t.coordinatesConverter.validateViewPosition(new As(s.viewPosition.lineNumber,s.viewPosition.column),n);return kC.columnSelect(t.cursorConfig,t,s.doColumnSelect?e.fromViewLineNumber:o.lineNumber,s.doColumnSelect?e.fromViewVisualColumn:s.mouseColumn-1,o.lineNumber,s.mouseColumn-1)}}),t.CursorColumnSelectLeft=hu(new class extends e{constructor(){super({id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(t,i,e,s){return kC.columnSelectLeft(t.cursorConfig,t,e)}}),t.CursorColumnSelectRight=hu(new class extends e{constructor(){super({id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(t,i,e,s){return kC.columnSelectRight(t.cursorConfig,t,e)}});class s extends e{constructor(t){super(t),this._isPaged=t.isPaged}_getColumnSelectResult(t,i,e,s){return kC.columnSelectUp(t.cursorConfig,t,e,this._isPaged)}}t.CursorColumnSelectUp=hu(new s({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:3600,linux:{primary:0}}})),t.CursorColumnSelectPageUp=hu(new s({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:3595,linux:{primary:0}}}));class n extends e{constructor(t){super(t),this._isPaged=t.isPaged}_getColumnSelectResult(t,i,e,s){return kC.columnSelectDown(t.cursorConfig,t,e,this._isPaged)}}t.CursorColumnSelectDown=hu(new n({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:3602,linux:{primary:0}}})),t.CursorColumnSelectPageDown=hu(new n({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:3596,linux:{primary:0}}}));class o extends eS{constructor(){super({id:"cursorMove",precondition:void 0,metadata:IC.metadata})}runCoreEditorCommand(t,i){const e=IC.parse(i);e&&this._runCursorMove(t,i.source,e)}_runCursorMove(t,i,e){t.model.pushStackElement(),t.setCursorStates(i,3,o._move(t,t.getCursorStates(),e)),t.revealPrimaryCursor(i,!0)}static _move(t,i,e){const s=e.select,n=e.value;switch(e.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return OC.simpleMove(t,i,e.direction,s,n,e.unit);case 11:case 13:case 12:case 14:return OC.viewportMove(t,i,e.direction,s,n);default:return null}}}t.CursorMoveImpl=o,t.CursorMove=hu(new o);class r extends eS{constructor(t){super(t),this._staticArgs=t.args}runCoreEditorCommand(t,i){let e=this._staticArgs;-1===this._staticArgs.value&&(e={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:i.pageSize||t.cursorConfig.pageSize}),t.model.pushStackElement(),t.setCursorStates(i.source,3,OC.simpleMove(t,t.getCursorStates(),e.direction,e.select,e.value,e.unit)),t.revealPrimaryCursor(i.source,!0)}}t.CursorLeft=hu(new r({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),t.CursorLeftSelect=hu(new r({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:1039}})),t.CursorRight=hu(new r({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),t.CursorRightSelect=hu(new r({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:1041}})),t.CursorUp=hu(new r({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),t.CursorUpSelect=hu(new r({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),t.CursorPageUp=hu(new r({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:11}})),t.CursorPageUpSelect=hu(new r({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:1035}})),t.CursorDown=hu(new r({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),t.CursorDownSelect=hu(new r({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),t.CursorPageDown=hu(new r({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:12}})),t.CursorPageDownSelect=hu(new r({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:1036}})),t.CreateCursor=hu(new class extends eS{constructor(){super({id:"createCursor",precondition:void 0})}runCoreEditorCommand(t,i){if(!i.position)return;let e;e=i.wholeLine?OC.line(t,t.getPrimaryCursorState(),!1,i.position,i.viewPosition):OC.moveTo(t,t.getPrimaryCursorState(),!1,i.position,i.viewPosition);const s=t.getCursorStates();if(s.length>1){const n=e.modelState?e.modelState.position:null,o=e.viewState?e.viewState.position:null;for(let e=0,r=s.length;eo&&(n=o);const r=new Ms(n,1,n,t.model.getLineMaxColumn(n));let h=0;if(e.at)switch(e.at){case tS.RawAtArgument.Top:h=3;break;case tS.RawAtArgument.Center:h=1;break;case tS.RawAtArgument.Bottom:h=4}const c=t.coordinatesConverter.convertModelRangeToViewRange(r);t.revealRange(i.source,!1,c,h,0)}}),t.SelectAll=new class extends sS{constructor(){super(mu)}runDOMCommand(t){Uo&&(t.focus(),t.select()),t.ownerDocument.execCommand("selectAll")}runEditorCommand(t,i,e){const s=i._getViewModel();s&&this.runCoreEditorCommand(s,e)}runCoreEditorCommand(t,i){t.model.pushStackElement(),t.setCursorStates("keyboard",3,[OC.selectAll(t,t.getPrimaryCursorState())])}},t.SetSelection=hu(new class extends eS{constructor(){super({id:"setSelection",precondition:void 0})}runCoreEditorCommand(t,i){i.selection&&(t.model.pushStackElement(),t.setCursorStates(i.source,3,[gC.fromModelSelection(i.selection)]))}})}(iS||(iS={}));const nS=zr.and(YC.textInputFocus,YC.columnSelection);function oS(t,i){Ah.registerKeybindingRule({id:t,primary:i,when:nS,weight:1})}function rS(t){return t.register(),t}var hS,cS;oS(iS.CursorColumnSelectLeft.id,1039),oS(iS.CursorColumnSelectRight.id,1041),oS(iS.CursorColumnSelectUp.id,1040),oS(iS.CursorColumnSelectPageUp.id,1035),oS(iS.CursorColumnSelectDown.id,1042),oS(iS.CursorColumnSelectPageDown.id,1036),function(t){class i extends eu{runEditorCommand(t,i,e){const s=i._getViewModel();s&&this.runCoreEditingCommand(i,s,e||{})}}t.CoreEditingCommand=i,t.LineBreakInsert=hu(new class extends i{constructor(){super({id:"lineBreakInsert",precondition:YC.writable,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(t,i,e){t.pushUndoStop(),t.executeCommands(this.id,UC.lineBreakInsert(i.cursorConfig,i.model,i.getCursorStates().map((t=>t.modelState.selection))))}}),t.Outdent=hu(new class extends i{constructor(){super({id:"outdent",precondition:YC.writable,kbOpts:{weight:0,kbExpr:zr.and(YC.editorTextFocus,YC.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(t,i,e){t.pushUndoStop(),t.executeCommands(this.id,UC.outdent(i.cursorConfig,i.model,i.getCursorStates().map((t=>t.modelState.selection)))),t.pushUndoStop()}}),t.Tab=hu(new class extends i{constructor(){super({id:"tab",precondition:YC.writable,kbOpts:{weight:0,kbExpr:zr.and(YC.editorTextFocus,YC.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(t,i,e){t.pushUndoStop(),t.executeCommands(this.id,UC.tab(i.cursorConfig,i.model,i.getCursorStates().map((t=>t.modelState.selection)))),t.pushUndoStop()}}),t.DeleteLeft=hu(new class extends i{constructor(){super({id:"deleteLeft",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(t,i,e){const[s,n]=LC.deleteLeft(i.getPrevEditOperationType(),i.cursorConfig,i.model,i.getCursorStates().map((t=>t.modelState.selection)),i.getCursorAutoClosedCharacters());s&&t.pushUndoStop(),t.executeCommands(this.id,n),i.setPrevEditOperationType(2)}}),t.DeleteRight=hu(new class extends i{constructor(){super({id:"deleteRight",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(t,i,e){const[s,n]=LC.deleteRight(i.getPrevEditOperationType(),i.cursorConfig,i.model,i.getCursorStates().map((t=>t.modelState.selection)));s&&t.pushUndoStop(),t.executeCommands(this.id,n),i.setPrevEditOperationType(3)}}),t.Undo=new class extends sS{constructor(){super(pu)}runDOMCommand(t){t.ownerDocument.execCommand("undo")}runEditorCommand(t,i,e){if(i.hasModel()&&!0!==i.getOption(90))return i.getModel().undo()}},t.Redo=new class extends sS{constructor(){super(gu)}runDOMCommand(t){t.ownerDocument.execCommand("redo")}runEditorCommand(t,i,e){if(i.hasModel()&&!0!==i.getOption(90))return i.getModel().redo()}}}(hS||(hS={}));class aS extends Xl{constructor(t,i,e){super({id:t,precondition:void 0,metadata:e}),this._handlerId=i}runCommand(t,i){const e=t.get(fr).getFocusedCodeEditor();e&&e.trigger("keyboard",this._handlerId,i)}}function lS(t,i){rS(new aS("default:"+t,t)),rS(new aS(t,t,i))}lS("type",{description:"Type",args:[{name:"args",schema:{type:"object",required:["text"],properties:{text:{type:"string"}}}}]}),lS("replacePreviousChar"),lS("compositionType"),lS("compositionStart"),lS("compositionEnd"),lS("paste"),lS("cut");class uS{constructor(t,i,e,s){this.configuration=t,this.viewModel=i,this.userInputEvents=e,this.commandDelegate=s}paste(t,i,e,s){this.commandDelegate.paste(t,i,e,s)}type(t){this.commandDelegate.type(t)}compositionType(t,i,e,s){this.commandDelegate.compositionType(t,i,e,s)}compositionStart(){this.commandDelegate.startComposition()}compositionEnd(){this.commandDelegate.endComposition()}cut(){this.commandDelegate.cut()}setSelection(t){iS.SetSelection.runCoreEditorCommand(this.viewModel,{source:"keyboard",selection:t})}_validateViewColumn(t){const i=this.viewModel.getLineMinColumn(t.lineNumber);return t.column=4?this._selectAll():3===t.mouseDownCount?this._hasMulticursorModifier(t)?t.inSelectionMode?this._lastCursorLineSelectDrag(t.position,t.revealType):this._lastCursorLineSelect(t.position,t.revealType):t.inSelectionMode?this._lineSelectDrag(t.position,t.revealType):this._lineSelect(t.position,t.revealType):2===t.mouseDownCount?t.onInjectedText||(this._hasMulticursorModifier(t)?this._lastCursorWordSelect(t.position,t.revealType):t.inSelectionMode?this._wordSelectDrag(t.position,t.revealType):this._wordSelect(t.position,t.revealType)):this._hasMulticursorModifier(t)?this._hasNonMulticursorModifier(t)||(t.shiftKey?this._columnSelect(t.position,t.mouseColumn,!0):t.inSelectionMode?this._lastCursorMoveToSelect(t.position,t.revealType):this._createCursor(t.position,!1)):t.inSelectionMode?t.altKey||s?this._columnSelect(t.position,t.mouseColumn,!0):this._moveToSelect(t.position,t.revealType):this.moveTo(t.position,t.revealType)}_usualArgs(t,i){return t=this._validateViewColumn(t),{source:"mouse",position:this._convertViewToModelPosition(t),viewPosition:t,revealType:i}}moveTo(t,i){iS.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(t,i))}_moveToSelect(t,i){iS.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(t,i))}_columnSelect(t,i,e){t=this._validateViewColumn(t),iS.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(t),viewPosition:t,mouseColumn:i,doColumnSelect:e})}_createCursor(t,i){t=this._validateViewColumn(t),iS.CreateCursor.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(t),viewPosition:t,wholeLine:i})}_lastCursorMoveToSelect(t,i){iS.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(t,i))}_wordSelect(t,i){iS.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(t,i))}_wordSelectDrag(t,i){iS.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(t,i))}_lastCursorWordSelect(t,i){iS.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(t,i))}_lineSelect(t,i){iS.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(t,i))}_lineSelectDrag(t,i){iS.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(t,i))}_lastCursorLineSelect(t,i){iS.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(t,i))}_lastCursorLineSelectDrag(t,i){iS.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(t,i))}_selectAll(){iS.SelectAll.runCoreEditorCommand(this.viewModel,{source:"mouse"})}_convertViewToModelPosition(t){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(t)}emitKeyDown(t){this.userInputEvents.emitKeyDown(t)}emitKeyUp(t){this.userInputEvents.emitKeyUp(t)}emitContextMenu(t){this.userInputEvents.emitContextMenu(t)}emitMouseMove(t){this.userInputEvents.emitMouseMove(t)}emitMouseLeave(t){this.userInputEvents.emitMouseLeave(t)}emitMouseUp(t){this.userInputEvents.emitMouseUp(t)}emitMouseDown(t){this.userInputEvents.emitMouseDown(t)}emitMouseDrag(t){this.userInputEvents.emitMouseDrag(t)}emitMouseDrop(t){this.userInputEvents.emitMouseDrop(t)}emitMouseDropCanceled(){this.userInputEvents.emitMouseDropCanceled()}emitMouseWheel(t){this.userInputEvents.emitMouseWheel(t)}}class dS{constructor(t){this.onKeyDown=null,this.onKeyUp=null,this.onContextMenu=null,this.onMouseMove=null,this.onMouseLeave=null,this.onMouseDown=null,this.onMouseUp=null,this.onMouseDrag=null,this.onMouseDrop=null,this.onMouseDropCanceled=null,this.onMouseWheel=null,this._coordinatesConverter=t}emitKeyDown(t){var i;null===(i=this.onKeyDown)||void 0===i||i.call(this,t)}emitKeyUp(t){var i;null===(i=this.onKeyUp)||void 0===i||i.call(this,t)}emitContextMenu(t){var i;null===(i=this.onContextMenu)||void 0===i||i.call(this,this._convertViewToModelMouseEvent(t))}emitMouseMove(t){var i;null===(i=this.onMouseMove)||void 0===i||i.call(this,this._convertViewToModelMouseEvent(t))}emitMouseLeave(t){var i;null===(i=this.onMouseLeave)||void 0===i||i.call(this,this._convertViewToModelMouseEvent(t))}emitMouseDown(t){var i;null===(i=this.onMouseDown)||void 0===i||i.call(this,this._convertViewToModelMouseEvent(t))}emitMouseUp(t){var i;null===(i=this.onMouseUp)||void 0===i||i.call(this,this._convertViewToModelMouseEvent(t))}emitMouseDrag(t){var i;null===(i=this.onMouseDrag)||void 0===i||i.call(this,this._convertViewToModelMouseEvent(t))}emitMouseDrop(t){var i;null===(i=this.onMouseDrop)||void 0===i||i.call(this,this._convertViewToModelMouseEvent(t))}emitMouseDropCanceled(){var t;null===(t=this.onMouseDropCanceled)||void 0===t||t.call(this)}emitMouseWheel(t){var i;null===(i=this.onMouseWheel)||void 0===i||i.call(this,t)}_convertViewToModelMouseEvent(t){return t.target?{event:t.event,target:this._convertViewToModelMouseTarget(t.target)}:t}_convertViewToModelMouseTarget(t){return dS.convertViewToModelMouseTarget(t,this._coordinatesConverter)}static convertViewToModelMouseTarget(t,i){const e={...t};return e.position&&(e.position=i.convertViewPositionToModelPosition(e.position)),e.range&&(e.range=i.convertViewRangeToModelRange(e.range)),5!==e.type&&8!==e.type||(e.detail=this.convertViewToModelViewZoneData(e.detail,i)),e}static convertViewToModelViewZoneData(t,i){return{viewZoneId:t.viewZoneId,positionBefore:t.positionBefore?i.convertViewPositionToModelPosition(t.positionBefore):t.positionBefore,positionAfter:t.positionAfter?i.convertViewPositionToModelPosition(t.positionAfter):t.positionAfter,position:i.convertViewPositionToModelPosition(t.position),afterLineNumber:i.convertViewPositionToModelPosition(new As(t.afterLineNumber,1)).lineNumber}}}class fS{constructor(t){this._createLine=t,this._set(1,[])}flush(){this._set(1,[])}_set(t,i){this._lines=i,this._rendLineNumberStart=t}_get(){return{rendLineNumberStart:this._rendLineNumberStart,lines:this._lines}}getStartLineNumber(){return this._rendLineNumberStart}getEndLineNumber(){return this._rendLineNumberStart+this._lines.length-1}getCount(){return this._lines.length}getLine(t){const i=t-this._rendLineNumberStart;if(i<0||i>=this._lines.length)throw new Ki("Illegal value for lineNumber");return this._lines[i]}onLinesDeleted(t,i){if(0===this.getCount())return null;const e=this.getStartLineNumber(),s=this.getEndLineNumber();if(is)return null;let n=0,o=0;for(let r=e;r<=s;r++)t<=r&&r<=i&&(0===o?(n=r-this._rendLineNumberStart,o=1):o++);if(t=s&&i<=n&&(this._lines[i-this._rendLineNumberStart].onContentChanged(),o=!0);return o}onLinesInserted(t,i){if(0===this.getCount())return null;const e=i-t+1,s=this.getStartLineNumber(),n=this.getEndLineNumber();if(t<=s)return this._rendLineNumberStart+=e,null;if(t>n)return null;if(e+t>n)return this._lines.splice(t-this._rendLineNumberStart,n-t+1);const o=[];for(let t=0;te)continue;const r=Math.max(i,o.fromLineNumber),h=Math.min(e,o.toLineNumber);for(let t=r;t<=h;t++)this._lines[t-this._rendLineNumberStart].onTokensChanged(),s=!0}return s}}class pS{constructor(t){this._host=t,this.domNode=this._createDomNode(),this._linesCollection=new fS((()=>this._host.createVisibleLine()))}_createDomNode(){const t=tr(document.createElement("div"));return t.setClassName("view-layer"),t.setPosition("absolute"),t.domNode.setAttribute("role","presentation"),t.domNode.setAttribute("aria-hidden","true"),t}onConfigurationChanged(t){return!!t.hasChanged(143)}onFlushed(t){return this._linesCollection.flush(),!0}onLinesChanged(t){return this._linesCollection.onLinesChanged(t.fromLineNumber,t.count)}onLinesDeleted(t){const i=this._linesCollection.onLinesDeleted(t.fromLineNumber,t.toLineNumber);if(i)for(let t=0,e=i.length;ti){const t=i,o=Math.min(e,n.rendLineNumberStart-1);t<=o&&(this._insertLinesBefore(n,t,o,s,i),n.linesLength+=o-t+1)}else if(n.rendLineNumberStart0&&(this._removeLinesBefore(n,t),n.linesLength-=t)}if(n.rendLineNumberStart=i,n.rendLineNumberStart+n.linesLength-1e){const t=Math.max(0,e-n.rendLineNumberStart+1),i=n.linesLength-1-t+1;i>0&&(this._removeLinesAfter(n,i),n.linesLength-=i)}return this._finishRendering(n,!1,s),n}_renderUntouchedLines(t,i,e,s,n){const o=t.rendLineNumberStart,r=t.lines;for(let t=i;t<=e;t++){const i=o+t;r[t].layoutLine(i,s[i-n])}}_insertLinesBefore(t,i,e,s,n){const o=[];let r=0;for(let t=i;t<=e;t++)o[r++]=this.host.createVisibleLine();t.lines=o.concat(t.lines)}_removeLinesBefore(t,i){for(let e=0;e=0;i--)s[i]&&(t.lines[i].setDomNode(o),o=o.previousSibling)}_finishRenderingInvalidLines(t,i,e){const s=document.createElement("div");gS._ttPolicy&&(i=gS._ttPolicy.createHTML(i)),s.innerHTML=i;for(let i=0;it}),gS._sb=new td(1e5);class mS extends Ty{constructor(t){super(t),this._visibleLines=new pS(this),this.domNode=this._visibleLines.domNode;const i=this._context.configuration.options.get(50);ir(this.domNode,i),this._dynamicOverlays=[],this._isFocused=!1,this.domNode.setClassName("view-overlays")}shouldRender(){if(super.shouldRender())return!0;for(let t=0,i=this._dynamicOverlays.length;tt.shouldRender()));for(let e=0,s=i.length;e'),s.appendString(n),s.appendString(""),!0)}layoutLine(t,i){this._domNode&&(this._domNode.setTop(i),this._domNode.setHeight(this._lineHeight))}}class vS extends mS{constructor(t){super(t);const i=this._context.configuration.options.get(143);this._contentWidth=i.contentWidth,this.domNode.setHeight(0)}onConfigurationChanged(t){const i=this._context.configuration.options.get(143);return this._contentWidth=i.contentWidth,super.onConfigurationChanged(t)||!0}onScrollChanged(t){return super.onScrollChanged(t)||t.scrollWidthChanged}_viewOverlaysRender(t){super._viewOverlaysRender(t),this.domNode.setWidth(Math.max(t.scrollWidth,this._contentWidth))}}class bS extends mS{constructor(t){super(t);const i=this._context.configuration.options,e=i.get(143);this._contentLeft=e.contentLeft,this.domNode.setClassName("margin-view-overlays"),this.domNode.setWidth(1),ir(this.domNode,i.get(50))}onConfigurationChanged(t){const i=this._context.configuration.options;ir(this.domNode,i.get(50));const e=i.get(143);return this._contentLeft=e.contentLeft,super.onConfigurationChanged(t)||!0}onScrollChanged(t){return super.onScrollChanged(t)||t.scrollHeightChanged}_viewOverlaysRender(t){super._viewOverlaysRender(t);const i=Math.min(t.scrollHeight,1e6);this.domNode.setHeight(i),this.domNode.setWidth(this._contentLeft)}}class yS extends Ty{constructor(t,i){super(t),this._viewDomNode=i,this._widgets={},this.domNode=tr(document.createElement("div")),Ry.write(this.domNode,1),this.domNode.setClassName("contentWidgets"),this.domNode.setPosition("absolute"),this.domNode.setTop(0),this.overflowingContentWidgetsDomNode=tr(document.createElement("div")),Ry.write(this.overflowingContentWidgetsDomNode,2),this.overflowingContentWidgetsDomNode.setClassName("overflowingContentWidgets")}dispose(){super.dispose(),this._widgets={}}onConfigurationChanged(t){const i=Object.keys(this._widgets);for(const e of i)this._widgets[e].onConfigurationChanged(t);return!0}onDecorationsChanged(t){return!0}onFlushed(t){return!0}onLineMappingChanged(t){return this._updateAnchorsViewPositions(),!0}onLinesChanged(t){return this._updateAnchorsViewPositions(),!0}onLinesDeleted(t){return this._updateAnchorsViewPositions(),!0}onLinesInserted(t){return this._updateAnchorsViewPositions(),!0}onScrollChanged(t){return!0}onZonesChanged(t){return!0}_updateAnchorsViewPositions(){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].updateAnchorViewPosition()}addWidget(t){const i=new kS(this._context,this._viewDomNode,t);this._widgets[i.id]=i,i.allowEditorOverflow?this.overflowingContentWidgetsDomNode.appendChild(i.domNode):this.domNode.appendChild(i.domNode),this.setShouldRender()}setWidgetPosition(t,i,e,s,n){this._widgets[t.getId()].setPosition(i,e,s,n),this.setShouldRender()}removeWidget(t){const i=t.getId();if(this._widgets.hasOwnProperty(i)){const t=this._widgets[i];delete this._widgets[i];const e=t.domNode.domNode;e.parentNode.removeChild(e),e.removeAttribute("monaco-visible-content-widget"),this.setShouldRender()}}shouldSuppressMouseDownOnWidget(t){return!!this._widgets.hasOwnProperty(t)&&this._widgets[t].suppressMouseDown}onBeforeRender(t){const i=Object.keys(this._widgets);for(const e of i)this._widgets[e].onBeforeRender(t)}prepareRender(t){const i=Object.keys(this._widgets);for(const e of i)this._widgets[e].prepareRender(t)}render(t){const i=Object.keys(this._widgets);for(const e of i)this._widgets[e].render(t)}}class kS{constructor(t,i,e){this._primaryAnchor=new xS(null,null),this._secondaryAnchor=new xS(null,null),this._context=t,this._viewDomNode=i,this._actual=e,this.domNode=tr(this._actual.getDomNode()),this.id=this._actual.getId(),this.allowEditorOverflow=this._actual.allowEditorOverflow||!1,this.suppressMouseDown=this._actual.suppressMouseDown||!1;const s=this._context.configuration.options,n=s.get(143);this._fixedOverflowWidgets=s.get(42),this._contentWidth=n.contentWidth,this._contentLeft=n.contentLeft,this._lineHeight=s.get(66),this._affinity=null,this._preference=[],this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1,this._maxWidth=this._getMaxWidth(),this._isVisible=!1,this._renderData=null,this.domNode.setPosition(this._fixedOverflowWidgets&&this.allowEditorOverflow?"fixed":"absolute"),this.domNode.setDisplay("none"),this.domNode.setVisibility("hidden"),this.domNode.setAttribute("widgetId",this.id),this.domNode.setMaxWidth(this._maxWidth)}onConfigurationChanged(t){const i=this._context.configuration.options;if(this._lineHeight=i.get(66),t.hasChanged(143)){const t=i.get(143);this._contentLeft=t.contentLeft,this._contentWidth=t.contentWidth,this._maxWidth=this._getMaxWidth()}}updateAnchorViewPosition(){this._setPosition(this._affinity,this._primaryAnchor.modelPosition,this._secondaryAnchor.modelPosition)}_setPosition(t,i,e){function s(t,i,e){if(!t)return new xS(null,null);const s=i.model.validatePosition(t);if(i.coordinatesConverter.modelPositionIsVisible(s)){const n=i.coordinatesConverter.convertModelPositionToViewPosition(s,null!=e?e:void 0);return new xS(t,n)}return new xS(t,null)}this._affinity=t,this._primaryAnchor=s(i,this._context.viewModel,this._affinity),this._secondaryAnchor=s(e,this._context.viewModel,this._affinity)}_getMaxWidth(){const t=this.domNode.domNode.ownerDocument,i=t.defaultView;return this.allowEditorOverflow?(null==i?void 0:i.innerWidth)||t.documentElement.offsetWidth||t.body.offsetWidth:this._contentWidth}setPosition(t,i,e,s){this._setPosition(s,t,i),this._preference=e,this.domNode.setDisplay(this._primaryAnchor.viewPosition&&this._preference&&this._preference.length>0?"block":"none"),this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1}_layoutBoxInViewport(t,i,e,s){const n=t.top,o=t.top+t.height;let r=t.left;return r+i>s.scrollLeft+s.viewportWidth&&(r=s.scrollLeft+s.viewportWidth-i),r=e,aboveTop:n-e,fitsBelow:s.viewportHeight-o>=e,belowTop:o,left:r}}_layoutHorizontalSegmentInPage(t,i,e,s){var n;const o=Math.max(15,i.left-s),r=Math.min(i.left+i.width+s,t.width-15),h=this._viewDomNode.domNode.ownerDocument.defaultView;let c=i.left+e-(null!==(n=null==h?void 0:h.scrollX)&&void 0!==n?n:0);if(c+s>r){const t=c-(r-s);c-=t,e-=t}if(c=22,w=d+e<=f.height-22;return this._fixedOverflowWidgets?{fitsAbove:m,aboveTop:Math.max(u,22),fitsBelow:w,belowTop:d,left:g}:{fitsAbove:m,aboveTop:r,fitsBelow:w,belowTop:h,left:p}}_prepareRenderWidgetAtExactPositionOverflowing(t){return new CS(t.top,t.left+this._contentLeft)}_getAnchorsCoordinates(t){var i,e;return{primary:s(this._primaryAnchor.viewPosition,this._affinity,this._lineHeight),secondary:s((null===(i=this._secondaryAnchor.viewPosition)||void 0===i?void 0:i.lineNumber)===(null===(e=this._primaryAnchor.viewPosition)||void 0===e?void 0:e.lineNumber)?this._secondaryAnchor.viewPosition:null,this._affinity,this._lineHeight)};function s(i,e,s){if(!i)return null;const n=t.visibleRangeForPosition(i);if(!n)return null;const o=1===i.column&&3===e?0:n.left,r=t.getVerticalOffsetForLineNumber(i.lineNumber)-t.scrollTop;return new SS(r,o,s)}}_reduceAnchorCoordinates(t,i,e){if(!i)return t;const s=this._context.configuration.options.get(50);let n=i.left;return n=nt.endLineNumber||this.domNode.setMaxWidth(this._maxWidth))}prepareRender(t){this._renderData=this._prepareRenderWidget(t)}render(t){if(!this._renderData)return this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,this.domNode.setVisibility("hidden")),void("function"==typeof this._actual.afterRender&&DS(this._actual.afterRender,this._actual,null));this.allowEditorOverflow?(this.domNode.setTop(this._renderData.coordinate.top),this.domNode.setLeft(this._renderData.coordinate.left)):(this.domNode.setTop(this._renderData.coordinate.top+t.scrollTop-t.bigNumbersDelta),this.domNode.setLeft(this._renderData.coordinate.left)),this._isVisible||(this.domNode.setVisibility("inherit"),this.domNode.setAttribute("monaco-visible-content-widget","true"),this._isVisible=!0),"function"==typeof this._actual.afterRender&&DS(this._actual.afterRender,this._actual,this._renderData.position)}}class xS{constructor(t,i){this.modelPosition=t,this.viewPosition=i}}class CS{constructor(t,i){this.top=t,this.left=i,this._coordinateBrand=void 0}}class SS{constructor(t,i,e){this.top=t,this.left=i,this.height=e,this._anchorCoordinateBrand=void 0}}function DS(t,i,...e){try{return t.call(i,...e)}catch(t){return null}}class ES extends Yk{constructor(t){super(),this._context=t;const i=this._context.configuration.options,e=i.get(143);this._lineHeight=i.get(66),this._renderLineHighlight=i.get(95),this._renderLineHighlightOnlyWhenFocus=i.get(96),this._contentLeft=e.contentLeft,this._contentWidth=e.contentWidth,this._selectionIsEmpty=!0,this._focused=!1,this._cursorLineNumbers=[1],this._selections=[new Ls(1,1,1,1)],this._renderData=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}_readFromSelections(){let t=!1;const i=this._selections.map((t=>t.positionLineNumber));i.sort(((t,i)=>t-i)),l(this._cursorLineNumbers,i)||(this._cursorLineNumbers=i,t=!0);const e=this._selections.every((t=>t.isEmpty()));return this._selectionIsEmpty!==e&&(this._selectionIsEmpty=e,t=!0),t}onThemeChanged(t){return this._readFromSelections()}onConfigurationChanged(t){const i=this._context.configuration.options,e=i.get(143);return this._lineHeight=i.get(66),this._renderLineHighlight=i.get(95),this._renderLineHighlightOnlyWhenFocus=i.get(96),this._contentLeft=e.contentLeft,this._contentWidth=e.contentWidth,!0}onCursorStateChanged(t){return this._selections=t.selections,this._readFromSelections()}onFlushed(t){return!0}onLinesDeleted(t){return!0}onLinesInserted(t){return!0}onScrollChanged(t){return t.scrollWidthChanged||t.scrollTopChanged}onZonesChanged(t){return!0}onFocusChanged(t){return!!this._renderLineHighlightOnlyWhenFocus&&(this._focused=t.isFocused,!0)}prepareRender(t){if(!this._shouldRenderThis())return void(this._renderData=null);const i=this._renderOne(t),e=t.visibleRange.startLineNumber,s=t.visibleRange.endLineNumber,n=this._cursorLineNumbers.length;let o=0;const r=[];for(let t=e;t<=s;t++){const s=t-e;for(;o=this._renderData.length?"":this._renderData[e]}_shouldRenderInMargin(){return("gutter"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}_shouldRenderInContent(){return("line"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}class AS extends ES{_renderOne(t){return`
      `}_shouldRenderThis(){return this._shouldRenderInContent()}_shouldRenderOther(){return this._shouldRenderInMargin()}}class MS extends ES{_renderOne(t){return`
      `}_shouldRenderThis(){return!0}_shouldRenderOther(){return this._shouldRenderInContent()}}nx(((t,i)=>{const e=t.getColor(rx);if(e&&(i.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${e}; }`),i.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${e}; border: none; }`)),!e||e.isTransparent()||t.defines(hx)){const e=t.getColor(hx);e&&(i.addRule(`.monaco-editor .view-overlays .current-line { border: 2px solid ${e}; }`),i.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid ${e}; }`),zy(t.type)&&(i.addRule(".monaco-editor .view-overlays .current-line { border-width: 1px; }"),i.addRule(".monaco-editor .margin-view-overlays .current-line-margin { border-width: 1px; }")))}}));class LS extends Yk{constructor(t){super(),this._context=t;const i=this._context.configuration.options;this._lineHeight=i.get(66),this._typicalHalfwidthCharacterWidth=i.get(50).typicalHalfwidthCharacterWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(t){const i=this._context.configuration.options;return this._lineHeight=i.get(66),this._typicalHalfwidthCharacterWidth=i.get(50).typicalHalfwidthCharacterWidth,!0}onDecorationsChanged(t){return!0}onFlushed(t){return!0}onLinesChanged(t){return!0}onLinesDeleted(t){return!0}onLinesInserted(t){return!0}onScrollChanged(t){return t.scrollTopChanged||t.scrollWidthChanged}onZonesChanged(t){return!0}prepareRender(t){const i=t.getDecorationsInViewport();let e=[],s=0;for(let t=0,n=i.length;t{if(t.options.zIndexi.options.zIndex)return 1;const e=t.options.className,s=i.options.className;return es?1:Ms.compareRangesUsingStarts(t.range,i.range)}));const n=t.visibleRange.startLineNumber,o=t.visibleRange.endLineNumber,r=[];for(let t=n;t<=o;t++)r[t-n]="";this._renderWholeLineDecorations(t,e,r),this._renderNormalDecorations(t,e,r),this._renderResult=r}_renderWholeLineDecorations(t,i,e){const s=String(this._lineHeight),n=t.visibleRange.startLineNumber,o=t.visibleRange.endLineNumber;for(let t=0,r=i.length;t',c=Math.max(r.range.startLineNumber,n),a=Math.min(r.range.endLineNumber,o);for(let t=c;t<=a;t++)e[t-n]+=h}}_renderNormalDecorations(t,i,e){var s;const n=String(this._lineHeight),o=t.visibleRange.startLineNumber;let r=null,h=!1,c=null,a=!1;for(let l=0,u=i.length;l';h[a]+=l}}}render(t,i){if(!this._renderResult)return"";const e=i-t;return e<0||e>=this._renderResult.length?"":this._renderResult[e]}}class FS extends Ty{constructor(t,i,e,s){super(t);const n=this._context.configuration.options,o=n.get(102),r=n.get(74),h=n.get(40),c=n.get(105),a={listenOnDomNode:e.domNode,className:"editor-scrollable "+ix(t.theme.type),useShadows:!1,lazyRender:!0,vertical:o.vertical,horizontal:o.horizontal,verticalHasArrows:o.verticalHasArrows,horizontalHasArrows:o.horizontalHasArrows,verticalScrollbarSize:o.verticalScrollbarSize,verticalSliderSize:o.verticalSliderSize,horizontalScrollbarSize:o.horizontalScrollbarSize,horizontalSliderSize:o.horizontalSliderSize,handleMouseWheel:o.handleMouseWheel,alwaysConsumeMouseWheel:o.alwaysConsumeMouseWheel,arrowSize:o.arrowSize,mouseWheelScrollSensitivity:r,fastScrollSensitivity:h,scrollPredominantAxis:c,scrollByPage:o.scrollByPage};this.scrollbar=this._register(new Fk(i.domNode,a,this._context.viewLayout.getScrollable())),Ry.write(this.scrollbar.getDomNode(),5),this.scrollbarDomNode=tr(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition("absolute"),this._setLayout();const l=(t,i,e)=>{const s={};if(i){const i=t.scrollTop;i&&(s.scrollTop=this._context.viewLayout.getCurrentScrollTop()+i,t.scrollTop=0)}if(e){const i=t.scrollLeft;i&&(s.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+i,t.scrollLeft=0)}this._context.viewModel.viewLayout.setScrollPosition(s,1)};this._register(Va(e.domNode,"scroll",(()=>l(e.domNode,!0,!0)))),this._register(Va(i.domNode,"scroll",(()=>l(i.domNode,!0,!1)))),this._register(Va(s.domNode,"scroll",(()=>l(s.domNode,!0,!1)))),this._register(Va(this.scrollbarDomNode.domNode,"scroll",(()=>l(this.scrollbarDomNode.domNode,!0,!1))))}dispose(){super.dispose()}_setLayout(){const t=this._context.configuration.options,i=t.get(143);this.scrollbarDomNode.setLeft(i.contentLeft);const e=t.get(72);this.scrollbarDomNode.setWidth("right"===e.side?i.contentWidth+i.minimap.minimapWidth:i.contentWidth),this.scrollbarDomNode.setHeight(i.height)}getOverviewRulerLayoutInfo(){return this.scrollbar.getOverviewRulerLayoutInfo()}getDomNode(){return this.scrollbarDomNode}delegateVerticalScrollbarPointerDown(t){this.scrollbar.delegateVerticalScrollbarPointerDown(t)}delegateScrollFromMouseWheelEvent(t){this.scrollbar.delegateScrollFromMouseWheelEvent(t)}onConfigurationChanged(t){if(t.hasChanged(102)||t.hasChanged(74)||t.hasChanged(40)){const t=this._context.configuration.options,i=t.get(102),e=t.get(74),s=t.get(40),n=t.get(105);this.scrollbar.updateOptions({vertical:i.vertical,horizontal:i.horizontal,verticalScrollbarSize:i.verticalScrollbarSize,horizontalScrollbarSize:i.horizontalScrollbarSize,scrollByPage:i.scrollByPage,handleMouseWheel:i.handleMouseWheel,mouseWheelScrollSensitivity:e,fastScrollSensitivity:s,scrollPredominantAxis:n})}return t.hasChanged(143)&&this._setLayout(),!0}onScrollChanged(t){return!0}onThemeChanged(t){return this.scrollbar.updateClassName("editor-scrollable "+ix(this._context.theme.type)),!0}prepareRender(t){}render(t){this.scrollbar.renderNow()}}class TS extends te{constructor(){super(...arguments),this._isDisposed=!1}dispose(){super.dispose(),this._isDisposed=!0}assertNotDisposed(){if(this._isDisposed)throw new Error("TextModelPart is disposed!")}}function RS(t,i){let e=0,s=0;const n=t.length;for(;ss)throw new Ki("Illegal value for lineNumber");const n=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,o=Boolean(n&&n.offSide);let r=-2,h=-1,c=-2,a=-1;const l=t=>{if(-1!==r&&(-2===r||r>t-1)){r=-1,h=-1;for(let i=t-2;i>=0;i--){const t=this._computeIndentLevel(i);if(t>=0){r=i,h=t;break}}}if(-2===c){c=-1,a=-1;for(let i=t;i=0){c=i,a=t;break}}}};let u=-2,d=-1,f=-2,p=-1;const g=t=>{if(-2===u){u=-1,d=-1;for(let i=t-2;i>=0;i--){const t=this._computeIndentLevel(i);if(t>=0){u=i,d=t;break}}}if(-1!==f&&(-2===f||f=0){f=i,p=t;break}}}};let m=0,w=!0,v=0,b=!0,y=0,k=0;for(let n=0;w||b;n++){const r=t-n,f=t+n;n>1&&(r<1||r1&&(f>s||f>e)&&(b=!1),n>5e4&&(w=!1,b=!1);let x=-1;if(w&&r>=1){const t=this._computeIndentLevel(r-1);t>=0?(c=r-1,a=t,x=Math.ceil(t/this.textModel.getOptions().indentSize)):(l(r),x=this._getIndentLevelForWhitespaceLine(o,h,a))}let C=-1;if(b&&f<=s){const t=this._computeIndentLevel(f-1);t>=0?(u=f-1,d=t,C=Math.ceil(t/this.textModel.getOptions().indentSize)):(g(f),C=this._getIndentLevelForWhitespaceLine(o,d,p))}if(0!==n){if(1===n){if(f<=s&&C>=0&&k+1===C){w=!1,m=f,v=f,y=C;continue}if(r>=1&&x>=0&&x-1===k){b=!1,m=r,v=r,y=x;continue}if(m=t,v=t,y=k,0===y)return{startLineNumber:m,endLineNumber:v,indent:y}}w&&(x>=y?m=r:w=!1),b&&(C>=y?v=f:b=!1)}else k=x}return{startLineNumber:m,endLineNumber:v,indent:y}}getLinesBracketGuides(t,i,e,s){var n;const o=[];for(let e=t;e<=i;e++)o.push([]);const r=this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new Ms(t,1,i,this.textModel.getLineMaxColumn(i))).toArray();let h;e&&r.length>0&&(h=null===(n=rp((t<=e.lineNumber&&e.lineNumber<=i?r:this.textModel.bracketPairs.getBracketPairsInRange(Ms.fromPositions(e)).toArray()).filter((t=>Ms.strictContainsPosition(t.range,e))),(()=>!0)))||void 0===n?void 0:n.range);const c=this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType,a=new NS;for(const e of r){if(!e.closingBracketRange)continue;const n=h&&e.range.equalsRange(h);if(!n&&!s.includeInactive)continue;const r=a.getInlineClassName(e.nestingLevel,e.nestingLevelOfEqualBracketType,c)+(s.highlightActive&&n?" "+a.activeClassName:""),l=e.openingBracketRange.getStartPosition(),u=e.closingBracketRange.getStartPosition(),d=s.horizontalGuides===cS.Enabled||s.horizontalGuides===cS.EnabledForActive&&n;if(e.range.startLineNumber===e.range.endLineNumber){d&&o[e.range.startLineNumber-t].push(new OS(-1,e.openingBracketRange.getEndPosition().column,r,new IS(!1,u.column),-1,-1));continue}const f=this.getVisibleColumnFromPosition(u),p=this.getVisibleColumnFromPosition(e.openingBracketRange.getStartPosition()),g=Math.min(p,f,e.minVisibleColumnIndentation+1);let m=!1;to(this.textModel.getLineContent(e.closingBracketRange.startLineNumber))=t&&p>g&&o[l.lineNumber-t].push(new OS(g,-1,r,new IS(!1,l.column),-1,-1)),u.lineNumber<=i&&f>g&&o[u.lineNumber-t].push(new OS(g,-1,r,new IS(!m,u.column),-1,-1)))}for(const t of o)t.sort(((t,i)=>t.visibleColumn-i.visibleColumn));return o}getVisibleColumnFromPosition(t){return Xy.visibleColumnFromColumn(this.textModel.getLineContent(t.lineNumber),t.column,this.textModel.getOptions().tabSize)+1}getLinesIndentGuides(t,i){this.assertNotDisposed();const e=this.textModel.getLineCount();if(t<1||t>e)throw new Error("Illegal value for startLineNumber");if(i<1||i>e)throw new Error("Illegal value for endLineNumber");const s=this.textModel.getOptions(),n=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,o=Boolean(n&&n.offSide),r=new Array(i-t+1);let h=-2,c=-1,a=-2,l=-1;for(let n=t;n<=i;n++){const i=n-t,u=this._computeIndentLevel(n-1);if(u>=0)h=n-1,c=u,r[i]=Math.ceil(u/s.indentSize);else{if(-2===h){h=-1,c=-1;for(let t=n-2;t>=0;t--){const i=this._computeIndentLevel(t);if(i>=0){h=t,c=i;break}}}if(-1!==a&&(-2===a||a=0){a=t,l=i;break}}}r[i]=this._getIndentLevelForWhitespaceLine(o,c,l)}}return r}_getIndentLevelForWhitespaceLine(t,i,e){const s=this.textModel.getOptions();return-1===i||-1===e?0:ih||this._maxIndentLeft>0&&e>this._maxIndentLeft)break;const o=i.horizontalLine?i.horizontalLine.top?"horizontal-top":"horizontal-bottom":"vertical",r=i.horizontalLine?(null!==(n=null===(s=t.visibleRangeForPosition(new As(a,i.horizontalLine.endColumn)))||void 0===s?void 0:s.left)&&void 0!==n?n:e+this._spaceWidth)-e:this._spaceWidth;f+=`
      `}u[r]=f}this._renderResult=u}getGuidesByLine(t,i,e){const s=!1!==this._bracketPairGuideOptions.bracketPairs?this._context.viewModel.getBracketGuidesInRangeByLine(t,i,e,{highlightActive:this._bracketPairGuideOptions.highlightActiveBracketPair,horizontalGuides:!0===this._bracketPairGuideOptions.bracketPairsHorizontal?cS.Enabled:"active"===this._bracketPairGuideOptions.bracketPairsHorizontal?cS.EnabledForActive:cS.Disabled,includeInactive:!0===this._bracketPairGuideOptions.bracketPairs}):null,n=this._bracketPairGuideOptions.indentation?this._context.viewModel.getLinesIndentGuides(t,i):null;let o=0,r=0,h=0;if(!1!==this._bracketPairGuideOptions.highlightActiveIndentation&&e){const s=this._context.viewModel.getActiveIndentGuide(e.lineNumber,t,i);o=s.startLineNumber,r=s.endLineNumber,h=s.indent}const{indentSize:c}=this._context.viewModel.model.getOptions(),a=[];for(let e=t;e<=i;e++){const i=new Array;a.push(i);const l=s?s[e-t]:[],u=new _(l),d=n?n[e-t]:0;for(let t=1;t<=d;t++){const s=(t-1)*c+1,n=("always"===this._bracketPairGuideOptions.highlightActiveIndentation||0===l.length)&&o<=e&&e<=r&&t===h;i.push(...u.takeWhile((t=>t.visibleColumn!0))||[])}return a}render(t,i){if(!this._renderResult)return"";const e=i-t;return e<0||e>=this._renderResult.length?"":this._renderResult[e]}}function PS(t){if(!t||!t.isTransparent())return t}nx(((t,i)=>{const e=[{bracketColor:Nx,guideColor:Hx,guideColorActive:Zx},{bracketColor:Bx,guideColor:Vx,guideColorActive:Qx},{bracketColor:Px,guideColor:Ux,guideColorActive:Jx},{bracketColor:$x,guideColor:qx,guideColorActive:Yx},{bracketColor:Wx,guideColor:Kx,guideColorActive:Xx},{bracketColor:jx,guideColor:Gx,guideColorActive:tC}],s=new NS,n=[{indentColor:px,indentColorActive:yx},{indentColor:gx,indentColorActive:kx},{indentColor:mx,indentColorActive:xx},{indentColor:wx,indentColorActive:Cx},{indentColor:vx,indentColorActive:Sx},{indentColor:bx,indentColorActive:Dx}],o=e.map((i=>{var e,s;const n=t.getColor(i.bracketColor),o=t.getColor(i.guideColor),r=t.getColor(i.guideColorActive),h=PS(null!==(e=PS(o))&&void 0!==e?e:null==n?void 0:n.transparent(.3)),c=PS(null!==(s=PS(r))&&void 0!==s?s:n);if(h&&c)return{guideColor:h,guideColorActive:c}})).filter(V),r=n.map((i=>{const e=t.getColor(i.indentColor),s=t.getColor(i.indentColorActive),n=PS(e),o=PS(s);if(n&&o)return{indentColor:n,indentColorActive:o}})).filter(V);if(o.length>0){for(let t=0;t<30;t++){const e=o[t%o.length];i.addRule(`.monaco-editor .${s.getInlineClassNameOfLevel(t).replace(/ /g,".")} { --guide-color: ${e.guideColor}; --guide-color-active: ${e.guideColorActive}; }`)}i.addRule(".monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }"),i.addRule(".monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }"),i.addRule(".monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }"),i.addRule(`.monaco-editor .vertical.${s.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`),i.addRule(`.monaco-editor .horizontal-top.${s.activeClassName} { border-top: 1px solid var(--guide-color-active); }`),i.addRule(`.monaco-editor .horizontal-bottom.${s.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`)}if(r.length>0){for(let t=0;t<30;t++){const e=r[t%r.length];i.addRule(`.monaco-editor .lines-content .core-guide-indent.lvl-${t} { --indent-color: ${e.indentColor}; --indent-color-active: ${e.indentColorActive}; }`)}i.addRule(".monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 var(--indent-color) inset; }"),i.addRule(".monaco-editor .lines-content .core-guide-indent.indent-active { box-shadow: 1px 0 0 0 var(--indent-color-active) inset; }")}}));class $S{get didDomLayout(){return this._didDomLayout}readClientRect(){if(!this._clientRectRead){this._clientRectRead=!0;const t=this._domNode.getBoundingClientRect();this.markDidDomLayout(),this._clientRectDeltaLeft=t.left,this._clientRectScale=t.width/this._domNode.offsetWidth}}get clientRectDeltaLeft(){return this._clientRectRead||this.readClientRect(),this._clientRectDeltaLeft}get clientRectScale(){return this._clientRectRead||this.readClientRect(),this._clientRectScale}constructor(t,i){this._domNode=t,this.endNode=i,this._didDomLayout=!1,this._clientRectDeltaLeft=0,this._clientRectScale=1,this._clientRectRead=!1}markDidDomLayout(){this._didDomLayout=!0}}class WS{constructor(){this._currentVisibleRange=new Ms(1,1,1,1)}getCurrentVisibleRange(){return this._currentVisibleRange}setCurrentVisibleRange(t){this._currentVisibleRange=t}}class jS{constructor(t,i,e,s,n,o,r){this.minimalReveal=t,this.lineNumber=i,this.startColumn=e,this.endColumn=s,this.startScrollTop=n,this.stopScrollTop=o,this.scrollType=r,this.type="range",this.minLineNumber=i,this.maxLineNumber=i}}class zS{constructor(t,i,e,s,n){this.minimalReveal=t,this.selections=i,this.startScrollTop=e,this.stopScrollTop=s,this.scrollType=n,this.type="selections";let o=i[0].startLineNumber,r=i[0].endLineNumber;for(let t=1,e=i.length;t{this._updateLineWidthsSlow()}),200),this._asyncCheckMonospaceFontAssumptions=new pc((()=>{this._checkMonospaceFontAssumptions()}),2e3),this._lastRenderedData=new WS,this._horizontalRevealRequest=null,this._stickyScrollEnabled=s.get(114).enabled,this._maxNumberStickyLines=s.get(114).maxLineCount}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}createVisibleLine(){return new Ky(this._viewLineOptions)}onConfigurationChanged(t){this._visibleLines.onConfigurationChanged(t),t.hasChanged(144)&&(this._maxLineWidth=0);const i=this._context.configuration.options,e=i.get(50),s=i.get(144);return this._lineHeight=i.get(66),this._typicalHalfwidthCharacterWidth=e.typicalHalfwidthCharacterWidth,this._isViewportWrapping=s.isViewportWrapping,this._revealHorizontalRightPadding=i.get(99),this._cursorSurroundingLines=i.get(29),this._cursorSurroundingLinesStyle=i.get(30),this._canUseLayerHinting=!i.get(32),this._stickyScrollEnabled=i.get(114).enabled,this._maxNumberStickyLines=i.get(114).maxLineCount,ir(this.domNode,e),this._onOptionsMaybeChanged(),t.hasChanged(143)&&(this._maxLineWidth=0),!0}_onOptionsMaybeChanged(){const t=new qy(this._context.configuration,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;const i=this._visibleLines.getStartLineNumber(),e=this._visibleLines.getEndLineNumber();for(let t=i;t<=e;t++)this._visibleLines.getVisibleLine(t).onOptionsChanged(this._viewLineOptions);return!0}return!1}onCursorStateChanged(t){const i=this._visibleLines.getStartLineNumber(),e=this._visibleLines.getEndLineNumber();let s=!1;for(let t=i;t<=e;t++)s=this._visibleLines.getVisibleLine(t).onSelectionChanged()||s;return s}onDecorationsChanged(t){{const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();for(let e=t;e<=i;e++)this._visibleLines.getVisibleLine(e).onDecorationsChanged()}return!0}onFlushed(t){const i=this._visibleLines.onFlushed(t);return this._maxLineWidth=0,i}onLinesChanged(t){return this._visibleLines.onLinesChanged(t)}onLinesDeleted(t){return this._visibleLines.onLinesDeleted(t)}onLinesInserted(t){return this._visibleLines.onLinesInserted(t)}onRevealRangeRequest(t){const i=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),t.source,t.minimalReveal,t.range,t.selections,t.verticalType);if(-1===i)return!1;let e=this._context.viewLayout.validateScrollPosition({scrollTop:i});t.revealHorizontal?t.range&&t.range.startLineNumber!==t.range.endLineNumber?e={scrollTop:e.scrollTop,scrollLeft:0}:t.range?this._horizontalRevealRequest=new jS(t.minimalReveal,t.range.startLineNumber,t.range.startColumn,t.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),e.scrollTop,t.scrollType):t.selections&&t.selections.length>0&&(this._horizontalRevealRequest=new zS(t.minimalReveal,t.selections,this._context.viewLayout.getCurrentScrollTop(),e.scrollTop,t.scrollType)):this._horizontalRevealRequest=null;const s=Math.abs(this._context.viewLayout.getCurrentScrollTop()-e.scrollTop);return this._context.viewModel.viewLayout.setScrollPosition(e,s<=this._lineHeight?1:t.scrollType),!0}onScrollChanged(t){if(this._horizontalRevealRequest&&t.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&t.scrollTopChanged){const i=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),e=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(t.scrollTope)&&(this._horizontalRevealRequest=null)}return this.domNode.setWidth(t.scrollWidth),this._visibleLines.onScrollChanged(t)||!0}onTokensChanged(t){return this._visibleLines.onTokensChanged(t)}onZonesChanged(t){return this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth),this._visibleLines.onZonesChanged(t)}onThemeChanged(t){return this._onOptionsMaybeChanged()}getPositionFromDOMInfo(t,i){const e=this._getViewLineDomNode(t);if(null===e)return null;const s=this._getLineNumberFor(e);if(-1===s)return null;if(s<1||s>this._context.viewModel.getLineCount())return null;if(1===this._context.viewModel.getLineMaxColumn(s))return new As(s,1);const n=this._visibleLines.getStartLineNumber(),o=this._visibleLines.getEndLineNumber();if(so)return null;let r=this._visibleLines.getVisibleLine(s).getColumnOfNodeOffset(t,i);const h=this._context.viewModel.getLineMinColumn(s);return re)return-1;const s=new $S(this.domNode.domNode,this._textRangeRestingSpot),n=this._visibleLines.getVisibleLine(t).getWidth(s);return this._updateLineWidthsSlowIfDomDidLayout(s),n}linesVisibleRangesForRange(t,i){if(this.shouldRender())return null;const e=t.endLineNumber,s=Ms.intersectRanges(t,this._lastRenderedData.getCurrentVisibleRange());if(!s)return null;const n=[];let o=0;const r=new $S(this.domNode.domNode,this._textRangeRestingSpot);let h=0;i&&(h=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new As(s.startLineNumber,1)).lineNumber);const c=this._visibleLines.getStartLineNumber(),a=this._visibleLines.getEndLineNumber();for(let t=s.startLineNumber;t<=s.endLineNumber;t++){if(ta)continue;const l=t===s.startLineNumber?s.startColumn:1,u=t!==s.endLineNumber,d=u?this._context.viewModel.getLineMaxColumn(t):s.endColumn,f=this._visibleLines.getVisibleLine(t).getVisibleRangesForRange(t,l,d,r);if(f){if(i&&tthis._visibleLines.getEndLineNumber())return null;const s=new $S(this.domNode.domNode,this._textRangeRestingSpot),n=this._visibleLines.getVisibleLine(t).getVisibleRangesForRange(t,i,e,s);return this._updateLineWidthsSlowIfDomDidLayout(s),n}visibleRangeForPosition(t){const i=this._visibleRangesForLineRange(t.lineNumber,t.column,t.column);return i?new Py(i.outsideRenderedLine,i.ranges[0].left):null}_updateLineWidthsFast(){return this._updateLineWidths(!0)}_updateLineWidthsSlow(){this._updateLineWidths(!1)}_updateLineWidthsSlowIfDomDidLayout(t){t.didDomLayout&&(this._asyncUpdateLineWidths.isScheduled()||(this._asyncUpdateLineWidths.cancel(),this._updateLineWidthsSlow()))}_updateLineWidths(t){const i=this._visibleLines.getStartLineNumber(),e=this._visibleLines.getEndLineNumber();let s=1,n=!0;for(let o=i;o<=e;o++){const i=this._visibleLines.getVisibleLine(o);!t||i.getWidthIsFast()?s=Math.max(s,i.getWidth(null)):n=!1}return n&&1===i&&e===this._context.viewModel.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(s),n}_checkMonospaceFontAssumptions(){let t=-1,i=-1;const e=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let n=e;n<=s;n++){const e=this._visibleLines.getVisibleLine(n);if(e.needsMonospaceFontCheck()){const s=e.getWidth(null);s>i&&(i=s,t=n)}}if(-1!==t&&!this._visibleLines.getVisibleLine(t).monospaceAssumptionsAreValid())for(let t=e;t<=s;t++)this._visibleLines.getVisibleLine(t).onMonospaceAssumptionsInvalidated()}prepareRender(){throw new Error("Not supported")}render(){throw new Error("Not supported")}renderText(t){if(this._visibleLines.renderLines(t),this._lastRenderedData.setCurrentVisibleRange(t.visibleRange),this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){const i=this._horizontalRevealRequest;if(t.startLineNumber<=i.minLineNumber&&i.maxLineNumber<=t.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();const t=this._computeScrollLeftToReveal(i);t&&(this._isViewportWrapping||this._ensureMaxLineWidth(t.maxHorizontalOffset),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:t.scrollLeft},i.scrollType))}}if(this._updateLineWidthsFast()?this._asyncUpdateLineWidths.cancel():this._asyncUpdateLineWidths.schedule(),St&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();for(let e=t;e<=i;e++)if(this._visibleLines.getVisibleLine(e).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain("strict");const i=this._context.viewLayout.getCurrentScrollTop()-t.bigNumbersDelta;this._linesContent.setTop(-i),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}_ensureMaxLineWidth(t){const i=Math.ceil(t);this._maxLineWidth0){let t=n[0].startLineNumber,i=n[0].endLineNumber;for(let e=1,s=n.length;eh){if(!a)return-1;d=l}else if(5===o||6===o)if(6===o&&r<=l&&u<=c)d=r;else{const t=Math.max(5*this._lineHeight,.2*h);d=Math.max(u-h,l-t)}else d=1===o||2===o?2===o&&r<=l&&u<=c?r:Math.max(0,(l+u)/2-h/2):this._computeMinimumScrolling(r,c,l,u,3===o,4===o);return d}_computeScrollLeftToReveal(t){const i=this._context.viewLayout.getCurrentViewport(),e=this._context.configuration.options.get(143),s=i.left,n=s+i.width-e.verticalScrollbarWidth;let o=1073741824,r=0;if("range"===t.type){const i=this._visibleRangesForLineRange(t.lineNumber,t.startColumn,t.endColumn);if(!i)return null;for(const t of i.ranges)o=Math.min(o,Math.round(t.left)),r=Math.max(r,Math.round(t.left+t.width))}else for(const i of t.selections){if(i.startLineNumber!==i.endLineNumber)return null;const t=this._visibleRangesForLineRange(i.startLineNumber,i.startColumn,i.endColumn);if(!t)return null;for(const i of t.ranges)o=Math.min(o,Math.round(i.left)),r=Math.max(r,Math.round(i.left+i.width))}return t.minimalReveal||(o=Math.max(0,o-HS.HORIZONTAL_EXTRA_PX),r+=this._revealHorizontalRightPadding),"selections"===t.type&&r-o>i.width?null:{scrollLeft:this._computeMinimumScrolling(s,n,o,r),maxHorizontalOffset:r}}_computeMinimumScrolling(t,i,e,s,n,o){n=!!n,o=!!o;const r=(i|=0)-(t|=0);return(s|=0)-(e|=0)i?Math.max(0,s-r):t:e}}HS.HORIZONTAL_EXTRA_PX=30;class VS{constructor(t,i,e,s){this._decorationToRenderBrand=void 0,this.startLineNumber=+t,this.endLineNumber=+i,this.className=String(e),this.zIndex=null!=s?s:0}}class US{constructor(t,i){this.className=t,this.zIndex=i}}class qS{constructor(){this.decorations=[]}add(t){this.decorations.push(t)}getDecorations(){return this.decorations}}class KS extends Yk{_render(t,i,e){const s=[];for(let e=t;e<=i;e++)s[e-t]=new qS;if(0===e.length)return s;e.sort(((t,i)=>t.className===i.className?t.startLineNumber===i.startLineNumber?t.endLineNumber-i.endLineNumber:t.startLineNumber-i.startLineNumber:t.classNames)continue;const h=Math.max(o,e),c=Math.min(t.preference.lane,this._glyphMarginDecorationLaneCount);i.push(new QS(h,c,t.preference.zIndex,t))}}_collectSortedGlyphRenderRequests(t){const i=[];return this._collectDecorationBasedGlyphRenderRequest(t,i),this._collectWidgetBasedGlyphRenderRequest(t,i),i.sort(((t,i)=>t.lineNumber===i.lineNumber?t.lane===i.lane?t.zIndex===i.zIndex?i.type===t.type?0===t.type&&0===i.type?t.className0;){const t=i.peek();if(!t)break;const s=i.takeWhile((i=>i.lineNumber===t.lineNumber&&i.lane===t.lane));if(!s||0===s.length)break;const n=s[0];if(0===n.type){const t=[];for(const i of s){if(i.zIndex!==n.zIndex||i.type!==n.type)break;0!==t.length&&t[t.length-1]===i.className||t.push(i.className)}e.push(n.accept(t.join(" ")))}else n.widget.renderInfo={lineNumber:n.lineNumber,lane:n.lane}}this._decorationGlyphsToRender=e}render(t){if(!this._glyphMargin){for(const t of Object.values(this._widgets))t.domNode.setDisplay("none");for(;this._managedDomNodes.length>0;){const t=this._managedDomNodes.pop();null==t||t.domNode.remove()}return}const i=Math.round(this._glyphMarginWidth/this._glyphMarginDecorationLaneCount);for(const e of Object.values(this._widgets))if(e.renderInfo){const s=t.viewportData.relativeVerticalOffset[e.renderInfo.lineNumber-t.viewportData.startLineNumber],n=this._glyphMarginLeft+(e.renderInfo.lane-1)*this._lineHeight;e.domNode.setDisplay("block"),e.domNode.setTop(s),e.domNode.setLeft(n),e.domNode.setWidth(i),e.domNode.setHeight(this._lineHeight)}else e.domNode.setDisplay("none");for(let e=0;ethis._decorationGlyphsToRender.length;){const t=this._managedDomNodes.pop();null==t||t.domNode.remove()}}}class ZS{constructor(t,i,e,s){this.lineNumber=t,this.lane=i,this.zIndex=e,this.className=s,this.type=0}accept(t){return new JS(this.lineNumber,this.lane,t)}}class QS{constructor(t,i,e,s){this.lineNumber=t,this.lane=i,this.zIndex=e,this.widget=s,this.type=1}}class JS{constructor(t,i,e){this.lineNumber=t,this.lane=i,this.combinedClassName=e}}class YS extends KS{constructor(t){super(),this._context=t;const i=this._context.configuration.options.get(143);this._decorationsLeft=i.decorationsLeft,this._decorationsWidth=i.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(t){const i=this._context.configuration.options.get(143);return this._decorationsLeft=i.decorationsLeft,this._decorationsWidth=i.decorationsWidth,!0}onDecorationsChanged(t){return!0}onFlushed(t){return!0}onLinesChanged(t){return!0}onLinesDeleted(t){return!0}onLinesInserted(t){return!0}onScrollChanged(t){return t.scrollTopChanged}onZonesChanged(t){return!0}_getDecorations(t){const i=t.getDecorationsInViewport(),e=[];let s=0;for(let t=0,n=i.length;t',o=[];for(let t=i;t<=e;t++){const e=t-i,r=s[e].getDecorations();let h="";for(const t of r)h+='
      ';n[e]=r}this._renderResult=n}render(t,i){return this._renderResult?this._renderResult[i-t]:""}}class tD{constructor(t,i,e,s){this._rgba8Brand=void 0,this.r=tD._clamp(t),this.g=tD._clamp(i),this.b=tD._clamp(e),this.a=tD._clamp(s)}equals(t){return this.r===t.r&&this.g===t.g&&this.b===t.b&&this.a===t.a}static _clamp(t){return t<0?0:t>255?255:0|t}}tD.Empty=new tD(0,0,0,0);class iD extends te{static getInstance(){return this._INSTANCE||(this._INSTANCE=new iD),this._INSTANCE}constructor(){super(),this._onDidChange=new de,this.onDidChange=this._onDidChange.event,this._updateColorMap(),this._register(Zs.onDidChange((t=>{t.changedColorMap&&this._updateColorMap()})))}_updateColorMap(){const t=Zs.getColorMap();if(!t)return this._colors=[tD.Empty],void(this._backgroundIsLight=!0);this._colors=[tD.Empty];for(let i=1;i=.5,this._onDidChange.fire(void 0)}getColor(t){return(t<1||t>=this._colors.length)&&(t=2),this._colors[t]}backgroundIsLight(){return this._backgroundIsLight}}iD._INSTANCE=null;const eD=(()=>{const t=[];for(let i=32;i<=126;i++)t.push(i);return t.push(65533),t})();class sD{constructor(t,i){this.scale=i,this._minimapCharRendererBrand=void 0,this.charDataNormal=sD.soften(t,.8),this.charDataLight=sD.soften(t,50/60)}static soften(t,i){const e=new Uint8ClampedArray(t.length);for(let s=0,n=t.length;st.width||e+f>t.height)return void console.warn("bad render request outside image data");const p=a?this.charDataLight:this.charDataNormal,g=((t,i)=>(t-=32)<0||t>96?i<=2?(t+96)%96:95:t)(s,c),m=4*t.width,w=r.r,v=r.g,b=r.b,y=n.r-w,k=n.g-v,x=n.b-b,C=Math.max(o,h),S=t.data;let D=g*u*d,E=e*m+4*i;for(let t=0;tt.width||e+a>t.height)return void console.warn("bad render request outside image data");const l=4*t.width,u=n/255*.5,d=o.r,f=o.g,p=o.b,g=d+(s.r-d)*u,m=f+(s.g-f)*u,w=p+(s.b-p)*u,v=Math.max(n,r),b=t.data;let y=e*l+4*i;for(let t=0;t{const i=new Uint8ClampedArray(t.length/2);for(let e=0;e>1]=nD[t[e]]<<4|15&nD[t[e+1]];return i},rD={1:Gi((()=>oD("0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792"))),2:Gi((()=>oD("000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126")))};class hD{static create(t,i){if(this.lastCreated&&t===this.lastCreated.scale&&i===this.lastFontFamily)return this.lastCreated;let e;return e=rD[t]?new sD(rD[t](),t):hD.createFromSampleData(hD.createSampleData(i).data,t),this.lastFontFamily=i,this.lastCreated=e,e}static createSampleData(t){const i=document.createElement("canvas"),e=i.getContext("2d");i.style.height="16px",i.height=16,i.width=960,i.style.width="960px",e.fillStyle="#ffffff",e.font=`bold 16px ${t}`,e.textBaseline="middle";let s=0;for(const t of eD)e.fillText(String.fromCharCode(t),s,8),s+=10;return e.getImageData(0,0,960,16)}static createFromSampleData(t,i){if(61440!==t.length)throw new Error("Unexpected source in MinimapCharRenderer");const e=hD._downsample(t,i);return new sD(e,i)}static _downsampleChar(t,i,e,s,n){const o=1*n,r=2*n;let h=s,c=0;for(let s=0;s0){const t=255/h;for(let i=0;ihD.create(this.fontScale,h.fontFamily))),this.defaultBackgroundColor=e.getColor(2),this.backgroundColor=cD._getMinimapBackground(i,this.defaultBackgroundColor),this.foregroundAlpha=cD._getMinimapForegroundOpacity(i)}static _getMinimapBackground(t,i){const e=t.getColor(sy);return e?new tD(e.rgba.r,e.rgba.g,e.rgba.b,Math.round(255*e.rgba.a)):i}static _getMinimapForegroundOpacity(t){const i=t.getColor(ny);return i?tD._clamp(Math.round(255*i.rgba.a)):255}equals(t){return this.renderMinimap===t.renderMinimap&&this.size===t.size&&this.minimapHeightIsEditorHeight===t.minimapHeightIsEditorHeight&&this.scrollBeyondLastLine===t.scrollBeyondLastLine&&this.paddingTop===t.paddingTop&&this.paddingBottom===t.paddingBottom&&this.showSlider===t.showSlider&&this.autohide===t.autohide&&this.pixelRatio===t.pixelRatio&&this.typicalHalfwidthCharacterWidth===t.typicalHalfwidthCharacterWidth&&this.lineHeight===t.lineHeight&&this.minimapLeft===t.minimapLeft&&this.minimapWidth===t.minimapWidth&&this.minimapHeight===t.minimapHeight&&this.canvasInnerWidth===t.canvasInnerWidth&&this.canvasInnerHeight===t.canvasInnerHeight&&this.canvasOuterWidth===t.canvasOuterWidth&&this.canvasOuterHeight===t.canvasOuterHeight&&this.isSampling===t.isSampling&&this.editorHeight===t.editorHeight&&this.fontScale===t.fontScale&&this.minimapLineHeight===t.minimapLineHeight&&this.minimapCharWidth===t.minimapCharWidth&&this.defaultBackgroundColor&&this.defaultBackgroundColor.equals(t.defaultBackgroundColor)&&this.backgroundColor&&this.backgroundColor.equals(t.backgroundColor)&&this.foregroundAlpha===t.foregroundAlpha}}class aD{constructor(t,i,e,s,n,o,r,h,c){this.scrollTop=t,this.scrollHeight=i,this.sliderNeeded=e,this._computedSliderRatio=s,this.sliderTop=n,this.sliderHeight=o,this.topPaddingLineCount=r,this.startLineNumber=h,this.endLineNumber=c}getDesiredScrollTopFromDelta(t){return Math.round(this.scrollTop+t/this._computedSliderRatio)}getDesiredScrollTopFromTouchLocation(t){return Math.round((t-this.sliderHeight/2)/this._computedSliderRatio)}intersectWithViewport(t){const i=Math.max(this.startLineNumber,t.startLineNumber),e=Math.min(this.endLineNumber,t.endLineNumber);return i>e?null:[i,e]}getYForLineNumber(t,i){return+(t-this.startLineNumber+this.topPaddingLineCount)*i}static create(t,i,e,s,n,o,r,h,c,a,l){const u=t.pixelRatio,d=t.minimapLineHeight,f=Math.floor(t.canvasInnerHeight/d),p=t.lineHeight;if(t.minimapHeightIsEditorHeight){let i=h*t.lineHeight+t.paddingTop+t.paddingBottom;t.scrollBeyondLastLine&&(i+=Math.max(0,n-t.lineHeight-t.paddingBottom));const e=Math.max(1,Math.floor(n*n/i)),s=Math.max(0,t.minimapHeight-e),o=s/(a-n),l=c*o,u=s>0,d=Math.floor(t.canvasInnerHeight/t.minimapLineHeight),f=Math.floor(t.paddingTop/t.lineHeight);return new aD(c,a,u,o,l,e,f,1,Math.min(r,d))}let g;g=o&&e!==r?Math.floor((e-i+1)*d/u):Math.floor(n/p*d/u);const m=Math.floor(t.paddingTop/p);let w,v=Math.floor(t.paddingBottom/p);t.scrollBeyondLastLine&&(v=Math.max(v,n/p-1)),w=v>0?(m+r+v-n/p-1)*d/u:Math.max(0,(m+r)*d/u-g),w=Math.min(t.minimapHeight-g,w);const b=w/(a-n),y=c*b;if(f>=m+r+v)return new aD(c,a,w>0,b,y,g,m,1,r);{let e,n;e=i>1?i+m:Math.max(1,c/p);let o=Math.max(1,Math.floor(e-y*u/d));oc&&(o=Math.min(o,l.startLineNumber),n=Math.max(n,l.topPaddingLineCount)),l.scrollTop=t.paddingTop?(i-o+n+w)*d/u:c/t.paddingTop*(n+w)*d/u,new aD(c,a,!0,b,v,g,n,o,h)}}}class lD{constructor(t){this.dy=t}onContentChanged(){this.dy=-1}onTokensChanged(){this.dy=-1}}lD.INVALID=new lD(-1);class uD{constructor(t,i,e){this.renderedLayout=t,this._imageData=i,this._renderedLines=new fS((()=>lD.INVALID)),this._renderedLines._set(t.startLineNumber,e)}linesEquals(t){if(!this.scrollEquals(t))return!1;const i=this._renderedLines._get().lines;for(let t=0,e=i.length;t1){for(let i=0,e=s-1;i0&&this.minimapLines[e-1]>=t;)e--;let s=this.modelLineToMinimapLine(i)-1;for(;s+1i)return null}return[e+1,s+1]}decorationLineRangeToMinimapLineRange(t,i){let e=this.modelLineToMinimapLine(t),s=this.modelLineToMinimapLine(i);return t!==i&&s===e&&(s===this.minimapLines.length?e>1&&e--:s++),[e,s]}onLinesDeleted(t){const i=t.toLineNumber-t.fromLineNumber+1;let e=this.minimapLines.length,s=0;for(let n=this.minimapLines.length-1;n>=0&&!(this.minimapLines[n]=0&&!(this.minimapLines[e]0,scrollWidth:t.scrollWidth,scrollHeight:t.scrollHeight,viewportStartLineNumber:i,viewportEndLineNumber:e,viewportStartLineNumberVerticalOffset:t.getVerticalOffsetForLineNumber(i),scrollTop:t.scrollTop,scrollLeft:t.scrollLeft,viewportWidth:t.viewportWidth,viewportHeight:t.viewportHeight};this._actual.render(s)}_recreateLineSampling(){this._minimapSelections=null;const t=Boolean(this._samplingState),[i,e]=fD.compute(this.options,this._context.viewModel.getLineCount(),this._samplingState);if(this._samplingState=i,t&&this._samplingState)for(const t of e)switch(t.type){case"deleted":this._actual.onLinesDeleted(t.deleteFromLineNumber,t.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(t.insertFromLineNumber,t.insertToLineNumber);break;case"flush":this._actual.onFlushed()}}getLineCount(){return this._samplingState?this._samplingState.minimapLines.length:this._context.viewModel.getLineCount()}getRealLineCount(){return this._context.viewModel.getLineCount()}getLineContent(t){return this._context.viewModel.getLineContent(this._samplingState?this._samplingState.minimapLines[t-1]:t)}getLineMaxColumn(t){return this._context.viewModel.getLineMaxColumn(this._samplingState?this._samplingState.minimapLines[t-1]:t)}getMinimapLinesRenderingData(t,i,e){if(this._samplingState){const s=[];for(let n=0,o=i-t+1;n{if(t.preventDefault(),0===this._model.options.renderMinimap)return;if(!this._lastRenderData)return;if("proportional"!==this._model.options.size){if(0===t.button&&this._lastRenderData){const i=nl(this._slider.domNode);this._startSliderDragging(t,i.top+i.height/2,this._lastRenderData.renderedLayout)}return}let i=Math.floor(this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*t.offsetY/this._model.options.minimapLineHeight)+this._lastRenderData.renderedLayout.startLineNumber-this._lastRenderData.renderedLayout.topPaddingLineCount;i=Math.min(i,this._model.getLineCount()),this._model.revealLineNumber(i)})),this._sliderPointerMoveMonitor=new hw,this._sliderPointerDownListener=qa(this._slider.domNode,Ll.POINTER_DOWN,(t=>{t.preventDefault(),t.stopPropagation(),0===t.button&&this._lastRenderData&&this._startSliderDragging(t,t.pageY,this._lastRenderData.renderedLayout)})),this._gestureDisposable=rw.addTarget(this._domNode.domNode),this._sliderTouchStartListener=Va(this._domNode.domNode,ow.Start,(t=>{t.preventDefault(),t.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName("active",!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(t))}),{passive:!1}),this._sliderTouchMoveListener=Va(this._domNode.domNode,ow.Change,(t=>{t.preventDefault(),t.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(t)}),{passive:!1}),this._sliderTouchEndListener=qa(this._domNode.domNode,ow.End,(t=>{t.preventDefault(),t.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName("active",!1)}))}_startSliderDragging(t,i,e){if(!(t.target&&t.target instanceof Element))return;const s=t.pageX;this._slider.toggleClassName("active",!0);const n=(t,n)=>{const o=nl(this._domNode.domNode),r=Math.min(Math.abs(n-s),Math.abs(n-o.left),Math.abs(n-o.left-o.width));this._model.setScrollTop(xt&&r>140?e.scrollTop:e.getDesiredScrollTopFromDelta(t-i))};t.pageY!==i&&n(t.pageY,s),this._sliderPointerMoveMonitor.startMonitoring(t.target,t.pointerId,t.buttons,(t=>n(t.pageY,t.pageX)),(()=>{this._slider.toggleClassName("active",!1)}))}scrollDueToTouchEvent(t){const i=this._domNode.domNode.getBoundingClientRect().top,e=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(t.pageY-i);this._model.setScrollTop(e)}dispose(){this._pointerDownListener.dispose(),this._sliderPointerMoveMonitor.dispose(),this._sliderPointerDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),super.dispose()}_getMinimapDomNodeClassName(){const t=["minimap"];return t.push("always"===this._model.options.showSlider?"slider-always":"slider-mouseover"),this._model.options.autohide&&t.push("autohide"),t.join(" ")}getDomNode(){return this._domNode}_applyLayout(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}_getBuffer(){return this._buffers||this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new dD(this._canvas.domNode.getContext("2d"),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}onDidChangeOptions(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}onSelectionChanged(){return this._renderDecorations=!0,!0}onDecorationsChanged(){return this._renderDecorations=!0,!0}onFlushed(){return this._lastRenderData=null,!0}onLinesChanged(t,i){return!!this._lastRenderData&&this._lastRenderData.onLinesChanged(t,i)}onLinesDeleted(t,i){var e;return null===(e=this._lastRenderData)||void 0===e||e.onLinesDeleted(t,i),!0}onLinesInserted(t,i){var e;return null===(e=this._lastRenderData)||void 0===e||e.onLinesInserted(t,i),!0}onScrollChanged(){return this._renderDecorations=!0,!0}onThemeChanged(){return this._selectionColor=this._theme.getColor(Xb),this._renderDecorations=!0,!0}onTokensChanged(t){return!!this._lastRenderData&&this._lastRenderData.onTokensChanged(t)}onTokensColorsChanged(){return this._lastRenderData=null,this._buffers=null,!0}onZonesChanged(){return this._lastRenderData=null,!0}render(t){if(0===this._model.options.renderMinimap)return this._shadow.setClassName("minimap-shadow-hidden"),this._sliderHorizontal.setWidth(0),void this._sliderHorizontal.setHeight(0);this._shadow.setClassName(t.scrollLeft+t.viewportWidth>=t.scrollWidth?"minimap-shadow-hidden":"minimap-shadow-visible");const i=aD.create(this._model.options,t.viewportStartLineNumber,t.viewportEndLineNumber,t.viewportStartLineNumberVerticalOffset,t.viewportHeight,t.viewportContainsWhitespaceGaps,this._model.getLineCount(),this._model.getRealLineCount(),t.scrollTop,t.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setDisplay(i.sliderNeeded?"block":"none"),this._slider.setTop(i.sliderTop),this._slider.setHeight(i.sliderHeight),this._sliderHorizontal.setLeft(0),this._sliderHorizontal.setWidth(this._model.options.minimapWidth),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(i.sliderHeight),this.renderDecorations(i),this._lastRenderData=this.renderLines(i)}renderDecorations(t){if(this._renderDecorations){this._renderDecorations=!1;const i=this._model.getSelections();i.sort(Ms.compareRangesUsingStarts);const e=this._model.getMinimapDecorationsInViewport(t.startLineNumber,t.endLineNumber);e.sort(((t,i)=>(t.options.zIndex||0)-(i.options.zIndex||0)));const{canvasInnerWidth:s,canvasInnerHeight:n}=this._model.options,o=this._model.options.minimapLineHeight,r=this._model.options.minimapCharWidth,h=this._model.getOptions().tabSize,c=this._decorationsCanvas.domNode.getContext("2d");c.clearRect(0,0,s,n);const a=new mD(t.startLineNumber,t.endLineNumber,!1);this._renderSelectionLineHighlights(c,i,a,t,o),this._renderDecorationsLineHighlights(c,e,a,t,o);const l=new mD(t.startLineNumber,t.endLineNumber,null);this._renderSelectionsHighlights(c,i,l,t,o,h,r,s),this._renderDecorationsHighlights(c,e,l,t,o,h,r,s)}}_renderSelectionLineHighlights(t,i,e,s,n){if(!this._selectionColor||this._selectionColor.isTransparent())return;t.fillStyle=this._selectionColor.transparent(.5).toString();let o=0,r=0;for(const h of i){const i=s.intersectWithViewport(h);if(!i)continue;const[c,a]=i;for(let t=c;t<=a;t++)e.set(t,!0);const l=s.getYForLineNumber(c,n),u=s.getYForLineNumber(a,n);r>=l||(r>o&&t.fillRect(8,o,t.canvas.width,r-o),o=l),r=u}r>o&&t.fillRect(8,o,t.canvas.width,r-o)}_renderDecorationsLineHighlights(t,i,e,s,n){const o=new Map;for(let r=i.length-1;r>=0;r--){const h=i[r],c=h.options.minimap;if(!c||c.position!==Bf.Inline)continue;const a=s.intersectWithViewport(h.range);if(!a)continue;const[l,u]=a,d=c.getColor(this._theme.value);if(!d||d.isTransparent())continue;let f=o.get(d.toString());f||(f=d.transparent(.5).toString(),o.set(d.toString(),f)),t.fillStyle=f;for(let i=l;i<=u;i++){if(e.has(i))continue;e.set(i,!0);const o=s.getYForLineNumber(l,n);t.fillRect(8,o,t.canvas.width,n)}}}_renderSelectionsHighlights(t,i,e,s,n,o,r,h){if(this._selectionColor&&!this._selectionColor.isTransparent())for(const c of i){const i=s.intersectWithViewport(c);if(!i)continue;const[a,l]=i;for(let i=a;i<=l;i++)this.renderDecorationOnLine(t,e,c,this._selectionColor,s,i,n,n,o,r,h)}}_renderDecorationsHighlights(t,i,e,s,n,o,r,h){for(const c of i){const i=c.options.minimap;if(!i)continue;const a=s.intersectWithViewport(c.range);if(!a)continue;const[l,u]=a,d=i.getColor(this._theme.value);if(d&&!d.isTransparent())for(let a=l;a<=u;a++)switch(i.position){case Bf.Inline:this.renderDecorationOnLine(t,e,c.range,d,s,a,n,n,o,r,h);continue;case Bf.Gutter:{const i=s.getYForLineNumber(a,n);this.renderDecoration(t,d,2,i,2,n);continue}}}}renderDecorationOnLine(t,i,e,s,n,o,r,h,c,a,l){const u=n.getYForLineNumber(o,h);if(u+r<0||u>this._model.options.canvasInnerHeight)return;const{startLineNumber:d,endLineNumber:f}=e,p=d===o?e.startColumn:1,g=f===o?e.endColumn:this._model.getLineMaxColumn(o),m=this.getXOffsetForPosition(i,o,p,c,a,l),w=this.getXOffsetForPosition(i,o,g,c,a,l);this.renderDecoration(t,s,m,u,w-m,r)}getXOffsetForPosition(t,i,e,s,n,o){if(1===e)return 8;if((e-1)*n>=o)return o;let r=t.get(i);if(!r){const e=this._model.getLineContent(i);r=[8];let h=8;for(let t=1;t=o){r[t]=o;break}r[t]=c,h=c}t.set(i,r)}return e-1b?Math.floor((s-b)/2):0,k=u.a/255,x=new tD(Math.round((u.r-l.r)*k+l.r),Math.round((u.g-l.g)*k+l.g),Math.round((u.b-l.b)*k+l.b),255);let C=t.topPaddingLineCount*s;const S=[];for(let t=0,o=e-i+1;t=0&&sw)return;const r=g.charCodeAt(y);if(9===r){const t=u-(y+k)%u;k+=t-1,b+=t*o}else if(32===r)b+=o;else{const u=Lo(r)?2:1;for(let d=0;dw)return}}}}}class mD{constructor(t,i,e){this._startLineNumber=t,this._endLineNumber=i,this._defaultValue=e,this._values=[];for(let t=0,i=this._endLineNumber-this._startLineNumber+1;tthis._endLineNumber||(this._values[t-this._startLineNumber]=i)}get(t){return tthis._endLineNumber?this._defaultValue:this._values[t-this._startLineNumber]}}class wD extends Ty{constructor(t){super(t);const i=this._context.configuration.options.get(143);this._widgets={},this._verticalScrollbarWidth=i.verticalScrollbarWidth,this._minimapWidth=i.minimap.minimapWidth,this._horizontalScrollbarHeight=i.horizontalScrollbarHeight,this._editorHeight=i.height,this._editorWidth=i.width,this._domNode=tr(document.createElement("div")),Ry.write(this._domNode,4),this._domNode.setClassName("overlayWidgets")}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(t){const i=this._context.configuration.options.get(143);return this._verticalScrollbarWidth=i.verticalScrollbarWidth,this._minimapWidth=i.minimap.minimapWidth,this._horizontalScrollbarHeight=i.horizontalScrollbarHeight,this._editorHeight=i.height,this._editorWidth=i.width,!0}addWidget(t){const i=tr(t.getDomNode());this._widgets[t.getId()]={widget:t,preference:null,domNode:i},i.setPosition("absolute"),i.setAttribute("widgetId",t.getId()),this._domNode.appendChild(i),this.setShouldRender(),this._updateMaxMinWidth()}setWidgetPosition(t,i){const e=this._widgets[t.getId()];return e.preference===i?(this._updateMaxMinWidth(),!1):(e.preference=i,this.setShouldRender(),this._updateMaxMinWidth(),!0)}removeWidget(t){const i=t.getId();if(this._widgets.hasOwnProperty(i)){const t=this._widgets[i].domNode.domNode;delete this._widgets[i],t.parentNode.removeChild(t),this.setShouldRender(),this._updateMaxMinWidth()}}_updateMaxMinWidth(){var t,i;let e=0;const s=Object.keys(this._widgets);for(let n=0,o=s.length;n=3){const i=Math.floor(s/3),e=Math.floor(s/3),n=s-i-e,o=t+i;return[[0,t,o,t,t+i+n,t,o,t],[0,i,n,i+n,e,i+n+e,n+e,i+n+e]]}if(2===e){const i=Math.floor(s/2),e=s-i;return[[0,t,t,t,t+i,t,t,t],[0,i,i,i,e,i+e,i+e,i+e]]}return[[0,t,t,t,t,t,t,t],[0,s,s,s,s,s,s,s]]}equals(t){return this.lineHeight===t.lineHeight&&this.pixelRatio===t.pixelRatio&&this.overviewRulerLanes===t.overviewRulerLanes&&this.renderBorder===t.renderBorder&&this.borderColor===t.borderColor&&this.hideCursor===t.hideCursor&&this.cursorColor===t.cursorColor&&this.themeType===t.themeType&&lg.equals(this.backgroundColor,t.backgroundColor)&&this.top===t.top&&this.right===t.right&&this.domWidth===t.domWidth&&this.domHeight===t.domHeight&&this.canvasWidth===t.canvasWidth&&this.canvasHeight===t.canvasHeight}}class bD extends Ty{constructor(t){super(t),this._actualShouldRender=0,this._renderedDecorations=[],this._renderedCursorPositions=[],this._domNode=tr(document.createElement("canvas")),this._domNode.setClassName("decorationsOverviewRuler"),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._domNode.setAttribute("aria-hidden","true"),this._updateSettings(!1),this._tokensColorTrackerListener=Zs.onDidChange((t=>{t.changedColorMap&&this._updateSettings(!0)})),this._cursorPositions=[]}dispose(){super.dispose(),this._tokensColorTrackerListener.dispose()}_updateSettings(t){const i=new vD(this._context.configuration,this._context.theme);return!(this._settings&&this._settings.equals(i)||(this._settings=i,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,t&&this._render(),0))}_markRenderingIsNeeded(){return this._actualShouldRender=2,!0}_markRenderingIsMaybeNeeded(){return this._actualShouldRender=1,!0}onConfigurationChanged(t){return!!this._updateSettings(!1)&&this._markRenderingIsNeeded()}onCursorStateChanged(t){this._cursorPositions=[];for(let i=0,e=t.selections.length;it.lineNumber===i.lineNumber))||(this._actualShouldRender=2),1===this._actualShouldRender)return;this._renderedDecorations=i,this._renderedCursorPositions=this._cursorPositions,this._domNode.setDisplay("block");const e=this._settings.canvasWidth,s=this._settings.canvasHeight,n=this._settings.lineHeight,o=this._context.viewLayout,r=s/this._context.viewLayout.getScrollHeight(),h=6*this._settings.pixelRatio|0,c=h/2|0,a=this._domNode.domNode.getContext("2d");t?t.isOpaque()?(a.fillStyle=lg.Format.CSS.formatHexA(t),a.fillRect(0,0,e,s)):(a.clearRect(0,0,e,s),a.fillStyle=lg.Format.CSS.formatHexA(t),a.fillRect(0,0,e,s)):a.clearRect(0,0,e,s);const u=this._settings.x,d=this._settings.w;for(const t of i){const i=t.data;a.fillStyle=t.color;let e=0,l=0,f=0;for(let t=0,p=i.length/3;ts&&(t=s-c),m=t-c,w=t+c}m>f+1||p!==e?(0!==t&&a.fillRect(u[e],l,d[e],f-l),e=p,l=m,f=w):w>f&&(f=w)}a.fillRect(u[e],l,d[e],f-l)}if(!this._settings.hideCursor&&this._settings.cursorColor){const t=2*this._settings.pixelRatio|0,i=t/2|0,e=this._settings.x[7],n=this._settings.w[7];a.fillStyle=this._settings.cursorColor;let h=-100,c=-100;for(let l=0,u=this._cursorPositions.length;ls&&(u=s-i);const d=u-i,f=d+t;d>c+1?(0!==l&&a.fillRect(e,h,n,c-h),h=d,c=f):f>c&&(c=f)}a.fillRect(e,h,n,c-h)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(a.beginPath(),a.lineWidth=1,a.strokeStyle=this._settings.borderColor,a.moveTo(0,0),a.lineTo(0,s),a.stroke(),a.moveTo(0,0),a.lineTo(e,0),a.stroke())}}class yD{constructor(t,i,e){this._colorZoneBrand=void 0,this.from=0|t,this.to=0|i,this.colorId=0|e}static compare(t,i){return t.colorId===i.colorId?t.from===i.from?t.to-i.to:t.from-i.from:t.colorId-i.colorId}}class kD{constructor(t,i,e,s){this._overviewRulerZoneBrand=void 0,this.startLineNumber=t,this.endLineNumber=i,this.heightInLines=e,this.color=s,this._colorZone=null}static compare(t,i){return t.color===i.color?t.startLineNumber===i.startLineNumber?t.heightInLines===i.heightInLines?t.endLineNumber-i.endLineNumber:t.heightInLines-i.heightInLines:t.startLineNumber-i.startLineNumber:t.colore&&(d=e-f);const p=h.color;let g=this._color2Id[p];g||(g=++this._lastAssignedId,this._color2Id[p]=g,this._id2Color[g]=p);const m=new yD(d-f,d+f,g);h.setColorZone(m),o.push(m)}return this._colorZonesInvalid=!1,o.sort(yD.compare),o}}class CD extends Fy{constructor(t,i){super(),this._context=t;const e=this._context.configuration.options;this._domNode=tr(document.createElement("canvas")),this._domNode.setClassName(i),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._zoneManager=new xD((t=>this._context.viewLayout.getVerticalOffsetForLineNumber(t))),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(e.get(66)),this._zoneManager.setPixelRatio(e.get(141)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(t){const i=this._context.configuration.options;return t.hasChanged(66)&&(this._zoneManager.setLineHeight(i.get(66)),this._render()),t.hasChanged(141)&&(this._zoneManager.setPixelRatio(i.get(141)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0}onFlushed(t){return this._render(),!0}onScrollChanged(t){return t.scrollHeightChanged&&(this._zoneManager.setOuterHeight(t.scrollHeight),this._render()),!0}onZonesChanged(t){return this._render(),!0}getDomNode(){return this._domNode.domNode}setLayout(t){this._domNode.setTop(t.top),this._domNode.setRight(t.right);let i=!1;i=this._zoneManager.setDOMWidth(t.width)||i,i=this._zoneManager.setDOMHeight(t.height)||i,i&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())}setZones(t){this._zoneManager.setZones(t),this._render()}_render(){if(0===this._zoneManager.getOuterHeight())return!1;const t=this._zoneManager.getCanvasWidth(),i=this._zoneManager.getCanvasHeight(),e=this._zoneManager.resolveColorZones(),s=this._zoneManager.getId2Color(),n=this._domNode.domNode.getContext("2d");return n.clearRect(0,0,t,i),e.length>0&&this._renderOneLane(n,e,s,t),!0}_renderOneLane(t,i,e,s){let n=0,o=0,r=0;for(const h of i){const i=h.colorId,c=h.from,a=h.to;i!==n?(t.fillRect(0,o,s,r-o),n=i,t.fillStyle=e[n],o=c,r=a):r>=c?r=Math.max(r,a):(t.fillRect(0,o,s,r-o),o=c,r=a)}t.fillRect(0,o,s,r-o)}}class SD extends Ty{constructor(t){super(t),this.domNode=tr(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("view-rulers"),this._renderedRulers=[];const i=this._context.configuration.options;this._rulers=i.get(101),this._typicalHalfwidthCharacterWidth=i.get(50).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(t){const i=this._context.configuration.options;return this._rulers=i.get(101),this._typicalHalfwidthCharacterWidth=i.get(50).typicalHalfwidthCharacterWidth,!0}onScrollChanged(t){return t.scrollHeightChanged}prepareRender(t){}_ensureRulersCount(){const t=this._renderedRulers.length,i=this._rulers.length;if(t===i)return;if(t0;){const t=tr(document.createElement("div"));t.setClassName("view-ruler"),t.setWidth(s),this.domNode.appendChild(t),this._renderedRulers.push(t),n--}return}let e=t-i;for(;e>0;){const t=this._renderedRulers.pop();this.domNode.removeChild(t),e--}}render(t){this._ensureRulersCount();for(let i=0,e=this._rulers.length;i0;return this._shouldShow!==t&&(this._shouldShow=t,!0)}getDomNode(){return this._domNode}_updateWidth(){const t=this._context.configuration.options.get(143);this._width=0===t.minimap.renderMinimap||t.minimap.minimapWidth>0&&0===t.minimap.minimapLeft?t.width:t.width-t.verticalScrollbarWidth}onConfigurationChanged(t){const i=this._context.configuration.options.get(102);return this._useShadows=i.useShadows,this._updateWidth(),this._updateShouldShow(),!0}onScrollChanged(t){return this._scrollTop=t.scrollTop,this._updateShouldShow()}prepareRender(t){}render(t){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")}}class ED{constructor(t){this.left=t.left,this.width=t.width,this.startStyle=null,this.endStyle=null}}class AD{constructor(t,i){this.lineNumber=t,this.ranges=i}}function MD(t){return new ED(t)}function LD(t){return new AD(t.lineNumber,t.ranges.map(MD))}class FD extends Yk{constructor(t){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=t;const i=this._context.configuration.options;this._lineHeight=i.get(66),this._roundedSelection=i.get(100),this._typicalHalfwidthCharacterWidth=i.get(50).typicalHalfwidthCharacterWidth,this._selections=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(t){const i=this._context.configuration.options;return this._lineHeight=i.get(66),this._roundedSelection=i.get(100),this._typicalHalfwidthCharacterWidth=i.get(50).typicalHalfwidthCharacterWidth,!0}onCursorStateChanged(t){return this._selections=t.selections.slice(0),!0}onDecorationsChanged(t){return!0}onFlushed(t){return!0}onLinesChanged(t){return!0}onLinesDeleted(t){return!0}onLinesInserted(t){return!0}onScrollChanged(t){return t.scrollTopChanged}onZonesChanged(t){return!0}_visibleRangesHaveGaps(t){for(let i=0,e=t.length;i1)return!0;return!1}_enrichVisibleRangesWithStyle(t,i,e){const s=this._typicalHalfwidthCharacterWidth/4;let n=null,o=null;if(e&&e.length>0&&i.length>0){const s=i[0].lineNumber;if(s===t.startLineNumber)for(let t=0;!n&&t=0;t--)e[t].lineNumber===r&&(o=e[t].ranges[0]);n&&!n.startStyle&&(n=null),o&&!o.startStyle&&(o=null)}for(let t=0,e=i.length;t0){const e=i[t-1].ranges[0].left,n=i[t-1].ranges[0].left+i[t-1].ranges[0].width;TD(h-e)e&&(a.top=1),TD(c-n)'}_actualRenderOneSelection(t,i,e,s){if(0===s.length)return;const n=!!s[0].ranges[0].startStyle,o=this._lineHeight.toString(),r=(this._lineHeight-1).toString(),h=s[0].lineNumber,c=s[s.length-1].lineNumber;for(let a=0,l=s.length;a1,r)}this._previousFrameVisibleRangesWithStyle=n,this._renderResult=i.map((([t,i])=>t+i))}render(t,i){if(!this._renderResult)return"";const e=i-t;return e<0||e>=this._renderResult.length?"":this._renderResult[e]}}function TD(t){return t<0?-t:t}FD.SELECTION_CLASS_NAME="selected-text",FD.SELECTION_TOP_LEFT="top-left-radius",FD.SELECTION_BOTTOM_LEFT="bottom-left-radius",FD.SELECTION_TOP_RIGHT="top-right-radius",FD.SELECTION_BOTTOM_RIGHT="bottom-right-radius",FD.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background",FD.ROUNDED_PIECE_WIDTH=10,nx(((t,i)=>{const e=t.getColor(Dv);e&&!e.isTransparent()&&i.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${e}; }`)}));class RD{constructor(t,i,e,s,n,o,r){this.top=t,this.left=i,this.paddingLeft=e,this.width=s,this.height=n,this.textContent=o,this.textContentClassName=r}}class OD{constructor(t){this._context=t;const i=this._context.configuration.options,e=i.get(50);this._cursorStyle=i.get(28),this._lineHeight=i.get(66),this._typicalHalfwidthCharacterWidth=e.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(i.get(31),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=tr(document.createElement("div")),this._domNode.setClassName(`cursor ${sC}`),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),ir(this._domNode,e),this._domNode.setDisplay("none"),this._position=new As(1,1),this._lastRenderedContent="",this._renderData=null}getDomNode(){return this._domNode}getPosition(){return this._position}show(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)}hide(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)}onConfigurationChanged(t){const i=this._context.configuration.options,e=i.get(50);return this._cursorStyle=i.get(28),this._lineHeight=i.get(66),this._typicalHalfwidthCharacterWidth=e.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(i.get(31),this._typicalHalfwidthCharacterWidth),ir(this._domNode,e),!0}onCursorPositionChanged(t,i){return this._domNode.domNode.style.transitionProperty=i?"none":"",this._position=t,!0}_getGraphemeAwarePosition(){const{lineNumber:t,column:i}=this._position,e=this._context.viewModel.getLineContent(t),[s,n]=function(t,i){i>0&&mo(t.charCodeAt(i))&&i--;const e=i+ko(t,i);return[e-xo(t,e),e]}(e,i-1);return[new As(t,s+1),e.substring(s,n)]}_prepareRender(t){let i="",e="";const[s,n]=this._getGraphemeAwarePosition();if(this._cursorStyle===gi.Line||this._cursorStyle===gi.LineThin){const o=t.visibleRangeForPosition(s);if(!o||o.outsideRenderedLine)return null;const r=Na(this._domNode.domNode);let h;this._cursorStyle===gi.Line?(h=zl(r,this._lineCursorWidth>0?this._lineCursorWidth:2),h>2&&(i=n,e=this._getTokenClassName(s))):h=zl(r,1);let c=o.left,a=0;h>=2&&c>=1&&(a=1,c-=a);const l=t.getVerticalOffsetForLineNumber(s.lineNumber)-t.bigNumbersDelta;return new RD(l,c,a,h,this._lineHeight,i,e)}const o=t.linesVisibleRangesForRange(new Ms(s.lineNumber,s.column,s.lineNumber,s.column+n.length),!1);if(!o||0===o.length)return null;const r=o[0];if(r.outsideRenderedLine||0===r.ranges.length)return null;const h=r.ranges[0],c="\t"===n||h.width<1?this._typicalHalfwidthCharacterWidth:h.width;this._cursorStyle===gi.Block&&(i=n,e=this._getTokenClassName(s));let a=t.getVerticalOffsetForLineNumber(s.lineNumber)-t.bigNumbersDelta,l=this._lineHeight;return this._cursorStyle!==gi.Underline&&this._cursorStyle!==gi.UnderlineThin||(a+=this._lineHeight-2,l=2),new RD(a,h.left,0,c,l,i,e)}_getTokenClassName(t){const i=this._context.viewModel.getViewLineData(t.lineNumber),e=i.tokens.findTokenIndexAtOffset(t.column-1);return i.tokens.getClassName(e)}prepareRender(t){this._renderData=this._prepareRender(t)}render(t){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName(`cursor ${sC} ${this._renderData.textContentClassName}`),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setPaddingLeft(this._renderData.paddingLeft),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay("none"),null)}}class ID extends Ty{constructor(t){super(t);const i=this._context.configuration.options;this._readOnly=i.get(90),this._cursorBlinking=i.get(26),this._cursorStyle=i.get(28),this._cursorSmoothCaretAnimation=i.get(27),this._selectionIsEmpty=!0,this._isComposingInput=!1,this._isVisible=!1,this._primaryCursor=new OD(this._context),this._secondaryCursors=[],this._renderData=[],this._domNode=tr(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._updateDomClassName(),this._domNode.appendChild(this._primaryCursor.getDomNode()),this._startCursorBlinkAnimation=new dc,this._cursorFlatBlinkInterval=new Ja,this._blinkingEnabled=!1,this._editorHasFocus=!1,this._updateBlinking()}dispose(){super.dispose(),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()}getDomNode(){return this._domNode}onCompositionStart(t){return this._isComposingInput=!0,this._updateBlinking(),!0}onCompositionEnd(t){return this._isComposingInput=!1,this._updateBlinking(),!0}onConfigurationChanged(t){const i=this._context.configuration.options;this._readOnly=i.get(90),this._cursorBlinking=i.get(26),this._cursorStyle=i.get(28),this._cursorSmoothCaretAnimation=i.get(27),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(t);for(let i=0,e=this._secondaryCursors.length;ii.length){const t=this._secondaryCursors.length-i.length;for(let i=0;i{for(let e=0,s=t.ranges.length;e{this._isVisible?this._hide():this._show()}),ID.BLINK_INTERVAL,Na(this._domNode.domNode)):this._startCursorBlinkAnimation.setIfNotSet((()=>{this._blinkingEnabled=!0,this._updateDomClassName()}),ID.BLINK_INTERVAL))}_updateDomClassName(){this._domNode.setClassName(this._getClassName())}_getClassName(){let t="cursors-layer";switch(this._selectionIsEmpty||(t+=" has-selection"),this._cursorStyle){case gi.Line:t+=" cursor-line-style";break;case gi.Block:t+=" cursor-block-style";break;case gi.Underline:t+=" cursor-underline-style";break;case gi.LineThin:t+=" cursor-line-thin-style";break;case gi.BlockOutline:t+=" cursor-block-outline-style";break;case gi.UnderlineThin:t+=" cursor-underline-thin-style";break;default:t+=" cursor-line-style"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:t+=" cursor-blink";break;case 2:t+=" cursor-smooth";break;case 3:t+=" cursor-phase";break;case 4:t+=" cursor-expand";break;default:t+=" cursor-solid"}else t+=" cursor-solid";return"on"!==this._cursorSmoothCaretAnimation&&"explicit"!==this._cursorSmoothCaretAnimation||(t+=" cursor-smooth-caret-animation"),t}_show(){this._primaryCursor.show();for(let t=0,i=this._secondaryCursors.length;t{const e=t.getColor(cx);if(e){let s=t.getColor(ax);s||(s=e.opposite()),i.addRule(`.monaco-editor .cursors-layer .cursor { background-color: ${e}; border-color: ${e}; color: ${s}; }`),zy(t.type)&&i.addRule(`.monaco-editor .cursors-layer.has-selection .cursor { border-left: 1px solid ${s}; border-right: 1px solid ${s}; }`)}}));const _D=()=>{throw new Error("Invalid change accessor")};class ND extends Ty{constructor(t){super(t);const i=this._context.configuration.options,e=i.get(143);this._lineHeight=i.get(66),this._contentWidth=e.contentWidth,this._contentLeft=e.contentLeft,this.domNode=tr(document.createElement("div")),this.domNode.setClassName("view-zones"),this.domNode.setPosition("absolute"),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.marginDomNode=tr(document.createElement("div")),this.marginDomNode.setClassName("margin-view-zones"),this.marginDomNode.setPosition("absolute"),this.marginDomNode.setAttribute("role","presentation"),this.marginDomNode.setAttribute("aria-hidden","true"),this._zones={}}dispose(){super.dispose(),this._zones={}}_recomputeWhitespacesProps(){const t=this._context.viewLayout.getWhitespaces(),i=new Map;for(const e of t)i.set(e.id,e);let e=!1;return this._context.viewModel.changeWhitespace((t=>{const s=Object.keys(this._zones);for(let n=0,o=s.length;n{const s={addZone:t=>(i=!0,this._addZone(e,t)),removeZone:t=>{t&&(i=this._removeZone(e,t)||i)},layoutZone:t=>{t&&(i=this._layoutZone(e,t)||i)}};!function(t,i){try{return t(i)}catch(t){Bi(t)}}(t,s),s.addZone=_D,s.removeZone=_D,s.layoutZone=_D})),i}_addZone(t,i){const e=this._computeWhitespaceProps(i),s={whitespaceId:t.insertWhitespace(e.afterViewLineNumber,this._getZoneOrdinal(i),e.heightInPx,e.minWidthInPx),delegate:i,isInHiddenArea:e.isInHiddenArea,isVisible:!1,domNode:tr(i.domNode),marginDomNode:i.marginDomNode?tr(i.marginDomNode):null};return this._safeCallOnComputedHeight(s.delegate,e.heightInPx),s.domNode.setPosition("absolute"),s.domNode.domNode.style.width="100%",s.domNode.setDisplay("none"),s.domNode.setAttribute("monaco-view-zone",s.whitespaceId),this.domNode.appendChild(s.domNode),s.marginDomNode&&(s.marginDomNode.setPosition("absolute"),s.marginDomNode.domNode.style.width="100%",s.marginDomNode.setDisplay("none"),s.marginDomNode.setAttribute("monaco-view-zone",s.whitespaceId),this.marginDomNode.appendChild(s.marginDomNode)),this._zones[s.whitespaceId]=s,this.setShouldRender(),s.whitespaceId}_removeZone(t,i){if(this._zones.hasOwnProperty(i)){const e=this._zones[i];return delete this._zones[i],t.removeWhitespace(e.whitespaceId),e.domNode.removeAttribute("monaco-visible-view-zone"),e.domNode.removeAttribute("monaco-view-zone"),e.domNode.domNode.parentNode.removeChild(e.domNode.domNode),e.marginDomNode&&(e.marginDomNode.removeAttribute("monaco-visible-view-zone"),e.marginDomNode.removeAttribute("monaco-view-zone"),e.marginDomNode.domNode.parentNode.removeChild(e.marginDomNode.domNode)),this.setShouldRender(),!0}return!1}_layoutZone(t,i){if(this._zones.hasOwnProperty(i)){const e=this._zones[i],s=this._computeWhitespaceProps(e.delegate);return e.isInHiddenArea=s.isInHiddenArea,t.changeOneWhitespace(e.whitespaceId,s.afterViewLineNumber,s.heightInPx),this._safeCallOnComputedHeight(e.delegate,s.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(t){return!!this._zones.hasOwnProperty(t)&&Boolean(this._zones[t].delegate.suppressMouseDown)}_heightInPixels(t){return"number"==typeof t.heightInPx?t.heightInPx:"number"==typeof t.heightInLines?this._lineHeight*t.heightInLines:this._lineHeight}_minWidthInPixels(t){return"number"==typeof t.minWidthInPx?t.minWidthInPx:0}_safeCallOnComputedHeight(t,i){if("function"==typeof t.onComputedHeight)try{t.onComputedHeight(i)}catch(t){Bi(t)}}_safeCallOnDomNodeTop(t,i){if("function"==typeof t.onDomNodeTop)try{t.onDomNodeTop(i)}catch(t){Bi(t)}}prepareRender(t){}render(t){const i=t.viewportData.whitespaceViewportData,e={};let s=!1;for(const t of i)this._zones[t.id].isInHiddenArea||(e[t.id]=t,s=!0);const n=Object.keys(this._zones);for(let i=0,s=n.length;ii)continue;const t=e.startLineNumber===i?e.startColumn:n.minColumn,s=e.endLineNumber===i?e.endColumn:n.maxColumn;t=x.endOffset&&(k++,x=e&&e[k]),9!==n&&32!==n)continue;if(u&&!b&&s<=w)continue;if(l&&s>=y&&s<=w&&32===n){const t=s-1>=0?r.charCodeAt(s-1):0,i=s+1=0?r.charCodeAt(s-1):0;if(32===n&&32!==t&&9!==t)continue}if(e&&(!x||x.startOffset>s||x.endOffset<=s))continue;const a=t.visibleRangeForPosition(new As(i,s+1));a&&(o?(C=Math.max(C,a.left),v+=9===n?this._renderArrow(d,p,a.left):``):v+=9===n?`
      ${String.fromCharCode(m?65515:8594)}
      `:`
      ${String.fromCharCode(g)}
      `)}return o?(C=Math.round(C+p),``+v+""):v}_renderArrow(t,i,e){const s=t/2,n=e,o={x:0,y:i/7/2},r={x:.8*i,y:o.y},h={x:r.x-.2*r.x,y:r.y+.2*r.x},c={x:h.x+.1*r.x,y:h.y+.1*r.x},a={x:c.x+.35*r.x,y:c.y-.35*r.x};return``}render(t,i){if(!this._renderResult)return"";const e=i-t;return e<0||e>=this._renderResult.length?"":this._renderResult[e]}}class zD{constructor(t){const i=t.options,e=i.get(50),s=i.get(38);"off"===s?(this.renderWhitespace="none",this.renderWithSVG=!1):"svg"===s?(this.renderWhitespace=i.get(98),this.renderWithSVG=!0):(this.renderWhitespace=i.get(98),this.renderWithSVG=!1),this.spaceWidth=e.spaceWidth,this.middotWidth=e.middotWidth,this.wsmiddotWidth=e.wsmiddotWidth,this.canUseHalfwidthRightwardsArrow=e.canUseHalfwidthRightwardsArrow,this.lineHeight=i.get(66),this.stopRenderingLineAfter=i.get(116)}equals(t){return this.renderWhitespace===t.renderWhitespace&&this.renderWithSVG===t.renderWithSVG&&this.spaceWidth===t.spaceWidth&&this.middotWidth===t.middotWidth&&this.wsmiddotWidth===t.wsmiddotWidth&&this.canUseHalfwidthRightwardsArrow===t.canUseHalfwidthRightwardsArrow&&this.lineHeight===t.lineHeight&&this.stopRenderingLineAfter===t.stopRenderingLineAfter}}let HD=class extends Fy{constructor(t,i,e,s,n,o,r){super(),this._instantiationService=r,this._shouldRecomputeGlyphMarginLanes=!1,this._selections=[new Ls(1,1,1,1)],this._renderAnimationFrame=null;const h=new uS(i,s,n,t);this._context=new PD(i,e,s),this._context.addEventHandler(this),this._viewParts=[],this._textAreaHandler=this._instantiationService.createInstance(aC,this._context,h,this._createTextAreaHandlerHelper()),this._viewParts.push(this._textAreaHandler),this._linesContent=tr(document.createElement("div")),this._linesContent.setClassName("lines-content monaco-editor-background"),this._linesContent.setPosition("absolute"),this.domNode=tr(document.createElement("div")),this.domNode.setClassName(this._getEditorClassName()),this.domNode.setAttribute("role","code"),this._overflowGuardContainer=tr(document.createElement("div")),Ry.write(this._overflowGuardContainer,3),this._overflowGuardContainer.setClassName("overflow-guard"),this._scrollbar=new FS(this._context,this._linesContent,this.domNode,this._overflowGuardContainer),this._viewParts.push(this._scrollbar),this._viewLines=new HS(this._context,this._linesContent),this._viewZones=new ND(this._context),this._viewParts.push(this._viewZones);const c=new bD(this._context);this._viewParts.push(c);const a=new DD(this._context);this._viewParts.push(a);const l=new vS(this._context);this._viewParts.push(l),l.addDynamicOverlay(new AS(this._context)),l.addDynamicOverlay(new FD(this._context)),l.addDynamicOverlay(new BS(this._context)),l.addDynamicOverlay(new LS(this._context)),l.addDynamicOverlay(new jD(this._context));const u=new bS(this._context);this._viewParts.push(u),u.addDynamicOverlay(new MS(this._context)),u.addDynamicOverlay(new XS(this._context)),u.addDynamicOverlay(new YS(this._context)),u.addDynamicOverlay(new iC(this._context)),this._glyphMarginWidgets=new GS(this._context),this._viewParts.push(this._glyphMarginWidgets);const d=new eC(this._context);d.getDomNode().appendChild(this._viewZones.marginDomNode),d.getDomNode().appendChild(u.getDomNode()),d.getDomNode().appendChild(this._glyphMarginWidgets.domNode),this._viewParts.push(d),this._contentWidgets=new yS(this._context,this.domNode),this._viewParts.push(this._contentWidgets),this._viewCursors=new ID(this._context),this._viewParts.push(this._viewCursors),this._overlayWidgets=new wD(this._context),this._viewParts.push(this._overlayWidgets);const f=new SD(this._context);this._viewParts.push(f);const p=new WD(this._context);this._viewParts.push(p);const g=new pD(this._context);if(this._viewParts.push(g),c){const t=this._scrollbar.getOverviewRulerLayoutInfo();t.parent.insertBefore(c.getDomNode(),t.insertBefore)}this._linesContent.appendChild(l.getDomNode()),this._linesContent.appendChild(f.domNode),this._linesContent.appendChild(this._viewZones.domNode),this._linesContent.appendChild(this._viewLines.getDomNode()),this._linesContent.appendChild(this._contentWidgets.domNode),this._linesContent.appendChild(this._viewCursors.getDomNode()),this._overflowGuardContainer.appendChild(d.getDomNode()),this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this._overflowGuardContainer.appendChild(a.getDomNode()),this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea),this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover),this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()),this._overflowGuardContainer.appendChild(g.getDomNode()),this._overflowGuardContainer.appendChild(p.domNode),this.domNode.appendChild(this._overflowGuardContainer),o?o.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode):this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode),this._applyLayout(),this._pointerHandler=this._register(new Jk(this._context,h,this._createPointerHandlerHelper()))}_computeGlyphMarginLaneCount(){const t=this._context.viewModel.model;let i=[];i=i.concat(t.getAllMarginDecorations().map((t=>{var i,e;const s=null!==(e=null===(i=t.options.glyphMargin)||void 0===i?void 0:i.position)&&void 0!==e?e:Nf.Left;return{range:t.range,lane:s}}))),i=i.concat(this._glyphMarginWidgets.getWidgets().map((i=>({range:t.validateRange(i.preference.range),lane:i.preference.lane})))),i.sort(((t,i)=>Ms.compareRangesUsingStarts(t.range,i.range)));let e=null,s=null;for(const t of i)if(t.lane===Nf.Left&&(!e||Ms.compareRangesUsingEnds(e,t.range)<0)&&(e=t.range),t.lane===Nf.Right&&(!s||Ms.compareRangesUsingEnds(s,t.range)<0)&&(s=t.range),e&&s){if(e.endLineNumber{this.focus()},dispatchTextAreaEvent:t=>{this._textAreaHandler.textArea.domNode.dispatchEvent(t)},getLastRenderData:()=>{const t=this._viewCursors.getLastRenderData()||[],i=this._textAreaHandler.getLastRenderData();return new nk(t,i)},renderNow:()=>{this.render(!0,!1)},shouldSuppressMouseDownOnViewZone:t=>this._viewZones.shouldSuppressMouseDownOnViewZone(t),shouldSuppressMouseDownOnWidget:t=>this._contentWidgets.shouldSuppressMouseDownOnWidget(t),getPositionFromDOMInfo:(t,i)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getPositionFromDOMInfo(t,i)),visibleRangeForPosition:(t,i)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(new As(t,i))),getLineWidth:t=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getLineWidth(t))}}_createTextAreaHandlerHelper(){return{visibleRangeForPosition:t=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(t))}}_applyLayout(){const t=this._context.configuration.options.get(143);this.domNode.setWidth(t.width),this.domNode.setHeight(t.height),this._overflowGuardContainer.setWidth(t.width),this._overflowGuardContainer.setHeight(t.height),this._linesContent.setWidth(1e6),this._linesContent.setHeight(1e6)}_getEditorClassName(){const t=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.options.get(140)+" "+ix(this._context.theme.type)+t}handleEvents(t){super.handleEvents(t),this._scheduleRender()}onConfigurationChanged(t){return this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}onCursorStateChanged(t){return this._selections=t.selections,!1}onDecorationsChanged(t){return t.affectsGlyphMargin&&(this._shouldRecomputeGlyphMarginLanes=!0),!1}onFocusChanged(t){return this.domNode.setClassName(this._getEditorClassName()),!1}onThemeChanged(t){return this._context.theme.update(t.theme),this.domNode.setClassName(this._getEditorClassName()),!1}dispose(){null!==this._renderAnimationFrame&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose();for(const t of this._viewParts)t.dispose();super.dispose()}_scheduleRender(){if(this._store.isDisposed)throw new Ki;if(null===this._renderAnimationFrame){const t=this._createCoordinatedRendering();this._renderAnimationFrame=UD.INSTANCE.scheduleCoordinatedRendering({window:Na(this.domNode.domNode),prepareRenderText:()=>{if(this._store.isDisposed)throw new Ki;try{return t.prepareRenderText()}finally{this._renderAnimationFrame=null}},renderText:()=>{if(this._store.isDisposed)throw new Ki;return t.renderText()},prepareRender:(i,e)=>{if(this._store.isDisposed)throw new Ki;return t.prepareRender(i,e)},render:(i,e)=>{if(this._store.isDisposed)throw new Ki;return t.render(i,e)}})}}_flushAccumulatedAndRenderNow(){const t=this._createCoordinatedRendering();VD((()=>t.prepareRenderText()));const i=VD((()=>t.renderText()));if(i){const[e,s]=i;VD((()=>t.prepareRender(e,s))),VD((()=>t.render(e,s)))}}_getViewPartsToRender(){const t=[];let i=0;for(const e of this._viewParts)e.shouldRender()&&(t[i++]=e);return t}_createCoordinatedRendering(){return{prepareRenderText:()=>{this._shouldRecomputeGlyphMarginLanes&&(this._shouldRecomputeGlyphMarginLanes=!1,this._context.configuration.setGlyphMarginDecorationLaneCount(this._computeGlyphMarginLaneCount())),Pk.onRenderStart()},renderText:()=>{if(!this.domNode.domNode.isConnected)return null;let t=this._getViewPartsToRender();if(!this._viewLines.shouldRender()&&0===t.length)return null;const i=this._context.viewLayout.getLinesViewportData();this._context.viewModel.setViewport(i.startLineNumber,i.endLineNumber,i.centeredLineNumber);const e=new $D(this._selections,i,this._context.viewLayout.getWhitespaceViewportData(),this._context.viewModel);return this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(e),this._viewLines.shouldRender()&&(this._viewLines.renderText(e),this._viewLines.onDidRender(),t=this._getViewPartsToRender()),[t,new Iy(this._context.viewLayout,e,this._viewLines)]},prepareRender:(t,i)=>{for(const e of t)e.prepareRender(i)},render:(t,i)=>{for(const e of t)e.render(i),e.onDidRender()}}}delegateVerticalScrollbarPointerDown(t){this._scrollbar.delegateVerticalScrollbarPointerDown(t)}delegateScrollFromMouseWheelEvent(t){this._scrollbar.delegateScrollFromMouseWheelEvent(t)}restoreState(t){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:t.scrollTop,scrollLeft:t.scrollLeft},1),this._context.viewModel.visibleLinesStabilized()}getOffsetForColumn(t,i){const e=this._context.viewModel.model.validatePosition({lineNumber:t,column:i}),s=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(e);this._flushAccumulatedAndRenderNow();const n=this._viewLines.visibleRangeForPosition(new As(s.lineNumber,s.column));return n?n.left:-1}getTargetAtClientPoint(t,i){const e=this._pointerHandler.getTargetAtClientPoint(t,i);return e?dS.convertViewToModelMouseTarget(e,this._context.viewModel.coordinatesConverter):null}createOverviewRuler(t){return new CD(this._context,t)}change(t){this._viewZones.changeViewZones(t),this._scheduleRender()}render(t,i){if(i){this._viewLines.forceShouldRender();for(const t of this._viewParts)t.forceShouldRender()}t?this._flushAccumulatedAndRenderNow():this._scheduleRender()}writeScreenReaderContent(t){this._textAreaHandler.writeScreenReaderContent(t)}focus(){this._textAreaHandler.focusTextArea()}isFocused(){return this._textAreaHandler.isFocused()}setAriaOptions(t){this._textAreaHandler.setAriaOptions(t)}addContentWidget(t){this._contentWidgets.addWidget(t.widget),this.layoutContentWidget(t),this._scheduleRender()}layoutContentWidget(t){var i,e,s,n,o,r,h,c;this._contentWidgets.setWidgetPosition(t.widget,null!==(e=null===(i=t.position)||void 0===i?void 0:i.position)&&void 0!==e?e:null,null!==(n=null===(s=t.position)||void 0===s?void 0:s.secondaryPosition)&&void 0!==n?n:null,null!==(r=null===(o=t.position)||void 0===o?void 0:o.preference)&&void 0!==r?r:null,null!==(c=null===(h=t.position)||void 0===h?void 0:h.positionAffinity)&&void 0!==c?c:null),this._scheduleRender()}removeContentWidget(t){this._contentWidgets.removeWidget(t.widget),this._scheduleRender()}addOverlayWidget(t){this._overlayWidgets.addWidget(t.widget),this.layoutOverlayWidget(t),this._scheduleRender()}layoutOverlayWidget(t){this._overlayWidgets.setWidgetPosition(t.widget,t.position?t.position.preference:null)&&this._scheduleRender()}removeOverlayWidget(t){this._overlayWidgets.removeWidget(t.widget),this._scheduleRender()}addGlyphMarginWidget(t){this._glyphMarginWidgets.addWidget(t.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}layoutGlyphMarginWidget(t){this._glyphMarginWidgets.setWidgetPosition(t.widget,t.position)&&(this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender())}removeGlyphMarginWidget(t){this._glyphMarginWidgets.removeWidget(t.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}};function VD(t){try{return t()}catch(t){return Bi(t),null}}HD=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(6,ur)],HD);class UD{constructor(){this._coordinatedRenderings=[],this._animationFrameRunners=new Map}scheduleCoordinatedRendering(t){return this._coordinatedRenderings.push(t),this._scheduleRender(t.window),{dispose:()=>{const i=this._coordinatedRenderings.indexOf(t);if(-1!==i&&(this._coordinatedRenderings.splice(i,1),0===this._coordinatedRenderings.length)){for(const[t,i]of this._animationFrameRunners)i.dispose();this._animationFrameRunners.clear()}}}}_scheduleRender(t){this._animationFrameRunners.has(t)||this._animationFrameRunners.set(t,Za(t,(()=>{this._animationFrameRunners.delete(t),this._onRenderScheduled()}),100))}_onRenderScheduled(){const t=this._coordinatedRenderings.slice(0);this._coordinatedRenderings=[];for(const i of t)VD((()=>i.prepareRenderText()));const i=[];for(let e=0,s=t.length;es.renderText()))}for(let e=0,s=t.length;es.prepareRender(o,r)))}for(let e=0,s=t.length;es.render(o,r)))}}}UD.INSTANCE=new UD;class qD{constructor(t,i,e,s,n,o,r){this.id=t,this.label=i,this.alias=e,this.metadata=s,this._precondition=n,this._run=o,this._contextKeyService=r}isSupported(){return this._contextKeyService.contextMatchesRules(this._precondition)}run(t){return this.isSupported()?this._run(t):Promise.resolve(void 0)}}function KD(t){let i=0,e=0,s=0,n=0;for(let o=0,r=t.length;o=tE&&(e-=t%tE),e}function nE(t,i){return t.reduce(((t,e)=>sE(t,i(e))),YD)}function oE(t,i){return t===i}function rE(t,i){const e=t,s=i;if(s-e<=0)return YD;const n=Math.floor(e/tE),o=Math.floor(s/tE),r=s-o*tE;return n===o?iE(0,r-(e-n*tE)):iE(o-n,r)}function hE(t,i){return t=i}function lE(t){return iE(t.lineNumber-1,t.column-1)}function uE(t,i){const e=t,s=Math.floor(e/tE),n=e-s*tE,o=i,r=Math.floor(o/tE);return new Ms(s+1,n+1,r+1,o-r*tE+1)}class dE{static fromModelContentChanges(t){const i=t.map((t=>{const i=Ms.lift(t.range);return new dE(lE(i.getStartPosition()),lE(i.getEndPosition()),function(t){const i=Xn(t);return iE(i.length-1,i[i.length-1].length)}(t.text))})).reverse();return i}constructor(t,i,e){this.startOffset=t,this.endOffset=i,this.newLength=e}toString(){return`[${eE(this.startOffset)}...${eE(this.endOffset)}) -> ${eE(this.newLength)}`}}class fE{constructor(t){this.nextEditIdx=0,this.deltaOldToNewLineCount=0,this.deltaOldToNewColumnCount=0,this.deltaLineIdxInOld=-1,this.edits=t.map((t=>pE.from(t)))}getOffsetBeforeChange(t){return this.adjustNextEdit(t),this.translateCurToOld(t)}getDistanceToNextChange(t){this.adjustNextEdit(t);const i=this.edits[this.nextEditIdx],e=i?this.translateOldToCur(i.offsetObj):null;return null===e?null:rE(t,e)}translateOldToCur(t){return iE(t.lineCount+this.deltaOldToNewLineCount,t.lineCount===this.deltaLineIdxInOld?t.columnCount+this.deltaOldToNewColumnCount:t.columnCount)}translateCurToOld(t){const i=eE(t);return iE(i.lineCount-this.deltaOldToNewLineCount,i.lineCount-this.deltaOldToNewLineCount===this.deltaLineIdxInOld?i.columnCount-this.deltaOldToNewColumnCount:i.columnCount)}adjustNextEdit(t){for(;this.nextEditIdx>5;if(0===s){const t=1<t};class vE{constructor(){this.items=new Map}getKey(t){let i=this.items.get(t);return void 0===i&&(i=this.items.size,this.items.set(t,i)),i}}class bE{get length(){return this._length}constructor(t){this._length=t}}class yE extends bE{static create(t,i,e){let s=t.length;return i&&(s=sE(s,i.length)),e&&(s=sE(s,e.length)),new yE(s,t,i,e,i?i.missingOpeningBracketIds:mE.getEmpty())}get kind(){return 2}get listHeight(){return 0}get childrenLength(){return 3}getChild(t){switch(t){case 0:return this.openingBracket;case 1:return this.child;case 2:return this.closingBracket}throw new Error("Invalid child index")}get children(){const t=[];return t.push(this.openingBracket),this.child&&t.push(this.child),this.closingBracket&&t.push(this.closingBracket),t}constructor(t,i,e,s,n){super(t),this.openingBracket=i,this.child=e,this.closingBracket=s,this.missingOpeningBracketIds=n}canBeReused(t){return null!==this.closingBracket&&!t.intersects(this.missingOpeningBracketIds)}deepClone(){return new yE(this.length,this.openingBracket.deepClone(),this.child&&this.child.deepClone(),this.closingBracket&&this.closingBracket.deepClone(),this.missingOpeningBracketIds)}computeMinIndentation(t,i){return this.child?this.child.computeMinIndentation(sE(t,this.openingBracket.length),i):Number.MAX_SAFE_INTEGER}}class kE extends bE{static create23(t,i,e,s=!1){let n=t.length,o=t.missingOpeningBracketIds;if(t.listHeight!==i.listHeight)throw new Error("Invalid list heights");if(n=sE(n,i.length),o=o.merge(i.missingOpeningBracketIds),e){if(t.listHeight!==e.listHeight)throw new Error("Invalid list heights");n=sE(n,e.length),o=o.merge(e.missingOpeningBracketIds)}return s?new CE(n,t.listHeight+1,t,i,e,o):new xE(n,t.listHeight+1,t,i,e,o)}static getEmpty(){return new DE(YD,0,[],mE.getEmpty())}get kind(){return 4}get missingOpeningBracketIds(){return this._missingOpeningBracketIds}constructor(t,i,e){super(t),this.listHeight=i,this._missingOpeningBracketIds=e,this.cachedMinIndentation=-1}throwIfImmutable(){}makeLastElementMutable(){this.throwIfImmutable();const t=this.childrenLength;if(0===t)return;const i=this.getChild(t-1),e=4===i.kind?i.toMutable():i;return i!==e&&this.setChild(t-1,e),e}makeFirstElementMutable(){if(this.throwIfImmutable(),0===this.childrenLength)return;const t=this.getChild(0),i=4===t.kind?t.toMutable():t;return t!==i&&this.setChild(0,i),i}canBeReused(t){if(t.intersects(this.missingOpeningBracketIds))return!1;if(0===this.childrenLength)return!1;let i=this;for(;4===i.kind;){const t=i.childrenLength;if(0===t)throw new Ki;i=i.getChild(t-1)}return i.canBeReused(t)}handleChildrenChanged(){this.throwIfImmutable();const t=this.childrenLength;let i=this.getChild(0).length,e=this.getChild(0).missingOpeningBracketIds;for(let s=1;sthis.textBufferLineCount-1||this.lineIdx===this.textBufferLineCount-1&&this.lineCharOffset>=this.textBufferLastLineLength)return null;null===this.line&&(this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.line=this.lineTokens.getLineContent(),this.lineTokenOffset=0===this.lineCharOffset?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset));const t=this.lineIdx,i=this.lineCharOffset;let e=0;for(;;){const s=this.lineTokens,n=s.getCount();let o=null;if(this.lineTokenOffset1e3)break}if(e>1500)break}const s=(o=i,h=this.lineCharOffset,(n=t)!==(r=this.lineIdx)?iE(r-n,h):iE(0,h-o));var n,o,r,h;return new TE(s,0,-1,mE.getEmpty(),new ME(s))}}class IE{constructor(t,i){this.text=t,this._offset=YD,this.idx=0;const e=i.getRegExpStr(),s=e?new RegExp(e+"|\n","gi"):null,n=[];let o,r=0,h=0,c=0,a=0;const l=[];for(let t=0;t<60;t++)l.push(new TE(iE(0,t),0,-1,mE.getEmpty(),new ME(iE(0,t))));const u=[];for(let t=0;t<60;t++)u.push(new TE(iE(1,t),0,-1,mE.getEmpty(),new ME(iE(1,t))));if(s)for(s.lastIndex=0;null!==(o=s.exec(t));){const t=o.index,e=o[0];if("\n"===e)r++,h=t+1;else{if(c!==t){let i;if(a===r){const e=t-c;if(efunction(t){let i=Gn(t);return/^[\w ]+/.test(t)&&(i=`\\b${i}`),/[\w ]+$/.test(t)&&(i=`${i}\\b`),i}(t))).join("|")}}get regExpGlobal(){if(!this.hasRegExp){const t=this.getRegExpStr();this._regExpGlobal=t?new RegExp(t,"gi"):null,this.hasRegExp=!0}return this._regExpGlobal}getToken(t){return this.map.get(t.toLowerCase())}findClosingTokenText(t){for(const[i,e]of this.map)if(2===e.kind&&e.bracketIds.intersects(t))return i}get isEmpty(){return 0===this.map.size}}class NE{constructor(t,i){this.denseKeyProvider=t,this.getLanguageConfiguration=i,this.languageIdToBracketTokens=new Map}didLanguageChange(t){return this.languageIdToBracketTokens.has(t)}getSingleLanguageBracketTokens(t){let i=this.languageIdToBracketTokens.get(t);return i||(i=_E.createFromLanguage(this.getLanguageConfiguration(t),this.denseKeyProvider),this.languageIdToBracketTokens.set(t,i)),i}}function BE(t,i=!1){if(0===t.length)return null;if(1===t.length)return t[0];let e=t.length;for(;e>3;){const s=e>>1;for(let n=0;n=3?t[2]:null,i)}function PE(t,i){return Math.abs(t.listHeight-i.listHeight)}function $E(t,i){return t.listHeight===i.listHeight?kE.create23(t,i,null,!1):t.listHeight>i.listHeight?function(t,i){let e=t=t.toMutable();const s=[];let n;for(;;){if(i.listHeight===e.listHeight){n=i;break}if(4!==e.kind)throw new Error("unexpected");s.push(e),e=e.makeLastElementMutable()}for(let t=s.length-1;t>=0;t--){const i=s[t];n?i.childrenLength>=3?n=kE.create23(i.unappendChild(),n,null,!1):(i.appendChildOfSameHeight(n),n=void 0):i.handleChildrenChanged()}return n?kE.create23(t,n,null,!1):t}(t,i):function(t,i){let e=t=t.toMutable();const s=[];for(;i.listHeight!==e.listHeight;){if(4!==e.kind)throw new Error("unexpected");s.push(e),e=e.makeFirstElementMutable()}let n=i;for(let t=s.length-1;t>=0;t--){const i=s[t];n?i.childrenLength>=3?n=kE.create23(n,i.unprependChild(),null,!1):(i.prependChildOfSameHeight(n),n=void 0):i.handleChildrenChanged()}return n?kE.create23(n,t,null,!1):t}(i,t)}class WE{constructor(t){this.lastOffset=YD,this.nextNodes=[t],this.offsets=[YD],this.idxs=[]}readLongestNodeAt(t,i){if(hE(t,this.lastOffset))throw new Error("Invalid offset");for(this.lastOffset=t;;){const e=zE(this.nextNodes);if(!e)return;const s=zE(this.offsets);if(hE(t,s))return;if(hE(s,t))if(sE(s,e.length)<=t)this.nextNodeAfterCurrent();else{const t=jE(e);-1!==t?(this.nextNodes.push(e.getChild(t)),this.offsets.push(s),this.idxs.push(t)):this.nextNodeAfterCurrent()}else{if(i(e))return this.nextNodeAfterCurrent(),e;{const t=jE(e);if(-1===t)return void this.nextNodeAfterCurrent();this.nextNodes.push(e.getChild(t)),this.offsets.push(s),this.idxs.push(t)}}}}nextNodeAfterCurrent(){for(;;){const t=zE(this.offsets),i=zE(this.nextNodes);if(this.nextNodes.pop(),this.offsets.pop(),0===this.idxs.length)break;const e=zE(this.nextNodes),s=jE(e,this.idxs[this.idxs.length-1]);if(-1!==s){this.nextNodes.push(e.getChild(s)),this.offsets.push(sE(t,i.length)),this.idxs[this.idxs.length-1]=s;break}this.idxs.pop()}}}function jE(t,i=-1){for(;;){if(++i>=t.childrenLength)return-1;if(t.getChild(i))return i}}function zE(t){return t.length>0?t[t.length-1]:void 0}function HE(t,i,e,s){return new VE(t,i,e,s).parseDocument()}class VE{constructor(t,i,e,s){if(this.tokenizer=t,this.createImmutableLists=s,this._itemsConstructed=0,this._itemsFromCache=0,e&&s)throw new Error("Not supported");this.oldNodeReader=e?new WE(e):void 0,this.positionMapper=new fE(i)}parseDocument(){this._itemsConstructed=0,this._itemsFromCache=0;let t=this.parseList(mE.getEmpty(),0);return t||(t=kE.getEmpty()),t}parseList(t,i){const e=[];for(;;){let s=this.tryReadChildFromCache(t);if(!s){const e=this.tokenizer.peek();if(!e||2===e.kind&&e.bracketIds.intersects(t))break;s=this.parseChild(t,i+1)}4===s.kind&&0===s.childrenLength||e.push(s)}const s=this.oldNodeReader?function(t){if(0===t.length)return null;if(1===t.length)return t[0];let i=0;function e(){if(i>=t.length)return null;const e=i,s=t[e].listHeight;for(i++;i=2?BE(0===e&&i===t.length?t:t.slice(e,i),!1):t[e]}let s=e(),n=e();if(!n)return s;for(let t=e();t;t=e())PE(s,n)<=PE(n,t)?(s=$E(s,n),n=t):n=$E(n,t);return $E(s,n)}(e):BE(e,this.createImmutableLists);return s}tryReadChildFromCache(t){if(this.oldNodeReader){const i=this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);if(null===i||!XD(i)){const e=this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset),(e=>!(null!==i&&!hE(e.length,i))&&e.canBeReused(t)));if(e)return this._itemsFromCache++,this.tokenizer.skip(e.length),e}}}parseChild(t,i){this._itemsConstructed++;const e=this.tokenizer.read();switch(e.kind){case 2:return new FE(e.bracketIds,e.length);case 0:return e.astNode;case 1:{if(i>300)return new ME(e.length);const s=t.merge(e.bracketIds),n=this.parseList(s,i+1),o=this.tokenizer.peek();return o&&2===o.kind&&(o.bracketId===e.bracketId||o.bracketIds.intersects(e.bracketIds))?(this.tokenizer.read(),yE.create(e.astNode,n,o.astNode)):yE.create(e.astNode,n,null)}default:throw new Error("unexpected")}}}function UE(t,i){if(0===t.length)return i;if(0===i.length)return t;const e=new _(KE(t)),s=KE(i);s.push({modified:!1,lengthBefore:void 0,lengthAfter:void 0});let n=e.dequeue();function o(t){if(void 0===t){const t=e.takeWhile((()=>!0))||[];return n&&t.unshift(n),t}const i=[];for(;n&&!XD(t);){const[s,o]=n.splitAt(t);i.push(s),t=rE(s.lengthAfter,t),n=null!=o?o:e.dequeue()}return XD(t)||i.push(new qE(!1,t,t)),i}const r=[];function h(t,i,e){if(r.length>0&&oE(r[r.length-1].endOffset,t)){const t=r[r.length-1];r[r.length-1]=new dE(t.startOffset,i,sE(t.newLength,e))}else r.push({startOffset:t,endOffset:i,newLength:e})}let c=YD;for(const t of s){const i=o(t.lengthBefore);if(t.modified){const e=sE(c,nE(i,(t=>t.lengthBefore)));h(c,e,t.lengthAfter),c=e}else for(const t of i){const i=c;c=sE(c,t.lengthBefore),t.modified&&h(i,c,t.lengthAfter)}}return r}class qE{constructor(t,i,e){this.modified=t,this.lengthBefore=i,this.lengthAfter=e}splitAt(t){const i=rE(t,this.lengthAfter);return oE(i,YD)?[this,void 0]:this.modified?[new qE(this.modified,this.lengthBefore,t),new qE(this.modified,YD,i)]:[new qE(this.modified,t,t),new qE(this.modified,i,i)]}toString(){return`${this.modified?"M":"U"}:${eE(this.lengthBefore)} -> ${eE(this.lengthAfter)}`}}function KE(t){const i=[];let e=YD;for(const s of t){const t=rE(e,s.startOffset);XD(t)||i.push(new qE(!1,t,t));const n=rE(s.startOffset,s.endOffset);i.push(new qE(!0,n,s.newLength)),e=s.endOffset}return i}class GE extends te{didLanguageChange(t){return this.brackets.didLanguageChange(t)}constructor(t,i){if(super(),this.textModel=t,this.getLanguageConfiguration=i,this.didChangeEmitter=new de,this.denseKeyProvider=new vE,this.brackets=new NE(this.denseKeyProvider,this.getLanguageConfiguration),this.onDidChange=this.didChangeEmitter.event,this.queuedTextEditsForInitialAstWithoutTokens=[],this.queuedTextEdits=[],t.tokenization.hasTokens)2===t.tokenization.backgroundTokenizationState?(this.initialAstWithoutTokens=void 0,this.astWithTokens=this.parseDocumentFromTextBuffer([],void 0,!1)):(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer([],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens);else{const t=this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId()),i=new IE(this.textModel.getValue(),t);this.initialAstWithoutTokens=HE(i,[],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens}}handleDidChangeBackgroundTokenizationState(){if(2===this.textModel.tokenization.backgroundTokenizationState){const t=void 0===this.initialAstWithoutTokens;this.initialAstWithoutTokens=void 0,t||this.didChangeEmitter.fire()}}handleDidChangeTokens({ranges:t}){const i=t.map((t=>new dE(iE(t.fromLineNumber-1,0),iE(t.toLineNumber,0),iE(t.toLineNumber-t.fromLineNumber+1,0))));this.handleEdits(i,!0),this.initialAstWithoutTokens||this.didChangeEmitter.fire()}handleContentChanged(t){const i=dE.fromModelContentChanges(t.changes);this.handleEdits(i,!1)}handleEdits(t,i){const e=UE(this.queuedTextEdits,t);this.queuedTextEdits=e,this.initialAstWithoutTokens&&!i&&(this.queuedTextEditsForInitialAstWithoutTokens=UE(this.queuedTextEditsForInitialAstWithoutTokens,t))}flushQueue(){this.queuedTextEdits.length>0&&(this.astWithTokens=this.parseDocumentFromTextBuffer(this.queuedTextEdits,this.astWithTokens,!1),this.queuedTextEdits=[]),this.queuedTextEditsForInitialAstWithoutTokens.length>0&&(this.initialAstWithoutTokens&&(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer(this.queuedTextEditsForInitialAstWithoutTokens,this.initialAstWithoutTokens,!1)),this.queuedTextEditsForInitialAstWithoutTokens=[])}parseDocumentFromTextBuffer(t,i,e){const s=i;return HE(new RE(this.textModel,this.brackets),t,s,e)}getBracketsInRange(t,i){this.flushQueue();const e=iE(t.startLineNumber-1,t.startColumn-1),s=iE(t.endLineNumber-1,t.endColumn-1);return new N((t=>{const n=this.initialAstWithoutTokens||this.astWithTokens;JE(n,YD,n.length,e,s,t,0,0,new Map,i)}))}getBracketPairsInRange(t,i){this.flushQueue();const e=lE(t.getStartPosition()),s=lE(t.getEndPosition());return new N((t=>{const n=this.initialAstWithoutTokens||this.astWithTokens,o=new YE(t,i,this.textModel);XE(n,YD,n.length,e,s,o,0,new Map)}))}getFirstBracketAfter(t){this.flushQueue();const i=this.initialAstWithoutTokens||this.astWithTokens;return QE(i,YD,i.length,lE(t))}getFirstBracketBefore(t){this.flushQueue();const i=this.initialAstWithoutTokens||this.astWithTokens;return ZE(i,YD,i.length,lE(t))}}function ZE(t,i,e,s){if(4===t.kind||2===t.kind){const n=[];for(const s of t.children)e=sE(i,s.length),n.push({nodeOffsetStart:i,nodeOffsetEnd:e}),i=e;for(let i=n.length-1;i>=0;i--){const{nodeOffsetStart:e,nodeOffsetEnd:o}=n[i];if(hE(e,s)){const n=ZE(t.children[i],e,o,s);if(n)return n}}return null}if(3===t.kind)return null;if(1===t.kind){const s=uE(i,e);return{bracketInfo:t.bracketInfo,range:s}}return null}function QE(t,i,e,s){if(4===t.kind||2===t.kind){for(const n of t.children){if(hE(s,e=sE(i,n.length))){const t=QE(n,i,e,s);if(t)return t}i=e}return null}if(3===t.kind)return null;if(1===t.kind){const s=uE(i,e);return{bracketInfo:t.bracketInfo,range:s}}return null}function JE(t,i,e,s,n,o,r,h,c,a,l=!1){if(r>200)return!0;t:for(;;)switch(t.kind){case 4:{const h=t.childrenLength;for(let l=0;l200)return!0;let a=!0;if(2===t.kind){let l=0;if(h){let i=h.get(t.openingBracket.text);void 0===i&&(i=0),l=i,i++,h.set(t.openingBracket.text,i)}const u=sE(i,t.openingBracket.length);let d=-1;if(o.includeMinIndentation&&(d=t.computeMinIndentation(i,o.textModel)),a=o.push(new QD(uE(i,e),uE(i,u),t.closingBracket?uE(sE(u,(null===(c=t.child)||void 0===c?void 0:c.length)||YD),e):void 0,r,l,t,d)),i=u,a&&t.child){const c=t.child;if(e=sE(i,c.length),cE(i,n)&&aE(e,s)&&(a=XE(c,i,e,s,n,o,r+1,h),!a))return!1}null==h||h.set(t.openingBracket.text,l)}else{let e=i;for(const i of t.children){const t=e;if(e=sE(e,i.length),cE(t,n)&&cE(s,e)&&(a=XE(i,t,e,s,n,o,r,h),!a))return!1}}return a}class tA extends te{get canBuildAST(){return this.textModel.getValueLength()<=5e6}constructor(t,i){super(),this.textModel=t,this.languageConfigurationService=i,this.bracketPairsTree=this._register(new ie),this.onDidChangeEmitter=new de,this.onDidChange=this.onDidChangeEmitter.event,this.bracketsRequested=!1,this._register(this.languageConfigurationService.onDidChange((t=>{var i;t.languageId&&!(null===(i=this.bracketPairsTree.value)||void 0===i?void 0:i.object.didLanguageChange(t.languageId))||(this.bracketPairsTree.clear(),this.updateBracketPairsTree())})))}handleDidChangeOptions(t){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeLanguage(t){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeContent(t){var i;null===(i=this.bracketPairsTree.value)||void 0===i||i.object.handleContentChanged(t)}handleDidChangeBackgroundTokenizationState(){var t;null===(t=this.bracketPairsTree.value)||void 0===t||t.object.handleDidChangeBackgroundTokenizationState()}handleDidChangeTokens(t){var i;null===(i=this.bracketPairsTree.value)||void 0===i||i.object.handleDidChangeTokens(t)}updateBracketPairsTree(){if(this.bracketsRequested&&this.canBuildAST){if(!this.bracketPairsTree.value){const e=new Xi;this.bracketPairsTree.value=(t=e.add(new GE(this.textModel,(t=>this.languageConfigurationService.getLanguageConfiguration(t)))),i=e,{object:t,dispose:()=>null==i?void 0:i.dispose()}),e.add(this.bracketPairsTree.value.object.onDidChange((t=>this.onDidChangeEmitter.fire(t)))),this.onDidChangeEmitter.fire()}}else this.bracketPairsTree.value&&(this.bracketPairsTree.clear(),this.onDidChangeEmitter.fire());var t,i}getBracketPairsInRange(t){var i;return this.bracketsRequested=!0,this.updateBracketPairsTree(),(null===(i=this.bracketPairsTree.value)||void 0===i?void 0:i.object.getBracketPairsInRange(t,!1))||N.empty}getBracketPairsInRangeWithMinIndentation(t){var i;return this.bracketsRequested=!0,this.updateBracketPairsTree(),(null===(i=this.bracketPairsTree.value)||void 0===i?void 0:i.object.getBracketPairsInRange(t,!0))||N.empty}getBracketsInRange(t,i=!1){var e;return this.bracketsRequested=!0,this.updateBracketPairsTree(),(null===(e=this.bracketPairsTree.value)||void 0===e?void 0:e.object.getBracketsInRange(t,i))||N.empty}findMatchingBracketUp(t,i,e){const s=this.textModel.validatePosition(i),n=this.textModel.getLanguageIdAtPosition(s.lineNumber,s.column);if(this.canBuildAST){const e=this.languageConfigurationService.getLanguageConfiguration(n).bracketsNew.getClosingBracketInfo(t);if(!e)return null;const s=this.getBracketPairsInRange(Ms.fromPositions(i,i)).findLast((t=>e.closes(t.openingBracketInfo)));return s?s.openingBracketRange:null}{const i=t.toLowerCase(),o=this.languageConfigurationService.getLanguageConfiguration(n).brackets;if(!o)return null;const r=o.textIsBracket[i];return r?sA(this._findMatchingBracketUp(r,s,iA(e))):null}}matchBracket(t,i){if(this.canBuildAST){const i=this.getBracketPairsInRange(Ms.fromPositions(t,t)).filter((i=>void 0!==i.closingBracketRange&&(i.openingBracketRange.containsPosition(t)||i.closingBracketRange.containsPosition(t)))).findLastMaxBy(T((i=>i.openingBracketRange.containsPosition(t)?i.openingBracketRange:i.closingBracketRange),Ms.compareRangesUsingStarts));return i?[i.openingBracketRange,i.closingBracketRange]:null}{const e=iA(i);return this._matchBracket(this.textModel.validatePosition(t),e)}}_establishBracketSearchOffsets(t,i,e,s){const n=i.getCount(),o=i.getLanguageId(s);let r=Math.max(0,t.column-1-e.maxBracketLength);for(let t=s-1;t>=0;t--){const e=i.getEndOffset(t);if(e<=r)break;if(Pu(i.getStandardTokenType(t))||i.getLanguageId(t)!==o){r=e;break}}let h=Math.min(i.getLineContent().length,t.column-1+e.maxBracketLength);for(let t=s+1;t=h)break;if(Pu(i.getStandardTokenType(t))||i.getLanguageId(t)!==o){h=e;break}}return{searchStartOffset:r,searchEndOffset:h}}_matchBracket(t,i){const e=t.lineNumber,s=this.textModel.tokenization.getLineTokens(e),n=this.textModel.getLineContent(e),o=s.findTokenIndexAtOffset(t.column-1);if(o<0)return null;const r=this.languageConfigurationService.getLanguageConfiguration(s.getLanguageId(o)).brackets;if(r&&!Pu(s.getStandardTokenType(o))){let{searchStartOffset:h,searchEndOffset:c}=this._establishBracketSearchOffsets(t,s,r,o),a=null;for(;;){const s=ad.findNextBracketInRange(r.forwardRegex,e,n,h,c);if(!s)break;if(s.startColumn<=t.column&&t.column<=s.endColumn){const t=n.substring(s.startColumn-1,s.endColumn-1).toLowerCase(),e=this._matchFoundBracket(s,r.textIsBracket[t],r.textIsOpenBracket[t],i);if(e){if(e instanceof eA)return null;a=e}}h=s.endColumn-1}if(a)return a}if(o>0&&s.getStartOffset(o)===t.column-1){const r=o-1,h=this.languageConfigurationService.getLanguageConfiguration(s.getLanguageId(r)).brackets;if(h&&!Pu(s.getStandardTokenType(r))){const{searchStartOffset:o,searchEndOffset:c}=this._establishBracketSearchOffsets(t,s,h,r),a=ad.findPrevBracketInRange(h.reversedRegex,e,n,o,c);if(a&&a.startColumn<=t.column&&t.column<=a.endColumn){const t=n.substring(a.startColumn-1,a.endColumn-1).toLowerCase(),e=this._matchFoundBracket(a,h.textIsBracket[t],h.textIsOpenBracket[t],i);if(e)return e instanceof eA?null:e}}}return null}_matchFoundBracket(t,i,e,s){if(!i)return null;const n=e?this._findMatchingBracketDown(i,t.getEndPosition(),s):this._findMatchingBracketUp(i,t.getStartPosition(),s);return n?n instanceof eA?n:[t,n]:null}_findMatchingBracketUp(t,i,e){const s=t.languageId,n=t.reversedRegex;let o=-1,r=0;const h=(i,s,h,c)=>{for(;;){if(e&&++r%100==0&&!e())return eA.INSTANCE;const a=ad.findPrevBracketInRange(n,i,s,h,c);if(!a)break;const l=s.substring(a.startColumn-1,a.endColumn-1).toLowerCase();if(t.isOpen(l)?o++:t.isClose(l)&&o--,0===o)return a;c=a.startColumn-1}return null};for(let t=i.lineNumber;t>=1;t--){const e=this.textModel.tokenization.getLineTokens(t),n=e.getCount(),o=this.textModel.getLineContent(t);let r=n-1,c=o.length,a=o.length;t===i.lineNumber&&(r=e.findTokenIndexAtOffset(i.column-1),c=i.column-1,a=i.column-1);let l=!0;for(;r>=0;r--){const i=e.getLanguageId(r)===s&&!Pu(e.getStandardTokenType(r));if(i)l?c=e.getStartOffset(r):(c=e.getStartOffset(r),a=e.getEndOffset(r));else if(l&&c!==a){const i=h(t,o,c,a);if(i)return i}l=i}if(l&&c!==a){const i=h(t,o,c,a);if(i)return i}}return null}_findMatchingBracketDown(t,i,e){const s=t.languageId,n=t.forwardRegex;let o=1,r=0;const h=(i,s,h,c)=>{for(;;){if(e&&++r%100==0&&!e())return eA.INSTANCE;const a=ad.findNextBracketInRange(n,i,s,h,c);if(!a)break;const l=s.substring(a.startColumn-1,a.endColumn-1).toLowerCase();if(t.isOpen(l)?o++:t.isClose(l)&&o--,0===o)return a;h=a.endColumn-1}return null},c=this.textModel.getLineCount();for(let t=i.lineNumber;t<=c;t++){const e=this.textModel.tokenization.getLineTokens(t),n=e.getCount(),o=this.textModel.getLineContent(t);let r=0,c=0,a=0;t===i.lineNumber&&(r=e.findTokenIndexAtOffset(i.column-1),c=i.column-1,a=i.column-1);let l=!0;for(;r=1;t--){const i=this.textModel.tokenization.getLineTokens(t),r=i.getCount(),h=this.textModel.getLineContent(t);let c=r-1,a=h.length,l=h.length;if(t===e.lineNumber){c=i.findTokenIndexAtOffset(e.column-1),a=e.column-1,l=e.column-1;const t=i.getLanguageId(c);s!==t&&(s=t,n=this.languageConfigurationService.getLanguageConfiguration(s).brackets,o=this.languageConfigurationService.getLanguageConfiguration(s).bracketsNew)}let u=!0;for(;c>=0;c--){const e=i.getLanguageId(c);if(s!==e){if(n&&o&&u&&a!==l){const i=ad.findPrevBracketInRange(n.reversedRegex,t,h,a,l);if(i)return this._toFoundBracket(o,i);u=!1}s=e,n=this.languageConfigurationService.getLanguageConfiguration(s).brackets,o=this.languageConfigurationService.getLanguageConfiguration(s).bracketsNew}const r=!!n&&!Pu(i.getStandardTokenType(c));if(r)u?a=i.getStartOffset(c):(a=i.getStartOffset(c),l=i.getEndOffset(c));else if(o&&n&&u&&a!==l){const i=ad.findPrevBracketInRange(n.reversedRegex,t,h,a,l);if(i)return this._toFoundBracket(o,i)}u=r}if(o&&n&&u&&a!==l){const i=ad.findPrevBracketInRange(n.reversedRegex,t,h,a,l);if(i)return this._toFoundBracket(o,i)}}return null}findNextBracket(t){var i;const e=this.textModel.validatePosition(t);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),(null===(i=this.bracketPairsTree.value)||void 0===i?void 0:i.object.getFirstBracketAfter(e))||null;const s=this.textModel.getLineCount();let n=null,o=null,r=null;for(let t=e.lineNumber;t<=s;t++){const i=this.textModel.tokenization.getLineTokens(t),s=i.getCount(),h=this.textModel.getLineContent(t);let c=0,a=0,l=0;if(t===e.lineNumber){c=i.findTokenIndexAtOffset(e.column-1),a=e.column-1,l=e.column-1;const t=i.getLanguageId(c);n!==t&&(n=t,o=this.languageConfigurationService.getLanguageConfiguration(n).brackets,r=this.languageConfigurationService.getLanguageConfiguration(n).bracketsNew)}let u=!0;for(;cvoid 0!==i.closingBracketRange&&i.range.strictContainsRange(t)));return i?[i.openingBracketRange,i.closingBracketRange]:null}const s=iA(i),n=this.textModel.getLineCount(),o=new Map;let r=[];const h=(t,i)=>{if(!o.has(t)){const e=[];for(let t=0,s=i?i.brackets.length:0;t{for(;;){if(s&&++c%100==0&&!s())return eA.INSTANCE;const h=ad.findNextBracketInRange(t.forwardRegex,i,e,n,o);if(!h)break;const a=e.substring(h.startColumn-1,h.endColumn-1).toLowerCase(),l=t.textIsBracket[a];if(l&&(l.isOpen(a)?r[l.index]++:l.isClose(a)&&r[l.index]--,-1===r[l.index]))return this._matchFoundBracket(h,l,!1,s);n=h.endColumn-1}return null};let l=null,u=null;for(let t=e.lineNumber;t<=n;t++){const i=this.textModel.tokenization.getLineTokens(t),s=i.getCount(),n=this.textModel.getLineContent(t);let o=0,r=0,c=0;if(t===e.lineNumber){o=i.findTokenIndexAtOffset(e.column-1),r=e.column-1,c=e.column-1;const t=i.getLanguageId(o);l!==t&&(l=t,u=this.languageConfigurationService.getLanguageConfiguration(l).brackets,h(l,u))}let d=!0;for(;o!0;{const i=Date.now();return()=>Date.now()-i<=t}}class eA{constructor(){this._searchCanceledBrand=void 0}}function sA(t){return t instanceof eA?null:t}eA.INSTANCE=new eA;class nA extends te{constructor(t){super(),this.textModel=t,this.colorProvider=new oA,this.onDidChangeEmitter=new de,this.onDidChange=this.onDidChangeEmitter.event,this.colorizationOptions=t.getOptions().bracketPairColorizationOptions,this._register(t.bracketPairs.onDidChange((()=>{this.onDidChangeEmitter.fire()})))}handleDidChangeOptions(t){this.colorizationOptions=this.textModel.getOptions().bracketPairColorizationOptions}getDecorationsInRange(t,i,e,s){return s||void 0===i?[]:this.colorizationOptions.enabled?this.textModel.bracketPairs.getBracketsInRange(t,!0).map((t=>({id:`bracket${t.range.toString()}-${t.nestingLevel}`,options:{description:"BracketPairColorization",inlineClassName:this.colorProvider.getInlineClassName(t,this.colorizationOptions.independentColorPoolPerBracketType)},ownerId:0,range:t.range}))).toArray():[]}getAllDecorations(t,i){return void 0===t?[]:this.colorizationOptions.enabled?this.getDecorationsInRange(new Ms(1,1,this.textModel.getLineCount(),1),t,i):[]}}class oA{constructor(){this.unexpectedClosingBracketClassName="unexpected-closing-bracket"}getInlineClassName(t,i){return t.isInvalid?this.unexpectedClosingBracketClassName:this.getInlineClassNameOfLevel(i?t.nestingLevelOfEqualBracketType:t.nestingLevel)}getInlineClassNameOfLevel(t){return"bracket-highlighting-"+t%30}}function rA(t){return t.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}nx(((t,i)=>{const e=[Nx,Bx,Px,$x,Wx,jx],s=new oA;i.addRule(`.monaco-editor .${s.unexpectedClosingBracketClassName} { color: ${t.getColor(zx)}; }`);const n=e.map((i=>t.getColor(i))).filter((t=>!!t)).filter((t=>!t.isTransparent()));for(let t=0;t<30;t++){const e=n[t%n.length];i.addRule(`.monaco-editor .${s.getInlineClassNameOfLevel(t)} { color: ${e}; }`)}}));class hA{get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}constructor(t,i,e,s){this.oldPosition=t,this.oldText=i,this.newPosition=e,this.newText=s}toString(){return 0===this.oldText.length?`(insert@${this.oldPosition} "${rA(this.newText)}")`:0===this.newText.length?`(delete@${this.oldPosition} "${rA(this.oldText)}")`:`(replace@${this.oldPosition} "${rA(this.oldText)}" with "${rA(this.newText)}")`}static _writeStringSize(t){return 4+2*t.length}static _writeString(t,i,e){const s=i.length;Zu(t,s,e),e+=4;for(let n=0;n0&&(65279===s[0]||65534===s[0])?function(t,i,e){const s=[];let n=0;for(let o=0;ot.length)return!1;if(e){if(!uo(t,i))return!1;if(i.length===t.length)return!0;let e=i.length;return i.charAt(i.length-1)===s&&e--,t.charAt(e)===s}return i.charAt(i.length-1)!==s&&(i+=s),0===t.indexOf(i)}function fA(t){return t>=65&&t<=90||t>=97&&t<=122}function pA(t){return xs(t,!0)}class gA{constructor(t){this._ignorePathCasing=t}compare(t,i,e=!1){return t===i?0:so(this.getComparisonKey(t,e),this.getComparisonKey(i,e))}isEqual(t,i,e=!1){return t===i||!(!t||!i)&&this.getComparisonKey(t,e)===this.getComparisonKey(i,e)}getComparisonKey(t,i=!1){return t.with({path:this._ignorePathCasing(t)?t.path.toLowerCase():void 0,fragment:i?null:void 0}).toString()}isEqualOrParent(t,i,e=!1){if(t.scheme===i.scheme){if(t.scheme===ka.file)return dA(pA(t),pA(i),this._ignorePathCasing(t))&&t.query===i.query&&(e||t.fragment===i.fragment);if(EA(t.authority,i.authority))return dA(t.path,i.path,this._ignorePathCasing(t),"/")&&t.query===i.query&&(e||t.fragment===i.fragment)}return!1}joinPath(t,...i){return ms.joinPath(t,...i)}basenameOrAuthority(t){return bA(t)||t.authority}basename(t){return es.basename(t.path)}extname(t){return es.extname(t.path)}dirname(t){if(0===t.path.length)return t;let i;return t.scheme===ka.file?i=ms.file(rs(pA(t))).path:(i=es.dirname(t.path),t.authority&&i.length&&47!==i.charCodeAt(0)&&(console.error(`dirname("${t.toString})) resulted in a relative path`),i="/")),t.with({path:i})}normalizePath(t){if(!t.path.length)return t;let i;return i=t.scheme===ka.file?ms.file(ss(pA(t))).path:es.normalize(t.path),t.with({path:i})}relativePath(t,i){if(t.scheme!==i.scheme||!EA(t.authority,i.authority))return;if(t.scheme===ka.file){const e=os(pA(t),pA(i));return xt?lA(e):e}let e=t.path||"/";const s=i.path||"/";if(this._ignorePathCasing(t)){let t=0;for(const i=Math.min(e.length,s.length);tuA(e).length&&e[e.length-1]===i}{const i=t.path;return i.length>1&&47===i.charCodeAt(i.length-1)&&!/^[a-zA-Z]:(\/$|\\$)/.test(t.fsPath)}}removeTrailingPathSeparator(t,i=as){return AA(t,i)?t.with({path:t.path.substr(0,t.path.length-1)}):t}addTrailingPathSeparator(t,i=as){let e=!1;if(t.scheme===ka.file){const s=pA(t);e=void 0!==s&&s.length===uA(s).length&&s[s.length-1]===i}else{i="/";const s=t.path;e=1===s.length&&47===s.charCodeAt(s.length-1)}return e||AA(t,i)?t:t.with({path:t.path+"/"})}}const mA=new gA((()=>!1));new gA((t=>t.scheme!==ka.file||!St)),new gA((()=>!0));const wA=mA.isEqual.bind(mA);mA.isEqualOrParent.bind(mA),mA.getComparisonKey.bind(mA);const vA=mA.basenameOrAuthority.bind(mA),bA=mA.basename.bind(mA),yA=mA.extname.bind(mA),kA=mA.dirname.bind(mA),xA=mA.joinPath.bind(mA),CA=mA.normalizePath.bind(mA),SA=mA.relativePath.bind(mA),DA=mA.resolvePath.bind(mA);mA.isAbsolutePath.bind(mA);const EA=mA.isEqualAuthority.bind(mA),AA=mA.hasTrailingPathSeparator.bind(mA);var MA;function LA(t){return t.toString()}mA.removeTrailingPathSeparator.bind(mA),mA.addTrailingPathSeparator.bind(mA),function(t){t.META_DATA_LABEL="label",t.META_DATA_DESCRIPTION="description",t.META_DATA_SIZE="size",t.META_DATA_MIME="mime",t.parseMetaData=function(i){const e=new Map;i.path.substring(i.path.indexOf(";")+1,i.path.lastIndexOf(";")).split(";").forEach((t=>{const[i,s]=t.split(":");i&&s&&e.set(i,s)}));const s=i.path.substring(0,i.path.indexOf(";"));return s&&e.set(t.META_DATA_MIME,s),e}}(MA||(MA={}));class FA{static create(t,i){const e=t.getAlternativeVersionId(),s=OA(t);return new FA(e,e,s,s,i,i,[])}constructor(t,i,e,s,n,o,r){this.beforeVersionId=t,this.afterVersionId=i,this.beforeEOL=e,this.afterEOL=s,this.beforeCursorState=n,this.afterCursorState=o,this.changes=r}append(t,i,e,s,n){var o,r;i.length>0&&(this.changes=(r=i,null===(o=this.changes)||0===o.length?r:new cA(o,r).compress())),this.afterEOL=e,this.afterVersionId=s,this.afterCursorState=n}static _writeSelectionsSize(t){return 4+16*(t?t.length:0)}static _writeSelections(t,i,e){if(Zu(t,i?i.length:0,e),e+=4,i)for(const s of i)Zu(t,s.selectionStartLineNumber,e),Zu(t,s.selectionStartColumn,e+=4),Zu(t,s.positionLineNumber,e+=4),Zu(t,s.positionColumn,e+=4),e+=4;return e}static _readSelections(t,i,e){const s=Gu(t,i);i+=4;for(let n=0;nt.toString())).join(", ")}matchesResource(t){return(ms.isUri(this.model)?this.model:this.model.uri).toString()===t.toString()}setModel(t){this.model=t}canAppend(t){return this.model===t&&this._data instanceof FA}append(t,i,e,s,n){this._data instanceof FA&&this._data.append(t,i,e,s,n)}close(){this._data instanceof FA&&(this._data=this._data.serialize())}open(){this._data instanceof FA||(this._data=FA.deserialize(this._data))}undo(){if(ms.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof FA&&(this._data=this._data.serialize());const t=FA.deserialize(this._data);this.model._applyUndo(t.changes,t.beforeEOL,t.beforeVersionId,t.beforeCursorState)}redo(){if(ms.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof FA&&(this._data=this._data.serialize());const t=FA.deserialize(this._data);this.model._applyRedo(t.changes,t.afterEOL,t.afterVersionId,t.afterCursorState)}heapSize(){return this._data instanceof FA&&(this._data=this._data.serialize()),this._data.byteLength+168}}class RA{get resources(){return this._editStackElementsArr.map((t=>t.resource))}constructor(t,i,e){this.label=t,this.code=i,this.type=1,this._isOpen=!0,this._editStackElementsArr=e.slice(0),this._editStackElementsMap=new Map;for(const t of this._editStackElementsArr){const i=LA(t.resource);this._editStackElementsMap.set(i,t)}this._delegate=null}prepareUndoRedo(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}matchesResource(t){const i=LA(t);return this._editStackElementsMap.has(i)}setModel(t){const i=LA(ms.isUri(t)?t:t.uri);this._editStackElementsMap.has(i)&&this._editStackElementsMap.get(i).setModel(t)}canAppend(t){if(!this._isOpen)return!1;const i=LA(t.uri);return!!this._editStackElementsMap.has(i)&&this._editStackElementsMap.get(i).canAppend(t)}append(t,i,e,s,n){const o=LA(t.uri);this._editStackElementsMap.get(o).append(t,i,e,s,n)}close(){this._isOpen=!1}open(){}undo(){this._isOpen=!1;for(const t of this._editStackElementsArr)t.undo()}redo(){for(const t of this._editStackElementsArr)t.redo()}heapSize(t){const i=LA(t);return this._editStackElementsMap.has(i)?this._editStackElementsMap.get(i).heapSize():0}split(){return this._editStackElementsArr}toString(){const t=[];for(const i of this._editStackElementsArr)t.push(`${bA(i.resource)}: ${i}`);return`{${t.join(", ")}}`}}function OA(t){return"\n"===t.getEOL()?0:1}function IA(t){return!!t&&(t instanceof TA||t instanceof RA)}class _A{constructor(t,i){this._model=t,this._undoRedoService=i}pushStackElement(){const t=this._undoRedoService.getLastElement(this._model.uri);IA(t)&&t.close()}popStackElement(){const t=this._undoRedoService.getLastElement(this._model.uri);IA(t)&&t.open()}clear(){this._undoRedoService.removeElements(this._model.uri)}_getOrCreateEditStackElement(t,i){const e=this._undoRedoService.getLastElement(this._model.uri);if(IA(e)&&e.canAppend(this._model))return e;const s=new TA(ot(0,"Typing"),"undoredo.textBufferEdit",this._model,t);return this._undoRedoService.pushElement(s,i),s}pushEOL(t){const i=this._getOrCreateEditStackElement(null,void 0);this._model.setEOL(t),i.append(this._model,[],OA(this._model),this._model.getAlternativeVersionId(),null)}pushEditOperation(t,i,e,s){const n=this._getOrCreateEditStackElement(t,s),o=this._model.applyEdits(i,!0),r=_A._computeCursorState(e,o),h=o.map(((t,i)=>({index:i,textChange:t.textChange})));return h.sort(((t,i)=>t.textChange.oldPosition===i.textChange.oldPosition?t.index-i.index:t.textChange.oldPosition-i.textChange.oldPosition)),n.append(this._model,h.map((t=>t.textChange)),OA(this._model),this._model.getAlternativeVersionId(),r),r}static _computeCursorState(t,i){try{return t?t(i):null}catch(t){return Bi(t),null}}}class NA{constructor(){this.spacesDiff=0,this.looksLikeAlignment=!1}}function BA(t,i,e,s,n){let o;for(n.spacesDiff=0,n.looksLikeAlignment=!1,o=0;o0&&h>0)return;if(c>0&&a>0)return;const l=Math.abs(h-a),u=Math.abs(r-c);if(0===l)return n.spacesDiff=u,void(u>0&&0<=c-1&&c-10?n++:g>1&&o++,BA(r,h,u,p,l),l.looksLikeAlignment&&(!e||i!==l.spacesDiff))continue;const w=l.spacesDiff;w<=8&&a[w]++,r=u,h=p}let u=e;n!==o&&(u=n{const e=a[i];e>t&&(t=e,d=i)})),4===d&&a[4]>0&&a[2]>0&&a[2]>=a[4]/2&&(d=2)}return{insertSpaces:u,tabSize:d}}function $A(t){return(1&t.metadata)>>>0}function WA(t,i){t.metadata=254&t.metadata|i}function jA(t){return(2&t.metadata)>>>1==1}function zA(t,i){t.metadata=253&t.metadata|(i?1:0)<<1}function HA(t){return(4&t.metadata)>>>2==1}function VA(t,i){t.metadata=251&t.metadata|(i?1:0)<<2}function UA(t){return(64&t.metadata)>>>6==1}function qA(t,i){t.metadata=191&t.metadata|(i?1:0)<<6}function KA(t,i){t.metadata=231&t.metadata|i<<3}function GA(t,i){t.metadata=223&t.metadata|(i?1:0)<<5}class ZA{constructor(t,i,e){this.metadata=0,this.parent=this,this.left=this,this.right=this,WA(this,1),this.start=i,this.end=e,this.delta=0,this.maxEnd=e,this.id=t,this.ownerId=0,this.options=null,VA(this,!1),qA(this,!1),KA(this,1),GA(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=i,this.cachedAbsoluteEnd=e,this.range=null,zA(this,!1)}reset(t,i,e,s){this.start=i,this.end=e,this.maxEnd=e,this.cachedVersionId=t,this.cachedAbsoluteStart=i,this.cachedAbsoluteEnd=e,this.range=s}setOptions(t){this.options=t;const i=this.options.className;VA(this,"squiggly-error"===i||"squiggly-warning"===i||"squiggly-info"===i),qA(this,null!==this.options.glyphMarginClassName),KA(this,this.options.stickiness),GA(this,this.options.collapseOnReplaceEdit)}setCachedOffsets(t,i,e){this.cachedVersionId!==e&&(this.range=null),this.cachedVersionId=e,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i}detach(){this.parent=null,this.left=null,this.right=null}}const QA=new ZA(null,0,0);QA.parent=QA,QA.left=QA,QA.right=QA,WA(QA,0);class JA{constructor(){this.root=QA,this.requestNormalizeDelta=!1}intervalSearch(t,i,e,s,n,o){return this.root===QA?[]:function(t,i,e,s,n,o,r){let h=t.root,c=0,a=0,l=0,u=0;const d=[];let f=0;for(;h!==QA;)if(jA(h))zA(h.left,!1),zA(h.right,!1),h===h.parent.right&&(c-=h.parent.delta),h=h.parent;else{if(!jA(h.left)){if(a=c+h.maxEnd,ae)zA(h,!0);else{if(u=c+h.end,u>=i){h.setCachedOffsets(l,u,o);let t=!0;s&&h.ownerId&&h.ownerId!==s&&(t=!1),n&&HA(h)&&(t=!1),r&&!UA(h)&&(t=!1),t&&(d[f++]=h)}zA(h,!0),h.right===QA||jA(h.right)||(c+=h.delta,h=h.right)}}return zA(t.root,!1),d}(this,t,i,e,s,n,o)}search(t,i,e,s){return this.root===QA?[]:function(t,i,e,s,n){let o=t.root,r=0,h=0,c=0;const a=[];let l=0;for(;o!==QA;){if(jA(o)){zA(o.left,!1),zA(o.right,!1),o===o.parent.right&&(r-=o.parent.delta),o=o.parent;continue}if(o.left!==QA&&!jA(o.left)){o=o.left;continue}h=r+o.start,c=r+o.end,o.setCachedOffsets(h,c,s);let t=!0;i&&o.ownerId&&o.ownerId!==i&&(t=!1),e&&HA(o)&&(t=!1),n&&!UA(o)&&(t=!1),t&&(a[l++]=o),zA(o,!0),o.right===QA||jA(o.right)||(r+=o.delta,o=o.right)}return zA(t.root,!1),a}(this,t,i,e,s)}collectNodesFromOwner(t){return function(t,i){let e=t.root;const s=[];let n=0;for(;e!==QA;)jA(e)?(zA(e.left,!1),zA(e.right,!1),e=e.parent):e.left===QA||jA(e.left)?(e.ownerId===i&&(s[n++]=e),zA(e,!0),e.right===QA||jA(e.right)||(e=e.right)):e=e.left;return zA(t.root,!1),s}(this,t)}collectNodesPostOrder(){return function(t){let i=t.root;const e=[];let s=0;for(;i!==QA;)jA(i)?(zA(i.left,!1),zA(i.right,!1),i=i.parent):i.left===QA||jA(i.left)?i.right===QA||jA(i.right)?(e[s++]=i,zA(i,!0)):i=i.right:i=i.left;return zA(t.root,!1),e}(this)}insert(t){tM(this,t),this._normalizeDeltaIfNecessary()}delete(t){iM(this,t),this._normalizeDeltaIfNecessary()}resolveNode(t,i){const e=t;let s=0;for(;t!==this.root;)t===t.parent.right&&(s+=t.parent.delta),t=t.parent;e.setCachedOffsets(e.start+s,e.end+s,i)}acceptReplace(t,i,e,s){const n=function(t,i,e){let s=t.root,n=0,o=0,r=0,h=0;const c=[];let a=0;for(;s!==QA;)if(jA(s))zA(s.left,!1),zA(s.right,!1),s===s.parent.right&&(n-=s.parent.delta),s=s.parent;else{if(!jA(s.left)){if(o=n+s.maxEnd,oe?zA(s,!0):(h=n+s.end,h>=i&&(s.setCachedOffsets(r,h,0),c[a++]=s),zA(s,!0),s.right===QA||jA(s.right)||(n+=s.delta,s=s.right))}return zA(t.root,!1),c}(this,t,t+i);for(let t=0,i=n.length;te?(n.start+=c,n.end+=c,n.delta+=c,(n.delta<-1073741824||n.delta>1073741824)&&(t.requestNormalizeDelta=!0),zA(n,!0)):(zA(n,!0),n.right===QA||jA(n.right)||(o+=n.delta,n=n.right))}zA(t.root,!1)}(this,t,t+i,e),this._normalizeDeltaIfNecessary();for(let o=0,r=n.length;oe)&&1!==s&&(2===s||i)}function XA(t,i,e,s,n){const o=function(t){return(24&t.metadata)>>>3}(t),r=0===o||2===o,h=1===o||2===o,c=e-i,a=s,l=Math.min(c,a),u=t.start;let d=!1;const f=t.end;let p=!1;i<=u&&f<=e&&function(t){return(32&t.metadata)>>>5==1}(t)&&(t.start=i,d=!0,t.end=i,p=!0);{const t=n?1:c>0?2:0;!d&&YA(u,r,i,t)&&(d=!0),!p&&YA(f,h,i,t)&&(p=!0)}if(l>0&&!n){const t=c>a?2:0;!d&&YA(u,r,i+l,t)&&(d=!0),!p&&YA(f,h,i+l,t)&&(p=!0)}{const s=n?1:0;!d&&YA(u,r,e,s)&&(t.start=i+a,d=!0),!p&&YA(f,h,e,s)&&(t.end=i+a,p=!0)}const g=a-c;d||(t.start=Math.max(0,u+g)),p||(t.end=Math.max(0,f+g)),t.start>t.end&&(t.end=t.start)}function tM(t,i){if(t.root===QA)return i.parent=QA,i.left=QA,i.right=QA,WA(i,0),t.root=i,t.root;!function(t,i){let e=0,s=t.root;const n=i.start,o=i.end;for(;;)if(h=o,a=s.end+e,((r=n)===(c=s.start+e)?h-a:r-c)<0){if(s.left===QA){i.start-=e,i.end-=e,i.maxEnd-=e,s.left=i;break}s=s.left}else{if(s.right===QA){i.start-=e+s.delta,i.end-=e+s.delta,i.maxEnd-=e+s.delta,s.right=i;break}e+=s.delta,s=s.right}var r,h,c,a;i.parent=s,i.left=QA,i.right=QA,WA(i,1)}(t,i),hM(i.parent);let e=i;for(;e!==t.root&&1===$A(e.parent);)if(e.parent===e.parent.parent.left){const i=e.parent.parent.right;1===$A(i)?(WA(e.parent,0),WA(i,0),WA(e.parent.parent,1),e=e.parent.parent):(e===e.parent.right&&(e=e.parent,sM(t,e)),WA(e.parent,0),WA(e.parent.parent,1),nM(t,e.parent.parent))}else{const i=e.parent.parent.left;1===$A(i)?(WA(e.parent,0),WA(i,0),WA(e.parent.parent,1),e=e.parent.parent):(e===e.parent.left&&(e=e.parent,nM(t,e)),WA(e.parent,0),WA(e.parent.parent,1),sM(t,e.parent.parent))}return WA(t.root,0),i}function iM(t,i){let e,s;if(i.left===QA?(e=i.right,s=i,e.delta+=i.delta,(e.delta<-1073741824||e.delta>1073741824)&&(t.requestNormalizeDelta=!0),e.start+=i.delta,e.end+=i.delta):i.right===QA?(e=i.left,s=i):(s=function(t){for(;t.left!==QA;)t=t.left;return t}(i.right),e=s.right,e.start+=s.delta,e.end+=s.delta,e.delta+=s.delta,(e.delta<-1073741824||e.delta>1073741824)&&(t.requestNormalizeDelta=!0),s.start+=i.delta,s.end+=i.delta,s.delta=i.delta,(s.delta<-1073741824||s.delta>1073741824)&&(t.requestNormalizeDelta=!0)),s===t.root)return t.root=e,WA(e,0),i.detach(),eM(),rM(e),void(t.root.parent=QA);const n=1===$A(s);if(s===s.parent.left?s.parent.left=e:s.parent.right=e,s===i?e.parent=s.parent:(e.parent=s.parent===i?s:s.parent,s.left=i.left,s.right=i.right,s.parent=i.parent,WA(s,$A(i)),i===t.root?t.root=s:i===i.parent.left?i.parent.left=s:i.parent.right=s,s.left!==QA&&(s.left.parent=s),s.right!==QA&&(s.right.parent=s)),i.detach(),n)return hM(e.parent),s!==i&&(hM(s),hM(s.parent)),void eM();let o;for(hM(e),hM(e.parent),s!==i&&(hM(s),hM(s.parent));e!==t.root&&0===$A(e);)e===e.parent.left?(o=e.parent.right,1===$A(o)&&(WA(o,0),WA(e.parent,1),sM(t,e.parent),o=e.parent.right),0===$A(o.left)&&0===$A(o.right)?(WA(o,1),e=e.parent):(0===$A(o.right)&&(WA(o.left,0),WA(o,1),nM(t,o),o=e.parent.right),WA(o,$A(e.parent)),WA(e.parent,0),WA(o.right,0),sM(t,e.parent),e=t.root)):(o=e.parent.left,1===$A(o)&&(WA(o,0),WA(e.parent,1),nM(t,e.parent),o=e.parent.left),0===$A(o.left)&&0===$A(o.right)?(WA(o,1),e=e.parent):(0===$A(o.left)&&(WA(o.right,0),WA(o,1),sM(t,o),o=e.parent.left),WA(o,$A(e.parent)),WA(e.parent,0),WA(o.left,0),nM(t,e.parent),e=t.root));WA(e,0),eM()}function eM(){QA.parent=QA,QA.delta=0,QA.start=0,QA.end=0}function sM(t,i){const e=i.right;e.delta+=i.delta,(e.delta<-1073741824||e.delta>1073741824)&&(t.requestNormalizeDelta=!0),e.start+=i.delta,e.end+=i.delta,i.right=e.left,e.left!==QA&&(e.left.parent=i),e.parent=i.parent,i.parent===QA?t.root=e:i===i.parent.left?i.parent.left=e:i.parent.right=e,e.left=i,i.parent=e,rM(i),rM(e)}function nM(t,i){const e=i.left;i.delta-=e.delta,(i.delta<-1073741824||i.delta>1073741824)&&(t.requestNormalizeDelta=!0),i.start-=e.delta,i.end-=e.delta,i.left=e.right,e.right!==QA&&(e.right.parent=i),e.parent=i.parent,i.parent===QA?t.root=e:i===i.parent.right?i.parent.right=e:i.parent.left=e,e.right=i,i.parent=e,rM(i),rM(e)}function oM(t){let i=t.end;if(t.left!==QA){const e=t.left.maxEnd;e>i&&(i=e)}if(t.right!==QA){const e=t.right.maxEnd+t.delta;e>i&&(i=e)}return i}function rM(t){t.maxEnd=oM(t)}function hM(t){for(;t!==QA;){const i=oM(t);if(t.maxEnd===i)return;t.maxEnd=i,t=t.parent}}class cM{constructor(t,i){this.piece=t,this.color=i,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}next(){if(this.right!==aM)return lM(this.right);let t=this;for(;t.parent!==aM&&t.parent.left!==t;)t=t.parent;return t.parent===aM?aM:t.parent}prev(){if(this.left!==aM)return uM(this.left);let t=this;for(;t.parent!==aM&&t.parent.right!==t;)t=t.parent;return t.parent===aM?aM:t.parent}detach(){this.parent=null,this.left=null,this.right=null}}const aM=new cM(null,0);function lM(t){for(;t.left!==aM;)t=t.left;return t}function uM(t){for(;t.right!==aM;)t=t.right;return t}function dM(t){return t===aM?0:t.size_left+t.piece.length+dM(t.right)}function fM(t){return t===aM?0:t.lf_left+t.piece.lineFeedCnt+fM(t.right)}function pM(){aM.parent=aM}function gM(t,i){const e=i.right;e.size_left+=i.size_left+(i.piece?i.piece.length:0),e.lf_left+=i.lf_left+(i.piece?i.piece.lineFeedCnt:0),i.right=e.left,e.left!==aM&&(e.left.parent=i),e.parent=i.parent,i.parent===aM?t.root=e:i.parent.left===i?i.parent.left=e:i.parent.right=e,e.left=i,i.parent=e}function mM(t,i){const e=i.left;i.left=e.right,e.right!==aM&&(e.right.parent=i),e.parent=i.parent,i.size_left-=e.size_left+(e.piece?e.piece.length:0),i.lf_left-=e.lf_left+(e.piece?e.piece.lineFeedCnt:0),i.parent===aM?t.root=e:i===i.parent.right?i.parent.right=e:i.parent.left=e,e.right=i,i.parent=e}function wM(t,i){let e,s;if(i.left===aM?(s=i,e=s.right):i.right===aM?(s=i,e=s.left):(s=lM(i.right),e=s.right),s===t.root)return t.root=e,e.color=0,i.detach(),pM(),void(t.root.parent=aM);const n=1===s.color;if(s===s.parent.left?s.parent.left=e:s.parent.right=e,s===i?(e.parent=s.parent,yM(t,e)):(e.parent=s.parent===i?s:s.parent,yM(t,e),s.left=i.left,s.right=i.right,s.parent=i.parent,s.color=i.color,i===t.root?t.root=s:i===i.parent.left?i.parent.left=s:i.parent.right=s,s.left!==aM&&(s.left.parent=s),s.right!==aM&&(s.right.parent=s),s.size_left=i.size_left,s.lf_left=i.lf_left,yM(t,s)),i.detach(),e.parent.left===e){const i=dM(e),s=fM(e);if(i!==e.parent.size_left||s!==e.parent.lf_left){const n=i-e.parent.size_left,o=s-e.parent.lf_left;e.parent.size_left=i,e.parent.lf_left=s,bM(t,e.parent,n,o)}}if(yM(t,e.parent),n)return void pM();let o;for(;e!==t.root&&0===e.color;)e===e.parent.left?(o=e.parent.right,1===o.color&&(o.color=0,e.parent.color=1,gM(t,e.parent),o=e.parent.right),0===o.left.color&&0===o.right.color?(o.color=1,e=e.parent):(0===o.right.color&&(o.left.color=0,o.color=1,mM(t,o),o=e.parent.right),o.color=e.parent.color,e.parent.color=0,o.right.color=0,gM(t,e.parent),e=t.root)):(o=e.parent.left,1===o.color&&(o.color=0,e.parent.color=1,mM(t,e.parent),o=e.parent.left),0===o.left.color&&0===o.right.color?(o.color=1,e=e.parent):(0===o.left.color&&(o.right.color=0,o.color=1,gM(t,o),o=e.parent.left),o.color=e.parent.color,e.parent.color=0,o.left.color=0,mM(t,e.parent),e=t.root));e.color=0,pM()}function vM(t,i){for(yM(t,i);i!==t.root&&1===i.parent.color;)if(i.parent===i.parent.parent.left){const e=i.parent.parent.right;1===e.color?(i.parent.color=0,e.color=0,i.parent.parent.color=1,i=i.parent.parent):(i===i.parent.right&&gM(t,i=i.parent),i.parent.color=0,i.parent.parent.color=1,mM(t,i.parent.parent))}else{const e=i.parent.parent.left;1===e.color?(i.parent.color=0,e.color=0,i.parent.parent.color=1,i=i.parent.parent):(i===i.parent.left&&mM(t,i=i.parent),i.parent.color=0,i.parent.parent.color=1,gM(t,i.parent.parent))}t.root.color=0}function bM(t,i,e,s){for(;i!==t.root&&i!==aM;)i.parent.left===i&&(i.parent.size_left+=e,i.parent.lf_left+=s),i=i.parent}function yM(t,i){let e=0,s=0;if(i!==t.root){for(;i!==t.root&&i===i.parent.right;)i=i.parent;if(i!==t.root)for(e=dM((i=i.parent).left)-i.size_left,s=fM(i.left)-i.lf_left,i.size_left+=e,i.lf_left+=s;i!==t.root&&(0!==e||0!==s);)i.parent.left===i&&(i.parent.size_left+=e,i.parent.lf_left+=s),i=i.parent}}aM.parent=aM,aM.left=aM,aM.right=aM,aM.color=0;const kM=65535;function xM(t){let i;return i=t[t.length-1]<65536?new Uint16Array(t.length):new Uint32Array(t.length),i.set(t,0),i}class CM{constructor(t,i,e,s,n){this.lineStarts=t,this.cr=i,this.lf=e,this.crlf=s,this.isBasicASCII=n}}function SM(t,i=!0){const e=[0];let s=1;for(let i=0,n=t.length;i(t!==aM&&this._pieces.push(t.piece),!0)))}read(){return 0===this._pieces.length?0===this._index?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:0===this._index?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}}class MM{constructor(t){this._limit=t,this._cache=[]}get(t){for(let i=this._cache.length-1;i>=0;i--){const e=this._cache[i];if(e.nodeStartOffset<=t&&e.nodeStartOffset+e.node.piece.length>=t)return e}return null}get2(t){for(let i=this._cache.length-1;i>=0;i--){const e=this._cache[i];if(e.nodeStartLineNumber&&e.nodeStartLineNumber=t)return e}return null}set(t){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(t)}validate(t){let i=!1;const e=this._cache;for(let s=0;s=t)&&(e[s]=null,i=!0)}if(i){const t=[];for(const i of e)null!==i&&t.push(i);this._cache=t}}}class LM{constructor(t,i,e){this.create(t,i,e)}create(t,i,e){this._buffers=[new EM("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=aM,this._lineCnt=1,this._length=0,this._EOL=i,this._EOLLength=i.length,this._EOLNormalized=e;let s=null;for(let i=0,e=t.length;i0){t[i].lineStarts||(t[i].lineStarts=SM(t[i].buffer));const e=new DM(i+1,{line:0,column:0},{line:t[i].lineStarts.length-1,column:t[i].buffer.length-t[i].lineStarts[t[i].lineStarts.length-1]},t[i].lineStarts.length-1,t[i].buffer.length);this._buffers.push(t[i]),s=this.rbInsertRight(s,e)}this._searchCache=new MM(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(t){const i=65535-Math.floor(21845),e=2*i;let s="",n=0;const o=[];if(this.iterate(this.root,(r=>{const h=this.getNodeContent(r),c=h.length;if(n<=i||n+c0){const i=s.replace(/\r\n|\r|\n/g,t);o.push(new EM(i,SM(i)))}this.create(o,t,!0)}getEOL(){return this._EOL}setEOL(t){this._EOL=t,this._EOLLength=this._EOL.length,this.normalizeEOL(t)}createSnapshot(t){return new AM(this,t)}getOffsetAt(t,i){let e=0,s=this.root;for(;s!==aM;)if(s.left!==aM&&s.lf_left+1>=t)s=s.left;else{if(s.lf_left+s.piece.lineFeedCnt+1>=t)return e+=s.size_left,e+(this.getAccumulatedValue(s,t-s.lf_left-2)+i-1);t-=s.lf_left+s.piece.lineFeedCnt,e+=s.size_left+s.piece.length,s=s.right}return e}getPositionAt(t){t=Math.floor(t),t=Math.max(0,t);let i=this.root,e=0;const s=t;for(;i!==aM;)if(0!==i.size_left&&i.size_left>=t)i=i.left;else{if(i.size_left+i.piece.length>=t){const n=this.getIndexOf(i,t-i.size_left);if(e+=i.lf_left+n.index,0===n.index){const t=this.getOffsetAt(e+1,1);return new As(e+1,s-t+1)}return new As(e+1,n.remainder+1)}if(t-=i.size_left+i.piece.length,e+=i.lf_left+i.piece.lineFeedCnt,i.right===aM){const i=this.getOffsetAt(e+1,1);return new As(e+1,s-t-i+1)}i=i.right}return new As(1,1)}getValueInRange(t,i){if(t.startLineNumber===t.endLineNumber&&t.startColumn===t.endColumn)return"";const e=this.nodeAt2(t.startLineNumber,t.startColumn),s=this.nodeAt2(t.endLineNumber,t.endColumn),n=this.getValueInRange2(e,s);return i?i===this._EOL&&this._EOLNormalized&&i===this.getEOL()&&this._EOLNormalized?n:n.replace(/\r\n|\r|\n/g,i):n}getValueInRange2(t,i){if(t.node===i.node){const e=t.node,s=this._buffers[e.piece.bufferIndex].buffer,n=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start);return s.substring(n+t.remainder,n+i.remainder)}let e=t.node;const s=this._buffers[e.piece.bufferIndex].buffer,n=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start);let o=s.substring(n+t.remainder,n+e.piece.length);for(e=e.next();e!==aM;){const t=this._buffers[e.piece.bufferIndex].buffer,s=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start);if(e===i.node){o+=t.substring(s,s+i.remainder);break}o+=t.substr(s,e.piece.length),e=e.next()}return o}getLinesContent(){const t=[];let i=0,e="",s=!1;return this.iterate(this.root,(n=>{if(n===aM)return!0;const o=n.piece;let r=o.length;if(0===r)return!0;const h=this._buffers[o.bufferIndex].buffer,c=this._buffers[o.bufferIndex].lineStarts,a=o.start.line,l=o.end.line;let u=c[a]+o.start.column;if(s&&(10===h.charCodeAt(u)&&(u++,r--),t[i++]=e,e="",s=!1,0===r))return!0;if(a===l)return this._EOLNormalized||13!==h.charCodeAt(u+r-1)?e+=h.substr(u,r):(s=!0,e+=h.substr(u,r-1)),!0;e+=this._EOLNormalized?h.substring(u,Math.max(u,c[a+1]-this._EOLLength)):h.substring(u,c[a+1]).replace(/(\r\n|\r|\n)$/,""),t[i++]=e;for(let s=a+1;st+f,i.reset(0)):(w=u.buffer,v=t=>t,i.reset(f));do{if(g=i.next(w),g){if(v(g.index)>=p)return a;this.positionInBuffer(t,v(g.index)-d,m);const i=this.getLineFeedCnt(t.piece.bufferIndex,n,m),o=m.line===n.line?m.column-n.column+s:m.column+1;if(l[a++]=Gf(new Ms(e+i,o,e+i,o+g[0].length),g,h),v(g.index)+g[0].length>=p)return a;if(a>=c)return a}}while(g);return a}findMatchesLineByLine(t,i,e,s){const n=[];let o=0;const r=new Yf(i.wordSeparators,i.regex);let h=this.nodeAt2(t.startLineNumber,t.startColumn);if(null===h)return[];const c=this.nodeAt2(t.endLineNumber,t.endColumn);if(null===c)return[];let a=this.positionInBuffer(h.node,h.remainder);const l=this.positionInBuffer(c.node,c.remainder);if(h.node===c.node)return this.findMatchesInNode(h.node,r,t.startLineNumber,t.startColumn,a,l,i,e,s,o,n),n;let u=t.startLineNumber,d=h.node;for(;d!==c.node;){const c=this.getLineFeedCnt(d.piece.bufferIndex,a,d.piece.end);if(c>=1){const h=this._buffers[d.piece.bufferIndex].lineStarts,l=this.offsetInBuffer(d.piece.bufferIndex,d.piece.start);if(o=this.findMatchesInNode(d,r,u,u===t.startLineNumber?t.startColumn:1,a,this.positionInBuffer(d,h[a.line+c]-l),i,e,s,o,n),o>=s)return n;u+=c}const l=u===t.startLineNumber?t.startColumn-1:0;if(u===t.endLineNumber){const h=this.getLineContent(u).substring(l,t.endColumn-1);return o=this._findMatchesInLine(i,r,h,t.endLineNumber,l,o,n,e,s),n}if(o=this._findMatchesInLine(i,r,this.getLineContent(u).substr(l),u,l,o,n,e,s),o>=s)return n;u++,h=this.nodeAt2(u,1),d=h.node,a=this.positionInBuffer(h.node,h.remainder)}if(u===t.endLineNumber){const h=u===t.startLineNumber?t.startColumn-1:0,c=this.getLineContent(u).substring(h,t.endColumn-1);return o=this._findMatchesInLine(i,r,c,t.endLineNumber,h,o,n,e,s),n}return o=this.findMatchesInNode(c.node,r,u,u===t.startLineNumber?t.startColumn:1,a,l,i,e,s,o,n),n}_findMatchesInLine(t,i,e,s,n,o,r,h,c){const a=t.wordSeparators;if(!h&&t.simpleSearch){const i=t.simpleSearch,h=i.length,l=e.length;let u=-h;for(;-1!==(u=e.indexOf(i,u+h));)if((!a||Jf(a,e,l,u,h))&&(r[o++]=new zf(new Ms(s,u+1+n,s,u+1+h+n),null),o>=c))return o;return o}let l;i.reset(0);do{if(l=i.next(e),l&&(r[o++]=Gf(new Ms(s,l.index+1+n,s,l.index+1+l[0].length+n),l,h),o>=c))return o}while(l);return o}insert(t,i,e=!1){if(this._EOLNormalized=this._EOLNormalized&&e,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==aM){const{node:e,remainder:s,nodeStartOffset:n}=this.nodeAt(t),o=e.piece,r=o.bufferIndex,h=this.positionInBuffer(e,s);if(0===e.piece.bufferIndex&&o.end.line===this._lastChangeBufferPos.line&&o.end.column===this._lastChangeBufferPos.column&&n+o.length===t&&i.lengtht){const t=[];let n=new DM(o.bufferIndex,h,o.end,this.getLineFeedCnt(o.bufferIndex,h,o.end),this.offsetInBuffer(r,o.end)-this.offsetInBuffer(r,h));if(this.shouldCheckCRLF()&&this.endWithCR(i)&&10===this.nodeCharCodeAt(e,s)){const t={line:n.start.line+1,column:0};n=new DM(n.bufferIndex,t,n.end,this.getLineFeedCnt(n.bufferIndex,t,n.end),n.length-1),i+="\n"}if(this.shouldCheckCRLF()&&this.startWithLF(i))if(13===this.nodeCharCodeAt(e,s-1)){const n=this.positionInBuffer(e,s-1);this.deleteNodeTail(e,n),i="\r"+i,0===e.piece.length&&t.push(e)}else this.deleteNodeTail(e,h);else this.deleteNodeTail(e,h);const c=this.createNewPieces(i);n.length>0&&this.rbInsertRight(e,n);let a=e;for(let t=0;t=0;t--)n=this.rbInsertLeft(n,s[t]);this.validateCRLFWithPrevNode(n),this.deleteNodes(e)}insertContentToNodeRight(t,i){this.adjustCarriageReturnFromNext(t,i)&&(t+="\n");const e=this.createNewPieces(t),s=this.rbInsertRight(i,e[0]);let n=s;for(let t=1;t=a))break;r=c+1}return e?(e.line=c,e.column=o-l,null):{line:c,column:o-l}}getLineFeedCnt(t,i,e){if(0===e.column)return e.line-i.line;const s=this._buffers[t].lineStarts;if(e.line===s.length-1)return e.line-i.line;const n=s[e.line]+e.column;return s[e.line+1]>n+1?e.line-i.line:13===this._buffers[t].buffer.charCodeAt(n-1)?e.line-i.line+1:e.line-i.line}offsetInBuffer(t,i){return this._buffers[t].lineStarts[i.line]+i.column}deleteNodes(t){for(let i=0;ikM){const i=[];for(;t.length>kM;){const e=t.charCodeAt(65534);let s;13===e||e>=55296&&e<=56319?(s=t.substring(0,65534),t=t.substring(65534)):(s=t.substring(0,kM),t=t.substring(kM));const n=SM(s);i.push(new DM(this._buffers.length,{line:0,column:0},{line:n.length-1,column:s.length-n[n.length-1]},n.length-1,s.length)),this._buffers.push(new EM(s,n))}const e=SM(t);return i.push(new DM(this._buffers.length,{line:0,column:0},{line:e.length-1,column:t.length-e[e.length-1]},e.length-1,t.length)),this._buffers.push(new EM(t,e)),i}let i=this._buffers[0].buffer.length;const e=SM(t,!1);let s=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===i&&0!==i&&this.startWithLF(t)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},s=this._lastChangeBufferPos;for(let t=0;t=t-1)e=e.left;else{if(e.lf_left+e.piece.lineFeedCnt>t-1){const s=this.getAccumulatedValue(e,t-e.lf_left-2),r=this.getAccumulatedValue(e,t-e.lf_left-1),h=this._buffers[e.piece.bufferIndex].buffer,c=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start);return n+=e.size_left,this._searchCache.set({node:e,nodeStartOffset:n,nodeStartLineNumber:o-(t-1-e.lf_left)}),h.substring(c+s,c+r-i)}if(e.lf_left+e.piece.lineFeedCnt===t-1){const i=this.getAccumulatedValue(e,t-e.lf_left-2),n=this._buffers[e.piece.bufferIndex].buffer,o=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start);s=n.substring(o+i,o+e.piece.length);break}t-=e.lf_left+e.piece.lineFeedCnt,n+=e.size_left+e.piece.length,e=e.right}}for(e=e.next();e!==aM;){const t=this._buffers[e.piece.bufferIndex].buffer;if(e.piece.lineFeedCnt>0){const n=this.getAccumulatedValue(e,0),o=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start);return s+=t.substring(o,o+n-i),s}{const i=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start);s+=t.substr(i,e.piece.length)}e=e.next()}return s}computeBufferMetadata(){let t=this.root,i=1,e=0;for(;t!==aM;)i+=t.lf_left+t.piece.lineFeedCnt,e+=t.size_left+t.piece.length,t=t.right;this._lineCnt=i,this._length=e,this._searchCache.validate(this._length)}getIndexOf(t,i){const e=t.piece,s=this.positionInBuffer(t,i),n=s.line-e.start.line;if(this.offsetInBuffer(e.bufferIndex,e.end)-this.offsetInBuffer(e.bufferIndex,e.start)===i){const i=this.getLineFeedCnt(t.piece.bufferIndex,e.start,s);if(i!==n)return{index:i,remainder:0}}return{index:n,remainder:s.column}}getAccumulatedValue(t,i){if(i<0)return 0;const e=t.piece,s=this._buffers[e.bufferIndex].lineStarts,n=e.start.line+i+1;return n>e.end.line?s[e.end.line]+e.end.column-s[e.start.line]-e.start.column:s[n]-s[e.start.line]-e.start.column}deleteNodeTail(t,i){const e=t.piece,s=e.lineFeedCnt,n=this.offsetInBuffer(e.bufferIndex,e.end),o=i,r=this.offsetInBuffer(e.bufferIndex,o),h=this.getLineFeedCnt(e.bufferIndex,e.start,o),c=h-s,a=r-n;t.piece=new DM(e.bufferIndex,e.start,o,h,e.length+a),bM(this,t,a,c)}deleteNodeHead(t,i){const e=t.piece,s=e.lineFeedCnt,n=this.offsetInBuffer(e.bufferIndex,e.start),o=i,r=this.getLineFeedCnt(e.bufferIndex,o,e.end),h=r-s,c=n-this.offsetInBuffer(e.bufferIndex,o);t.piece=new DM(e.bufferIndex,o,e.end,r,e.length+c),bM(this,t,c,h)}shrinkNode(t,i,e){const s=t.piece,n=s.start,o=s.end,r=s.length,h=s.lineFeedCnt,c=i,a=this.getLineFeedCnt(s.bufferIndex,s.start,c),l=this.offsetInBuffer(s.bufferIndex,i)-this.offsetInBuffer(s.bufferIndex,n);t.piece=new DM(s.bufferIndex,s.start,c,a,l),bM(this,t,l-r,a-h);const u=new DM(s.bufferIndex,e,o,this.getLineFeedCnt(s.bufferIndex,e,o),this.offsetInBuffer(s.bufferIndex,o)-this.offsetInBuffer(s.bufferIndex,e)),d=this.rbInsertRight(t,u);this.validateCRLFWithPrevNode(d)}appendToNode(t,i){this.adjustCarriageReturnFromNext(i,t)&&(i+="\n");const e=this.shouldCheckCRLF()&&this.startWithLF(i)&&this.endWithCR(t),s=this._buffers[0].buffer.length;this._buffers[0].buffer+=i;const n=SM(i,!1);for(let t=0;tt)i=i.left;else{if(i.size_left+i.piece.length>=t){s+=i.size_left;const e={node:i,remainder:t-i.size_left,nodeStartOffset:s};return this._searchCache.set(e),e}t-=i.size_left+i.piece.length,s+=i.size_left+i.piece.length,i=i.right}return null}nodeAt2(t,i){let e=this.root,s=0;for(;e!==aM;)if(e.left!==aM&&e.lf_left>=t-1)e=e.left;else{if(e.lf_left+e.piece.lineFeedCnt>t-1){const n=this.getAccumulatedValue(e,t-e.lf_left-2),o=this.getAccumulatedValue(e,t-e.lf_left-1);return s+=e.size_left,{node:e,remainder:Math.min(n+i-1,o),nodeStartOffset:s}}if(e.lf_left+e.piece.lineFeedCnt===t-1){const n=this.getAccumulatedValue(e,t-e.lf_left-2);if(n+i-1<=e.piece.length)return{node:e,remainder:n+i-1,nodeStartOffset:s};i-=e.piece.length-n;break}t-=e.lf_left+e.piece.lineFeedCnt,s+=e.size_left+e.piece.length,e=e.right}for(e=e.next();e!==aM;){if(e.piece.lineFeedCnt>0){const t=this.getAccumulatedValue(e,0),s=this.offsetOfNode(e);return{node:e,remainder:Math.min(i-1,t),nodeStartOffset:s}}if(e.piece.length>=i-1)return{node:e,remainder:i-1,nodeStartOffset:this.offsetOfNode(e)};i-=e.piece.length,e=e.next()}return null}nodeCharCodeAt(t,i){if(t.piece.lineFeedCnt<1)return-1;const e=this._buffers[t.piece.bufferIndex],s=this.offsetInBuffer(t.piece.bufferIndex,t.piece.start)+i;return e.buffer.charCodeAt(s)}offsetOfNode(t){if(!t)return 0;let i=t.size_left;for(;t!==this.root;)t.parent.right===t&&(i+=t.parent.size_left+t.parent.piece.length),t=t.parent;return i}shouldCheckCRLF(){return!(this._EOLNormalized&&"\n"===this._EOL)}startWithLF(t){if("string"==typeof t)return 10===t.charCodeAt(0);if(t===aM||0===t.piece.lineFeedCnt)return!1;const i=t.piece,e=this._buffers[i.bufferIndex].lineStarts,s=i.start.line,n=e[s]+i.start.column;return s!==e.length-1&&(!(e[s+1]>n+1)&&10===this._buffers[i.bufferIndex].buffer.charCodeAt(n))}endWithCR(t){return"string"==typeof t?13===t.charCodeAt(t.length-1):t!==aM&&0!==t.piece.lineFeedCnt&&13===this.nodeCharCodeAt(t,t.piece.length-1)}validateCRLFWithPrevNode(t){if(this.shouldCheckCRLF()&&this.startWithLF(t)){const i=t.prev();this.endWithCR(i)&&this.fixCRLF(i,t)}}validateCRLFWithNextNode(t){if(this.shouldCheckCRLF()&&this.endWithCR(t)){const i=t.next();this.startWithLF(i)&&this.fixCRLF(t,i)}}fixCRLF(t,i){const e=[],s=this._buffers[t.piece.bufferIndex].lineStarts;let n;n=0===t.piece.end.column?{line:t.piece.end.line-1,column:s[t.piece.end.line]-s[t.piece.end.line-1]-1}:{line:t.piece.end.line,column:t.piece.end.column-1},t.piece=new DM(t.piece.bufferIndex,t.piece.start,n,t.piece.lineFeedCnt-1,t.piece.length-1),bM(this,t,-1,-1),0===t.piece.length&&e.push(t);const o={line:i.piece.start.line+1,column:0},r=i.piece.length-1,h=this.getLineFeedCnt(i.piece.bufferIndex,o,i.piece.end);i.piece=new DM(i.piece.bufferIndex,o,i.piece.end,h,r),bM(this,i,-1,-1),0===i.piece.length&&e.push(i);const c=this.createNewPieces("\r\n");this.rbInsertRight(t,c[0]);for(let t=0;tt.sortIndex-i.sortIndex))}this._mightContainRTL=s,this._mightContainUnusualLineTerminators=n,this._mightContainNonBasicASCII=o;const d=this._doApplyEdits(h);let f=null;if(i&&l.length>0){l.sort(((t,i)=>i.lineNumber-t.lineNumber)),f=[];for(let t=0,i=l.length;t0&&l[t-1].lineNumber===i)continue;const e=l[t].oldContent,s=this.getLineContent(i);0!==s.length&&s!==e&&-1===to(s)&&f.push(i)}}return this._onDidChangeContent.fire(),new Uf(u,d,f)}_reduceOperations(t){return t.length<1e3?t:[this._toSingleEditOperation(t)]}_toSingleEditOperation(t){let i=!1;const e=t[0].range,s=t[t.length-1].range,n=new Ms(e.startLineNumber,e.startColumn,s.endLineNumber,s.endColumn);let o=e.startLineNumber,r=e.startColumn;const h=[];for(let e=0,s=t.length;e0&&h.push(s.text),o=n.endLineNumber,r=n.endColumn}const c=h.join(""),[a,l,u]=KD(c);return{sortIndex:0,identifier:t[0].identifier,range:n,rangeOffset:this.getOffsetAt(n.startLineNumber,n.startColumn),rangeLength:this.getValueLengthInRange(n,0),text:c,eolCount:a,firstLineLength:l,lastLineLength:u,forceMoveMarkers:i,isAutoWhitespaceEdit:!1}}_doApplyEdits(t){t.sort(FM._sortOpsDescending);const i=[];for(let e=0;e0){const t=r.eolCount+1;a=1===t?new Ms(h,c,h,c+r.firstLineLength):new Ms(h,c,h+t-1,r.lastLineLength+1)}else a=new Ms(h,c,h,c);e=a.endLineNumber,s=a.endColumn,i.push(a),n=r}return i}static _sortOpsAscending(t,i){const e=Ms.compareRangesUsingEnds(t.range,i.range);return 0===e?t.sortIndex-i.sortIndex:e}static _sortOpsDescending(t,i){const e=Ms.compareRangesUsingEnds(t.range,i.range);return 0===e?i.sortIndex-t.sortIndex:-e}}class TM{constructor(t,i,e,s,n,o,r,h,c){this._chunks=t,this._bom=i,this._cr=e,this._lf=s,this._crlf=n,this._containsRTL=o,this._containsUnusualLineTerminators=r,this._isBasicASCII=h,this._normalizeEOL=c}_getEOL(t){const i=this._cr+this._lf+this._crlf;return 0===i?1===t?"\n":"\r\n":this._cr+this._crlf>i/2?"\r\n":"\n"}create(t){const i=this._getEOL(t),e=this._chunks;if(this._normalizeEOL&&("\r\n"===i&&(this._cr>0||this._lf>0)||"\n"===i&&(this._cr>0||this._crlf>0)))for(let t=0,s=e.length;t=55296&&i<=56319?(this._acceptChunk1(t.substr(0,t.length-1),!1),this._hasPreviousChar=!0,this._previousChar=i):(this._acceptChunk1(t,!1),this._hasPreviousChar=!1,this._previousChar=i)}_acceptChunk1(t,i){(i||0!==t.length)&&this._acceptChunk2(this._hasPreviousChar?String.fromCharCode(this._previousChar)+t:t)}_acceptChunk2(t){const i=function(t,i){t.length=0,t[0]=0;let e=1,s=0,n=0,o=0,r=!0;for(let h=0,c=i.length;h126)&&(r=!1)}const h=new CM(xM(t),s,n,o,r);return t.length=0,h}(this._tmpLineStarts,t);this.chunks.push(new EM(t,i.lineStarts)),this.cr+=i.cr,this.lf+=i.lf,this.crlf+=i.crlf,i.isBasicASCII||(this.isBasicASCII=!1,this.containsRTL||(this.containsRTL=So(t)),this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=Mo(t)))}finish(t=!0){return this._finish(),new TM(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,t)}_finish(){if(0===this.chunks.length&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;const t=this.chunks[this.chunks.length-1];t.buffer+=String.fromCharCode(this._previousChar);const i=SM(t.buffer);t.lineStarts=i,13===this._previousChar&&this.cr++}}}class OM{constructor(t){this._default=t,this._store=[]}get(t){return t=this._store.length;)this._store[this._store.length]=this._default;this._store[t]=i}replace(t,i,e){if(t>=this._store.length)return;if(0===i)return void this.insert(t,e);if(0===e)return void this.delete(t,i);const s=this._store.slice(0,t),n=this._store.slice(t+i),o=function(t,i){const e=[];for(let s=0;s=this._store.length||this._store.splice(t,i)}insert(t,i){if(0===i||t>=this._store.length)return;const e=[];for(let t=0;t0){const e=this._tokens[this._tokens.length-1];if(e.endLineNumber+1===t)return void e.appendLineTokens(i)}this._tokens.push(new IM(t,[i]))}finalize(){return this._tokens}}class NM{constructor(t,i){this.tokenizationSupport=i,this.initialState=this.tokenizationSupport.getInitialState(),this.store=new PM(t)}getStartState(t){return this.store.getStartState(t,this.initialState)}getFirstInvalidLine(){return this.store.getFirstInvalidLine(this.initialState)}}class BM extends NM{constructor(t,i,e,s){super(t,i),this._textModel=e,this._languageIdCodec=s}updateTokensUntilLine(t,i){const e=this._textModel.getLanguageId();for(;;){const s=this.getFirstInvalidLine();if(!s||s.lineNumber>i)break;const n=this._textModel.getLineContent(s.lineNumber),o=jM(this._languageIdCodec,e,this.tokenizationSupport,n,!0,s.startState);t.add(s.lineNumber,o.tokens),this.store.setEndState(s.lineNumber,o.endState)}}getTokenTypeIfInsertingCharacter(t,i){const e=this.getStartState(t.lineNumber);if(!e)return 0;const s=this._textModel.getLanguageId(),n=this._textModel.getLineContent(t.lineNumber),o=n.substring(0,t.column-1)+i+n.substring(t.column-1),r=jM(this._languageIdCodec,s,this.tokenizationSupport,o,!0,e),h=new Pg(r.tokens,o,this._languageIdCodec);if(0===h.getCount())return 0;const c=h.findTokenIndexAtOffset(t.column-1);return h.getStandardTokenType(c)}tokenizeLineWithEdit(t,i,e){const s=t.lineNumber,n=t.column,o=this.getStartState(s);if(!o)return null;const r=this._textModel.getLineContent(s),h=r.substring(0,n-1)+e+r.substring(n-1+i),c=this._textModel.getLanguageIdAtPosition(s,0),a=jM(this._languageIdCodec,c,this.tokenizationSupport,h,!0,o);return new Pg(a.tokens,h,this._languageIdCodec)}isCheapToTokenize(t){const i=this.store.getFirstInvalidEndStateLineNumberOrMax();return t1&&n>=1;n--){const t=this._textModel.getLineFirstNonWhitespaceColumn(n);if(0!==t&&t0&&e>0&&(e--,i--),this._lineEndStates.replace(t.startLineNumber,e,i)}}class WM{constructor(){this._ranges=[]}get min(){return 0===this._ranges.length?null:this._ranges[0].start}delete(t){const i=this._ranges.findIndex((i=>i.contains(t)));if(-1!==i){const e=this._ranges[i];e.start===t?e.endExclusive===t+1?this._ranges.splice(i,1):this._ranges[i]=new np(t+1,e.endExclusive):e.endExclusive===t+1?this._ranges[i]=new np(e.start,t):this._ranges.splice(i,1,new np(e.start,t),new np(t+1,e.endExclusive))}}addRange(t){np.addRange(t,this._ranges)}addRangeAndResize(t,i){let e=0;for(;!(e>=this._ranges.length||t.start<=this._ranges[e].endExclusive);)e++;let s=e;for(;!(s>=this._ranges.length||t.endExclusivet.toString())).join(" + ")}}function jM(t,i,e,s,n,o){let r=null;if(e)try{r=e.tokenizeEncoded(s,n,o.clone())}catch(t){Bi(t)}return r||(r=Ng(t.encodeLanguageId(i),o)),Pg.convertToEndOffset(r.tokens,s.length),r}class zM{constructor(t,i){this._tokenizerWithStateStore=t,this._backgroundTokenStore=i,this._isDisposed=!1,this._isScheduled=!1}dispose(){this._isDisposed=!0}handleChanges(){this._beginBackgroundTokenization()}_beginBackgroundTokenization(){!this._isScheduled&&this._tokenizerWithStateStore._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&(this._isScheduled=!0,gc((t=>{this._isScheduled=!1,this._backgroundTokenizeWithDeadline(t)})))}_backgroundTokenizeWithDeadline(t){const i=Date.now()+t.timeRemaining(),e=()=>{!this._isDisposed&&this._tokenizerWithStateStore._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&(this._backgroundTokenizeForAtLeast1ms(),Date.now()1)break;if(this._tokenizeOneInvalidLine(i)>=t)break}while(this._hasLinesToTokenize());this._backgroundTokenStore.setTokens(i.finalize()),this.checkFinished()}_hasLinesToTokenize(){return!!this._tokenizerWithStateStore&&!this._tokenizerWithStateStore.store.allStatesValid()}_tokenizeOneInvalidLine(t){var i;const e=null===(i=this._tokenizerWithStateStore)||void 0===i?void 0:i.getFirstInvalidLine();return e?(this._tokenizerWithStateStore.updateTokensUntilLine(t,e.lineNumber),e.lineNumber):this._tokenizerWithStateStore._textModel.getLineCount()+1}checkFinished(){this._isDisposed||this._tokenizerWithStateStore.store.allStatesValid()&&this._backgroundTokenStore.backgroundTokenizationFinished()}requestTokens(t,i){this._tokenizerWithStateStore.store.invalidateEndStateRange(new fp(t,i))}}const HM=new Uint32Array(0).buffer;class VM{static deleteBeginning(t,i){return null===t||t===HM?t:VM.delete(t,0,i)}static deleteEnding(t,i){if(null===t||t===HM)return t;const e=UM(t);return VM.delete(t,i,e[e.length-2])}static delete(t,i,e){if(null===t||t===HM||i===e)return t;const s=UM(t),n=s.length>>>1;if(0===i&&s[s.length-2]===e)return HM;const o=Pg.findIndexInTokensArray(s,i),r=o>0?s[o-1<<1]:0;if(ec&&(s[h++]=i,s[h++]=s[1+(t<<1)],c=i)}if(h===s.length)return t;const l=new Uint32Array(h);return l.set(s.subarray(0,h),0),l.buffer}static append(t,i){if(i===HM)return t;if(t===HM)return i;if(null===t)return t;if(null===i)return null;const e=UM(t),s=UM(i),n=s.length>>>1,o=new Uint32Array(e.length+s.length);o.set(e,0);let r=e.length;const h=e[e.length-2];for(let t=0;t>>1;let o=Pg.findIndexInTokensArray(s,i);o>0&&s[o-1<<1]===i&&o--;for(let t=o;t0}getTokens(t,i,e){let s=null;if(i1&&(i=Bg.getLanguageId(s[1])!==t),!i)return HM}if(!s||0===s.length){const e=new Uint32Array(2);return e[0]=i,e[1]=KM(t),e.buffer}return s[s.length-2]=i,0===s.byteOffset&&s.byteLength===s.buffer.byteLength?s.buffer:s}_ensureLine(t){for(;t>=this._len;)this._lineTokens[this._len]=null,this._len++}_deleteLines(t,i){0!==i&&(t+i>this._len&&(i=this._len-t),this._lineTokens.splice(t,i),this._len-=i)}_insertLines(t,i){if(0===i)return;const e=[];for(let t=0;t=this._len)return;if(t.startLineNumber===t.endLineNumber){if(t.startColumn===t.endColumn)return;return void(this._lineTokens[i]=VM.delete(this._lineTokens[i],t.startColumn-1,t.endColumn-1))}this._lineTokens[i]=VM.deleteEnding(this._lineTokens[i],t.startColumn-1);const e=t.endLineNumber-1;let s=null;e=this._len||(0!==i?(this._lineTokens[s]=VM.deleteEnding(this._lineTokens[s],t.column-1),this._lineTokens[s]=VM.insert(this._lineTokens[s],t.column-1,e),this._insertLines(t.lineNumber,i)):this._lineTokens[s]=VM.insert(this._lineTokens[s],t.column-1,e))}setMultilineTokens(t,i){if(0===t.length)return{changes:[]};const e=[];for(let s=0,n=t.length;s>>0}class GM{constructor(t){this._pieces=[],this._isComplete=!1,this._languageIdCodec=t}flush(){this._pieces=[],this._isComplete=!1}isEmpty(){return 0===this._pieces.length}set(t,i){this._pieces=t||[],this._isComplete=i}setPartial(t,i){let e=t;if(i.length>0){const s=i[0].getRange(),n=i[i.length-1].getRange();if(!s||!n)return t;e=t.plusRange(s).plusRange(n)}let s=null;for(let t=0,i=this._pieces.length;te.endLineNumber){s=s||{index:t};break}if(n.removeTokens(e),n.isEmpty()){this._pieces.splice(t,1),t--,i--;continue}if(n.endLineNumbere.endLineNumber){s=s||{index:t};continue}const[o,r]=n.split(e);o.isEmpty()?s=s||{index:t}:r.isEmpty()||(this._pieces.splice(t,1,o,r),t++,i++,s=s||{index:t})}return s=s||{index:this._pieces.length},i.length>0&&(this._pieces=C(this._pieces,s.index,i)),e}isComplete(){return this._isComplete}addSparseTokens(t,i){if(0===i.getLineContent().length)return i;const e=this._pieces;if(0===e.length)return i;const s=e[GM._findFirstPieceWithLine(e,t)].getLineTokens(t);if(!s)return i;const n=i.getCount(),o=s.getCount();let r=0;const h=[];let c=0,a=0;const l=(t,i)=>{t!==a&&(a=t,h[c++]=t,h[c++]=i)};for(let t=0;t>>0,a=~c>>>0;for(;ri)){for(;n>e&&t[n-1].startLineNumber<=i&&i<=t[n-1].endLineNumber;)n--;return n}s=n-1}}return e}acceptEdit(t,i,e,s,n){for(const o of this._pieces)o.acceptEdit(t,i,e,s,n)}}class ZM extends TS{constructor(t,i,e,s,n,o){super(),this._languageService=t,this._languageConfigurationService=i,this._textModel=e,this._bracketPairsTextModelPart=s,this._languageId=n,this._attachedViews=o,this._semanticTokens=new GM(this._languageService.languageIdCodec),this._onDidChangeLanguage=this._register(new de),this.onDidChangeLanguage=this._onDidChangeLanguage.event,this._onDidChangeLanguageConfiguration=this._register(new de),this.onDidChangeLanguageConfiguration=this._onDidChangeLanguageConfiguration.event,this._onDidChangeTokens=this._register(new de),this.onDidChangeTokens=this._onDidChangeTokens.event,this.grammarTokens=this._register(new QM(this._languageService.languageIdCodec,this._textModel,(()=>this._languageId),this._attachedViews)),this._register(this._languageConfigurationService.onDidChange((t=>{t.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})}))),this._register(this.grammarTokens.onDidChangeTokens((t=>{this._emitModelTokensChangedEvent(t)}))),this._register(this.grammarTokens.onDidChangeBackgroundTokenizationState((()=>{this._bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState()})))}handleDidChangeContent(t){if(t.isFlush)this._semanticTokens.flush();else if(!t.isEolChange)for(const i of t.changes){const[t,e,s]=KD(i.text);this._semanticTokens.acceptEdit(i.range,t,e,s,i.text.length>0?i.text.charCodeAt(0):0)}this.grammarTokens.handleDidChangeContent(t)}handleDidChangeAttached(){this.grammarTokens.handleDidChangeAttached()}getLineTokens(t){this.validateLineNumber(t);const i=this.grammarTokens.getLineTokens(t);return this._semanticTokens.addSparseTokens(t,i)}_emitModelTokensChangedEvent(t){this._textModel._isDisposing()||(this._bracketPairsTextModelPart.handleDidChangeTokens(t),this._onDidChangeTokens.fire(t))}validateLineNumber(t){if(t<1||t>this._textModel.getLineCount())throw new Ki("Illegal value for lineNumber")}get hasTokens(){return this.grammarTokens.hasTokens}resetTokenization(){this.grammarTokens.resetTokenization()}get backgroundTokenizationState(){return this.grammarTokens.backgroundTokenizationState}forceTokenization(t){this.validateLineNumber(t),this.grammarTokens.forceTokenization(t)}isCheapToTokenize(t){return this.validateLineNumber(t),this.grammarTokens.isCheapToTokenize(t)}tokenizeIfCheap(t){this.validateLineNumber(t),this.grammarTokens.tokenizeIfCheap(t)}getTokenTypeIfInsertingCharacter(t,i,e){return this.grammarTokens.getTokenTypeIfInsertingCharacter(t,i,e)}tokenizeLineWithEdit(t,i,e){return this.grammarTokens.tokenizeLineWithEdit(t,i,e)}setSemanticTokens(t,i){this._semanticTokens.set(t,i),this._emitModelTokensChangedEvent({semanticTokensApplied:null!==t,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]})}hasCompleteSemanticTokens(){return this._semanticTokens.isComplete()}hasSomeSemanticTokens(){return!this._semanticTokens.isEmpty()}setPartialSemanticTokens(t,i){if(this.hasCompleteSemanticTokens())return;const e=this._textModel.validateRange(this._semanticTokens.setPartial(t,i));this._emitModelTokensChangedEvent({semanticTokensApplied:!0,ranges:[{fromLineNumber:e.startLineNumber,toLineNumber:e.endLineNumber}]})}getWordAtPosition(t){this.assertNotDisposed();const i=this._textModel.validatePosition(t),e=this._textModel.getLineContent(i.lineNumber),s=this.getLineTokens(i.lineNumber),n=s.findTokenIndexAtOffset(i.column-1),[o,r]=ZM._findLanguageBoundaries(s,n),h=Qt(i.column,this.getLanguageConfiguration(s.getLanguageId(n)).getWordDefinition(),e.substring(o,r),o);if(h&&h.startColumn<=t.column&&t.column<=h.endColumn)return h;if(n>0&&o===i.column-1){const[o,r]=ZM._findLanguageBoundaries(s,n-1),h=Qt(i.column,this.getLanguageConfiguration(s.getLanguageId(n-1)).getWordDefinition(),e.substring(o,r),o);if(h&&h.startColumn<=t.column&&t.column<=h.endColumn)return h}return null}getLanguageConfiguration(t){return this._languageConfigurationService.getLanguageConfiguration(t)}static _findLanguageBoundaries(t,i){const e=t.getLanguageId(i);let s=0;for(let n=i;n>=0&&t.getLanguageId(n)===e;n--)s=t.getStartOffset(n);let n=t.getLineContent().length;for(let s=i,o=t.getCount();s{const i=this.getLanguageId();-1!==t.changedLanguages.indexOf(i)&&this.resetTokenization()}))),this.resetTokenization(),this._register(s.onDidChangeVisibleRanges((({view:t,state:i})=>{if(i){let e=this._attachedViewStates.get(t);e||(e=new JM((()=>this.refreshRanges(e.lineRanges))),this._attachedViewStates.set(t,e)),e.handleStateChange(i)}else this._attachedViewStates.deleteAndDispose(t)})))}resetTokenization(t=!0){var i;this._tokens.flush(),null===(i=this._debugBackgroundTokens)||void 0===i||i.flush(),this._debugBackgroundStates&&(this._debugBackgroundStates=new PM(this._textModel.getLineCount())),t&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]});const[e,s]=(()=>{if(this._textModel.isTooLargeForTokenization())return[null,null];const t=Zs.get(this.getLanguageId());if(!t)return[null,null];let i;try{i=t.getInitialState()}catch(t){return Bi(t),[null,null]}return[t,i]})();if(this._tokenizer=e&&s?new BM(this._textModel.getLineCount(),e,this._textModel,this._languageIdCodec):null,this._backgroundTokenizer.clear(),this._defaultBackgroundTokenizer=null,this._tokenizer){const t={setTokens:t=>{this.setTokens(t)},backgroundTokenizationFinished:()=>{2!==this._backgroundTokenizationState&&(this._backgroundTokenizationState=2,this._onDidChangeBackgroundTokenizationState.fire())},setEndState:(t,i)=>{var e;if(!this._tokenizer)return;const s=this._tokenizer.store.getFirstInvalidEndStateLineNumber();null!==s&&t>=s&&(null===(e=this._tokenizer)||void 0===e||e.store.setEndState(t,i))}};e&&e.createBackgroundTokenizer&&!e.backgroundTokenizerShouldOnlyVerifyTokens&&(this._backgroundTokenizer.value=e.createBackgroundTokenizer(this._textModel,t)),this._backgroundTokenizer.value||(this._backgroundTokenizer.value=this._defaultBackgroundTokenizer=new zM(this._tokenizer,t),this._defaultBackgroundTokenizer.handleChanges()),(null==e?void 0:e.backgroundTokenizerShouldOnlyVerifyTokens)&&e.createBackgroundTokenizer?(this._debugBackgroundTokens=new qM(this._languageIdCodec),this._debugBackgroundStates=new PM(this._textModel.getLineCount()),this._debugBackgroundTokenizer.clear(),this._debugBackgroundTokenizer.value=e.createBackgroundTokenizer(this._textModel,{setTokens:t=>{var i;null===(i=this._debugBackgroundTokens)||void 0===i||i.setMultilineTokens(t,this._textModel)},backgroundTokenizationFinished(){},setEndState:(t,i)=>{var e;null===(e=this._debugBackgroundStates)||void 0===e||e.setEndState(t,i)}})):(this._debugBackgroundTokens=void 0,this._debugBackgroundStates=void 0,this._debugBackgroundTokenizer.value=void 0)}this.refreshAllVisibleLineTokens()}handleDidChangeAttached(){var t;null===(t=this._defaultBackgroundTokenizer)||void 0===t||t.handleChanges()}handleDidChangeContent(t){var i,e,s;if(t.isFlush)this.resetTokenization(!1);else if(!t.isEolChange){for(const e of t.changes){const[t,s]=KD(e.text);this._tokens.acceptEdit(e.range,t,s),null===(i=this._debugBackgroundTokens)||void 0===i||i.acceptEdit(e.range,t,s)}null===(e=this._debugBackgroundStates)||void 0===e||e.acceptChanges(t.changes),this._tokenizer&&this._tokenizer.store.acceptChanges(t.changes),null===(s=this._defaultBackgroundTokenizer)||void 0===s||s.handleChanges()}}setTokens(t){const{changes:i}=this._tokens.setMultilineTokens(t,this._textModel);return i.length>0&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:i}),{changes:i}}refreshAllVisibleLineTokens(){const t=fp.joinMany([...this._attachedViewStates].map((([t,i])=>i.lineRanges)));this.refreshRanges(t)}refreshRanges(t){for(const i of t)this.refreshRange(i.startLineNumber,i.endLineNumberExclusive-1)}refreshRange(t,i){var e,s;if(!this._tokenizer)return;t=Math.max(1,Math.min(this._textModel.getLineCount(),t)),i=Math.min(this._textModel.getLineCount(),i);const n=new _M,{heuristicTokens:o}=this._tokenizer.tokenizeHeuristically(n,t,i),r=this.setTokens(n.finalize());if(o)for(const t of r.changes)null===(e=this._backgroundTokenizer.value)||void 0===e||e.requestTokens(t.fromLineNumber,t.toLineNumber+1);null===(s=this._defaultBackgroundTokenizer)||void 0===s||s.checkFinished()}forceTokenization(t){var i,e;const s=new _M;null===(i=this._tokenizer)||void 0===i||i.updateTokensUntilLine(s,t),this.setTokens(s.finalize()),null===(e=this._defaultBackgroundTokenizer)||void 0===e||e.checkFinished()}isCheapToTokenize(t){return!this._tokenizer||this._tokenizer.isCheapToTokenize(t)}tokenizeIfCheap(t){this.isCheapToTokenize(t)&&this.forceTokenization(t)}getLineTokens(t){var i;const e=this._textModel.getLineContent(t),s=this._tokens.getTokens(this._textModel.getLanguageId(),t-1,e);if(this._debugBackgroundTokens&&this._debugBackgroundStates&&this._tokenizer&&this._debugBackgroundStates.getFirstInvalidEndStateLineNumberOrMax()>t&&this._tokenizer.store.getFirstInvalidEndStateLineNumberOrMax()>t){const n=this._debugBackgroundTokens.getTokens(this._textModel.getLanguageId(),t-1,e);!s.equals(n)&&(null===(i=this._debugBackgroundTokenizer.value)||void 0===i?void 0:i.reportMismatchingTokens)&&this._debugBackgroundTokenizer.value.reportMismatchingTokens(t)}return s}getTokenTypeIfInsertingCharacter(t,i,e){if(!this._tokenizer)return 0;const s=this._textModel.validatePosition(new As(t,i));return this.forceTokenization(s.lineNumber),this._tokenizer.getTokenTypeIfInsertingCharacter(s,e)}tokenizeLineWithEdit(t,i,e){if(!this._tokenizer)return null;const s=this._textModel.validatePosition(t);return this.forceTokenization(s.lineNumber),this._tokenizer.tokenizeLineWithEdit(s,i,e)}get hasTokens(){return this._tokens.hasTokens}}class JM extends te{get lineRanges(){return this._lineRanges}constructor(t){super(),this._refreshTokens=t,this.runner=this._register(new pc((()=>this.update()),50)),this._computedLineRanges=[],this._lineRanges=[]}update(){l(this._computedLineRanges,this._lineRanges,((t,i)=>t.equals(i)))||(this._computedLineRanges=this._lineRanges,this._refreshTokens())}handleStateChange(t){this._lineRanges=t.visibleLineRanges,t.stabilized?(this.runner.cancel(),this.update()):this.runner.schedule()}}class YM{constructor(){this.changeType=1}}class XM{static applyInjectedText(t,i){if(!i||0===i.length)return t;let e="",s=0;for(const n of i)e+=t.substring(s,n.column-1),s=n.column-1,e+=n.options.content;return e+=t.substring(s),e}static fromDecorations(t){const i=[];for(const e of t)e.options.before&&e.options.before.content.length>0&&i.push(new XM(e.ownerId,e.range.startLineNumber,e.range.startColumn,e.options.before,0)),e.options.after&&e.options.after.content.length>0&&i.push(new XM(e.ownerId,e.range.endLineNumber,e.range.endColumn,e.options.after,1));return i.sort(((t,i)=>t.lineNumber===i.lineNumber?t.column===i.column?t.order-i.order:t.column-i.column:t.lineNumber-i.lineNumber)),i}constructor(t,i,e,s,n){this.ownerId=t,this.lineNumber=i,this.column=e,this.options=s,this.order=n}}class tL{constructor(t,i,e){this.changeType=2,this.lineNumber=t,this.detail=i,this.injectedText=e}}class iL{constructor(t,i){this.changeType=3,this.fromLineNumber=t,this.toLineNumber=i}}class eL{constructor(t,i,e,s){this.changeType=4,this.injectedTexts=s,this.fromLineNumber=t,this.toLineNumber=i,this.detail=e}}class sL{constructor(){this.changeType=5}}class nL{constructor(t,i,e,s){this.changes=t,this.versionId=i,this.isUndoing=e,this.isRedoing=s,this.resultingSelection=null}containsEvent(t){for(let i=0,e=this.changes.length;i0&&(t[i++]=s,e+=s.length),e>=65536)return t.join("")}}}const mL=()=>{throw new Error("Invalid change accessor")};let wL=uL=class extends te{static resolveOptions(t,i){if(i.detectIndentation){const e=PA(t,i.tabSize,i.insertSpaces);return new jf({tabSize:e.tabSize,indentSize:"tabSize",insertSpaces:e.insertSpaces,trimAutoWhitespace:i.trimAutoWhitespace,defaultEOL:i.defaultEOL,bracketPairColorizationOptions:i.bracketPairColorizationOptions})}return new jf(i)}get onDidChangeLanguage(){return this._tokenizationTextModelPart.onDidChangeLanguage}get onDidChangeLanguageConfiguration(){return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration}get onDidChangeTokens(){return this._tokenizationTextModelPart.onDidChangeTokens}onDidChangeContent(t){return this._eventEmitter.slowEvent((i=>t(i.contentChangedEvent)))}onDidChangeContentOrInjectedText(t){return Ji(this._eventEmitter.fastEvent((i=>t(i))),this._onDidChangeInjectedText.event((i=>t(i))))}_isDisposing(){return this.__isDisposing}get tokenization(){return this._tokenizationTextModelPart}get bracketPairs(){return this._bracketPairs}get guides(){return this._guidesTextModelPart}constructor(t,i,e,s=null,n,o,r){super(),this._undoRedoService=n,this._languageService=o,this._languageConfigurationService=r,this._onWillDispose=this._register(new de),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new FL((t=>this.handleBeforeFireDecorationsChangedEvent(t)))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeOptions=this._register(new de),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new de),this.onDidChangeAttached=this._onDidChangeAttached.event,this._onDidChangeInjectedText=this._register(new de),this._eventEmitter=this._register(new TL),this._languageSelectionListener=this._register(new ie),this._deltaDecorationCallCnt=0,this._attachedViews=new RL,pL++,this.id="$model"+pL,this.isForSimpleWidget=e.isForSimpleWidget,this._associatedResource=null==s?ms.parse("inmemory://model/"+pL):s,this._attachedEditorCount=0;const{textBuffer:h,disposable:c}=fL(t,e.defaultEOL);this._buffer=h,this._bufferDisposable=c,this._options=uL.resolveOptions(this._buffer,e);const a="string"==typeof i?i:i.languageId;"string"!=typeof i&&(this._languageSelectionListener.value=i.onDidChange((()=>this._setLanguage(i.languageId)))),this._bracketPairs=this._register(new tA(this,this._languageConfigurationService)),this._guidesTextModelPart=this._register(new _S(this,this._languageConfigurationService)),this._decorationProvider=this._register(new nA(this)),this._tokenizationTextModelPart=new ZM(this._languageService,this._languageConfigurationService,this,this._bracketPairs,a,this._attachedViews);const l=this._buffer.getLineCount(),u=this._buffer.getValueLengthInRange(new Ms(1,1,l,this._buffer.getLineLength(l)+1),0);e.largeFileOptimizations?(this._isTooLargeForTokenization=u>uL.LARGE_FILE_SIZE_THRESHOLD||l>uL.LARGE_FILE_LINE_COUNT_THRESHOLD,this._isTooLargeForHeapOperation=u>uL.LARGE_FILE_HEAP_OPERATION_THRESHOLD):(this._isTooLargeForTokenization=!1,this._isTooLargeForHeapOperation=!1),this._isTooLargeForSyncing=u>uL._MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this.__isDisposing=!1,this._instanceId=Oo(pL),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new yL,this._commandManager=new _A(this,this._undoRedoService),this._isUndoing=!1,this._isRedoing=!1,this._trimAutoWhitespaceLines=null,this._register(this._decorationProvider.onDidChange((()=>{this._onDidChangeDecorations.beginDeferredEmit(),this._onDidChangeDecorations.fire(),this._onDidChangeDecorations.endDeferredEmit()}))),this._languageService.requestRichLanguageFeatures(a)}dispose(){this.__isDisposing=!0,this._onWillDispose.fire(),this._tokenizationTextModelPart.dispose(),this._isDisposed=!0,super.dispose(),this._bufferDisposable.dispose(),this.__isDisposing=!1;const t=new FM([],"","\n",!1,!1,!0,!0);t.dispose(),this._buffer=t,this._bufferDisposable=te.None}_assertNotDisposed(){if(this._isDisposed)throw new Error("Model is disposed!")}_emitContentChangedEvent(t,i){this.__isDisposing||(this._tokenizationTextModelPart.handleDidChangeContent(i),this._bracketPairs.handleDidChangeContent(i),this._eventEmitter.fire(new rL(t,i)))}setValue(t){if(this._assertNotDisposed(),null==t)throw Hi();const{textBuffer:i,disposable:e}=fL(t,this._options.defaultEOL);this._setValueFromTextBuffer(i,e)}_createContentChanged2(t,i,e,s,n,o,r,h){return{changes:[{range:t,rangeOffset:i,rangeLength:e,text:s}],eol:this._buffer.getEOL(),isEolChange:h,versionId:this.getVersionId(),isUndoing:n,isRedoing:o,isFlush:r}}_setValueFromTextBuffer(t,i){this._assertNotDisposed();const e=this.getFullModelRange(),s=this.getValueLengthInRange(e),n=this.getLineCount(),o=this.getLineMaxColumn(n);this._buffer=t,this._bufferDisposable.dispose(),this._bufferDisposable=i,this._increaseVersionId(),this._decorations=Object.create(null),this._decorationsTree=new yL,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new nL([new YM],this._versionId,!1,!1),this._createContentChanged2(new Ms(1,1,n,o),0,s,this.getValue(),!1,!1,!0,!1))}setEOL(t){this._assertNotDisposed();const i=1===t?"\r\n":"\n";if(this._buffer.getEOL()===i)return;const e=this.getFullModelRange(),s=this.getValueLengthInRange(e),n=this.getLineCount(),o=this.getLineMaxColumn(n);this._onBeforeEOLChange(),this._buffer.setEOL(i),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new nL([new sL],this._versionId,!1,!1),this._createContentChanged2(new Ms(1,1,n,o),0,s,this.getValue(),!1,!1,!1,!0))}_onBeforeEOLChange(){this._decorationsTree.ensureAllNodesHaveRanges(this)}_onAfterEOLChange(){const t=this.getVersionId(),i=this._decorationsTree.collectNodesPostOrder();for(let e=0,s=i.length;e0}getAttachedEditorCount(){return this._attachedEditorCount}isTooLargeForSyncing(){return this._isTooLargeForSyncing}isTooLargeForTokenization(){return this._isTooLargeForTokenization}isTooLargeForHeapOperation(){return this._isTooLargeForHeapOperation}isDisposed(){return this._isDisposed}isDominatedByLongLines(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;let t=0,i=0;const e=this._buffer.getLineCount();for(let s=1;s<=e;s++){const e=this._buffer.getLineLength(s);e>=1e4?i+=e:t+=e}return i>t}get uri(){return this._associatedResource}getOptions(){return this._assertNotDisposed(),this._options}getFormattingOptions(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}}updateOptions(t){this._assertNotDisposed();const i=new jf({tabSize:void 0!==t.tabSize?t.tabSize:this._options.tabSize,indentSize:void 0!==t.indentSize?t.indentSize:this._options.originalIndentSize,insertSpaces:void 0!==t.insertSpaces?t.insertSpaces:this._options.insertSpaces,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:void 0!==t.trimAutoWhitespace?t.trimAutoWhitespace:this._options.trimAutoWhitespace,bracketPairColorizationOptions:void 0!==t.bracketColorizationOptions?t.bracketColorizationOptions:this._options.bracketPairColorizationOptions});if(this._options.equals(i))return;const e=this._options.createChangeEvent(i);this._options=i,this._bracketPairs.handleDidChangeOptions(e),this._decorationProvider.handleDidChangeOptions(e),this._onDidChangeOptions.fire(e)}detectIndentation(t,i){this._assertNotDisposed();const e=PA(this._buffer,i,t);this.updateOptions({insertSpaces:e.insertSpaces,tabSize:e.tabSize,indentSize:e.tabSize})}normalizeIndentation(t){return this._assertNotDisposed(),lC(t,this._options.indentSize,this._options.insertSpaces)}getVersionId(){return this._assertNotDisposed(),this._versionId}mightContainRTL(){return this._buffer.mightContainRTL()}mightContainUnusualLineTerminators(){return this._buffer.mightContainUnusualLineTerminators()}removeUnusualLineTerminators(t=null){const i=this.findMatches(Ao.source,!1,!0,!1,null,!1,1073741824);this._buffer.resetMightContainUnusualLineTerminators(),this.pushEditOperations(t,i.map((t=>({range:t.range,text:null}))),(()=>null))}mightContainNonBasicASCII(){return this._buffer.mightContainNonBasicASCII()}getAlternativeVersionId(){return this._assertNotDisposed(),this._alternativeVersionId}getInitialUndoRedoSnapshot(){return this._assertNotDisposed(),this._initialUndoRedoSnapshot}getOffsetAt(t){this._assertNotDisposed();const i=this._validatePosition(t.lineNumber,t.column,0);return this._buffer.getOffsetAt(i.lineNumber,i.column)}getPositionAt(t){this._assertNotDisposed();const i=Math.min(this._buffer.getLength(),Math.max(0,t));return this._buffer.getPositionAt(i)}_increaseVersionId(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId}_overwriteVersionId(t){this._versionId=t}_overwriteAlternativeVersionId(t){this._alternativeVersionId=t}_overwriteInitialUndoRedoSnapshot(t){this._initialUndoRedoSnapshot=t}getValue(t,i=!1){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new Ki("Operation would exceed heap memory limits");const e=this.getFullModelRange(),s=this.getValueInRange(e,t);return i?this._buffer.getBOM()+s:s}createSnapshot(t=!1){return new gL(this._buffer.createSnapshot(t))}getValueLength(t,i=!1){this._assertNotDisposed();const e=this.getFullModelRange(),s=this.getValueLengthInRange(e,t);return i?this._buffer.getBOM().length+s:s}getValueInRange(t,i=0){return this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(t),i)}getValueLengthInRange(t,i=0){return this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(t),i)}getCharacterCountInRange(t,i=0){return this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(t),i)}getLineCount(){return this._assertNotDisposed(),this._buffer.getLineCount()}getLineContent(t){if(this._assertNotDisposed(),t<1||t>this.getLineCount())throw new Ki("Illegal value for lineNumber");return this._buffer.getLineContent(t)}getLineLength(t){if(this._assertNotDisposed(),t<1||t>this.getLineCount())throw new Ki("Illegal value for lineNumber");return this._buffer.getLineLength(t)}getLinesContent(){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new Ki("Operation would exceed heap memory limits");return this._buffer.getLinesContent()}getEOL(){return this._assertNotDisposed(),this._buffer.getEOL()}getEndOfLineSequence(){return this._assertNotDisposed(),"\n"===this._buffer.getEOL()?0:1}getLineMinColumn(t){return this._assertNotDisposed(),1}getLineMaxColumn(t){if(this._assertNotDisposed(),t<1||t>this.getLineCount())throw new Ki("Illegal value for lineNumber");return this._buffer.getLineLength(t)+1}getLineFirstNonWhitespaceColumn(t){if(this._assertNotDisposed(),t<1||t>this.getLineCount())throw new Ki("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(t)}getLineLastNonWhitespaceColumn(t){if(this._assertNotDisposed(),t<1||t>this.getLineCount())throw new Ki("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(t)}_validateRangeRelaxedNoAllocations(t){const i=this._buffer.getLineCount(),e=t.startLineNumber,s=t.startColumn;let n=Math.floor("number"!=typeof e||isNaN(e)?1:e),o=Math.floor("number"!=typeof s||isNaN(s)?1:s);if(n<1)n=1,o=1;else if(n>i)n=i,o=this.getLineMaxColumn(n);else if(o<=1)o=1;else{const t=this.getLineMaxColumn(n);o>=t&&(o=t)}const r=t.endLineNumber,h=t.endColumn;let c=Math.floor("number"!=typeof r||isNaN(r)?1:r),a=Math.floor("number"!=typeof h||isNaN(h)?1:h);if(c<1)c=1,a=1;else if(c>i)c=i,a=this.getLineMaxColumn(c);else if(a<=1)a=1;else{const t=this.getLineMaxColumn(c);a>=t&&(a=t)}return e===n&&s===o&&r===c&&h===a&&t instanceof Ms&&!(t instanceof Ls)?t:new Ms(n,o,c,a)}_isValidPosition(t,i,e){return"number"==typeof t&&"number"==typeof i&&(!isNaN(t)&&!isNaN(i)&&(!(t<1||i<1)&&((0|t)===t&&(0|i)===i&&(!(t>this._buffer.getLineCount())&&(1===i||!(i>this.getLineMaxColumn(t))&&(1!==e||!go(this._buffer.getLineCharCode(t,i-2))))))))}_validatePosition(t,i,e){const s=Math.floor("number"!=typeof t||isNaN(t)?1:t),n=Math.floor("number"!=typeof i||isNaN(i)?1:i),o=this._buffer.getLineCount();if(s<1)return new As(1,1);if(s>o)return new As(o,this.getLineMaxColumn(o));if(n<=1)return new As(s,1);const r=this.getLineMaxColumn(s);return n>=r?new As(s,r):1===e&&go(this._buffer.getLineCharCode(s,n-2))?new As(s,n-1):new As(s,n)}validatePosition(t){return this._assertNotDisposed(),t instanceof As&&this._isValidPosition(t.lineNumber,t.column,1)?t:this._validatePosition(t.lineNumber,t.column,1)}_isValidRange(t,i){const e=t.startLineNumber,s=t.startColumn,n=t.endLineNumber,o=t.endColumn;if(!this._isValidPosition(e,s,0))return!1;if(!this._isValidPosition(n,o,0))return!1;if(1===i){const t=s>1?this._buffer.getLineCharCode(e,s-2):0,i=o>1&&o<=this._buffer.getLineLength(n)?this._buffer.getLineCharCode(n,o-2):0,r=go(t),h=go(i);return!r&&!h}return!0}validateRange(t){if(this._assertNotDisposed(),t instanceof Ms&&!(t instanceof Ls)&&this._isValidRange(t,1))return t;const i=this._validatePosition(t.startLineNumber,t.startColumn,0),e=this._validatePosition(t.endLineNumber,t.endColumn,0),s=i.lineNumber,n=i.column,o=e.lineNumber,r=e.column;{const t=n>1?this._buffer.getLineCharCode(s,n-2):0,i=r>1&&r<=this._buffer.getLineLength(o)?this._buffer.getLineCharCode(o,r-2):0,e=go(t),h=go(i);return e||h?s===o&&n===r?new Ms(s,n-1,o,r-1):e&&h?new Ms(s,n-1,o,r+1):e?new Ms(s,n-1,o,r):new Ms(s,n,o,r+1):new Ms(s,n,o,r)}}modifyPosition(t,i){this._assertNotDisposed();const e=this.getOffsetAt(t)+i;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,e)))}getFullModelRange(){this._assertNotDisposed();const t=this.getLineCount();return new Ms(1,1,t,this.getLineMaxColumn(t))}findMatchesLineByLine(t,i,e,s){return this._buffer.findMatchesLineByLine(t,i,e,s)}findMatches(t,i,e,s,n,o,r=999){this._assertNotDisposed();let h=null;null!==i&&(Array.isArray(i)||(i=[i]),i.every((t=>Ms.isIRange(t)))&&(h=i.map((t=>this.validateRange(t))))),null===h&&(h=[this.getFullModelRange()]),h=h.sort(((t,i)=>t.startLineNumber-i.startLineNumber||t.startColumn-i.startColumn));const c=[];let a;if(c.push(h.reduce(((t,i)=>Ms.areIntersecting(t,i)?t.plusRange(i):(c.push(t),i)))),!e&&t.indexOf("\n")<0){const i=new Kf(t,e,s,n).parseSearchRequest();if(!i)return[];a=t=>this.findMatchesLineByLine(t,i,o,r)}else a=i=>Qf.findMatches(this,new Kf(t,e,s,n),i,o,r);return c.map(a).reduce(((t,i)=>t.concat(i)),[])}findNextMatch(t,i,e,s,n,o){this._assertNotDisposed();const r=this.validatePosition(i);if(!e&&t.indexOf("\n")<0){const i=new Kf(t,e,s,n).parseSearchRequest();if(!i)return null;const h=this.getLineCount();let c=new Ms(r.lineNumber,r.column,h,this.getLineMaxColumn(h)),a=this.findMatchesLineByLine(c,i,o,1);return Qf.findNextMatch(this,new Kf(t,e,s,n),r,o),a.length>0?a[0]:(c=new Ms(1,1,r.lineNumber,this.getLineMaxColumn(r.lineNumber)),a=this.findMatchesLineByLine(c,i,o,1),a.length>0?a[0]:null)}return Qf.findNextMatch(this,new Kf(t,e,s,n),r,o)}findPreviousMatch(t,i,e,s,n,o){this._assertNotDisposed();const r=this.validatePosition(i);return Qf.findPreviousMatch(this,new Kf(t,e,s,n),r,o)}pushStackElement(){this._commandManager.pushStackElement()}popStackElement(){this._commandManager.popStackElement()}pushEOL(t){if(("\n"===this.getEOL()?0:1)!==t)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),null===this._initialUndoRedoSnapshot&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEOL(t)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_validateEditOperation(t){return t instanceof Hf?t:new Hf(t.identifier||null,this.validateRange(t.range),t.text,t.forceMoveMarkers||!1,t.isAutoWhitespaceEdit||!1,t._isTracked||!1)}_validateEditOperations(t){const i=[];for(let e=0,s=t.length;e({range:this.validateRange(t.range),text:t.text})));let s=!0;if(t)for(let i=0,n=t.length;in.endLineNumber||n.startLineNumber>i.endLineNumber)){o=!0;break}}if(!o){s=!1;break}}if(s)for(let t=0,s=this._trimAutoWhitespaceLines.length;ti.endLineNumber||s===i.startLineNumber&&i.startColumn===n&&i.isEmpty()&&r&&r.length>0&&"\n"===r.charAt(0)||s===i.startLineNumber&&1===i.startColumn&&i.isEmpty()&&r&&r.length>0&&"\n"===r.charAt(r.length-1))){o=!1;break}}if(o){const t=new Ms(s,1,s,n);i.push(new Hf(null,t,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return null===this._initialUndoRedoSnapshot&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(t,i,e,s)}_applyUndo(t,i,e,s){const n=t.map((t=>{const i=this.getPositionAt(t.newPosition),e=this.getPositionAt(t.newEnd);return{range:new Ms(i.lineNumber,i.column,e.lineNumber,e.column),text:t.oldText}}));this._applyUndoRedoEdits(n,i,!0,!1,e,s)}_applyRedo(t,i,e,s){const n=t.map((t=>{const i=this.getPositionAt(t.oldPosition),e=this.getPositionAt(t.oldEnd);return{range:new Ms(i.lineNumber,i.column,e.lineNumber,e.column),text:t.newText}}));this._applyUndoRedoEdits(n,i,!1,!0,e,s)}_applyUndoRedoEdits(t,i,e,s,n,o){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=e,this._isRedoing=s,this.applyEdits(t,!1),this.setEOL(i),this._overwriteAlternativeVersionId(n)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(o),this._onDidChangeDecorations.endDeferredEmit()}}applyEdits(t,i=!1){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit();const e=this._validateEditOperations(t);return this._doApplyEdits(e,i)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_doApplyEdits(t,i){const e=this._buffer.getLineCount(),s=this._buffer.applyEdits(t,this._options.trimAutoWhitespace,i),n=this._buffer.getLineCount(),o=s.changes;if(this._trimAutoWhitespaceLines=s.trimAutoWhitespaceLineNumbers,0!==o.length){for(let t=0,i=o.length;t=0;i--){const e=h+i,s=f+i;w.takeFromEndWhile((t=>t.lineNumber>s));const n=w.takeFromEndWhile((t=>t.lineNumber===s));t.push(new tL(e,this.getLineContent(s),n))}if(ut.lineNumbert.lineNumber===i))}t.push(new eL(s+1,h+l,a,c))}i+=d}this._emitContentChangedEvent(new nL(t,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:o,eol:this._buffer.getEOL(),isEolChange:!1,versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return null===s.reverseEdits?void 0:s.reverseEdits}undo(){return this._undoRedoService.undo(this.uri)}canUndo(){return this._undoRedoService.canUndo(this.uri)}redo(){return this._undoRedoService.redo(this.uri)}canRedo(){return this._undoRedoService.canRedo(this.uri)}handleBeforeFireDecorationsChangedEvent(t){if(null===t||0===t.size)return;const i=Array.from(t).map((t=>new tL(t,this.getLineContent(t),this._getInjectedTextInLine(t))));this._onDidChangeInjectedText.fire(new oL(i))}changeDecorations(t,i=0){this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations(i,t)}finally{this._onDidChangeDecorations.endDeferredEmit()}}_changeDecorations(t,i){const e={addDecoration:(i,e)=>this._deltaDecorationsImpl(t,[],[{range:i,options:e}])[0],changeDecoration:(t,i)=>{this._changeDecorationImpl(t,i)},changeDecorationOptions:(t,i)=>{this._changeDecorationOptionsImpl(t,LL(i))},removeDecoration:i=>{this._deltaDecorationsImpl(t,[i],[])},deltaDecorations:(i,e)=>0===i.length&&0===e.length?[]:this._deltaDecorationsImpl(t,i,e)};let s=null;try{s=i(e)}catch(t){Bi(t)}return e.addDecoration=mL,e.changeDecoration=mL,e.changeDecorationOptions=mL,e.removeDecoration=mL,e.deltaDecorations=mL,s}deltaDecorations(t,i,e=0){if(this._assertNotDisposed(),t||(t=[]),0===t.length&&0===i.length)return[];try{return this._deltaDecorationCallCnt++,this._deltaDecorationCallCnt>1&&(console.warn("Invoking deltaDecorations recursively could lead to leaking decorations."),Bi(new Error("Invoking deltaDecorations recursively could lead to leaking decorations."))),this._onDidChangeDecorations.beginDeferredEmit(),this._deltaDecorationsImpl(e,t,i)}finally{this._onDidChangeDecorations.endDeferredEmit(),this._deltaDecorationCallCnt--}}_getTrackedRange(t){return this.getDecorationRange(t)}_setTrackedRange(t,i,e){const s=t?this._decorations[t]:null;if(!s)return i?this._deltaDecorationsImpl(0,[],[{range:i,options:ML[e]}],!0)[0]:null;if(!i)return this._decorationsTree.delete(s),delete this._decorations[s.id],null;const n=this._validateRangeRelaxedNoAllocations(i),o=this._buffer.getOffsetAt(n.startLineNumber,n.startColumn),r=this._buffer.getOffsetAt(n.endLineNumber,n.endColumn);return this._decorationsTree.delete(s),s.reset(this.getVersionId(),o,r,n),s.setOptions(ML[e]),this._decorationsTree.insert(s),s.id}removeAllDecorationsWithOwnerId(t){if(this._isDisposed)return;const i=this._decorationsTree.collectNodesFromOwner(t);for(let t=0,e=i.length;tthis.getLineCount()?[]:this.getLinesDecorations(t,t,i,e)}getLinesDecorations(t,i,e=0,s=!1,n=!1){const o=this.getLineCount(),r=Math.min(o,Math.max(1,t)),h=Math.min(o,Math.max(1,i)),c=this.getLineMaxColumn(h),a=new Ms(r,1,h,c),l=this._getDecorationsInRange(a,e,s,n);return E(l,this._decorationProvider.getDecorationsInRange(a,e,s)),l}getDecorationsInRange(t,i=0,e=!1,s=!1,n=!1){const o=this.validateRange(t),r=this._getDecorationsInRange(o,i,e,n);return E(r,this._decorationProvider.getDecorationsInRange(o,i,e,s)),r}getOverviewRulerDecorations(t=0,i=!1){return this._decorationsTree.getAll(this,t,i,!0,!1)}getInjectedTextDecorations(t=0){return this._decorationsTree.getAllInjectedText(this,t)}_getInjectedTextInLine(t){const i=this._buffer.getOffsetAt(t,1),e=i+this._buffer.getLineLength(t),s=this._decorationsTree.getInjectedTextInInterval(this,i,e,0);return XM.fromDecorations(s).filter((i=>i.lineNumber===t))}getAllDecorations(t=0,i=!1){let e=this._decorationsTree.getAll(this,t,i,!1,!1);return e=e.concat(this._decorationProvider.getAllDecorations(t,i)),e}getAllMarginDecorations(t=0){return this._decorationsTree.getAll(this,t,!1,!1,!0)}_getDecorationsInRange(t,i,e,s){const n=this._buffer.getOffsetAt(t.startLineNumber,t.startColumn),o=this._buffer.getOffsetAt(t.endLineNumber,t.endColumn);return this._decorationsTree.getAllInInterval(this,n,o,i,e,s)}getRangeAt(t,i){return this._buffer.getRangeAt(t,i-t)}_changeDecorationImpl(t,i){const e=this._decorations[t];if(!e)return;if(e.options.after){const i=this.getDecorationRange(t);this._onDidChangeDecorations.recordLineAffectedByInjectedText(i.endLineNumber)}if(e.options.before){const i=this.getDecorationRange(t);this._onDidChangeDecorations.recordLineAffectedByInjectedText(i.startLineNumber)}const s=this._validateRangeRelaxedNoAllocations(i),n=this._buffer.getOffsetAt(s.startLineNumber,s.startColumn),o=this._buffer.getOffsetAt(s.endLineNumber,s.endColumn);this._decorationsTree.delete(e),e.reset(this.getVersionId(),n,o,s),this._decorationsTree.insert(e),this._onDidChangeDecorations.checkAffectedAndFire(e.options),e.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.endLineNumber),e.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.startLineNumber)}_changeDecorationOptionsImpl(t,i){const e=this._decorations[t];if(!e)return;const s=!(!e.options.overviewRuler||!e.options.overviewRuler.color),n=!(!i.overviewRuler||!i.overviewRuler.color);if(this._onDidChangeDecorations.checkAffectedAndFire(e.options),this._onDidChangeDecorations.checkAffectedAndFire(i),e.options.after||i.after){const t=this._decorationsTree.getNodeRange(this,e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(t.endLineNumber)}if(e.options.before||i.before){const t=this._decorationsTree.getNodeRange(this,e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(t.startLineNumber)}s!==n?(this._decorationsTree.delete(e),e.setOptions(i),this._decorationsTree.insert(e)):e.setOptions(i)}_deltaDecorationsImpl(t,i,e,s=!1){const n=this.getVersionId(),o=i.length;let r=0;const h=e.length;let c=0;this._onDidChangeDecorations.beginDeferredEmit();try{const a=new Array(h);for(;rthis._setLanguage(t.languageId,i))),this._setLanguage(t.languageId,i))}_setLanguage(t,i){this.tokenization.setLanguageId(t,i),this._languageService.requestRichLanguageFeatures(t)}getLanguageIdAtPosition(t,i){return this.tokenization.getLanguageIdAtPosition(t,i)}getWordAtPosition(t){return this._tokenizationTextModelPart.getWordAtPosition(t)}getWordUntilPosition(t){return this._tokenizationTextModelPart.getWordUntilPosition(t)}normalizePosition(t,i){return t}getLineIndentColumn(t){return function(t){let i=0;for(const e of t){if(" "!==e&&"\t"!==e)break;i++}return i}(this.getLineContent(t))+1}};function vL(t){return!(!t.options.overviewRuler||!t.options.overviewRuler.color)}function bL(t){return!!t.options.after||!!t.options.before}wL._MODEL_SYNC_LIMIT=52428800,wL.LARGE_FILE_SIZE_THRESHOLD=20971520,wL.LARGE_FILE_LINE_COUNT_THRESHOLD=3e5,wL.LARGE_FILE_HEAP_OPERATION_THRESHOLD=268435456,wL.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:zt.tabSize,indentSize:zt.indentSize,insertSpaces:zt.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:zt.trimAutoWhitespace,largeFileOptimizations:zt.largeFileOptimizations,bracketPairColorizationOptions:zt.bracketPairColorizationOptions},wL=uL=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([dL(4,hL),dL(5,yd),dL(6,Xd)],wL);class yL{constructor(){this._decorationsTree0=new JA,this._decorationsTree1=new JA,this._injectedTextDecorationsTree=new JA}ensureAllNodesHaveRanges(t){this.getAll(t,0,!1,!1,!1)}_ensureNodesHaveRanges(t,i){for(const e of i)null===e.range&&(e.range=t.getRangeAt(e.cachedAbsoluteStart,e.cachedAbsoluteEnd));return i}getAllInInterval(t,i,e,s,n,o){const r=t.getVersionId(),h=this._intervalSearch(i,e,s,n,r,o);return this._ensureNodesHaveRanges(t,h)}_intervalSearch(t,i,e,s,n,o){const r=this._decorationsTree0.intervalSearch(t,i,e,s,n,o),h=this._decorationsTree1.intervalSearch(t,i,e,s,n,o),c=this._injectedTextDecorationsTree.intervalSearch(t,i,e,s,n,o);return r.concat(h).concat(c)}getInjectedTextInInterval(t,i,e,s){const n=t.getVersionId(),o=this._injectedTextDecorationsTree.intervalSearch(i,e,s,!1,n,!1);return this._ensureNodesHaveRanges(t,o).filter((t=>t.options.showIfCollapsed||!t.range.isEmpty()))}getAllInjectedText(t,i){const e=t.getVersionId(),s=this._injectedTextDecorationsTree.search(i,!1,e,!1);return this._ensureNodesHaveRanges(t,s).filter((t=>t.options.showIfCollapsed||!t.range.isEmpty()))}getAll(t,i,e,s,n){const o=t.getVersionId(),r=this._search(i,e,s,o,n);return this._ensureNodesHaveRanges(t,r)}_search(t,i,e,s,n){if(e)return this._decorationsTree1.search(t,i,s,n);{const e=this._decorationsTree0.search(t,i,s,n),o=this._decorationsTree1.search(t,i,s,n),r=this._injectedTextDecorationsTree.search(t,i,s,n);return e.concat(o).concat(r)}}collectNodesFromOwner(t){const i=this._decorationsTree0.collectNodesFromOwner(t),e=this._decorationsTree1.collectNodesFromOwner(t),s=this._injectedTextDecorationsTree.collectNodesFromOwner(t);return i.concat(e).concat(s)}collectNodesPostOrder(){const t=this._decorationsTree0.collectNodesPostOrder(),i=this._decorationsTree1.collectNodesPostOrder(),e=this._injectedTextDecorationsTree.collectNodesPostOrder();return t.concat(i).concat(e)}insert(t){bL(t)?this._injectedTextDecorationsTree.insert(t):vL(t)?this._decorationsTree1.insert(t):this._decorationsTree0.insert(t)}delete(t){bL(t)?this._injectedTextDecorationsTree.delete(t):vL(t)?this._decorationsTree1.delete(t):this._decorationsTree0.delete(t)}getNodeRange(t,i){const e=t.getVersionId();return i.cachedVersionId!==e&&this._resolveNode(i,e),null===i.range&&(i.range=t.getRangeAt(i.cachedAbsoluteStart,i.cachedAbsoluteEnd)),i.range}_resolveNode(t,i){bL(t)?this._injectedTextDecorationsTree.resolveNode(t,i):vL(t)?this._decorationsTree1.resolveNode(t,i):this._decorationsTree0.resolveNode(t,i)}acceptReplace(t,i,e,s){this._decorationsTree0.acceptReplace(t,i,e,s),this._decorationsTree1.acceptReplace(t,i,e,s),this._injectedTextDecorationsTree.acceptReplace(t,i,e,s)}}function kL(t){return t.replace(/[^a-z0-9\-_]/gi," ")}class xL{constructor(t){this.color=t.color||"",this.darkColor=t.darkColor||""}}class CL extends xL{constructor(t){super(t),this._resolvedColor=null,this.position="number"==typeof t.position?t.position:_f.Center}getColor(t){return this._resolvedColor||(this._resolvedColor=this._resolveColor("light"!==t.type&&this.darkColor?this.darkColor:this.color,t)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=null}_resolveColor(t,i){if("string"==typeof t)return t;const e=t?i.getColor(t.id):null;return e?e.toString():""}}class SL{constructor(t){var i;this.position=null!==(i=null==t?void 0:t.position)&&void 0!==i?i:Nf.Left}}class DL extends xL{constructor(t){super(t),this.position=t.position}getColor(t){return this._resolvedColor||(this._resolvedColor=this._resolveColor("light"!==t.type&&this.darkColor?this.darkColor:this.color,t)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=void 0}_resolveColor(t,i){return"string"==typeof t?lg.fromHex(t):i.getColor(t.id)}}class EL{static from(t){return t instanceof EL?t:new EL(t)}constructor(t){this.content=t.content||"",this.inlineClassName=t.inlineClassName||null,this.inlineClassNameAffectsLetterSpacing=t.inlineClassNameAffectsLetterSpacing||!1,this.attachedData=t.attachedData||null,this.cursorStops=t.cursorStops||null}}class AL{static register(t){return new AL(t)}static createDynamic(t){return new AL(t)}constructor(t){var i,e,s,n,o,r;this.description=t.description,this.blockClassName=t.blockClassName?kL(t.blockClassName):null,this.blockDoesNotCollapse=null!==(i=t.blockDoesNotCollapse)&&void 0!==i?i:null,this.blockIsAfterEnd=null!==(e=t.blockIsAfterEnd)&&void 0!==e?e:null,this.blockPadding=null!==(s=t.blockPadding)&&void 0!==s?s:null,this.stickiness=t.stickiness||0,this.zIndex=t.zIndex||0,this.className=t.className?kL(t.className):null,this.shouldFillLineOnLineBreak=null!==(n=t.shouldFillLineOnLineBreak)&&void 0!==n?n:null,this.hoverMessage=t.hoverMessage||null,this.glyphMarginHoverMessage=t.glyphMarginHoverMessage||null,this.isWholeLine=t.isWholeLine||!1,this.showIfCollapsed=t.showIfCollapsed||!1,this.collapseOnReplaceEdit=t.collapseOnReplaceEdit||!1,this.overviewRuler=t.overviewRuler?new CL(t.overviewRuler):null,this.minimap=t.minimap?new DL(t.minimap):null,this.glyphMargin=t.glyphMarginClassName?new SL(t.glyphMargin):null,this.glyphMarginClassName=t.glyphMarginClassName?kL(t.glyphMarginClassName):null,this.linesDecorationsClassName=t.linesDecorationsClassName?kL(t.linesDecorationsClassName):null,this.firstLineDecorationClassName=t.firstLineDecorationClassName?kL(t.firstLineDecorationClassName):null,this.marginClassName=t.marginClassName?kL(t.marginClassName):null,this.inlineClassName=t.inlineClassName?kL(t.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=t.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=t.beforeContentClassName?kL(t.beforeContentClassName):null,this.afterContentClassName=t.afterContentClassName?kL(t.afterContentClassName):null,this.after=t.after?EL.from(t.after):null,this.before=t.before?EL.from(t.before):null,this.hideInCommentTokens=null!==(o=t.hideInCommentTokens)&&void 0!==o&&o,this.hideInStringTokens=null!==(r=t.hideInStringTokens)&&void 0!==r&&r}}AL.EMPTY=AL.register({description:"empty"});const ML=[AL.register({description:"tracked-range-always-grows-when-typing-at-edges",stickiness:0}),AL.register({description:"tracked-range-never-grows-when-typing-at-edges",stickiness:1}),AL.register({description:"tracked-range-grows-only-when-typing-before",stickiness:2}),AL.register({description:"tracked-range-grows-only-when-typing-after",stickiness:3})];function LL(t){return t instanceof AL?t:AL.createDynamic(t)}class FL extends te{constructor(t){super(),this.handleBeforeFire=t,this._actual=this._register(new de),this.event=this._actual.event,this._affectedInjectedTextLines=null,this._deferredCnt=0,this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){var t;this._deferredCnt--,0===this._deferredCnt&&(this._shouldFireDeferred&&this.doFire(),null===(t=this._affectedInjectedTextLines)||void 0===t||t.clear(),this._affectedInjectedTextLines=null)}recordLineAffectedByInjectedText(t){this._affectedInjectedTextLines||(this._affectedInjectedTextLines=new Set),this._affectedInjectedTextLines.add(t)}checkAffectedAndFire(t){this._affectsMinimap||(this._affectsMinimap=!(!t.minimap||!t.minimap.position)),this._affectsOverviewRuler||(this._affectsOverviewRuler=!(!t.overviewRuler||!t.overviewRuler.color)),this._affectsGlyphMargin||(this._affectsGlyphMargin=!!t.glyphMarginClassName),this.tryFire()}fire(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._affectsGlyphMargin=!0,this.tryFire()}tryFire(){0===this._deferredCnt?this.doFire():this._shouldFireDeferred=!0}doFire(){this.handleBeforeFire(this._affectedInjectedTextLines);const t={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler,affectsGlyphMargin:this._affectsGlyphMargin};this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._actual.fire(t)}}class TL extends te{constructor(){super(),this._fastEmitter=this._register(new de),this.fastEvent=this._fastEmitter.event,this._slowEmitter=this._register(new de),this.slowEvent=this._slowEmitter.event,this._deferredCnt=0,this._deferredEvent=null}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(t=null){if(this._deferredCnt--,0===this._deferredCnt&&null!==this._deferredEvent){this._deferredEvent.rawContentChangedEvent.resultingSelection=t;const i=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire(i),this._slowEmitter.fire(i)}}fire(t){this._deferredCnt>0?this._deferredEvent=this._deferredEvent?this._deferredEvent.merge(t):t:(this._fastEmitter.fire(t),this._slowEmitter.fire(t))}}class RL{constructor(){this._onDidChangeVisibleRanges=new de,this.onDidChangeVisibleRanges=this._onDidChangeVisibleRanges.event,this._views=new Set}attachView(){const t=new OL((i=>{this._onDidChangeVisibleRanges.fire({view:t,state:i})}));return this._views.add(t),t}detachView(t){this._views.delete(t),this._onDidChangeVisibleRanges.fire({view:t,state:void 0})}}class OL{constructor(t){this.handleStateChange=t}setVisibleLines(t,i){const e=t.map((t=>new fp(t.startLineNumber,t.endLineNumber+1)));this.handleStateChange({visibleLineRanges:e,stabilized:i})}}class IL{constructor(t){this._selTrackedRange=null,this._trackSelection=!0,this._setState(t,new vC(new Ms(1,1,1,1),0,0,new As(1,1),0),new vC(new Ms(1,1,1,1),0,0,new As(1,1),0))}dispose(t){this._removeTrackedRange(t)}startTrackingSelection(t){this._trackSelection=!0,this._updateTrackedRange(t)}stopTrackingSelection(t){this._trackSelection=!1,this._removeTrackedRange(t)}_updateTrackedRange(t){this._trackSelection&&(this._selTrackedRange=t.model._setTrackedRange(this._selTrackedRange,this.modelState.selection,0))}_removeTrackedRange(t){this._selTrackedRange=t.model._setTrackedRange(this._selTrackedRange,null,0)}asCursorState(){return new gC(this.modelState,this.viewState)}readSelectionFromMarkers(t){const i=t.model._getTrackedRange(this._selTrackedRange);return this.modelState.selection.isEmpty()&&!i.isEmpty()?Ls.fromRange(i.collapseToEnd(),this.modelState.selection.getDirection()):Ls.fromRange(i,this.modelState.selection.getDirection())}ensureValidState(t){this._setState(t,this.modelState,this.viewState)}setState(t,i,e){this._setState(t,i,e)}static _validatePositionWithCache(t,i,e,s){return i.equals(e)?s:t.normalizePosition(i,2)}static _validateViewState(t,i){const e=i.position,s=i.selectionStart.getStartPosition(),n=i.selectionStart.getEndPosition(),o=t.normalizePosition(e,2),r=this._validatePositionWithCache(t,s,e,o),h=this._validatePositionWithCache(t,n,s,r);return e.equals(o)&&s.equals(r)&&n.equals(h)?i:new vC(Ms.fromPositions(r,h),i.selectionStartKind,i.selectionStartLeftoverVisibleColumns+s.column-r.column,o,i.leftoverVisibleColumns+e.column-o.column)}_setState(t,i,e){if(e&&(e=IL._validateViewState(t.viewModel,e)),i){const e=t.model.validateRange(i.selectionStart),s=i.selectionStart.equalsRange(e)?i.selectionStartLeftoverVisibleColumns:0,n=t.model.validatePosition(i.position),o=i.position.equals(n)?i.leftoverVisibleColumns:0;i=new vC(e,i.selectionStartKind,s,n,o)}else{if(!e)return;const s=t.model.validateRange(t.coordinatesConverter.convertViewRangeToModelRange(e.selectionStart)),n=t.model.validatePosition(t.coordinatesConverter.convertViewPositionToModelPosition(e.position));i=new vC(s,e.selectionStartKind,e.selectionStartLeftoverVisibleColumns,n,e.leftoverVisibleColumns)}if(e){const s=t.coordinatesConverter.validateViewRange(e.selectionStart,i.selectionStart),n=t.coordinatesConverter.validateViewPosition(e.position,i.position);e=new vC(s,i.selectionStartKind,i.selectionStartLeftoverVisibleColumns,n,i.leftoverVisibleColumns)}else{const s=t.coordinatesConverter.convertModelPositionToViewPosition(new As(i.selectionStart.startLineNumber,i.selectionStart.startColumn)),n=t.coordinatesConverter.convertModelPositionToViewPosition(new As(i.selectionStart.endLineNumber,i.selectionStart.endColumn)),o=new Ms(s.lineNumber,s.column,n.lineNumber,n.column),r=t.coordinatesConverter.convertModelPositionToViewPosition(i.position);e=new vC(o,i.selectionStartKind,i.selectionStartLeftoverVisibleColumns,r,i.leftoverVisibleColumns)}this.modelState=i,this.viewState=e,this._updateTrackedRange(t)}}class _L{constructor(t){this.context=t,this.cursors=[new IL(t)],this.lastAddedCursorIndex=0}dispose(){for(const t of this.cursors)t.dispose(this.context)}startTrackingSelections(){for(const t of this.cursors)t.startTrackingSelection(this.context)}stopTrackingSelections(){for(const t of this.cursors)t.stopTrackingSelection(this.context)}updateContext(t){this.context=t}ensureValidState(){for(const t of this.cursors)t.ensureValidState(this.context)}readSelectionFromMarkers(){return this.cursors.map((t=>t.readSelectionFromMarkers(this.context)))}getAll(){return this.cursors.map((t=>t.asCursorState()))}getViewPositions(){return this.cursors.map((t=>t.viewState.position))}getTopMostViewPosition(){return function(t,i){return up(t,((t,e)=>-i(t,e)))}(this.cursors,T((t=>t.viewState.position),As.compare)).viewState.position}getBottomMostViewPosition(){return function(t,i){if(0===t.length)return;let e=t[0];for(let s=1;s=0&&(e=n)}return e}(this.cursors,T((t=>t.viewState.position),As.compare)).viewState.position}getSelections(){return this.cursors.map((t=>t.modelState.selection))}getViewSelections(){return this.cursors.map((t=>t.viewState.selection))}setSelections(t){this.setStates(gC.fromModelSelections(t))}getPrimaryCursor(){return this.cursors[0].asCursorState()}setStates(t){null!==t&&(this.cursors[0].setState(this.context,t[0].modelState,t[0].viewState),this._setSecondaryStates(t.slice(1)))}_setSecondaryStates(t){const i=this.cursors.length-1,e=t.length;if(ie){const t=i-e;for(let i=0;i=t+1&&this.lastAddedCursorIndex--,this.cursors[t+1].dispose(this.context),this.cursors.splice(t+1,1)}normalize(){if(1===this.cursors.length)return;const t=this.cursors.slice(0),i=[];for(let e=0,s=t.length;et.selection),Ms.compareRangesUsingStarts));for(let e=0;eh&&t.index--;t.splice(h,1),i.splice(r,1),this._removeSecondaryCursor(h-1),e--}}}}class NL{constructor(t,i,e,s){this._cursorContextBrand=void 0,this.model=t,this.viewModel=i,this.coordinatesConverter=e,this.cursorConfig=s}}class BL{constructor(){this.type=0}}class PL{constructor(){this.type=1}}class $L{constructor(t){this.type=2,this._source=t}hasChanged(t){return this._source.hasChanged(t)}}class WL{constructor(t,i,e){this.selections=t,this.modelSelections=i,this.reason=e,this.type=3}}class jL{constructor(t){this.type=4,t?(this.affectsMinimap=t.affectsMinimap,this.affectsOverviewRuler=t.affectsOverviewRuler,this.affectsGlyphMargin=t.affectsGlyphMargin):(this.affectsMinimap=!0,this.affectsOverviewRuler=!0,this.affectsGlyphMargin=!0)}}class zL{constructor(){this.type=5}}class HL{constructor(t){this.type=6,this.isFocused=t}}class VL{constructor(){this.type=7}}class UL{constructor(){this.type=8}}class qL{constructor(t,i){this.fromLineNumber=t,this.count=i,this.type=9}}class KL{constructor(t,i){this.type=10,this.fromLineNumber=t,this.toLineNumber=i}}class GL{constructor(t,i){this.type=11,this.fromLineNumber=t,this.toLineNumber=i}}class ZL{constructor(t,i,e,s,n,o,r){this.source=t,this.minimalReveal=i,this.range=e,this.selections=s,this.verticalType=n,this.revealHorizontal=o,this.scrollType=r,this.type=12}}class QL{constructor(t){this.type=13,this.scrollWidth=t.scrollWidth,this.scrollLeft=t.scrollLeft,this.scrollHeight=t.scrollHeight,this.scrollTop=t.scrollTop,this.scrollWidthChanged=t.scrollWidthChanged,this.scrollLeftChanged=t.scrollLeftChanged,this.scrollHeightChanged=t.scrollHeightChanged,this.scrollTopChanged=t.scrollTopChanged}}class JL{constructor(t){this.theme=t,this.type=14}}class YL{constructor(t){this.type=15,this.ranges=t}}class XL{constructor(){this.type=16}}class tF{constructor(){this.type=17}}class iF extends te{constructor(){super(),this._onEvent=this._register(new de),this.onEvent=this._onEvent.event,this._eventHandlers=[],this._viewEventQueue=null,this._isConsumingViewEventQueue=!1,this._collector=null,this._collectorCnt=0,this._outgoingEvents=[]}emitOutgoingEvent(t){this._addOutgoingEvent(t),this._emitOutgoingEvents()}_addOutgoingEvent(t){for(let i=0,e=this._outgoingEvents.length;i0;){if(this._collector||this._isConsumingViewEventQueue)return;const t=this._outgoingEvents.shift();t.isNoOp()||this._onEvent.fire(t)}}addViewEventHandler(t){for(let i=0,e=this._eventHandlers.length;i0&&this._emitMany(i)}this._emitOutgoingEvents()}emitSingleViewEvent(t){try{this.beginEmitViewEvents().emitViewEvent(t)}finally{this.endEmitViewEvents()}}_emitMany(t){this._viewEventQueue=this._viewEventQueue?this._viewEventQueue.concat(t):t,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}_consumeViewEventQueue(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}_doConsumeQueue(){for(;this._viewEventQueue;){const t=this._viewEventQueue;this._viewEventQueue=null;const i=this._eventHandlers.slice(0);for(const e of i)e.handleEvents(t)}}}class eF{constructor(){this.viewEvents=[],this.outgoingEvents=[]}emitViewEvent(t){this.viewEvents.push(t)}emitOutgoingEvent(t){this.outgoingEvents.push(t)}}class sF{constructor(t,i,e,s){this.kind=0,this._oldContentWidth=t,this._oldContentHeight=i,this.contentWidth=e,this.contentHeight=s,this.contentWidthChanged=this._oldContentWidth!==this.contentWidth,this.contentHeightChanged=this._oldContentHeight!==this.contentHeight}isNoOp(){return!this.contentWidthChanged&&!this.contentHeightChanged}attemptToMerge(t){return t.kind!==this.kind?null:new sF(this._oldContentWidth,this._oldContentHeight,t.contentWidth,t.contentHeight)}}class nF{constructor(t,i){this.kind=1,this.oldHasFocus=t,this.hasFocus=i}isNoOp(){return this.oldHasFocus===this.hasFocus}attemptToMerge(t){return t.kind!==this.kind?null:new nF(this.oldHasFocus,t.hasFocus)}}class oF{constructor(t,i,e,s,n,o,r,h){this.kind=2,this._oldScrollWidth=t,this._oldScrollLeft=i,this._oldScrollHeight=e,this._oldScrollTop=s,this.scrollWidth=n,this.scrollLeft=o,this.scrollHeight=r,this.scrollTop=h,this.scrollWidthChanged=this._oldScrollWidth!==this.scrollWidth,this.scrollLeftChanged=this._oldScrollLeft!==this.scrollLeft,this.scrollHeightChanged=this._oldScrollHeight!==this.scrollHeight,this.scrollTopChanged=this._oldScrollTop!==this.scrollTop}isNoOp(){return!(this.scrollWidthChanged||this.scrollLeftChanged||this.scrollHeightChanged||this.scrollTopChanged)}attemptToMerge(t){return t.kind!==this.kind?null:new oF(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,t.scrollWidth,t.scrollLeft,t.scrollHeight,t.scrollTop)}}class rF{constructor(){this.kind=3}isNoOp(){return!1}attemptToMerge(t){return t.kind!==this.kind?null:this}}class hF{constructor(){this.kind=4}isNoOp(){return!1}attemptToMerge(t){return t.kind!==this.kind?null:this}}class cF{constructor(t,i,e,s,n,o,r){this.kind=6,this.oldSelections=t,this.selections=i,this.oldModelVersionId=e,this.modelVersionId=s,this.source=n,this.reason=o,this.reachedMaxCursorCount=r}static _selectionsAreEqual(t,i){if(!t&&!i)return!0;if(!t||!i)return!1;const e=t.length;if(e!==i.length)return!1;for(let s=0;s0){const t=this._cursors.getSelections();for(let i=0;io&&(s=s.slice(0,o),n=!0);const r=wF.from(this._model,this);return this._cursors.setStates(s),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(t,i,e,r,n)}setCursorColumnSelectData(t){this._columnSelectData=t}revealPrimary(t,i,e,s,n,o){const r=this._cursors.getViewPositions();let h=null,c=null;r.length>1?c=this._cursors.getViewSelections():h=Ms.fromPositions(r[0],r[0]),t.emitViewEvent(new ZL(i,e,h,c,s,n,o))}saveState(){const t=[],i=this._cursors.getSelections();for(let e=0,s=i.length;e0){const i=gC.fromModelSelections(e.resultingSelection);this.setStates(t,"modelChange",e.isUndoing?5:e.isRedoing?6:2,i)&&this.revealPrimary(t,"modelChange",!1,0,!0,0)}else{const i=this._cursors.readSelectionFromMarkers();this.setStates(t,"modelChange",2,gC.fromModelSelections(i))}}}getSelection(){return this._cursors.getPrimaryCursor().modelState.selection}getTopMostViewPosition(){return this._cursors.getTopMostViewPosition()}getBottomMostViewPosition(){return this._cursors.getBottomMostViewPosition()}getCursorColumnSelectData(){if(this._columnSelectData)return this._columnSelectData;const t=this._cursors.getPrimaryCursor(),i=t.viewState.selectionStart.getStartPosition(),e=t.viewState.position;return{isReal:!1,fromViewLineNumber:i.lineNumber,fromViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,i),toViewLineNumber:e.lineNumber,toViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,e)}}getSelections(){return this._cursors.getSelections()}setSelections(t,i,e,s){this.setStates(t,i,s,gC.fromModelSelections(e))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(t){this._prevEditOperationType=t}_pushAutoClosedAction(t,i){const e=[],s=[];for(let n=0,o=t.length;n0&&this._pushAutoClosedAction(e,s),this._prevEditOperationType=t.type}t.shouldPushStackElementAfter&&this._model.pushStackElement()}_interpretCommandResult(t){t&&0!==t.length||(t=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(t),this._cursors.normalize()}_emitStateChangedIfNecessary(t,i,e,s,n){const o=wF.from(this._model,this);if(o.equals(s))return!1;const r=this._cursors.getSelections(),h=this._cursors.getViewSelections();if(t.emitViewEvent(new WL(h,r,e)),!s||s.cursorState.length!==o.cursorState.length||o.cursorState.some(((t,i)=>!t.modelState.equals(s.cursorState[i].modelState)))){const h=s?s.cursorState.map((t=>t.modelState.selection)):null;t.emitOutgoingEvent(new cF(h,r,s?s.modelVersionId:0,o.modelVersionId,i||"keyboard",e,n))}return!0}_findAutoClosingPairs(t){if(!t.length)return null;const i=[];for(let e=0,s=t.length;e=0)return null;const n=s.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!n)return null;const o=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(n[1]);if(!o||1!==o.length)return null;const r=s.text.length-n[2].length-1,h=s.text.lastIndexOf(o[0].open,r-1);if(-1===h)return null;i.push([h,r])}return i}executeEdits(t,i,e,s){let n=null;"snippet"===i&&(n=this._findAutoClosingPairs(e)),n&&(e[0]._isTracked=!0);const o=[],r=[],h=this._model.pushEditOperations(this.getSelections(),e,(t=>{if(n)for(let i=0,e=n.length;i0&&this._pushAutoClosedAction(o,r)}_executeEdit(t,i,e,s=0){if(this.context.cursorConfig.readOnly)return;const n=wF.from(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),t()}catch(t){Bi(t)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(i,e,s,n,!1)&&this.revealPrimary(i,e,!1,0,!0,0)}getAutoClosedCharacters(){return vF.getAllAutoClosedCharacters(this._autoClosedActions)}startComposition(t){this._compositionState=new kF(this._model,this.getSelections())}endComposition(t,i){const e=this._compositionState?this._compositionState.deduceOutcome(this._model,this.getSelections()):null;this._compositionState=null,this._executeEdit((()=>{"keyboard"===i&&this._executeEditOperation(UC.compositionEndWithInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,e,this.getSelections(),this.getAutoClosedCharacters()))}),t,i)}type(t,i,e){this._executeEdit((()=>{if("keyboard"===e){const t=i.length;let e=0;for(;e{this._executeEditOperation(UC.compositionType(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),i,e,s,n))}),t,o);else if(0!==n){const i=this.getSelections().map((t=>{const i=t.getPosition();return new Ls(i.lineNumber,i.column+n,i.lineNumber,i.column+n)}));this.setSelections(t,o,i,0)}}paste(t,i,e,s,n){this._executeEdit((()=>{this._executeEditOperation(UC.paste(this.context.cursorConfig,this._model,this.getSelections(),i,e,s||[]))}),t,n,4)}cut(t,i){this._executeEdit((()=>{this._executeEditOperation(LC.cut(this.context.cursorConfig,this._model,this.getSelections()))}),t,i)}executeCommand(t,i,e){this._executeEdit((()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new bC(0,[i],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))}),t,e)}executeCommands(t,i,e){this._executeEdit((()=>{this._executeEditOperation(new bC(0,i,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))}),t,e)}}class wF{static from(t,i){return new wF(t.getVersionId(),i.getCursorStates())}constructor(t,i){this.modelVersionId=t,this.cursorState=i}equals(t){if(!t)return!1;if(this.modelVersionId!==t.modelVersionId)return!1;if(this.cursorState.length!==t.cursorState.length)return!1;for(let i=0,e=this.cursorState.length;i=i.length)return!1;if(!i[e].strictContainsRange(t[e]))return!1}return!0}}class bF{static executeCommands(t,i,e){const s={model:t,selectionsBefore:i,trackedRanges:[],trackedRangesDirection:[]},n=this._innerExecuteCommands(s,e);for(let t=0,i=s.trackedRanges.length;t0&&(o[0]._isTracked=!0);let r=t.model.pushEditOperations(t.selectionsBefore,o,(e=>{const s=[];for(let i=0;it.identifier.minor-i.identifier.minor,o=[];for(let e=0;e0?(s[e].sort(n),o[e]=i[e].computeCursorState(t.model,{getInverseEditOperations:()=>s[e],getTrackedSelection:i=>{const e=parseInt(i,10),s=t.model._getTrackedRange(t.trackedRanges[e]);return 0===t.trackedRangesDirection[e]?new Ls(s.startLineNumber,s.startColumn,s.endLineNumber,s.endColumn):new Ls(s.endLineNumber,s.endColumn,s.startLineNumber,s.startColumn)}})):o[e]=t.selectionsBefore[e];return o}));r||(r=t.selectionsBefore);const h=[];for(const t in n)n.hasOwnProperty(t)&&h.push(parseInt(t,10));h.sort(((t,i)=>i-t));for(const t of h)r.splice(t,1);return r}static _arrayIsEmpty(t){for(let i=0,e=t.length;i{Ms.isEmpty(t)&&""===o||s.push({identifier:{major:i,minor:n++},range:t,text:o,forceMoveMarkers:r,isAutoWhitespaceEdit:e.insertsAutoWhitespace})};let r=!1;const h={addEditOperation:o,addTrackedEditOperation:(t,i,e)=>{r=!0,o(t,i,e)},trackSelection:(i,e)=>{const s=Ls.liftSelection(i);let n;if(s.isEmpty())if("boolean"==typeof e)n=e?2:3;else{const i=t.model.getLineMaxColumn(s.startLineNumber);n=s.startColumn===i?2:3}else n=1;const o=t.trackedRanges.length,r=t.model._setTrackedRange(null,s,n);return t.trackedRanges[o]=r,t.trackedRangesDirection[o]=s.getDirection(),o.toString()}};try{e.getEditOperations(t.model,h)}catch(t){return Bi(t),{operations:[],hadTrackedEditOperation:!1}}return{operations:s,hadTrackedEditOperation:r}}static _getLoserCursorMap(t){(t=t.slice(0)).sort(((t,i)=>-Ms.compareRangesUsingEnds(t.range,i.range)));const i={};for(let e=1;en.identifier.major?s.identifier.major:n.identifier.major,i[o.toString()]=!0;for(let i=0;i0&&e--}}return i}}class yF{constructor(t,i,e){this.text=t,this.startSelection=i,this.endSelection=e}}class kF{static _capture(t,i){const e=[];for(const s of i){if(s.startLineNumber!==s.endLineNumber)return null;e.push(new yF(t.getLineContent(s.startLineNumber),s.startColumn-1,s.endColumn-1))}return e}constructor(t,i){this._original=kF._capture(t,i)}deduceOutcome(t,i){if(!this._original)return null;const e=kF._capture(t,i);if(!e)return null;if(this._original.length!==e.length)return null;const s=[];for(let t=0,i=this._original.length;tIg,tokenizeEncoded:(t,i,e)=>Ng(0,e)};function CF(t,i,e,s,n,o,r){let h="
      ",c=s,a=0,l=!0;for(let u=0,d=i.getCount();u0;)r&&l?(f+=" ",l=!1):(f+=" ",l=!0),t--;break}case 60:f+="<",l=!1;break;case 62:f+=">",l=!1;break;case 38:f+="&",l=!1;break;case 0:f+="�",l=!1;break;case 65279:case 8232:case 8233:case 133:f+="�",l=!1;break;case 13:f+="​",l=!1;break;case 32:r&&l?(f+=" ",l=!1):(f+=" ",l=!0);break;default:f+=String.fromCharCode(i),l=!1}}if(h+=`${f}`,d>n||c>=n)break}return h+="
      ",h}function SF(t,i,e){let s='
      ';const n=Xn(t);let o=e.getInitialState();for(let t=0,r=n.length;t0&&(s+="
      ");const h=e.tokenizeEncoded(r,!0,o);Pg.convertToEndOffset(h.tokens,r.length);const c=new Pg(h.tokens,r,i).inflate();let a=0;for(let t=0,i=c.getCount();t${Kn(r.substring(a,e))}`,a=e}o=h.endState}return s+="
      ",s}class DF{constructor(){this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}insert(t){this._hasPending=!0,this._inserts.push(t)}change(t){this._hasPending=!0,this._changes.push(t)}remove(t){this._hasPending=!0,this._removes.push(t)}mustCommit(){return this._hasPending}commit(t){if(!this._hasPending)return;const i=this._inserts,e=this._changes,s=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],t._commitPendingChanges(i,e,s)}}class EF{constructor(t,i,e,s,n){this.id=t,this.afterLineNumber=i,this.ordinal=e,this.height=s,this.minWidth=n,this.prefixSum=0}}class AF{constructor(t,i,e,s){this._instanceId=Oo(++AF.INSTANCE_COUNT),this._pendingChanges=new DF,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=t,this._lineHeight=i,this._paddingTop=e,this._paddingBottom=s}static findInsertionIndex(t,i,e){let s=0,n=t.length;for(;s>>1;i===t[o].afterLineNumber?e{i=!0,t|=0,e|=0,s|=0,n|=0;const o=this._instanceId+ ++this._lastWhitespaceId;return this._pendingChanges.insert(new EF(o,t,e,s,n)),o},changeOneWhitespace:(t,e,s)=>{i=!0,this._pendingChanges.change({id:t,newAfterLineNumber:e|=0,newHeight:s|=0})},removeWhitespace:t=>{i=!0,this._pendingChanges.remove({id:t})}})}finally{this._pendingChanges.commit(this)}return i}_commitPendingChanges(t,i,e){if((t.length>0||e.length>0)&&(this._minWidth=-1),t.length+i.length+e.length<=1){for(const i of t)this._insertWhitespace(i);for(const t of i)this._changeOneWhitespace(t.id,t.newAfterLineNumber,t.newHeight);for(const t of e){const i=this._findWhitespaceIndex(t.id);-1!==i&&this._removeWhitespace(i)}return}const s=new Set;for(const t of e)s.add(t.id);const n=new Map;for(const t of i)n.set(t.id,t);const o=t=>{const i=[];for(const e of t)if(!s.has(e.id)){if(n.has(e.id)){const t=n.get(e.id);e.afterLineNumber=t.newAfterLineNumber,e.height=t.newHeight}i.push(e)}return i},r=o(this._arr).concat(o(t));r.sort(((t,i)=>t.afterLineNumber===i.afterLineNumber?t.ordinal-i.ordinal:t.afterLineNumber-i.afterLineNumber)),this._arr=r,this._prefixSumValidIndex=-1}_checkPendingChanges(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}_insertWhitespace(t){const i=AF.findInsertionIndex(this._arr,t.afterLineNumber,t.ordinal);this._arr.splice(i,0,t),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,i-1)}_findWhitespaceIndex(t){const i=this._arr;for(let e=0,s=i.length;ei&&(this._arr[e].afterLineNumber-=i-t+1)}}onLinesInserted(t,i){this._checkPendingChanges(),this._lineCount+=(i|=0)-(t|=0)+1;for(let e=0,s=this._arr.length;e=i.length||i[n+1].afterLineNumber>=t)return n;e=n+1|0}else s=n-1|0}return-1}_findFirstWhitespaceAfterLineNumber(t){const i=this._findLastWhitespaceBeforeLineNumber(t|=0)+1;return i1?this._lineHeight*(t-1):0,e+this.getWhitespaceAccumulatedHeightBeforeLineNumber(t-(i?1:0))+this._paddingTop}getVerticalOffsetAfterLineNumber(t,i=!1){return this._checkPendingChanges(),this._lineHeight*(t|=0)+this.getWhitespaceAccumulatedHeightBeforeLineNumber(t+(i?1:0))+this._paddingTop}getWhitespaceMinWidth(){if(this._checkPendingChanges(),-1===this._minWidth){let t=0;for(let i=0,e=this._arr.length;ithis.getLinesTotalHeight()}isInTopPadding(t){return 0!==this._paddingTop&&(this._checkPendingChanges(),t=this.getLinesTotalHeight()-this._paddingBottom)}getLineNumberAtOrAfterVerticalOffset(t){if(this._checkPendingChanges(),(t|=0)<0)return 1;const i=0|this._lineCount,e=this._lineHeight;let s=1,n=i;for(;s=o+e)s=i+1;else{if(t>=o)return i;n=i}}return s>i?i:s}getLinesViewportData(t,i){this._checkPendingChanges(),i|=0;const e=this._lineHeight,s=0|this.getLineNumberAtOrAfterVerticalOffset(t|=0),n=0|this.getVerticalOffsetForLineNumber(s);let o=0|this._lineCount,r=0|this.getFirstWhitespaceIndexAfterLineNumber(s);const h=0|this.getWhitespacesCount();let c,a;-1===r?(r=h,a=o+1,c=0):(a=0|this.getAfterLineNumberForWhitespaceIndex(r),c=0|this.getHeightForWhitespaceIndex(r));let l=n,u=l;const d=5e5;let f=0;n>=d&&(f=Math.floor(n/d)*d,f=Math.floor(f/e)*e,u-=f);const p=[],g=t+(i-t)/2;let m=-1;for(let t=s;t<=o;t++){for(-1===m&&(l<=g&&gg)&&(m=t),l+=e,p[t-s]=u,u+=e;a===t;)u+=c,l+=c,r++,r>=h?a=o+1:(a=0|this.getAfterLineNumberForWhitespaceIndex(r),c=0|this.getHeightForWhitespaceIndex(r));if(l>=i){o=t;break}}-1===m&&(m=o);const w=0|this.getVerticalOffsetForLineNumber(o);let v=s,b=o;return vi&&b--,{bigNumbersDelta:f,startLineNumber:s,endLineNumber:o,relativeVerticalOffset:p,centeredLineNumber:m,completelyVisibleStartLineNumber:v,completelyVisibleEndLineNumber:b}}getVerticalOffsetForWhitespaceIndex(t){this._checkPendingChanges();const i=this.getAfterLineNumberForWhitespaceIndex(t|=0);let e,s;return e=i>=1?this._lineHeight*i:0,s=t>0?this.getWhitespacesAccumulatedHeight(t-1):0,e+s+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(t){this._checkPendingChanges(),t|=0;let i=0,e=this.getWhitespacesCount()-1;if(e<0)return-1;if(t>=this.getVerticalOffsetForWhitespaceIndex(e)+this.getHeightForWhitespaceIndex(e))return-1;for(;i=n+this.getHeightForWhitespaceIndex(s))i=s+1;else{if(t>=n)return s;e=s}}return i}getWhitespaceAtVerticalOffset(t){this._checkPendingChanges();const i=this.getWhitespaceIndexAtOrAfterVerticallOffset(t|=0);if(i<0)return null;if(i>=this.getWhitespacesCount())return null;const e=this.getVerticalOffsetForWhitespaceIndex(i);if(e>t)return null;const s=this.getHeightForWhitespaceIndex(i);return{id:this.getIdForWhitespaceIndex(i),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(i),verticalOffset:e,height:s}}getWhitespaceViewportData(t,i){this._checkPendingChanges(),i|=0;const e=this.getWhitespaceIndexAtOrAfterVerticallOffset(t|=0),s=this.getWhitespacesCount()-1;if(e<0)return[];const n=[];for(let t=e;t<=s;t++){const e=this.getVerticalOffsetForWhitespaceIndex(t),s=this.getHeightForWhitespaceIndex(t);if(e>=i)break;n.push({id:this.getIdForWhitespaceIndex(t),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(t),verticalOffset:e,height:s})}return n}getWhitespaces(){return this._checkPendingChanges(),this._arr.slice(0)}getWhitespacesCount(){return this._checkPendingChanges(),this._arr.length}getIdForWhitespaceIndex(t){return this._checkPendingChanges(),this._arr[t|=0].id}getAfterLineNumberForWhitespaceIndex(t){return this._checkPendingChanges(),this._arr[t|=0].afterLineNumber}getHeightForWhitespaceIndex(t){return this._checkPendingChanges(),this._arr[t|=0].height}}AF.INSTANCE_COUNT=0;class MF{constructor(t,i,e,s){(t|=0)<0&&(t=0),(i|=0)<0&&(i=0),(e|=0)<0&&(e=0),(s|=0)<0&&(s=0),this.width=t,this.contentWidth=i,this.scrollWidth=Math.max(t,i),this.height=e,this.contentHeight=s,this.scrollHeight=Math.max(e,s)}equals(t){return this.width===t.width&&this.contentWidth===t.contentWidth&&this.height===t.height&&this.contentHeight===t.contentHeight}}class LF extends te{constructor(t,i){super(),this._onDidContentSizeChange=this._register(new de),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._dimensions=new MF(0,0,0,0),this._scrollable=this._register(new xk({forceIntegerValues:!0,smoothScrollDuration:t,scheduleAtNextAnimationFrame:i})),this.onDidScroll=this._scrollable.onScroll}getScrollable(){return this._scrollable}setSmoothScrollDuration(t){this._scrollable.setSmoothScrollDuration(t)}validateScrollPosition(t){return this._scrollable.validateScrollPosition(t)}getScrollDimensions(){return this._dimensions}setScrollDimensions(t){if(this._dimensions.equals(t))return;const i=this._dimensions;this._dimensions=t,this._scrollable.setScrollDimensions({width:t.width,scrollWidth:t.scrollWidth,height:t.height,scrollHeight:t.scrollHeight},!0),(i.contentWidth!==t.contentWidth||i.contentHeight!==t.contentHeight)&&this._onDidContentSizeChange.fire(new sF(i.contentWidth,i.contentHeight,t.contentWidth,t.contentHeight))}getFutureScrollPosition(){return this._scrollable.getFutureScrollPosition()}getCurrentScrollPosition(){return this._scrollable.getCurrentScrollPosition()}setScrollPositionNow(t){this._scrollable.setScrollPositionNow(t)}setScrollPositionSmooth(t){this._scrollable.setScrollPositionSmooth(t)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}}class FF extends te{constructor(t,i,e){super(),this._configuration=t;const s=this._configuration.options,n=s.get(143),o=s.get(83);this._linesLayout=new AF(i,s.get(66),o.top,o.bottom),this._maxLineWidth=0,this._overlayWidgetsMinWidth=0,this._scrollable=this._register(new LF(0,e)),this._configureSmoothScrollDuration(),this._scrollable.setScrollDimensions(new MF(n.contentWidth,0,n.height,0)),this.onDidScroll=this._scrollable.onDidScroll,this.onDidContentSizeChange=this._scrollable.onDidContentSizeChange,this._updateHeight()}dispose(){super.dispose()}getScrollable(){return this._scrollable.getScrollable()}onHeightMaybeChanged(){this._updateHeight()}_configureSmoothScrollDuration(){this._scrollable.setSmoothScrollDuration(this._configuration.options.get(113)?125:0)}onConfigurationChanged(t){const i=this._configuration.options;if(t.hasChanged(66)&&this._linesLayout.setLineHeight(i.get(66)),t.hasChanged(83)){const t=i.get(83);this._linesLayout.setPadding(t.top,t.bottom)}if(t.hasChanged(143)){const t=i.get(143),e=t.contentWidth,s=t.height,n=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new MF(e,n.contentWidth,s,this._getContentHeight(e,s,n.contentWidth)))}else this._updateHeight();t.hasChanged(113)&&this._configureSmoothScrollDuration()}onFlushed(t){this._linesLayout.onFlushed(t)}onLinesDeleted(t,i){this._linesLayout.onLinesDeleted(t,i)}onLinesInserted(t,i){this._linesLayout.onLinesInserted(t,i)}_getHorizontalScrollbarHeight(t,i){const e=this._configuration.options.get(102);return 2===e.horizontal||t>=i?0:e.horizontalScrollbarSize}_getContentHeight(t,i,e){const s=this._configuration.options;let n=this._linesLayout.getLinesTotalHeight();return s.get(104)?n+=Math.max(0,i-s.get(66)-s.get(83).bottom):s.get(102).ignoreHorizontalScrollbarInContentHeight||(n+=this._getHorizontalScrollbarHeight(t,e)),n}_updateHeight(){const t=this._scrollable.getScrollDimensions(),i=t.width,e=t.height;this._scrollable.setScrollDimensions(new MF(i,t.contentWidth,e,this._getContentHeight(i,e,t.contentWidth)))}getCurrentViewport(){const t=this._scrollable.getScrollDimensions(),i=this._scrollable.getCurrentScrollPosition();return new im(i.scrollTop,i.scrollLeft,t.width,t.height)}getFutureViewport(){const t=this._scrollable.getScrollDimensions(),i=this._scrollable.getFutureScrollPosition();return new im(i.scrollTop,i.scrollLeft,t.width,t.height)}_computeContentWidth(){const t=this._configuration.options,i=this._maxLineWidth,e=t.get(144),s=t.get(50),n=t.get(143);if(e.isViewportWrapping){const e=t.get(72);return i>n.contentWidth+s.typicalHalfwidthCharacterWidth&&e.enabled&&"right"===e.side?i+n.verticalScrollbarWidth:i}{const e=t.get(103)*s.typicalHalfwidthCharacterWidth,o=this._linesLayout.getWhitespaceMinWidth();return Math.max(i+e+n.verticalScrollbarWidth,o,this._overlayWidgetsMinWidth)}}setMaxLineWidth(t){this._maxLineWidth=t,this._updateContentWidth()}setOverlayWidgetsMinWidth(t){this._overlayWidgetsMinWidth=t,this._updateContentWidth()}_updateContentWidth(){const t=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new MF(t.width,this._computeContentWidth(),t.height,t.contentHeight)),this._updateHeight()}saveState(){const t=this._scrollable.getFutureScrollPosition(),i=t.scrollTop,e=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(i);return{scrollTop:i,scrollTopWithoutViewZones:i-this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(e),scrollLeft:t.scrollLeft}}changeWhitespace(t){const i=this._linesLayout.changeWhitespace(t);return i&&this.onHeightMaybeChanged(),i}getVerticalOffsetForLineNumber(t,i=!1){return this._linesLayout.getVerticalOffsetForLineNumber(t,i)}getVerticalOffsetAfterLineNumber(t,i=!1){return this._linesLayout.getVerticalOffsetAfterLineNumber(t,i)}isAfterLines(t){return this._linesLayout.isAfterLines(t)}isInTopPadding(t){return this._linesLayout.isInTopPadding(t)}isInBottomPadding(t){return this._linesLayout.isInBottomPadding(t)}getLineNumberAtVerticalOffset(t){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t)}getWhitespaceAtVerticalOffset(t){return this._linesLayout.getWhitespaceAtVerticalOffset(t)}getLinesViewportData(){const t=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(t.top,t.top+t.height)}getLinesViewportDataAtScrollTop(t){const i=this._scrollable.getScrollDimensions();return t+i.height>i.scrollHeight&&(t=i.scrollHeight-i.height),t<0&&(t=0),this._linesLayout.getLinesViewportData(t,t+i.height)}getWhitespaceViewportData(){const t=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(t.top,t.top+t.height)}getWhitespaces(){return this._linesLayout.getWhitespaces()}getContentWidth(){return this._scrollable.getScrollDimensions().contentWidth}getScrollWidth(){return this._scrollable.getScrollDimensions().scrollWidth}getContentHeight(){return this._scrollable.getScrollDimensions().contentHeight}getScrollHeight(){return this._scrollable.getScrollDimensions().scrollHeight}getCurrentScrollLeft(){return this._scrollable.getCurrentScrollPosition().scrollLeft}getCurrentScrollTop(){return this._scrollable.getCurrentScrollPosition().scrollTop}validateScrollPosition(t){return this._scrollable.validateScrollPosition(t)}setScrollPosition(t,i){1===i?this._scrollable.setScrollPositionNow(t):this._scrollable.setScrollPositionSmooth(t)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}deltaScrollNow(t,i){const e=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:e.scrollLeft+t,scrollTop:e.scrollTop+i})}}class TF{constructor(t,i,e,s,n){this.editorId=t,this.model=i,this.configuration=e,this._linesCollection=s,this._coordinatesConverter=n,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}_clearCachedModelDecorationsResolver(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}dispose(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}reset(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onModelDecorationsChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onLineMappingChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}_getOrCreateViewModelDecoration(t){const i=t.id;let e=this._decorationsCache[i];if(!e){const s=t.range,n=t.options;let o;if(n.isWholeLine){const t=this._coordinatesConverter.convertModelPositionToViewPosition(new As(s.startLineNumber,1),0,!1,!0),i=this._coordinatesConverter.convertModelPositionToViewPosition(new As(s.endLineNumber,this.model.getLineMaxColumn(s.endLineNumber)),1);o=new Ms(t.lineNumber,t.column,i.lineNumber,i.column)}else o=this._coordinatesConverter.convertModelRangeToViewRange(s,1);e=new hm(o,n),this._decorationsCache[i]=e}return e}getMinimapDecorationsInRange(t){return this._getDecorationsInRange(t,!0,!1).decorations}getDecorationsViewportData(t){let i=null!==this._cachedModelDecorationsResolver;return i=i&&t.equalsRange(this._cachedModelDecorationsResolverViewRange),i||(this._cachedModelDecorationsResolver=this._getDecorationsInRange(t,!1,!1),this._cachedModelDecorationsResolverViewRange=t),this._cachedModelDecorationsResolver}getInlineDecorationsOnLine(t,i=!1,e=!1){const s=new Ms(t,this._linesCollection.getViewLineMinColumn(t),t,this._linesCollection.getViewLineMaxColumn(t));return this._getDecorationsInRange(s,i,e).inlineDecorations[0]}_getDecorationsInRange(t,i,e){const s=this._linesCollection.getDecorationsInRange(t,this.editorId,ki(this.configuration.options),i,e),n=t.startLineNumber,o=t.endLineNumber,r=[];let h=0;const c=[];for(let t=n;t<=o;t++)c[t-n]=[];for(let t=0,i=s.length;t1===t))}function IF(t,i){return _F(t,i.range,(t=>2===t))}function _F(t,i,e){for(let s=i.startLineNumber;s<=i.endLineNumber;s++){const n=t.tokenization.getLineTokens(s),o=s===i.endLineNumber;let r=s===i.startLineNumber?n.findTokenIndexAtOffset(i.startColumn-1):0;for(;ri.endColumn-1);){if(!e(n.getStandardTokenType(r)))return!1;r++}}return!0}function NF(t,i){return null===t?i?PF.INSTANCE:$F.INSTANCE:new BF(t,i)}class BF{constructor(t,i){this._projectionData=t,this._isVisible=i}isVisible(){return this._isVisible}setVisible(t){return this._isVisible=t,this}getProjectionData(){return this._projectionData}getViewLineCount(){return this._isVisible?this._projectionData.getOutputLineCount():0}getViewLineContent(t,i,e){this._assertVisible();const s=e>0?this._projectionData.breakOffsets[e-1]:0,n=this._projectionData.breakOffsets[e];let o;if(null!==this._projectionData.injectionOffsets){const e=this._projectionData.injectionOffsets.map(((t,i)=>new XM(0,0,t+1,this._projectionData.injectionOptions[i],0)));o=XM.applyInjectedText(t.getLineContent(i),e).substring(s,n)}else o=t.getValueInRange({startLineNumber:i,startColumn:s+1,endLineNumber:i,endColumn:n+1});return e>0&&(o=jF(this._projectionData.wrappedTextIndentLength)+o),o}getViewLineLength(t,i,e){return this._assertVisible(),this._projectionData.getLineLength(e)}getViewLineMinColumn(t,i,e){return this._assertVisible(),this._projectionData.getMinOutputOffset(e)+1}getViewLineMaxColumn(t,i,e){return this._assertVisible(),this._projectionData.getMaxOutputOffset(e)+1}getViewLineData(t,i,e){const s=new Array;return this.getViewLinesData(t,i,e,1,0,[!0],s),s[0]}getViewLinesData(t,i,e,s,n,o,r){this._assertVisible();const h=this._projectionData,c=h.injectionOffsets,a=h.injectionOptions;let l,u=null;if(c){u=[];let t=0,i=0;for(let e=0;e0?h.breakOffsets[e-1]:0,o=h.breakOffsets[e];for(;io)break;if(n0?h.wrappedTextIndentLength:0,r=i+Math.max(l-n,0),c=i+Math.min(u-n,o-n);r!==c&&s.push(new rm(r,c,t.inlineClassName,t.inlineClassNameAffectsLetterSpacing))}}if(!(u<=o))break;t+=r,i++}}}l=c?t.tokenization.getLineTokens(i).withInserted(c.map(((t,i)=>({offset:t,text:a[i].content,tokenMetadata:Pg.defaultTokenMetadata})))):t.tokenization.getLineTokens(i);for(let t=e;t0?s.breakOffsets[e-1]:0,s.breakOffsets[e],e>0?s.wrappedTextIndentLength:0);let o=n.getLineContent();e>0&&(o=jF(s.wrappedTextIndentLength)+o);const r=this._projectionData.getMinOutputOffset(e)+1,h=o.length+1,c=e+1=WF.length)for(let i=1;i<=t;i++)WF[i]=zF(i);return WF[t]}function zF(t){return new Array(t+1).join(" ")}class HF{constructor(t,i,e,s,n,o,r,h,c,a){this._editorId=t,this.model=i,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=e,this._monospaceLineBreaksComputerFactory=s,this.fontInfo=n,this.tabSize=o,this.wrappingStrategy=r,this.wrappingColumn=h,this.wrappingIndent=c,this.wordBreak=a,this._constructLines(!0,null)}dispose(){this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[])}createCoordinatesConverter(){return new qF(this)}_constructLines(t,i){this.modelLineProjections=[],t&&(this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[]));const e=this.model.getLinesContent(),s=this.model.getInjectedTextDecorations(this._editorId),n=e.length,o=this.createLineBreaksComputer(),r=new _(XM.fromDecorations(s));for(let t=0;ti.lineNumber===t+1));o.addRequest(e[t],s,i?i[t]:null)}const h=o.finalize(),c=[],a=this.hiddenAreasDecorationIds.map((t=>this.model.getDecorationRange(t))).sort(Ms.compareRangesUsingStarts);let l=1,u=0,d=-1,f=d+1=l&&i<=u));c[t]=e.getViewLineCount(),this.modelLineProjections[t]=e}this._validModelVersionId=this.model.getVersionId(),this.projectedModelLineLineCounts=new xf(c)}getHiddenAreas(){return this.hiddenAreasDecorationIds.map((t=>this.model.getDecorationRange(t)))}setHiddenAreas(t){const i=function(t){if(0===t.length)return[];const i=t.slice();i.sort(Ms.compareRangesUsingStarts);const e=[];let s=i[0].startLineNumber,n=i[0].endLineNumber;for(let t=1,o=i.length;tn+1?(e.push(new Ms(s,1,n,1)),s=o.startLineNumber,n=o.endLineNumber):o.endLineNumber>n&&(n=o.endLineNumber)}return e.push(new Ms(s,1,n,1)),e}(t.map((t=>this.model.validateRange(t)))),e=this.hiddenAreasDecorationIds.map((t=>this.model.getDecorationRange(t))).sort(Ms.compareRangesUsingStarts);if(i.length===e.length){let t=!1;for(let s=0;s({range:t,options:AL.EMPTY})));this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,s);const n=i;let o=1,r=0,h=-1,c=h+1=o&&i<=r?this.modelLineProjections[t].isVisible()&&(this.modelLineProjections[t]=this.modelLineProjections[t].setVisible(!1),e=!0):(a=!0,this.modelLineProjections[t].isVisible()||(this.modelLineProjections[t]=this.modelLineProjections[t].setVisible(!0),e=!0)),e){const i=this.modelLineProjections[t].getViewLineCount();this.projectedModelLineLineCounts.setValue(t,i)}}return a||this.setHiddenAreas([]),!0}modelPositionIsVisible(t,i){return!(t<1||t>this.modelLineProjections.length)&&this.modelLineProjections[t-1].isVisible()}getModelLineViewLineCount(t){return t<1||t>this.modelLineProjections.length?1:this.modelLineProjections[t-1].getViewLineCount()}setTabSize(t){return this.tabSize!==t&&(this.tabSize=t,this._constructLines(!1,null),!0)}setWrappingSettings(t,i,e,s,n){const o=this.fontInfo.equals(t),r=this.wrappingStrategy===i,h=this.wrappingColumn===e,c=this.wrappingIndent===s,a=this.wordBreak===n;if(o&&r&&h&&c&&a)return!1;const l=o&&r&&!h&&c&&a;this.fontInfo=t,this.wrappingStrategy=i,this.wrappingColumn=e,this.wrappingIndent=s,this.wordBreak=n;let u=null;if(l){u=[];for(let t=0,i=this.modelLineProjections.length;t2&&!this.modelLineProjections[i-2].isVisible(),o=1===i?1:this.projectedModelLineLineCounts.getPrefixSum(i-1)+1;let r=0;const h=[],c=[];for(let t=0,i=s.length;tr?(c=this.projectedModelLineLineCounts.getPrefixSum(i-1)+1,a=c+r-1,d=a+1,f=d+(n-r)-1,h=!0):ni?i:0|t}getActiveIndentGuide(t,i,e){t=this._toValidViewLineNumber(t),i=this._toValidViewLineNumber(i),e=this._toValidViewLineNumber(e);const s=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),n=this.convertViewPositionToModelPosition(i,this.getViewLineMinColumn(i)),o=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),r=this.model.guides.getActiveIndentGuide(s.lineNumber,n.lineNumber,o.lineNumber),h=this.convertModelPositionToViewPosition(r.startLineNumber,1),c=this.convertModelPositionToViewPosition(r.endLineNumber,this.model.getLineMaxColumn(r.endLineNumber));return{startLineNumber:h.lineNumber,endLineNumber:c.lineNumber,indent:r.indent}}getViewLineInfo(t){t=this._toValidViewLineNumber(t);const i=this.projectedModelLineLineCounts.getIndexOf(t-1);return new VF(i.index+1,i.remainder)}getMinColumnOfViewLine(t){return this.modelLineProjections[t.modelLineNumber-1].getViewLineMinColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getMaxColumnOfViewLine(t){return this.modelLineProjections[t.modelLineNumber-1].getViewLineMaxColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getModelStartPositionOfViewLine(t){const i=this.modelLineProjections[t.modelLineNumber-1],e=i.getViewLineMinColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx),s=i.getModelColumnOfViewPosition(t.modelLineWrappedLineIdx,e);return new As(t.modelLineNumber,s)}getModelEndPositionOfViewLine(t){const i=this.modelLineProjections[t.modelLineNumber-1],e=i.getViewLineMaxColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx),s=i.getModelColumnOfViewPosition(t.modelLineWrappedLineIdx,e);return new As(t.modelLineNumber,s)}getViewLineInfosGroupedByModelRanges(t,i){const e=this.getViewLineInfo(t),s=this.getViewLineInfo(i),n=new Array;let o=this.getModelStartPositionOfViewLine(e),r=new Array;for(let t=e.modelLineNumber;t<=s.modelLineNumber;t++){const i=this.modelLineProjections[t-1];if(i.isVisible()){const n=t===e.modelLineNumber?e.modelLineWrappedLineIdx:0,o=t===s.modelLineNumber?s.modelLineWrappedLineIdx+1:i.getViewLineCount();for(let i=n;i{if(-1!==t.forWrappedLinesAfterColumn&&this.modelLineProjections[s.modelLineNumber-1].getViewPositionOfModelPosition(0,t.forWrappedLinesAfterColumn).lineNumber>=s.modelLineWrappedLineIdx)return;if(-1!==t.forWrappedLinesBeforeOrAtColumn&&this.modelLineProjections[s.modelLineNumber-1].getViewPositionOfModelPosition(0,t.forWrappedLinesBeforeOrAtColumn).lineNumbers.modelLineWrappedLineIdx)return}const e=this.convertModelPositionToViewPosition(s.modelLineNumber,t.horizontalLine.endColumn),n=this.modelLineProjections[s.modelLineNumber-1].getViewPositionOfModelPosition(0,t.horizontalLine.endColumn);return n.lineNumber===s.modelLineWrappedLineIdx?new OS(t.visibleColumn,i,t.className,new IS(t.horizontalLine.top,e.column),-1,-1):n.lineNumber!!t)))}}return o}getViewLinesIndentGuides(t,i){t=this._toValidViewLineNumber(t),i=this._toValidViewLineNumber(i);const e=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),s=this.convertViewPositionToModelPosition(i,this.getViewLineMaxColumn(i));let n=[];const o=[],r=[],h=e.lineNumber-1,c=s.lineNumber-1;let a=null;for(let t=h;t<=c;t++){const i=this.modelLineProjections[t];if(i.isVisible()){const s=i.getViewLineNumberOfModelPosition(0,t===h?e.column:1),n=i.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(t+1)),c=n-s+1;let l=0;c>1&&1===i.getViewLineMinColumn(this.model,t+1,n)&&(l=0===s?1:2),o.push(c),r.push(l),null===a&&(a=new As(t+1,0))}else null!==a&&(n=n.concat(this.model.guides.getLinesIndentGuides(a.lineNumber,t)),a=null)}null!==a&&(n=n.concat(this.model.guides.getLinesIndentGuides(a.lineNumber,s.lineNumber)),a=null);const l=i-t+1,u=new Array(l);let d=0;for(let t=0,i=n.length;ti&&(u=!0,l=i-n+1),c.getViewLinesData(this.model,s+1,a,l,n-t,e,h),n+=l,u)break}return h}validateViewPosition(t,i,e){t=this._toValidViewLineNumber(t);const s=this.projectedModelLineLineCounts.getIndexOf(t-1),n=s.index,o=s.remainder,r=this.modelLineProjections[n],h=r.getViewLineMinColumn(this.model,n+1,o),c=r.getViewLineMaxColumn(this.model,n+1,o);ic&&(i=c);const a=r.getModelColumnOfViewPosition(o,i);return this.model.validatePosition(new As(n+1,a)).equals(e)?new As(t,i):this.convertModelPositionToViewPosition(e.lineNumber,e.column)}validateViewRange(t,i){const e=this.validateViewPosition(t.startLineNumber,t.startColumn,i.getStartPosition()),s=this.validateViewPosition(t.endLineNumber,t.endColumn,i.getEndPosition());return new Ms(e.lineNumber,e.column,s.lineNumber,s.column)}convertViewPositionToModelPosition(t,i){const e=this.getViewLineInfo(t),s=this.modelLineProjections[e.modelLineNumber-1].getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return this.model.validatePosition(new As(e.modelLineNumber,s))}convertViewRangeToModelRange(t){const i=this.convertViewPositionToModelPosition(t.startLineNumber,t.startColumn),e=this.convertViewPositionToModelPosition(t.endLineNumber,t.endColumn);return new Ms(i.lineNumber,i.column,e.lineNumber,e.column)}convertModelPositionToViewPosition(t,i,e=2,s=!1,n=!1){const o=this.model.validatePosition(new As(t,i)),r=o.lineNumber,h=o.column;let c=r-1,a=!1;if(n)for(;c0&&!this.modelLineProjections[c].isVisible();)c--,a=!0;if(0===c&&!this.modelLineProjections[c].isVisible())return new As(s?0:1,1);const l=1+this.projectedModelLineLineCounts.getPrefixSum(c);let u;return u=a?this.modelLineProjections[c].getViewPositionOfModelPosition(l,n?1:this.model.getLineMaxColumn(c+1),e):this.modelLineProjections[r-1].getViewPositionOfModelPosition(l,h,e),u}convertModelRangeToViewRange(t,i=0){if(t.isEmpty()){const e=this.convertModelPositionToViewPosition(t.startLineNumber,t.startColumn,i);return Ms.fromPositions(e)}{const i=this.convertModelPositionToViewPosition(t.startLineNumber,t.startColumn,1),e=this.convertModelPositionToViewPosition(t.endLineNumber,t.endColumn,0);return new Ms(i.lineNumber,i.column,e.lineNumber,e.column)}}getViewLineNumberOfModelPosition(t,i){let e=t-1;if(this.modelLineProjections[e].isVisible()){const t=1+this.projectedModelLineLineCounts.getPrefixSum(e);return this.modelLineProjections[e].getViewLineNumberOfModelPosition(t,i)}for(;e>0&&!this.modelLineProjections[e].isVisible();)e--;if(0===e&&!this.modelLineProjections[e].isVisible())return 1;const s=1+this.projectedModelLineLineCounts.getPrefixSum(e);return this.modelLineProjections[e].getViewLineNumberOfModelPosition(s,this.model.getLineMaxColumn(e+1))}getDecorationsInRange(t,i,e,s,n){const o=this.convertViewPositionToModelPosition(t.startLineNumber,t.startColumn),r=this.convertViewPositionToModelPosition(t.endLineNumber,t.endColumn);if(r.lineNumber-o.lineNumber<=t.endLineNumber-t.startLineNumber)return this.model.getDecorationsInRange(new Ms(o.lineNumber,1,r.lineNumber,r.column),i,e,s,n);let h=[];const c=o.lineNumber-1,a=r.lineNumber-1;let l=null;for(let t=c;t<=a;t++)if(this.modelLineProjections[t].isVisible())null===l&&(l=new As(t+1,t===c?o.column:1));else if(null!==l){const n=this.model.getLineMaxColumn(t);h=h.concat(this.model.getDecorationsInRange(new Ms(l.lineNumber,l.column,t,n),i,e,s)),l=null}null!==l&&(h=h.concat(this.model.getDecorationsInRange(new Ms(l.lineNumber,l.column,r.lineNumber,r.column),i,e,s)),l=null),h.sort(((t,i)=>{const e=Ms.compareRangesUsingStarts(t.range,i.range);return 0===e?t.idi.id?1:0:e}));const u=[];let d=0,f=null;for(const t of h){const i=t.id;f!==i&&(f=i,u[d++]=t)}return u}getInjectedTextAt(t){const i=this.getViewLineInfo(t.lineNumber);return this.modelLineProjections[i.modelLineNumber-1].getInjectedTextAt(i.modelLineWrappedLineIdx,t.column)}normalizePosition(t,i){const e=this.getViewLineInfo(t.lineNumber);return this.modelLineProjections[e.modelLineNumber-1].normalizePosition(e.modelLineWrappedLineIdx,t,i)}getLineIndentColumn(t){const i=this.getViewLineInfo(t);return 0===i.modelLineWrappedLineIdx?this.model.getLineIndentColumn(i.modelLineNumber):0}}class VF{constructor(t,i){this.modelLineNumber=t,this.modelLineWrappedLineIdx=i}}class UF{constructor(t,i){this.modelRange=t,this.viewLines=i}}class qF{constructor(t){this._lines=t}convertViewPositionToModelPosition(t){return this._lines.convertViewPositionToModelPosition(t.lineNumber,t.column)}convertViewRangeToModelRange(t){return this._lines.convertViewRangeToModelRange(t)}validateViewPosition(t,i){return this._lines.validateViewPosition(t.lineNumber,t.column,i)}validateViewRange(t,i){return this._lines.validateViewRange(t,i)}convertModelPositionToViewPosition(t,i,e,s){return this._lines.convertModelPositionToViewPosition(t.lineNumber,t.column,i,e,s)}convertModelRangeToViewRange(t,i){return this._lines.convertModelRangeToViewRange(t,i)}modelPositionIsVisible(t){return this._lines.modelPositionIsVisible(t.lineNumber,t.column)}getModelLineViewLineCount(t){return this._lines.getModelLineViewLineCount(t)}getViewLineNumberOfModelPosition(t,i){return this._lines.getViewLineNumberOfModelPosition(t,i)}}class KF{constructor(t){this.model=t}dispose(){}createCoordinatesConverter(){return new GF(this)}getHiddenAreas(){return[]}setHiddenAreas(t){return!1}setTabSize(t){return!1}setWrappingSettings(t,i,e,s){return!1}createLineBreaksComputer(){const t=[];return{addRequest:()=>{t.push(null)},finalize:()=>t}}onModelFlushed(){}onModelLinesDeleted(t,i,e){return new KL(i,e)}onModelLinesInserted(t,i,e,s){return new GL(i,e)}onModelLineChanged(t,i,e){return[!1,new qL(i,1),null,null]}acceptVersionId(t){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(t,i,e){return{startLineNumber:t,endLineNumber:t,indent:0}}getViewLinesBracketGuides(t,i,e){return new Array(i-t+1).fill([])}getViewLinesIndentGuides(t,i){const e=i-t+1,s=new Array(e);for(let t=0;ti)}getModelLineViewLineCount(t){return 1}getViewLineNumberOfModelPosition(t,i){return t}}class ZF extends te{constructor(t,i,e,s,n,o,r,h,c){if(super(),this.languageConfigurationService=r,this._themeService=h,this._attachedView=c,this.hiddenAreasModel=new YF,this.previousHiddenAreas=[],this._editorId=t,this._configuration=i,this.model=e,this._eventDispatcher=new iF,this.onEvent=this._eventDispatcher.onEvent,this.cursorConfig=new pC(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._updateConfigurationViewLineCount=this._register(new pc((()=>this._updateConfigurationViewLineCountNow()),0)),this._hasFocus=!1,this._viewportStart=QF.create(this.model),this.model.isTooLargeForTokenization())this._lines=new KF(this.model);else{const t=this._configuration.options,i=t.get(50),e=t.get(137),o=t.get(144),r=t.get(136),h=t.get(128);this._lines=new HF(this._editorId,this.model,s,n,i,this.model.getOptions().tabSize,e,o.wrappingColumn,r,h)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new mF(e,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new FF(this._configuration,this.getLineCount(),o)),this._register(this.viewLayout.onDidScroll((t=>{t.scrollTopChanged&&this._handleVisibleLinesChanged(),t.scrollTopChanged&&this._viewportStart.invalidate(),this._eventDispatcher.emitSingleViewEvent(new QL(t)),this._eventDispatcher.emitOutgoingEvent(new oF(t.oldScrollWidth,t.oldScrollLeft,t.oldScrollHeight,t.oldScrollTop,t.scrollWidth,t.scrollLeft,t.scrollHeight,t.scrollTop))}))),this._register(this.viewLayout.onDidContentSizeChange((t=>{this._eventDispatcher.emitOutgoingEvent(t)}))),this._decorations=new TF(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast((t=>{try{const i=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(i,t)}finally{this._eventDispatcher.endEmitViewEvents()}}))),this._register(iD.getInstance().onDidChange((()=>{this._eventDispatcher.emitSingleViewEvent(new XL)}))),this._register(this._themeService.onDidColorThemeChange((t=>{this._invalidateDecorationsColorCache(),this._eventDispatcher.emitSingleViewEvent(new JL(t))}))),this._updateConfigurationViewLineCountNow()}dispose(){super.dispose(),this._decorations.dispose(),this._lines.dispose(),this._viewportStart.dispose(),this._eventDispatcher.dispose()}createLineBreaksComputer(){return this._lines.createLineBreaksComputer()}addViewEventHandler(t){this._eventDispatcher.addViewEventHandler(t)}removeViewEventHandler(t){this._eventDispatcher.removeViewEventHandler(t)}_updateConfigurationViewLineCountNow(){this._configuration.setViewLineCount(this._lines.getViewLineCount())}getModelVisibleRanges(){const t=this.viewLayout.getLinesViewportData(),i=new Ms(t.startLineNumber,this.getLineMinColumn(t.startLineNumber),t.endLineNumber,this.getLineMaxColumn(t.endLineNumber));return this._toModelVisibleRanges(i)}visibleLinesStabilized(){const t=this.getModelVisibleRanges();this._attachedView.setVisibleLines(t,!0)}_handleVisibleLinesChanged(){const t=this.getModelVisibleRanges();this._attachedView.setVisibleLines(t,!1)}setHasFocus(t){this._hasFocus=t,this._cursor.setHasFocus(t),this._eventDispatcher.emitSingleViewEvent(new HL(t)),this._eventDispatcher.emitOutgoingEvent(new nF(!t,t))}onCompositionStart(){this._eventDispatcher.emitSingleViewEvent(new BL)}onCompositionEnd(){this._eventDispatcher.emitSingleViewEvent(new PL)}_captureStableViewport(){if(this._viewportStart.isValid&&this.viewLayout.getCurrentScrollTop()>0){const t=new As(this._viewportStart.viewLineNumber,this.getLineMinColumn(this._viewportStart.viewLineNumber)),i=this.coordinatesConverter.convertViewPositionToModelPosition(t);return new tT(i,this._viewportStart.startLineDelta)}return new tT(null,0)}_onConfigurationChanged(t,i){const e=this._captureStableViewport(),s=this._configuration.options,n=s.get(50),o=s.get(137),r=s.get(144),h=s.get(136),c=s.get(128);this._lines.setWrappingSettings(n,o,r.wrappingColumn,h,c)&&(t.emitViewEvent(new zL),t.emitViewEvent(new UL),t.emitViewEvent(new jL(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this._updateConfigurationViewLineCount.schedule()),i.hasChanged(90)&&(this._decorations.reset(),t.emitViewEvent(new jL(null))),i.hasChanged(97)&&(this._decorations.reset(),t.emitViewEvent(new jL(null))),t.emitViewEvent(new $L(i)),this.viewLayout.onConfigurationChanged(i),e.recoverViewportStart(this.coordinatesConverter,this.viewLayout),pC.shouldRecreate(i)&&(this.cursorConfig=new pC(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig))}_registerModelEvents(){this._register(this.model.onDidChangeContentOrInjectedText((t=>{try{const i=this._eventDispatcher.beginEmitViewEvents();let e=!1,s=!1;const n=t instanceof rL?t.rawContentChangedEvent.changes:t.changes,o=t instanceof rL?t.rawContentChangedEvent.versionId:null,r=this._lines.createLineBreaksComputer();for(const t of n)switch(t.changeType){case 4:for(let i=0;i!t.ownerId||t.ownerId===this._editorId))),r.addRequest(e,s,null)}break;case 2:{let i=null;t.injectedText&&(i=t.injectedText.filter((t=>!t.ownerId||t.ownerId===this._editorId))),r.addRequest(t.detail,i,null);break}}const h=r.finalize(),c=new _(h);for(const t of n)switch(t.changeType){case 1:this._lines.onModelFlushed(),i.emitViewEvent(new zL),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount()),e=!0;break;case 3:{const s=this._lines.onModelLinesDeleted(o,t.fromLineNumber,t.toLineNumber);null!==s&&(i.emitViewEvent(s),this.viewLayout.onLinesDeleted(s.fromLineNumber,s.toLineNumber)),e=!0;break}case 4:{const s=c.takeCount(t.detail.length),n=this._lines.onModelLinesInserted(o,t.fromLineNumber,t.toLineNumber,s);null!==n&&(i.emitViewEvent(n),this.viewLayout.onLinesInserted(n.fromLineNumber,n.toLineNumber)),e=!0;break}case 2:{const e=c.dequeue(),[n,r,h,a]=this._lines.onModelLineChanged(o,t.lineNumber,e);s=n,r&&i.emitViewEvent(r),h&&(i.emitViewEvent(h),this.viewLayout.onLinesInserted(h.fromLineNumber,h.toLineNumber)),a&&(i.emitViewEvent(a),this.viewLayout.onLinesDeleted(a.fromLineNumber,a.toLineNumber));break}}null!==o&&this._lines.acceptVersionId(o),this.viewLayout.onHeightMaybeChanged(),!e&&s&&(i.emitViewEvent(new UL),i.emitViewEvent(new jL(null)),this._cursor.onLineMappingChanged(i),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}const i=this._viewportStart.isValid;if(this._viewportStart.invalidate(),this._configuration.setModelLineCount(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&i){const t=this.model._getTrackedRange(this._viewportStart.modelTrackedRange);if(t){const i=this.coordinatesConverter.convertModelPositionToViewPosition(t.getStartPosition()),e=this.viewLayout.getVerticalOffsetForLineNumber(i.lineNumber);this.viewLayout.setScrollPosition({scrollTop:e+this._viewportStart.startLineDelta},1)}}try{const i=this._eventDispatcher.beginEmitViewEvents();t instanceof rL&&i.emitOutgoingEvent(new fF(t.contentChangedEvent)),this._cursor.onModelContentChanged(i,t)}finally{this._eventDispatcher.endEmitViewEvents()}this._handleVisibleLinesChanged()}))),this._register(this.model.onDidChangeTokens((t=>{const i=[];for(let e=0,s=t.ranges.length;e{this._eventDispatcher.emitSingleViewEvent(new VL),this.cursorConfig=new pC(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new dF(t))}))),this._register(this.model.onDidChangeLanguage((t=>{this.cursorConfig=new pC(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new uF(t))}))),this._register(this.model.onDidChangeOptions((t=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{const t=this._eventDispatcher.beginEmitViewEvents();t.emitViewEvent(new zL),t.emitViewEvent(new UL),t.emitViewEvent(new jL(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}this.cursorConfig=new pC(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new pF(t))}))),this._register(this.model.onDidChangeDecorations((t=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new jL(t)),this._eventDispatcher.emitOutgoingEvent(new lF(t))})))}setHiddenAreas(t,i){var e;this.hiddenAreasModel.setHiddenAreas(i,t);const s=this.hiddenAreasModel.getMergedRanges();if(s===this.previousHiddenAreas)return;this.previousHiddenAreas=s;const n=this._captureStableViewport();let o=!1;try{const t=this._eventDispatcher.beginEmitViewEvents();o=this._lines.setHiddenAreas(s),o&&(t.emitViewEvent(new zL),t.emitViewEvent(new UL),t.emitViewEvent(new jL(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged());const i=null===(e=n.viewportStartModelPosition)||void 0===e?void 0:e.lineNumber,r=i&&s.some((t=>t.startLineNumber<=i&&i<=t.endLineNumber));r||n.recoverViewportStart(this.coordinatesConverter,this.viewLayout)}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule(),o&&this._eventDispatcher.emitOutgoingEvent(new hF)}getVisibleRangesPlusViewportAboveBelow(){const t=this._configuration.options.get(143),i=this._configuration.options.get(66),e=Math.max(20,Math.round(t.height/i)),s=this.viewLayout.getLinesViewportData(),n=Math.max(1,s.completelyVisibleStartLineNumber-e),o=Math.min(this.getLineCount(),s.completelyVisibleEndLineNumber+e);return this._toModelVisibleRanges(new Ms(n,this.getLineMinColumn(n),o,this.getLineMaxColumn(o)))}getVisibleRanges(){const t=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(t)}getHiddenAreas(){return this._lines.getHiddenAreas()}_toModelVisibleRanges(t){const i=this.coordinatesConverter.convertViewRangeToModelRange(t),e=this._lines.getHiddenAreas();if(0===e.length)return[i];const s=[];let n=0,o=i.startLineNumber,r=i.startColumn;const h=i.endLineNumber,c=i.endColumn;for(let t=0,i=e.length;th||(oi.toInlineDecoration(t)))]),new nm(o.minColumn,o.maxColumn,o.content,o.continuesWithWrappedLine,e,s,o.tokens,i,n,o.startVisibleColumn)}getViewLineData(t){return this._lines.getViewLineData(t)}getMinimapLinesRenderingData(t,i,e){const s=this._lines.getViewLinesData(t,i,e);return new em(this.getTabSize(),s)}getAllOverviewRulerDecorations(t){const i=this.model.getOverviewRulerDecorations(this._editorId,ki(this._configuration.options)),e=new JF;for(const s of i){const i=s.options,n=i.overviewRuler;if(!n)continue;const o=n.position;if(0===o)continue;const r=n.getColor(t.value),h=this.coordinatesConverter.getViewLineNumberOfModelPosition(s.range.startLineNumber,s.range.startColumn),c=this.coordinatesConverter.getViewLineNumberOfModelPosition(s.range.endLineNumber,s.range.endColumn);e.accept(r,i.zIndex,h,c,o)}return e.asArray}_invalidateDecorationsColorCache(){const t=this.model.getOverviewRulerDecorations();for(const i of t){const t=i.options.overviewRuler;null==t||t.invalidateCachedColor();const e=i.options.minimap;null==e||e.invalidateCachedColor()}}getValueInRange(t,i){const e=this.coordinatesConverter.convertViewRangeToModelRange(t);return this.model.getValueInRange(e,i)}getValueLengthInRange(t,i){const e=this.coordinatesConverter.convertViewRangeToModelRange(t);return this.model.getValueLengthInRange(e,i)}modifyPosition(t,i){const e=this.coordinatesConverter.convertViewPositionToModelPosition(t);return this.model.modifyPosition(e,i)}deduceModelPositionRelativeToViewPosition(t,i,e){const s=this.coordinatesConverter.convertViewPositionToModelPosition(t);2===this.model.getEOL().length&&(i<0?i-=e:i+=e);const n=this.model.getOffsetAt(s);return this.model.getPositionAt(n+i)}getPlainTextToCopy(t,i,e){const s=e?"\r\n":this.model.getEOL();(t=t.slice(0)).sort(Ms.compareRangesUsingStarts);let n=!1,o=!1;for(const i of t)i.isEmpty()?n=!0:o=!0;if(!o){if(!i)return"";const e=t.map((t=>t.startLineNumber));let n="";for(let t=0;t0&&e[t-1]===e[t]||(n+=this.model.getLineContent(e[t])+s);return n}if(n&&i){const i=[];let s=0;for(const n of t){const t=n.startLineNumber;n.isEmpty()?t!==s&&i.push(this.model.getLineContent(t)):i.push(this.model.getValueInRange(n,e?2:0)),s=t}return 1===i.length?i[0]:i}const r=[];for(const i of t)i.isEmpty()||r.push(this.model.getValueInRange(i,e?2:0));return 1===r.length?r[0]:r}getRichTextToCopy(t,i){const e=this.model.getLanguageId();if(e===Ud)return null;if(1!==t.length)return null;let s=t[0];if(s.isEmpty()){if(!i)return null;const t=s.startLineNumber;s=new Ms(t,this.model.getLineMinColumn(t),t,this.model.getLineMaxColumn(t))}const n=this._configuration.options.get(50),o=this._getColorMap();let r;return/[:;\\\/<>]/.test(n.fontFamily)||n.fontFamily===Ri.fontFamily?r=Ri.fontFamily:(r=n.fontFamily,r=r.replace(/"/g,"'"),/[,']/.test(r)||/[+ ]/.test(r)&&(r=`'${r}'`),r=`${r}, ${Ri.fontFamily}`),{mode:e,html:`
      `+this._getHTMLToCopy(s,o)+"
      "}}_getHTMLToCopy(t,i){const e=t.startLineNumber,s=t.startColumn,n=t.endLineNumber,o=t.endColumn,r=this.getTabSize();let h="";for(let t=e;t<=n;t++){const c=this.model.tokenization.getLineTokens(t),a=c.getLineContent(),l=t===e?s-1:0,u=t===n?o-1:a.length;h+=""===a?"
      ":CF(a,c.inflate(),i,l,u,r,xt)}return h}_getColorMap(){const t=Zs.getColorMap(),i=["#000000"];if(t)for(let e=1,s=t.length;ethis._cursor.setStates(s,t,i,e)))}getCursorColumnSelectData(){return this._cursor.getCursorColumnSelectData()}getCursorAutoClosedCharacters(){return this._cursor.getAutoClosedCharacters()}setCursorColumnSelectData(t){this._cursor.setCursorColumnSelectData(t)}getPrevEditOperationType(){return this._cursor.getPrevEditOperationType()}setPrevEditOperationType(t){this._cursor.setPrevEditOperationType(t)}getSelection(){return this._cursor.getSelection()}getSelections(){return this._cursor.getSelections()}getPosition(){return this._cursor.getPrimaryCursorState().modelState.position}setSelections(t,i,e=0){this._withViewEventsCollector((s=>this._cursor.setSelections(s,t,i,e)))}saveCursorState(){return this._cursor.saveState()}restoreCursorState(t){this._withViewEventsCollector((i=>this._cursor.restoreState(i,t)))}_executeCursorEdit(t){this._cursor.context.cursorConfig.readOnly?this._eventDispatcher.emitOutgoingEvent(new aF):this._withViewEventsCollector(t)}executeEdits(t,i,e){this._executeCursorEdit((s=>this._cursor.executeEdits(s,t,i,e)))}startComposition(){this._executeCursorEdit((t=>this._cursor.startComposition(t)))}endComposition(t){this._executeCursorEdit((i=>this._cursor.endComposition(i,t)))}type(t,i){this._executeCursorEdit((e=>this._cursor.type(e,t,i)))}compositionType(t,i,e,s,n){this._executeCursorEdit((o=>this._cursor.compositionType(o,t,i,e,s,n)))}paste(t,i,e,s){this._executeCursorEdit((n=>this._cursor.paste(n,t,i,e,s)))}cut(t){this._executeCursorEdit((i=>this._cursor.cut(i,t)))}executeCommand(t,i){this._executeCursorEdit((e=>this._cursor.executeCommand(e,t,i)))}executeCommands(t,i){this._executeCursorEdit((e=>this._cursor.executeCommands(e,t,i)))}revealPrimaryCursor(t,i,e=!1){this._withViewEventsCollector((s=>this._cursor.revealPrimary(s,t,e,0,i,0)))}revealTopMostCursor(t){const i=this._cursor.getTopMostViewPosition(),e=new Ms(i.lineNumber,i.column,i.lineNumber,i.column);this._withViewEventsCollector((i=>i.emitViewEvent(new ZL(t,!1,e,null,0,!0,0))))}revealBottomMostCursor(t){const i=this._cursor.getBottomMostViewPosition(),e=new Ms(i.lineNumber,i.column,i.lineNumber,i.column);this._withViewEventsCollector((i=>i.emitViewEvent(new ZL(t,!1,e,null,0,!0,0))))}revealRange(t,i,e,s,n){this._withViewEventsCollector((o=>o.emitViewEvent(new ZL(t,!1,e,null,s,i,n))))}changeWhitespace(t){this.viewLayout.changeWhitespace(t)&&(this._eventDispatcher.emitSingleViewEvent(new tF),this._eventDispatcher.emitOutgoingEvent(new rF))}_withViewEventsCollector(t){try{return t(this._eventDispatcher.beginEmitViewEvents())}finally{this._eventDispatcher.endEmitViewEvents()}}normalizePosition(t,i){return this._lines.normalizePosition(t,i)}getLineIndentColumn(t){return this._lines.getLineIndentColumn(t)}}class QF{static create(t){const i=t._setTrackedRange(null,new Ms(1,1,1,1),1);return new QF(t,1,!1,i,0)}get viewLineNumber(){return this._viewLineNumber}get isValid(){return this._isValid}get modelTrackedRange(){return this._modelTrackedRange}get startLineDelta(){return this._startLineDelta}constructor(t,i,e,s,n){this._model=t,this._viewLineNumber=i,this._isValid=e,this._modelTrackedRange=s,this._startLineDelta=n}dispose(){this._model._setTrackedRange(this._modelTrackedRange,null,1)}update(t,i){const e=t.coordinatesConverter.convertViewPositionToModelPosition(new As(i,t.getLineMinColumn(i))),s=t.model._setTrackedRange(this._modelTrackedRange,new Ms(e.lineNumber,e.column,e.lineNumber,e.column),1),n=t.viewLayout.getVerticalOffsetForLineNumber(i),o=t.viewLayout.getCurrentScrollTop();this._viewLineNumber=i,this._isValid=!0,this._modelTrackedRange=s,this._startLineDelta=o-n}invalidate(){this._isValid=!1}}class JF{constructor(){this._asMap=Object.create(null),this.asArray=[]}accept(t,i,e,s,n){const o=this._asMap[t];if(o){const t=o.data,i=t[t.length-1];if(t[t.length-3]===n&&i+1>=e)return void(s>i&&(t[t.length-1]=s));t.push(n,e,s)}else{const o=new cm(t,i,[n,e,s]);this._asMap[t]=o,this.asArray.push(o)}}}class YF{constructor(){this.hiddenAreas=new Map,this.shouldRecompute=!1,this.ranges=[]}setHiddenAreas(t,i){const e=this.hiddenAreas.get(t);e&&XF(e,i)||(this.hiddenAreas.set(t,i),this.shouldRecompute=!0)}getMergedRanges(){if(!this.shouldRecompute)return this.ranges;this.shouldRecompute=!1;const t=Array.from(this.hiddenAreas.values()).reduce(((t,i)=>function(t,i){const e=[];let s=0,n=0;for(;s0?this.wrappedTextIndentLength:0}getLineLength(t){let i=this.breakOffsets[t]-(t>0?this.breakOffsets[t-1]:0);return t>0&&(i+=this.wrappedTextIndentLength),i}getMaxOutputOffset(t){return this.getLineLength(t)}translateToInputOffset(t,i){t>0&&(i=Math.max(0,i-this.wrappedTextIndentLength));let e=0===t?i:this.breakOffsets[t-1]+i;if(null!==this.injectionOffsets)for(let t=0;tthis.injectionOffsets[t];t++)e0?this.breakOffsets[n-1]:0,0===i)if(t<=o)s=n-1;else{if(!(t>r))break;e=n+1}else if(t=r))break;e=n+1}}let r=t-o;return n>0&&(r+=this.wrappedTextIndentLength),new aT(n,r)}normalizeOutputPosition(t,i,e){if(null!==this.injectionOffsets){const s=this.outputPositionToOffsetInInputWithInjections(t,i),n=this.normalizeOffsetInInputWithInjectionsAroundInjections(s,e);if(n!==s)return this.offsetInInputWithInjectionsToOutputPosition(n,e)}if(0===e){if(t>0&&i===this.getMinOutputOffset(t))return new aT(t-1,this.getMaxOutputOffset(t-1))}else if(1===e&&t0&&(i=Math.max(0,i-this.wrappedTextIndentLength)),(t>0?this.breakOffsets[t-1]:0)+i}normalizeOffsetInInputWithInjectionsAroundInjections(t,i){const e=this.getInjectedTextAtOffset(t);if(!e)return t;if(2===i){if(t===e.offsetInInputWithInjections+e.length&&hT(this.injectionOptions[e.injectedTextIndex].cursorStops))return e.offsetInInputWithInjections+e.length;{let t=e.offsetInInputWithInjections;if(cT(this.injectionOptions[e.injectedTextIndex].cursorStops))return t;let i=e.injectedTextIndex-1;for(;i>=0&&this.injectionOffsets[i]===this.injectionOffsets[e.injectedTextIndex]&&!hT(this.injectionOptions[i].cursorStops)&&(t-=this.injectionOptions[i].content.length,!cT(this.injectionOptions[i].cursorStops));)i--;return t}}if(1===i||4===i){let t=e.offsetInInputWithInjections+e.length,i=e.injectedTextIndex;for(;i+1=0&&this.injectionOffsets[i-1]===this.injectionOffsets[i];)t-=this.injectionOptions[i-1].content.length,i--;return t}xh()}getInjectedText(t,i){const e=this.outputPositionToOffsetInInputWithInjections(t,i),s=this.getInjectedTextAtOffset(e);return s?{options:this.injectionOptions[s.injectedTextIndex]}:null}getInjectedTextAtOffset(t){const i=this.injectionOffsets,e=this.injectionOptions;if(null!==i){let s=0;for(let n=0;nt)break;if(t<=h)return{injectedTextIndex:n,offsetInInputWithInjections:r,length:o};s+=o}}}}function hT(t){return null==t||t===Pf.Right||t===Pf.Both}function cT(t){return null==t||t===Pf.Left||t===Pf.Both}class aT{constructor(t,i){this.outputLineIndex=t,this.outputOffset=i}toString(){return`${this.outputLineIndex}:${this.outputOffset}`}toPosition(t){return new As(t+this.outputLineIndex,this.outputOffset+1)}}class lT{static create(t){return new lT(t.get(132),t.get(131))}constructor(t,i){this.classifier=new uT(t,i)}createLineBreaksComputer(t,i,e,s,n){const o=[],r=[],h=[];return{addRequest:(t,i,e)=>{o.push(t),r.push(i),h.push(e)},finalize:()=>{const c=t.typicalFullwidthCharacterWidth/t.typicalHalfwidthCharacterWidth,a=[];for(let t=0,l=o.length;t=0&&t<256?this._asciiMap[t]:t>=12352&&t<=12543||t>=13312&&t<=19903||t>=19968&&t<=40959?3:this._map.get(t)||this._defaultValue}}let dT=[],fT=[];function pT(t,i,e,s,n,o,r,h){if(-1===n)return null;const c=e.length;if(c<=1)return null;const a="keepAll"===h,l=i.breakOffsets,u=i.breakOffsetsVisibleColumn,d=bT(e,s,n,o,r),f=n-d,p=dT,g=fT;let m=0,w=0,v=0,b=n;const y=l.length;let k=0;if(k>=0){let t=Math.abs(u[k]-b);for(;k+1=t)break;t=i,k++}}for(;ki&&(i=w,n=v);let r=0,h=0,d=0,x=0;if(n<=b){let v=n,y=0===i?0:e.charCodeAt(i-1),k=0===i?0:t.get(y),C=!0;for(let n=i;nw&&vT(0,k,c,l,a)&&(r=i,h=v),v+=u,v>b){i>w?(d=i,x=v-u):(d=n+1,x=v),v-h>f&&(r=0),C=!1;break}y=c,k=l}if(C){m>0&&(p[m]=l[l.length-1],g[m]=u[l.length-1],m++);break}}if(0===r){let c=n,l=e.charCodeAt(i),u=t.get(l),p=!1;for(let s=i-1;s>=w;s--){const i=s+1,n=e.charCodeAt(s);if(9===n){p=!0;break}let g,m;if(mo(n)?(s--,g=0,m=2):(g=t.get(n),m=Lo(n)?o:1),c<=b){if(0===d&&(d=i,x=c),c<=b-f)break;if(vT(0,g,l,u,a)){r=i,h=c;break}}c-=m,l=n,u=g}if(0!==r){const t=f-(x-h);if(t<=s){const i=e.charCodeAt(d);let n;n=go(i)?2:mT(i,x,s,o),t-n<0&&(r=0)}}if(p){k--;continue}}if(0===r&&(r=d,h=x),r<=w){const t=e.charCodeAt(w);go(t)?(r=w+2,h=v+2):(r=w+1,h=v+mT(t,v,s,o))}for(w=r,p[m]=r,v=h,g[m]=h,m++,b=h+f;k<0||k=C)break;C=t,k++}}return 0===m?null:(p.length=m,g.length=m,dT=i.breakOffsets,fT=i.breakOffsetsVisibleColumn,i.breakOffsets=p,i.breakOffsetsVisibleColumn=g,i.wrappedTextIndentLength=d,i)}function gT(t,i,e,s,n,o,r,h){const c=XM.applyInjectedText(i,e);let a,l;if(e&&e.length>0?(a=e.map((t=>t.options)),l=e.map((t=>t.column-1))):(a=null,l=null),-1===n)return a?new rT(l,a,[c.length],[],0):null;const u=c.length;if(u<=1)return a?new rT(l,a,[c.length],[],0):null;const d="keepAll"===h,f=bT(c,s,n,o,r),p=n-f,g=[],m=[];let w=0,v=0,b=0,y=n,k=c.charCodeAt(0),x=t.get(k),C=mT(k,0,s,o),S=1;go(k)&&(C+=1,k=c.charCodeAt(1),x=t.get(k),S++);for(let i=S;iy&&((0===v||C-b>p)&&(v=e,b=C-h),g[w]=v,m[w]=b,w++,y=b+p,v=0),k=n,x=r}return 0!==w||e&&0!==e.length?(g[w]=u,m[w]=C,new rT(l,a,g,m,f)):null}function mT(t,i,e,s){return 9===t?e-i%e:Lo(t)||t<32?s:1}function wT(t,i){return i-t%i}function vT(t,i,e,s,n){return 32!==e&&(2===i&&2!==s||1!==i&&1===s||!n&&3===i&&2!==s||!n&&3===s&&1!==i)}function bT(t,i,e,s,n){let o=0;if(0!==n){const r=to(t);if(-1!==r){for(let e=0;ee&&(o=0)}}return o}const yT=Mu("domLineBreaksComputer",{createHTML:t=>t});class kT{static create(t){return new kT(new WeakRef(t))}constructor(t){this.targetWindow=t}createLineBreaksComputer(t,i,e,s,n){const o=[],r=[];return{addRequest:(t,i)=>{o.push(t),r.push(i)},finalize:()=>function(t,i,e,s,n,o,r,h){var c;function a(t){const e=h[t];if(e){const s=XM.applyInjectedText(i[t],e),n=e.map((t=>t.options)),o=e.map((t=>t.column-1));return new rT(o,n,[s.length],[],0)}return null}if(-1===n){const t=[];for(let e=0,s=i.length;el?(r=0,c=0):a=l-t}const u=n.substr(r),f=xT(u,c,s,a,p,d);g[t]=r,m[t]=c,w[t]=u,v[t]=f[0],b[t]=f[1]}const y=p.build(),k=null!==(c=null==yT?void 0:yT.createHTML(y))&&void 0!==c?c:y;f.innerHTML=k,f.style.position="absolute",f.style.top="10000","keepAll"===r?(f.style.wordBreak="keep-all",f.style.overflowWrap="anywhere"):(f.style.wordBreak="inherit",f.style.overflowWrap="break-word"),t.document.body.appendChild(f);const x=document.createRange(),C=Array.prototype.slice.call(f.children,0),S=[];for(let t=0;tt.options)),c=l.map((t=>t.column-1))):(r=null,c=null),S[t]=new rT(c,r,i,o,s)}return t.document.body.removeChild(f),S}(K(this.targetWindow.deref()),o,t,i,e,s,n,r)}}}function xT(t,i,e,s,n,o){if(0!==o){const t=String(o);n.appendString('
      ');const r=t.length;let h=i,c=0;const a=[],l=[];let u=0");for(let i=0;i"),a[i]=c,l[i]=h;const s=u;u=i+1"),a[t.length]=c,l[t.length]=h,n.appendString("
      "),[a,l]}function CT(t,i,e,s){if(e.length<=1)return null;const n=Array.prototype.slice.call(i.children,0),o=[];try{ST(t,n,s,0,null,e.length-1,null,o)}catch(t){return console.log(t),null}return 0===o.length?null:(o.push(e.length),o)}function ST(t,i,e,s,n,o,r,h){if(s===o)return;if(n=n||DT(t,i,e[s],e[s+1]),r=r||DT(t,i,e[o],e[o+1]),Math.abs(n[0].top-r[0].top)<=.1)return;if(s+1===o)return void h.push(o);const c=s+(o-s)/2|0,a=DT(t,i,e[c],e[c+1]);ST(t,i,e,s,n,c,a,h),ST(t,i,e,c,a,o,r,h)}function DT(t,i,e,s){return t.setStart(i[e/16384|0].firstChild,e%16384),t.setEnd(i[s/16384|0].firstChild,s%16384),t.getClientRects()}class ET extends te{constructor(){super(),this._editor=null,this._instantiationService=null,this._instances=this._register(new ne),this._pending=new Map,this._finishedInstantiation=[],this._finishedInstantiation[0]=!1,this._finishedInstantiation[1]=!1,this._finishedInstantiation[2]=!1,this._finishedInstantiation[3]=!1}initialize(t,i,e){this._editor=t,this._instantiationService=e;for(const t of i)this._pending.has(t.id)?Bi(new Error(`Cannot have two contributions with the same id ${t.id}`)):this._pending.set(t.id,t);this._instantiateSome(0),this._register(Ka(Na(this._editor.getDomNode()),(()=>{this._instantiateSome(1)}))),this._register(Ka(Na(this._editor.getDomNode()),(()=>{this._instantiateSome(2)}))),this._register(Ka(Na(this._editor.getDomNode()),(()=>{this._instantiateSome(3)}),5e3))}saveViewState(){const t={};for(const[i,e]of this._instances)"function"==typeof e.saveViewState&&(t[i]=e.saveViewState());return t}restoreViewState(t){for(const[i,e]of this._instances)"function"==typeof e.restoreViewState&&e.restoreViewState(t[i])}get(t){return this._instantiateById(t),this._instances.get(t)||null}onBeforeInteractionEvent(){this._instantiateSome(2)}onAfterModelAttached(){var t;this._register(Ka(Na(null===(t=this._editor)||void 0===t?void 0:t.getDomNode()),(()=>{this._instantiateSome(1)}),50))}_instantiateSome(t){if(this._finishedInstantiation[t])return;this._finishedInstantiation[t]=!0;const i=this._findPendingContributionsByInstantiation(t);for(const t of i)this._instantiateById(t.id)}_findPendingContributionsByInstantiation(t){const i=[];for(const[,e]of this._pending)e.instantiation===t&&i.push(e);return i}_instantiateById(t){const i=this._pending.get(t);if(i){if(this._pending.delete(t),!this._instantiationService||!this._editor)throw new Error("Cannot instantiate contributions before being initialized!");try{const t=this._instantiationService.createInstance(i.ctor,this._editor);this._instances.set(i.id,t),"function"==typeof t.restoreViewState&&0!==i.instantiation&&console.warn(`Editor contribution '${i.id}' should be eager instantiated because it uses saveViewState / restoreViewState.`)}catch(t){Bi(t)}}}}var AT,MT=function(t,i){return function(e,s){i(e,s,t)}};let LT=0;class FT{constructor(t,i,e,s,n,o){this.model=t,this.viewModel=i,this.view=e,this.hasRealView=s,this.listenersToRemove=n,this.attachedView=o}dispose(){Qi(this.listenersToRemove),this.model.onBeforeDetached(this.attachedView),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}}let TT=AT=class extends te{get isSimpleWidget(){return this._configuration.isSimpleWidget}constructor(t,i,e,s,n,o,r,h,c,a,l,u){var d;super(),this.languageConfigurationService=l,this._deliveryQueue=new fe,this._contributions=this._register(new ET),this._onDidDispose=this._register(new de),this.onDidDispose=this._onDidDispose.event,this._onDidChangeModelContent=this._register(new de({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelContent=this._onDidChangeModelContent.event,this._onDidChangeModelLanguage=this._register(new de({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguage=this._onDidChangeModelLanguage.event,this._onDidChangeModelLanguageConfiguration=this._register(new de({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguageConfiguration=this._onDidChangeModelLanguageConfiguration.event,this._onDidChangeModelOptions=this._register(new de({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelOptions=this._onDidChangeModelOptions.event,this._onDidChangeModelDecorations=this._register(new de({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelDecorations=this._onDidChangeModelDecorations.event,this._onDidChangeModelTokens=this._register(new de({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelTokens=this._onDidChangeModelTokens.event,this._onDidChangeConfiguration=this._register(new de({deliveryQueue:this._deliveryQueue})),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._onDidChangeModel=this._register(new de({deliveryQueue:this._deliveryQueue})),this.onDidChangeModel=this._onDidChangeModel.event,this._onDidChangeCursorPosition=this._register(new de({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorPosition=this._onDidChangeCursorPosition.event,this._onDidChangeCursorSelection=this._register(new de({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorSelection=this._onDidChangeCursorSelection.event,this._onDidAttemptReadOnlyEdit=this._register(new OT(this._contributions,this._deliveryQueue)),this.onDidAttemptReadOnlyEdit=this._onDidAttemptReadOnlyEdit.event,this._onDidLayoutChange=this._register(new de({deliveryQueue:this._deliveryQueue})),this.onDidLayoutChange=this._onDidLayoutChange.event,this._editorTextFocus=this._register(new RT({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorText=this._editorTextFocus.onDidChangeToTrue,this.onDidBlurEditorText=this._editorTextFocus.onDidChangeToFalse,this._editorWidgetFocus=this._register(new RT({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorWidget=this._editorWidgetFocus.onDidChangeToTrue,this.onDidBlurEditorWidget=this._editorWidgetFocus.onDidChangeToFalse,this._onWillType=this._register(new OT(this._contributions,this._deliveryQueue)),this.onWillType=this._onWillType.event,this._onDidType=this._register(new OT(this._contributions,this._deliveryQueue)),this.onDidType=this._onDidType.event,this._onDidCompositionStart=this._register(new OT(this._contributions,this._deliveryQueue)),this.onDidCompositionStart=this._onDidCompositionStart.event,this._onDidCompositionEnd=this._register(new OT(this._contributions,this._deliveryQueue)),this.onDidCompositionEnd=this._onDidCompositionEnd.event,this._onDidPaste=this._register(new OT(this._contributions,this._deliveryQueue)),this.onDidPaste=this._onDidPaste.event,this._onMouseUp=this._register(new OT(this._contributions,this._deliveryQueue)),this.onMouseUp=this._onMouseUp.event,this._onMouseDown=this._register(new OT(this._contributions,this._deliveryQueue)),this.onMouseDown=this._onMouseDown.event,this._onMouseDrag=this._register(new OT(this._contributions,this._deliveryQueue)),this.onMouseDrag=this._onMouseDrag.event,this._onMouseDrop=this._register(new OT(this._contributions,this._deliveryQueue)),this.onMouseDrop=this._onMouseDrop.event,this._onMouseDropCanceled=this._register(new OT(this._contributions,this._deliveryQueue)),this.onMouseDropCanceled=this._onMouseDropCanceled.event,this._onDropIntoEditor=this._register(new OT(this._contributions,this._deliveryQueue)),this.onDropIntoEditor=this._onDropIntoEditor.event,this._onContextMenu=this._register(new OT(this._contributions,this._deliveryQueue)),this.onContextMenu=this._onContextMenu.event,this._onMouseMove=this._register(new OT(this._contributions,this._deliveryQueue)),this.onMouseMove=this._onMouseMove.event,this._onMouseLeave=this._register(new OT(this._contributions,this._deliveryQueue)),this.onMouseLeave=this._onMouseLeave.event,this._onMouseWheel=this._register(new OT(this._contributions,this._deliveryQueue)),this.onMouseWheel=this._onMouseWheel.event,this._onKeyUp=this._register(new OT(this._contributions,this._deliveryQueue)),this.onKeyUp=this._onKeyUp.event,this._onKeyDown=this._register(new OT(this._contributions,this._deliveryQueue)),this.onKeyDown=this._onKeyDown.event,this._onDidContentSizeChange=this._register(new de({deliveryQueue:this._deliveryQueue})),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._onDidScrollChange=this._register(new de({deliveryQueue:this._deliveryQueue})),this.onDidScrollChange=this._onDidScrollChange.event,this._onDidChangeViewZones=this._register(new de({deliveryQueue:this._deliveryQueue})),this.onDidChangeViewZones=this._onDidChangeViewZones.event,this._onDidChangeHiddenAreas=this._register(new de({deliveryQueue:this._deliveryQueue})),this.onDidChangeHiddenAreas=this._onDidChangeHiddenAreas.event,this._actions=new Map,this._bannerDomNode=null,this._dropIntoEditorDecorations=this.createDecorationsCollection(),n.willCreateCodeEditor();const f={...i};let p;this._domElement=t,this._overflowWidgetsDomNode=f.overflowWidgetsDomNode,delete f.overflowWidgetsDomNode,this._id=++LT,this._decorationTypeKeysToIds={},this._decorationTypeSubtypes={},this._telemetryData=e.telemetryData,this._configuration=this._register(this._createConfiguration(e.isSimpleWidget||!1,f,a)),this._register(this._configuration.onDidChange((t=>{this._onDidChangeConfiguration.fire(t);const i=this._configuration.options;if(t.hasChanged(143)){const t=i.get(143);this._onDidLayoutChange.fire(t)}}))),this._contextKeyService=this._register(r.createScoped(this._domElement)),this._notificationService=c,this._codeEditorService=n,this._commandService=o,this._themeService=h,this._register(new IT(this,this._contextKeyService)),this._register(new _T(this,this._contextKeyService,u)),this._instantiationService=s.createChild(new iT([ah,this._contextKeyService])),this._modelData=null,this._focusTracker=new NT(t),this._register(this._focusTracker.onChange((()=>{this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())}))),this._contentWidgets={},this._overlayWidgets={},this._glyphMarginWidgets={},p=Array.isArray(e.contributions)?e.contributions:uu.getEditorContributions(),this._contributions.initialize(this,p,this._instantiationService);for(const t of uu.getEditorActions()){if(this._actions.has(t.id)){Bi(new Error(`Cannot have two actions with the same id ${t.id}`));continue}const i=new qD(t.id,t.label,t.alias,t.metadata,null!==(d=t.precondition)&&void 0!==d?d:void 0,(()=>this._instantiationService.invokeFunction((i=>Promise.resolve(t.runEditorCommand(i,this,null))))),this._contextKeyService);this._actions.set(i.id,i)}const g=()=>!this._configuration.options.get(90)&&this._configuration.options.get(36).enabled;this._register(new Zl(this._domElement,{onDragOver:t=>{if(!g())return;const i=this.getTargetAtClientPoint(t.clientX,t.clientY);(null==i?void 0:i.position)&&this.showDropIndicatorAt(i.position)},onDrop:async t=>{if(!g())return;if(this.removeDropIndicator(),!t.dataTransfer)return;const i=this.getTargetAtClientPoint(t.clientX,t.clientY);(null==i?void 0:i.position)&&this._onDropIntoEditor.fire({position:i.position,event:t})},onDragLeave:()=>{this.removeDropIndicator()},onDragEnd:()=>{this.removeDropIndicator()}})),this._codeEditorService.addCodeEditor(this)}writeScreenReaderContent(t){var i;null===(i=this._modelData)||void 0===i||i.view.writeScreenReaderContent(t)}_createConfiguration(t,i,e){return new Ym(t,i,this._domElement,e)}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return Og.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this),this._focusTracker.dispose(),this._actions.clear(),this._contentWidgets={},this._overlayWidgets={},this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),super.dispose()}invokeWithinContext(t){return this._instantiationService.invokeFunction(t)}updateOptions(t){this._configuration.updateOptions(t||{})}getOptions(){return this._configuration.options}getOption(t){return this._configuration.options.get(t)}getRawOptions(){return this._configuration.getRawOptions()}getOverflowWidgetsDomNode(){return this._overflowWidgetsDomNode}getConfiguredWordAtPosition(t){return this._modelData?FC.getWordAtPosition(this._modelData.model,this._configuration.options.get(129),t):null}getValue(t=null){if(!this._modelData)return"";let i=0;return t&&t.lineEnding&&"\n"===t.lineEnding?i=1:t&&t.lineEnding&&"\r\n"===t.lineEnding&&(i=2),this._modelData.model.getValue(i,!(!t||!t.preserveBOM))}setValue(t){this._modelData&&this._modelData.model.setValue(t)}getModel(){return this._modelData?this._modelData.model:null}setModel(t=null){const i=t;if(null===this._modelData&&null===i)return;if(this._modelData&&this._modelData.model===i)return;const e=this.hasTextFocus(),s=this._detachModel();this._attachModel(i),e&&this.hasModel()&&this.focus();const n={oldModelUrl:s?s.uri:null,newModelUrl:i?i.uri:null};this._removeDecorationTypes(),this._onDidChangeModel.fire(n),this._postDetachModelCleanup(s),this._contributions.onAfterModelAttached()}_removeDecorationTypes(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(const t in this._decorationTypeSubtypes){const i=this._decorationTypeSubtypes[t];for(const e in i)this._removeDecorationType(t+"-"+e)}this._decorationTypeSubtypes={}}}getVisibleRanges(){return this._modelData?this._modelData.viewModel.getVisibleRanges():[]}getVisibleRangesPlusViewportAboveBelow(){return this._modelData?this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow():[]}getWhitespaces(){return this._modelData?this._modelData.viewModel.viewLayout.getWhitespaces():[]}static _getVerticalOffsetAfterPosition(t,i,e,s){const n=t.model.validatePosition({lineNumber:i,column:e}),o=t.viewModel.coordinatesConverter.convertModelPositionToViewPosition(n);return t.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(o.lineNumber,s)}getTopForLineNumber(t,i=!1){return this._modelData?AT._getVerticalOffsetForPosition(this._modelData,t,1,i):-1}getTopForPosition(t,i){return this._modelData?AT._getVerticalOffsetForPosition(this._modelData,t,i,!1):-1}static _getVerticalOffsetForPosition(t,i,e,s=!1){const n=t.model.validatePosition({lineNumber:i,column:e}),o=t.viewModel.coordinatesConverter.convertModelPositionToViewPosition(n);return t.viewModel.viewLayout.getVerticalOffsetForLineNumber(o.lineNumber,s)}getBottomForLineNumber(t,i=!1){return this._modelData?AT._getVerticalOffsetAfterPosition(this._modelData,t,1,i):-1}setHiddenAreas(t,i){var e;null===(e=this._modelData)||void 0===e||e.viewModel.setHiddenAreas(t.map((t=>Ms.lift(t))),i)}getVisibleColumnFromPosition(t){if(!this._modelData)return t.column;const i=this._modelData.model.validatePosition(t),e=this._modelData.model.getOptions().tabSize;return Xy.visibleColumnFromColumn(this._modelData.model.getLineContent(i.lineNumber),i.column,e)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(t,i="api"){if(this._modelData){if(!As.isIPosition(t))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(i,[{selectionStartLineNumber:t.lineNumber,selectionStartColumn:t.column,positionLineNumber:t.lineNumber,positionColumn:t.column}])}}_sendRevealRange(t,i,e,s){if(!this._modelData)return;if(!Ms.isIRange(t))throw new Error("Invalid arguments");const n=this._modelData.model.validateRange(t),o=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(n);this._modelData.viewModel.revealRange("api",e,o,i,s)}revealLine(t,i=0){this._revealLine(t,0,i)}revealLineInCenter(t,i=0){this._revealLine(t,1,i)}revealLineInCenterIfOutsideViewport(t,i=0){this._revealLine(t,2,i)}revealLineNearTop(t,i=0){this._revealLine(t,5,i)}_revealLine(t,i,e){if("number"!=typeof t)throw new Error("Invalid arguments");this._sendRevealRange(new Ms(t,1,t,1),i,!1,e)}revealPosition(t,i=0){this._revealPosition(t,0,!0,i)}revealPositionInCenter(t,i=0){this._revealPosition(t,1,!0,i)}revealPositionInCenterIfOutsideViewport(t,i=0){this._revealPosition(t,2,!0,i)}revealPositionNearTop(t,i=0){this._revealPosition(t,5,!0,i)}_revealPosition(t,i,e,s){if(!As.isIPosition(t))throw new Error("Invalid arguments");this._sendRevealRange(new Ms(t.lineNumber,t.column,t.lineNumber,t.column),i,e,s)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(t,i="api"){const e=Ls.isISelection(t),s=Ms.isIRange(t);if(!e&&!s)throw new Error("Invalid arguments");e?this._setSelectionImpl(t,i):s&&this._setSelectionImpl({selectionStartLineNumber:t.startLineNumber,selectionStartColumn:t.startColumn,positionLineNumber:t.endLineNumber,positionColumn:t.endColumn},i)}_setSelectionImpl(t,i){if(!this._modelData)return;const e=new Ls(t.selectionStartLineNumber,t.selectionStartColumn,t.positionLineNumber,t.positionColumn);this._modelData.viewModel.setSelections(i,[e])}revealLines(t,i,e=0){this._revealLines(t,i,0,e)}revealLinesInCenter(t,i,e=0){this._revealLines(t,i,1,e)}revealLinesInCenterIfOutsideViewport(t,i,e=0){this._revealLines(t,i,2,e)}revealLinesNearTop(t,i,e=0){this._revealLines(t,i,5,e)}_revealLines(t,i,e,s){if("number"!=typeof t||"number"!=typeof i)throw new Error("Invalid arguments");this._sendRevealRange(new Ms(t,1,i,1),e,!1,s)}revealRange(t,i=0,e=!1,s=!0){this._revealRange(t,e?1:0,s,i)}revealRangeInCenter(t,i=0){this._revealRange(t,1,!0,i)}revealRangeInCenterIfOutsideViewport(t,i=0){this._revealRange(t,2,!0,i)}revealRangeNearTop(t,i=0){this._revealRange(t,5,!0,i)}revealRangeNearTopIfOutsideViewport(t,i=0){this._revealRange(t,6,!0,i)}revealRangeAtTop(t,i=0){this._revealRange(t,3,!0,i)}_revealRange(t,i,e,s){if(!Ms.isIRange(t))throw new Error("Invalid arguments");this._sendRevealRange(Ms.lift(t),i,e,s)}setSelections(t,i="api",e=0){if(this._modelData){if(!t||0===t.length)throw new Error("Invalid arguments");for(let i=0,e=t.length;i0&&this._modelData.viewModel.restoreCursorState(t):this._modelData.viewModel.restoreCursorState([t]),this._contributions.restoreViewState(i.contributionsState||{});const e=this._modelData.viewModel.reduceRestoreState(i.viewState);this._modelData.view.restoreState(e)}}handleInitialized(){var t;null===(t=this._getViewModel())||void 0===t||t.visibleLinesStabilized()}getContribution(t){return this._contributions.get(t)}getActions(){return Array.from(this._actions.values())}getSupportedActions(){let t=this.getActions();return t=t.filter((t=>t.isSupported())),t}getAction(t){return this._actions.get(t)||null}trigger(t,i,e){switch(e=e||{},i){case"compositionStart":return void this._startComposition();case"compositionEnd":return void this._endComposition(t);case"type":return void this._type(t,e.text||"");case"replacePreviousChar":return void this._compositionType(t,e.text||"",e.replaceCharCnt||0,0,0);case"compositionType":return void this._compositionType(t,e.text||"",e.replacePrevCharCnt||0,e.replaceNextCharCnt||0,e.positionDelta||0);case"paste":return void this._paste(t,e.text||"",e.pasteOnNewLine||!1,e.multicursorText||null,e.mode||null);case"cut":return void this._cut(t)}const s=this.getAction(i);s?Promise.resolve(s.run(e)).then(void 0,Bi):this._modelData&&(this._triggerEditorCommand(t,i,e)||this._triggerCommand(i,e))}_triggerCommand(t,i){this._commandService.executeCommand(t,i)}_startComposition(){this._modelData&&(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(t){this._modelData&&(this._modelData.viewModel.endComposition(t),this._onDidCompositionEnd.fire())}_type(t,i){this._modelData&&0!==i.length&&("keyboard"===t&&this._onWillType.fire(i),this._modelData.viewModel.type(i,t),"keyboard"===t&&this._onDidType.fire(i))}_compositionType(t,i,e,s,n){this._modelData&&this._modelData.viewModel.compositionType(i,e,s,n,t)}_paste(t,i,e,s,n){if(!this._modelData||0===i.length)return;const o=this._modelData.viewModel,r=o.getSelection().getStartPosition();o.paste(i,e,s,t);const h=o.getSelection().getStartPosition();"keyboard"===t&&this._onDidPaste.fire({range:new Ms(r.lineNumber,r.column,h.lineNumber,h.column),languageId:n})}_cut(t){this._modelData&&this._modelData.viewModel.cut(t)}_triggerEditorCommand(t,i,e){const s=uu.getEditorCommand(i);return!!s&&((e=e||{}).source=t,this._instantiationService.invokeFunction((t=>{Promise.resolve(s.runEditorCommand(t,this,e)).then(void 0,Bi)})),!0)}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!!this._modelData&&!this._configuration.options.get(90)&&(this._modelData.model.pushStackElement(),!0)}popUndoStop(){return!!this._modelData&&!this._configuration.options.get(90)&&(this._modelData.model.popStackElement(),!0)}executeEdits(t,i,e){if(!this._modelData)return!1;if(this._configuration.options.get(90))return!1;let s;return s=e?Array.isArray(e)?()=>e:e:()=>null,this._modelData.viewModel.executeEdits(t,i,s),!0}executeCommand(t,i){this._modelData&&this._modelData.viewModel.executeCommand(i,t)}executeCommands(t,i){this._modelData&&this._modelData.viewModel.executeCommands(i,t)}createDecorationsCollection(t){return new BT(this,t)}changeDecorations(t){return this._modelData?this._modelData.model.changeDecorations(t,this._id):null}getLineDecorations(t){return this._modelData?this._modelData.model.getLineDecorations(t,this._id,ki(this._configuration.options)):null}getDecorationsInRange(t){return this._modelData?this._modelData.model.getDecorationsInRange(t,this._id,ki(this._configuration.options)):null}deltaDecorations(t,i){return this._modelData?0===t.length&&0===i.length?t:this._modelData.model.deltaDecorations(t,i,this._id):[]}removeDecorations(t){this._modelData&&0!==t.length&&this._modelData.model.changeDecorations((i=>{i.deltaDecorations(t,[])}))}removeDecorationsByType(t){const i=this._decorationTypeKeysToIds[t];i&&this.deltaDecorations(i,[]),this._decorationTypeKeysToIds.hasOwnProperty(t)&&delete this._decorationTypeKeysToIds[t],this._decorationTypeSubtypes.hasOwnProperty(t)&&delete this._decorationTypeSubtypes[t]}getLayoutInfo(){return this._configuration.options.get(143)}createOverviewRuler(t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.createOverviewRuler(t):null}getContainerDomNode(){return this._domElement}getDomNode(){return this._modelData&&this._modelData.hasRealView?this._modelData.view.domNode.domNode:null}delegateVerticalScrollbarPointerDown(t){this._modelData&&this._modelData.hasRealView&&this._modelData.view.delegateVerticalScrollbarPointerDown(t)}delegateScrollFromMouseWheelEvent(t){this._modelData&&this._modelData.hasRealView&&this._modelData.view.delegateScrollFromMouseWheelEvent(t)}layout(t,i=!1){this._configuration.observeContainer(t),i||this.render()}focus(){this._modelData&&this._modelData.hasRealView&&this._modelData.view.focus()}hasTextFocus(){return!(!this._modelData||!this._modelData.hasRealView)&&this._modelData.view.isFocused()}hasWidgetFocus(){return this._focusTracker&&this._focusTracker.hasFocus()}addContentWidget(t){const i={widget:t,position:t.getPosition()};this._contentWidgets.hasOwnProperty(t.getId())&&console.warn("Overwriting a content widget with the same id:"+t.getId()),this._contentWidgets[t.getId()]=i,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(i)}layoutContentWidget(t){const i=t.getId();if(this._contentWidgets.hasOwnProperty(i)){const e=this._contentWidgets[i];e.position=t.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(e)}}removeContentWidget(t){const i=t.getId();if(this._contentWidgets.hasOwnProperty(i)){const t=this._contentWidgets[i];delete this._contentWidgets[i],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(t)}}addOverlayWidget(t){const i={widget:t,position:t.getPosition()};this._overlayWidgets.hasOwnProperty(t.getId())&&console.warn("Overwriting an overlay widget with the same id."),this._overlayWidgets[t.getId()]=i,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(i)}layoutOverlayWidget(t){const i=t.getId();if(this._overlayWidgets.hasOwnProperty(i)){const e=this._overlayWidgets[i];e.position=t.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(e)}}removeOverlayWidget(t){const i=t.getId();if(this._overlayWidgets.hasOwnProperty(i)){const t=this._overlayWidgets[i];delete this._overlayWidgets[i],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(t)}}addGlyphMarginWidget(t){const i={widget:t,position:t.getPosition()};this._glyphMarginWidgets.hasOwnProperty(t.getId())&&console.warn("Overwriting a glyph margin widget with the same id."),this._glyphMarginWidgets[t.getId()]=i,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addGlyphMarginWidget(i)}layoutGlyphMarginWidget(t){const i=t.getId();if(this._glyphMarginWidgets.hasOwnProperty(i)){const e=this._glyphMarginWidgets[i];e.position=t.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutGlyphMarginWidget(e)}}removeGlyphMarginWidget(t){const i=t.getId();if(this._glyphMarginWidgets.hasOwnProperty(i)){const t=this._glyphMarginWidgets[i];delete this._glyphMarginWidgets[i],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeGlyphMarginWidget(t)}}changeViewZones(t){this._modelData&&this._modelData.hasRealView&&this._modelData.view.change(t)}getTargetAtClientPoint(t,i){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getTargetAtClientPoint(t,i):null}getScrolledVisiblePosition(t){if(!this._modelData||!this._modelData.hasRealView)return null;const i=this._modelData.model.validatePosition(t),e=this._configuration.options,s=e.get(143);return{top:AT._getVerticalOffsetForPosition(this._modelData,i.lineNumber,i.column)-this.getScrollTop(),left:this._modelData.view.getOffsetForColumn(i.lineNumber,i.column)+s.glyphMarginWidth+s.lineNumbersWidth+s.decorationsWidth-this.getScrollLeft(),height:e.get(66)}}getOffsetForColumn(t,i){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getOffsetForColumn(t,i):-1}render(t=!1){this._modelData&&this._modelData.hasRealView&&this._modelData.view.render(!0,t)}setAriaOptions(t){this._modelData&&this._modelData.hasRealView&&this._modelData.view.setAriaOptions(t)}applyFontInfo(t){ir(t,this._configuration.options.get(50))}setBanner(t,i){this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),this._bannerDomNode=t,this._configuration.setReservedHeight(t?i:0),this._bannerDomNode&&this._domElement.prepend(this._bannerDomNode)}_attachModel(t){if(!t)return void(this._modelData=null);const i=[];this._domElement.setAttribute("data-mode-id",t.getLanguageId()),this._configuration.setIsDominatedByLongLines(t.isDominatedByLongLines()),this._configuration.setModelLineCount(t.getLineCount());const e=t.onBeforeAttached(),s=new ZF(this._id,this._configuration,t,kT.create(Na(this._domElement)),lT.create(this._configuration.options),(t=>Qa(Na(this._domElement),t)),this.languageConfigurationService,this._themeService,e);i.push(t.onWillDispose((()=>this.setModel(null)))),i.push(s.onEvent((i=>{switch(i.kind){case 0:this._onDidContentSizeChange.fire(i);break;case 1:this._editorTextFocus.setValue(i.hasFocus);break;case 2:this._onDidScrollChange.fire(i);break;case 3:this._onDidChangeViewZones.fire();break;case 4:this._onDidChangeHiddenAreas.fire();break;case 5:this._onDidAttemptReadOnlyEdit.fire();break;case 6:{if(i.reachedMaxCursorCount){const t=ot(0,"The number of cursors has been limited to {0}. Consider using [find and replace](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) for larger changes or increase the editor multi cursor limit setting.",this.getOption(79));this._notificationService.prompt(nT.Warning,t,[{label:"Find and Replace",run:()=>{this._commandService.executeCommand("editor.action.startFindReplaceAction")}},{label:ot(0,"Increase Multi Cursor Limit"),run:()=>{this._commandService.executeCommand("workbench.action.openSettings2",{query:"editor.multiCursorLimit"})}}])}const t=[];for(let e=0,s=i.selections.length;e{this._paste("keyboard",t,i,e,s)},type:t=>{this._type("keyboard",t)},compositionType:(t,i,e,s)=>{this._compositionType("keyboard",t,i,e,s)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition("keyboard")},cut:()=>{this._cut("keyboard")}}:{paste:(t,i,e,s)=>{this._commandService.executeCommand("paste",{text:t,pasteOnNewLine:i,multicursorText:e,mode:s})},type:t=>{this._commandService.executeCommand("type",{text:t})},compositionType:(t,i,e,s)=>{e||s?this._commandService.executeCommand("compositionType",{text:t,replacePrevCharCnt:i,replaceNextCharCnt:e,positionDelta:s}):this._commandService.executeCommand("replacePreviousChar",{text:t,replaceCharCnt:i})},startComposition:()=>{this._commandService.executeCommand("compositionStart",{})},endComposition:()=>{this._commandService.executeCommand("compositionEnd",{})},cut:()=>{this._commandService.executeCommand("cut",{})}};const e=new dS(t.coordinatesConverter);return e.onKeyDown=t=>this._onKeyDown.fire(t),e.onKeyUp=t=>this._onKeyUp.fire(t),e.onContextMenu=t=>this._onContextMenu.fire(t),e.onMouseMove=t=>this._onMouseMove.fire(t),e.onMouseLeave=t=>this._onMouseLeave.fire(t),e.onMouseDown=t=>this._onMouseDown.fire(t),e.onMouseUp=t=>this._onMouseUp.fire(t),e.onMouseDrag=t=>this._onMouseDrag.fire(t),e.onMouseDrop=t=>this._onMouseDrop.fire(t),e.onMouseDropCanceled=t=>this._onMouseDropCanceled.fire(t),e.onMouseWheel=t=>this._onMouseWheel.fire(t),[new HD(i,this._configuration,this._themeService.getColorTheme(),t,e,this._overflowWidgetsDomNode,this._instantiationService),!0]}_postDetachModelCleanup(t){null==t||t.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){if(!this._modelData)return null;const t=this._modelData.model,i=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute("data-mode-id"),i&&this._domElement.contains(i)&&this._domElement.removeChild(i),this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),t}_removeDecorationType(t){this._codeEditorService.removeDecorationType(t)}hasModel(){return null!==this._modelData}showDropIndicatorAt(t){const i=[{range:new Ms(t.lineNumber,t.column,t.lineNumber,t.column),options:AT.dropIntoEditorDecorationOptions}];this._dropIntoEditorDecorations.set(i),this.revealPosition(t,1)}removeDropIndicator(){this._dropIntoEditorDecorations.clear()}setContextValue(t,i){this._contextKeyService.createKey(t,i)}};TT.dropIntoEditorDecorationOptions=AL.register({description:"workbench-dnd-target",className:"dnd-target"}),TT=AT=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([MT(3,ur),MT(4,fr),MT(5,Sr),MT(6,ah),MT(7,Xk),MT(8,oT),MT(9,Zm),MT(10,Xd),MT(11,xg)],TT);class RT extends te{constructor(t){super(),this._emitterOptions=t,this._onDidChangeToTrue=this._register(new de(this._emitterOptions)),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new de(this._emitterOptions)),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(t){const i=t?2:1;this._value!==i&&(this._value=i,2===this._value?this._onDidChangeToTrue.fire():1===this._value&&this._onDidChangeToFalse.fire())}}class OT extends de{constructor(t,i){super({deliveryQueue:i}),this._contributions=t}fire(t){this._contributions.onBeforeInteractionEvent(),super.fire(t)}}class IT extends te{constructor(t,i){super(),this._editor=t,i.createKey("editorId",t.getId()),this._editorSimpleInput=YC.editorSimpleInput.bindTo(i),this._editorFocus=YC.focus.bindTo(i),this._textInputFocus=YC.textInputFocus.bindTo(i),this._editorTextFocus=YC.editorTextFocus.bindTo(i),this._tabMovesFocus=YC.tabMovesFocus.bindTo(i),this._editorReadonly=YC.readOnly.bindTo(i),this._inDiffEditor=YC.inDiffEditor.bindTo(i),this._editorColumnSelection=YC.columnSelection.bindTo(i),this._hasMultipleSelections=YC.hasMultipleSelections.bindTo(i),this._hasNonEmptySelection=YC.hasNonEmptySelection.bindTo(i),this._canUndo=YC.canUndo.bindTo(i),this._canRedo=YC.canRedo.bindTo(i),this._register(this._editor.onDidChangeConfiguration((()=>this._updateFromConfig()))),this._register(this._editor.onDidChangeCursorSelection((()=>this._updateFromSelection()))),this._register(this._editor.onDidFocusEditorWidget((()=>this._updateFromFocus()))),this._register(this._editor.onDidBlurEditorWidget((()=>this._updateFromFocus()))),this._register(this._editor.onDidFocusEditorText((()=>this._updateFromFocus()))),this._register(this._editor.onDidBlurEditorText((()=>this._updateFromFocus()))),this._register(this._editor.onDidChangeModel((()=>this._updateFromModel()))),this._register(this._editor.onDidChangeConfiguration((()=>this._updateFromModel()))),this._register(Gm.onDidChangeTabFocus((t=>this._tabMovesFocus.set(t)))),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){const t=this._editor.getOptions();this._tabMovesFocus.set(Gm.getTabFocusMode()),this._editorReadonly.set(t.get(90)),this._inDiffEditor.set(t.get(61)),this._editorColumnSelection.set(t.get(22))}_updateFromSelection(){const t=this._editor.getSelections();t?(this._hasMultipleSelections.set(t.length>1),this._hasNonEmptySelection.set(t.some((t=>!t.isEmpty())))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}_updateFromFocus(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}_updateFromModel(){const t=this._editor.getModel();this._canUndo.set(Boolean(t&&t.canUndo())),this._canRedo.set(Boolean(t&&t.canRedo()))}}class _T extends te{constructor(t,i,e){super(),this._editor=t,this._contextKeyService=i,this._languageFeaturesService=e,this._langId=YC.languageId.bindTo(i),this._hasCompletionItemProvider=YC.hasCompletionItemProvider.bindTo(i),this._hasCodeActionsProvider=YC.hasCodeActionsProvider.bindTo(i),this._hasCodeLensProvider=YC.hasCodeLensProvider.bindTo(i),this._hasDefinitionProvider=YC.hasDefinitionProvider.bindTo(i),this._hasDeclarationProvider=YC.hasDeclarationProvider.bindTo(i),this._hasImplementationProvider=YC.hasImplementationProvider.bindTo(i),this._hasTypeDefinitionProvider=YC.hasTypeDefinitionProvider.bindTo(i),this._hasHoverProvider=YC.hasHoverProvider.bindTo(i),this._hasDocumentHighlightProvider=YC.hasDocumentHighlightProvider.bindTo(i),this._hasDocumentSymbolProvider=YC.hasDocumentSymbolProvider.bindTo(i),this._hasReferenceProvider=YC.hasReferenceProvider.bindTo(i),this._hasRenameProvider=YC.hasRenameProvider.bindTo(i),this._hasSignatureHelpProvider=YC.hasSignatureHelpProvider.bindTo(i),this._hasInlayHintsProvider=YC.hasInlayHintsProvider.bindTo(i),this._hasDocumentFormattingProvider=YC.hasDocumentFormattingProvider.bindTo(i),this._hasDocumentSelectionFormattingProvider=YC.hasDocumentSelectionFormattingProvider.bindTo(i),this._hasMultipleDocumentFormattingProvider=YC.hasMultipleDocumentFormattingProvider.bindTo(i),this._hasMultipleDocumentSelectionFormattingProvider=YC.hasMultipleDocumentSelectionFormattingProvider.bindTo(i),this._isInWalkThrough=YC.isInWalkThroughSnippet.bindTo(i);const s=()=>this._update();this._register(t.onDidChangeModel(s)),this._register(t.onDidChangeModelLanguage(s)),this._register(e.completionProvider.onDidChange(s)),this._register(e.codeActionProvider.onDidChange(s)),this._register(e.codeLensProvider.onDidChange(s)),this._register(e.definitionProvider.onDidChange(s)),this._register(e.declarationProvider.onDidChange(s)),this._register(e.implementationProvider.onDidChange(s)),this._register(e.typeDefinitionProvider.onDidChange(s)),this._register(e.hoverProvider.onDidChange(s)),this._register(e.documentHighlightProvider.onDidChange(s)),this._register(e.documentSymbolProvider.onDidChange(s)),this._register(e.referenceProvider.onDidChange(s)),this._register(e.renameProvider.onDidChange(s)),this._register(e.documentFormattingEditProvider.onDidChange(s)),this._register(e.documentRangeFormattingEditProvider.onDidChange(s)),this._register(e.signatureHelpProvider.onDidChange(s)),this._register(e.inlayHintsProvider.onDidChange(s)),s()}dispose(){super.dispose()}reset(){this._contextKeyService.bufferChangeEvents((()=>{this._langId.reset(),this._hasCompletionItemProvider.reset(),this._hasCodeActionsProvider.reset(),this._hasCodeLensProvider.reset(),this._hasDefinitionProvider.reset(),this._hasDeclarationProvider.reset(),this._hasImplementationProvider.reset(),this._hasTypeDefinitionProvider.reset(),this._hasHoverProvider.reset(),this._hasDocumentHighlightProvider.reset(),this._hasDocumentSymbolProvider.reset(),this._hasReferenceProvider.reset(),this._hasRenameProvider.reset(),this._hasDocumentFormattingProvider.reset(),this._hasDocumentSelectionFormattingProvider.reset(),this._hasSignatureHelpProvider.reset(),this._isInWalkThrough.reset()}))}_update(){const t=this._editor.getModel();t?this._contextKeyService.bufferChangeEvents((()=>{this._langId.set(t.getLanguageId()),this._hasCompletionItemProvider.set(this._languageFeaturesService.completionProvider.has(t)),this._hasCodeActionsProvider.set(this._languageFeaturesService.codeActionProvider.has(t)),this._hasCodeLensProvider.set(this._languageFeaturesService.codeLensProvider.has(t)),this._hasDefinitionProvider.set(this._languageFeaturesService.definitionProvider.has(t)),this._hasDeclarationProvider.set(this._languageFeaturesService.declarationProvider.has(t)),this._hasImplementationProvider.set(this._languageFeaturesService.implementationProvider.has(t)),this._hasTypeDefinitionProvider.set(this._languageFeaturesService.typeDefinitionProvider.has(t)),this._hasHoverProvider.set(this._languageFeaturesService.hoverProvider.has(t)),this._hasDocumentHighlightProvider.set(this._languageFeaturesService.documentHighlightProvider.has(t)),this._hasDocumentSymbolProvider.set(this._languageFeaturesService.documentSymbolProvider.has(t)),this._hasReferenceProvider.set(this._languageFeaturesService.referenceProvider.has(t)),this._hasRenameProvider.set(this._languageFeaturesService.renameProvider.has(t)),this._hasSignatureHelpProvider.set(this._languageFeaturesService.signatureHelpProvider.has(t)),this._hasInlayHintsProvider.set(this._languageFeaturesService.inlayHintsProvider.has(t)),this._hasDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.has(t)||this._languageFeaturesService.documentRangeFormattingEditProvider.has(t)),this._hasDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.has(t)),this._hasMultipleDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.all(t).length+this._languageFeaturesService.documentRangeFormattingEditProvider.all(t).length>1),this._hasMultipleDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.all(t).length>1),this._isInWalkThrough.set(t.uri.scheme===ka.walkThroughSnippet)})):this.reset()}}class NT extends te{constructor(t){super(),this._onChange=this._register(new de),this.onChange=this._onChange.event,this._hasFocus=!1,this._domFocusTracker=this._register(Rl(t)),this._register(this._domFocusTracker.onDidFocus((()=>{this._hasFocus=!0,this._onChange.fire(void 0)}))),this._register(this._domFocusTracker.onDidBlur((()=>{this._hasFocus=!1,this._onChange.fire(void 0)})))}hasFocus(){return this._hasFocus}}class BT{get length(){return this._decorationIds.length}constructor(t,i){this._editor=t,this._decorationIds=[],this._isChangingDecorations=!1,Array.isArray(i)&&i.length>0&&this.set(i)}onDidChange(t,i,e){return this._editor.onDidChangeModelDecorations((e=>{this._isChangingDecorations||t.call(i,e)}),e)}getRange(t){return this._editor.hasModel()?t>=this._decorationIds.length?null:this._editor.getModel().getDecorationRange(this._decorationIds[t]):null}getRanges(){if(!this._editor.hasModel())return[];const t=this._editor.getModel(),i=[];for(const e of this._decorationIds){const s=t.getDecorationRange(e);s&&i.push(s)}return i}has(t){return this._decorationIds.includes(t.id)}clear(){0!==this._decorationIds.length&&this.set([])}set(t){try{this._isChangingDecorations=!0,this._editor.changeDecorations((i=>{this._decorationIds=i.deltaDecorations(this._decorationIds,t)}))}finally{this._isChangingDecorations=!1}return this._decorationIds}append(t){let i=[];try{this._isChangingDecorations=!0,this._editor.changeDecorations((e=>{i=e.deltaDecorations([],t),this._decorationIds=this._decorationIds.concat(i)}))}finally{this._isChangingDecorations=!1}return i}}const PT=encodeURIComponent("");function WT(t){return PT+encodeURIComponent(t.toString())+$T}const jT=encodeURIComponent('');nx(((t,i)=>{const e=t.getColor(ev);e&&i.addRule(`.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${WT(e)}") repeat-x bottom left; }`);const s=t.getColor(nv);s&&i.addRule(`.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${WT(s)}") repeat-x bottom left; }`);const n=t.getColor(rv);n&&i.addRule(`.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${WT(n)}") repeat-x bottom left; }`);const o=t.getColor(cv);var r;o&&i.addRule(`.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${r=o,jT+encodeURIComponent(r.toString())+zT}") no-repeat bottom left; }`);const h=t.getColor(Fx);h&&i.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${h.rgba.a}; }`)}));let HT=class extends te{constructor(t){super(),this._themeService=t,this._onWillCreateCodeEditor=this._register(new de),this._onCodeEditorAdd=this._register(new de),this.onCodeEditorAdd=this._onCodeEditorAdd.event,this._onCodeEditorRemove=this._register(new de),this.onCodeEditorRemove=this._onCodeEditorRemove.event,this._onWillCreateDiffEditor=this._register(new de),this._onDiffEditorAdd=this._register(new de),this.onDiffEditorAdd=this._onDiffEditorAdd.event,this._onDiffEditorRemove=this._register(new de),this.onDiffEditorRemove=this._onDiffEditorRemove.event,this._decorationOptionProviders=new Map,this._codeEditorOpenHandlers=new Ut,this._modelProperties=new Map,this._codeEditors=Object.create(null),this._diffEditors=Object.create(null),this._globalStyleSheet=null}willCreateCodeEditor(){this._onWillCreateCodeEditor.fire()}addCodeEditor(t){this._codeEditors[t.getId()]=t,this._onCodeEditorAdd.fire(t)}removeCodeEditor(t){delete this._codeEditors[t.getId()]&&this._onCodeEditorRemove.fire(t)}listCodeEditors(){return Object.keys(this._codeEditors).map((t=>this._codeEditors[t]))}willCreateDiffEditor(){this._onWillCreateDiffEditor.fire()}addDiffEditor(t){this._diffEditors[t.getId()]=t,this._onDiffEditorAdd.fire(t)}listDiffEditors(){return Object.keys(this._diffEditors).map((t=>this._diffEditors[t]))}getFocusedCodeEditor(){let t=null;const i=this.listCodeEditors();for(const e of i){if(e.hasTextFocus())return e;e.hasWidgetFocus()&&(t=e)}return t}removeDecorationType(t){const i=this._decorationOptionProviders.get(t);i&&(i.refCount--,i.refCount<=0&&(this._decorationOptionProviders.delete(t),i.dispose(),this.listCodeEditors().forEach((i=>i.removeDecorationsByType(t)))))}setModelProperty(t,i,e){const s=t.toString();let n;this._modelProperties.has(s)?n=this._modelProperties.get(s):(n=new Map,this._modelProperties.set(s,n)),n.set(i,e)}getModelProperty(t,i){const e=t.toString();if(this._modelProperties.has(e))return this._modelProperties.get(e).get(i)}async openCodeEditor(t,i,e){for(const s of this._codeEditorOpenHandlers){const n=await s(t,i,e);if(null!==n)return n}return null}registerCodeEditorOpenHandler(t){return Yi(this._codeEditorOpenHandlers.unshift(t))}};HT=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(0,Xk)],HT);var VT=function(t,i){return function(e,s){i(e,s,t)}};let UT=class extends HT{constructor(t,i){super(i),this._register(this.onCodeEditorAdd((()=>this._checkContextKey()))),this._register(this.onCodeEditorRemove((()=>this._checkContextKey()))),this._editorIsOpen=t.createKey("editorIsOpen",!1),this._activeCodeEditor=null,this._register(this.registerCodeEditorOpenHandler((async(t,i)=>i?this.doOpenEditor(i,t):null)))}_checkContextKey(){let t=!1;for(const i of this.listCodeEditors())if(!i.isSimpleWidget){t=!0;break}this._editorIsOpen.set(t)}setActiveCodeEditor(t){this._activeCodeEditor=t}getActiveCodeEditor(){return this._activeCodeEditor}doOpenEditor(t,i){if(!this.findModel(t,i.resource)){if(i.resource){const e=i.resource.scheme;if(e===ka.http||e===ka.https)return Hl(i.resource.toString()),t}return null}const e=i.options?i.options.selection:null;if(e)if("number"==typeof e.endLineNumber&&"number"==typeof e.endColumn)t.setSelection(e),t.revealRangeInCenter(e,1);else{const i={lineNumber:e.startLineNumber,column:e.startColumn};t.setPosition(i),t.revealPositionInCenter(i,1)}return t}findModel(t,i){const e=t.getModel();return e&&e.uri.toString()!==i.toString()?null:e}};UT=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([VT(0,ah),VT(1,Xk)],UT),Cd(fr,UT,0);const qT=dr("layoutService");var KT=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},GT=function(t,i){return function(e,s){i(e,s,t)}};let ZT=class{get mainContainer(){var t,i;return null!==(i=null===(t=k(this._codeEditorService.listCodeEditors()))||void 0===t?void 0:t.getContainerDomNode())&&void 0!==i?i:$n.document.body}get activeContainer(){var t,i;const e=null!==(t=this._codeEditorService.getFocusedCodeEditor())&&void 0!==t?t:this._codeEditorService.getActiveCodeEditor();return null!==(i=null==e?void 0:e.getContainerDomNode())&&void 0!==i?i:this.mainContainer}get mainContainerDimension(){return tl(this.mainContainer)}get activeContainerDimension(){return tl(this.activeContainer)}get containers(){return m(this._codeEditorService.listCodeEditors().map((t=>t.getContainerDomNode())))}getContainer(){return this.activeContainer}focus(){var t;null===(t=this._codeEditorService.getFocusedCodeEditor())||void 0===t||t.focus()}constructor(t){this._codeEditorService=t,this.onDidLayoutMainContainer=he.None,this.onDidLayoutActiveContainer=he.None,this.onDidLayoutContainer=he.None,this.onDidChangeActiveContainer=he.None,this.onDidAddContainer=he.None,this.mainContainerOffset={top:0,quickPickTop:0},this.activeContainerOffset={top:0,quickPickTop:0}}};ZT=KT([GT(0,fr)],ZT);let QT=class extends ZT{get mainContainer(){return this._container}constructor(t,i){super(i),this._container=t}};QT=KT([GT(1,fr)],QT),Cd(qT,ZT,1);const JT=dr("dialogService");var YT=function(t,i){return function(e,s){i(e,s,t)}};function XT(t){return t.scheme===ka.file?t.fsPath:t.path}let tR=0;class iR{constructor(t,i,e,s,n,o,r){this.id=++tR,this.type=0,this.actual=t,this.label=t.label,this.confirmBeforeUndo=t.confirmBeforeUndo||!1,this.resourceLabel=i,this.strResource=e,this.resourceLabels=[this.resourceLabel],this.strResources=[this.strResource],this.groupId=s,this.groupOrder=n,this.sourceId=o,this.sourceOrder=r,this.isValid=!0}setValid(t){this.isValid=t}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.isValid?" VALID":"INVALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class eR{constructor(t,i){this.resourceLabel=t,this.reason=i}}class sR{constructor(){this.elements=new Map}createMessage(){const t=[],i=[];for(const[,e]of this.elements)(0===e.reason?t:i).push(e.resourceLabel);const e=[];return t.length>0&&e.push(ot(0,"The following files have been closed and modified on disk: {0}.",t.join(", "))),i.length>0&&e.push(ot(0,"The following files have been modified in an incompatible way: {0}.",i.join(", "))),e.join("\n")}get size(){return this.elements.size}has(t){return this.elements.has(t)}set(t,i){this.elements.set(t,i)}delete(t){return this.elements.delete(t)}}class nR{constructor(t,i,e,s,n,o,r){this.id=++tR,this.type=1,this.actual=t,this.label=t.label,this.confirmBeforeUndo=t.confirmBeforeUndo||!1,this.resourceLabels=i,this.strResources=e,this.groupId=s,this.groupOrder=n,this.sourceId=o,this.sourceOrder=r,this.removedResources=null,this.invalidatedResources=null}canSplit(){return"function"==typeof this.actual.split}removeResource(t,i,e){this.removedResources||(this.removedResources=new sR),this.removedResources.has(i)||this.removedResources.set(i,new eR(t,e))}setValid(t,i,e){e?this.invalidatedResources&&(this.invalidatedResources.delete(i),0===this.invalidatedResources.size&&(this.invalidatedResources=null)):(this.invalidatedResources||(this.invalidatedResources=new sR),this.invalidatedResources.has(i)||this.invalidatedResources.set(i,new eR(t,0)))}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources?"INVALID":" VALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class oR{constructor(t,i){this.resourceLabel=t,this.strResource=i,this._past=[],this._future=[],this.locked=!1,this.versionId=1}dispose(){for(const t of this._past)1===t.type&&t.removeResource(this.resourceLabel,this.strResource,0);for(const t of this._future)1===t.type&&t.removeResource(this.resourceLabel,this.strResource,0);this.versionId++}toString(){const t=[];t.push(`* ${this.strResource}:`);for(let i=0;i=0;i--)t.push(` * [REDO] ${this._future[i]}`);return t.join("\n")}flushAllElements(){this._past=[],this._future=[],this.versionId++}_setElementValidFlag(t,i){1===t.type?t.setValid(this.resourceLabel,this.strResource,i):t.setValid(i)}setElementsValidFlag(t,i){for(const e of this._past)i(e.actual)&&this._setElementValidFlag(e,t);for(const e of this._future)i(e.actual)&&this._setElementValidFlag(e,t)}pushElement(t){for(const t of this._future)1===t.type&&t.removeResource(this.resourceLabel,this.strResource,1);this._future=[],this._past.push(t),this.versionId++}createSnapshot(t){const i=[];for(let t=0,e=this._past.length;t=0;t--)i.push(this._future[t].id);return new cL(t,i)}restoreSnapshot(t){const i=t.elements.length;let e=!0,s=0,n=-1;for(let o=0,r=this._past.length;o=i||r.id!==t.elements[s])&&(e=!1,n=0),e||1!==r.type||r.removeResource(this.resourceLabel,this.strResource,0)}let o=-1;for(let n=this._future.length-1;n>=0;n--,s++){const r=this._future[n];e&&(s>=i||r.id!==t.elements[s])&&(e=!1,o=n),e||1!==r.type||r.removeResource(this.resourceLabel,this.strResource,0)}-1!==n&&(this._past=this._past.slice(0,n)),-1!==o&&(this._future=this._future.slice(o+1)),this.versionId++}getElements(){const t=[],i=[];for(const i of this._past)t.push(i.actual);for(const t of this._future)i.push(t.actual);return{past:t,future:i}}getClosestPastElement(){return 0===this._past.length?null:this._past[this._past.length-1]}getSecondClosestPastElement(){return this._past.length<2?null:this._past[this._past.length-2]}getClosestFutureElement(){return 0===this._future.length?null:this._future[this._future.length-1]}hasPastElements(){return this._past.length>0}hasFutureElements(){return this._future.length>0}splitPastWorkspaceElement(t,i){for(let e=this._past.length-1;e>=0;e--)if(this._past[e]===t){i.has(this.strResource)?this._past[e]=i.get(this.strResource):this._past.splice(e,1);break}this.versionId++}splitFutureWorkspaceElement(t,i){for(let e=this._future.length-1;e>=0;e--)if(this._future[e]===t){i.has(this.strResource)?this._future[e]=i.get(this.strResource):this._future.splice(e,1);break}this.versionId++}moveBackward(t){this._past.pop(),this._future.push(t),this.versionId++}moveForward(t){this._future.pop(),this._past.push(t),this.versionId++}}class rR{constructor(t){this.editStacks=t,this._versionIds=[];for(let t=0,i=this.editStacks.length;ti.sourceOrder)&&(i=o,e=s)}return[i,e]}canUndo(t){if(t instanceof lL){const[,i]=this._findClosestUndoElementWithSource(t.id);return!!i}const i=this.getUriComparisonKey(t);return!!this._editStacks.has(i)&&this._editStacks.get(i).hasPastElements()}_onError(t,i){Bi(t);for(const t of i.strResources)this.removeElements(t);this._notificationService.error(t)}_acquireLocks(t){for(const i of t.editStacks)if(i.locked)throw new Error("Cannot acquire edit stack lock");for(const i of t.editStacks)i.locked=!0;return()=>{for(const i of t.editStacks)i.locked=!1}}_safeInvokeWithLocks(t,i,e,s,n){const o=this._acquireLocks(e);let r;try{r=i()}catch(i){return o(),s.dispose(),this._onError(i,t)}return r?r.then((()=>(o(),s.dispose(),n())),(i=>(o(),s.dispose(),this._onError(i,t)))):(o(),s.dispose(),n())}async _invokeWorkspacePrepare(t){if(void 0===t.actual.prepareUndoRedo)return te.None;const i=t.actual.prepareUndoRedo();return void 0===i?te.None:i}_invokeResourcePrepare(t,i){if(1!==t.actual.type||void 0===t.actual.prepareUndoRedo)return i(te.None);const e=t.actual.prepareUndoRedo();return e?Zi(e)?i(e):e.then((t=>i(t))):i(te.None)}_getAffectedEditStacks(t){const i=[];for(const e of t.strResources)i.push(this._editStacks.get(e)||hR);return new rR(i)}_tryToSplitAndUndo(t,i,e,s){if(i.canSplit())return this._splitPastWorkspaceElement(i,e),this._notificationService.warn(s),new aR(this._undo(t,0,!0));for(const t of i.strResources)this.removeElements(t);return this._notificationService.warn(s),new aR}_checkWorkspaceUndo(t,i,e,s){if(i.removedResources)return this._tryToSplitAndUndo(t,i,i.removedResources,ot(0,"Could not undo '{0}' across all files. {1}",i.label,i.removedResources.createMessage()));if(s&&i.invalidatedResources)return this._tryToSplitAndUndo(t,i,i.invalidatedResources,ot(0,"Could not undo '{0}' across all files. {1}",i.label,i.invalidatedResources.createMessage()));const n=[];for(const t of e.editStacks)t.getClosestPastElement()!==i&&n.push(t.resourceLabel);if(n.length>0)return this._tryToSplitAndUndo(t,i,null,ot(0,"Could not undo '{0}' across all files because changes were made to {1}",i.label,n.join(", ")));const o=[];for(const t of e.editStacks)t.locked&&o.push(t.resourceLabel);return o.length>0?this._tryToSplitAndUndo(t,i,null,ot(0,"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}",i.label,o.join(", "))):e.isValid()?null:this._tryToSplitAndUndo(t,i,null,ot(0,"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime",i.label))}_workspaceUndo(t,i,e){const s=this._getAffectedEditStacks(i),n=this._checkWorkspaceUndo(t,i,s,!1);return n?n.returnValue:this._confirmAndExecuteWorkspaceUndo(t,i,s,e)}_isPartOfUndoGroup(t){if(!t.groupId)return!1;for(const[,i]of this._editStacks){const e=i.getClosestPastElement();if(e){if(e===t){const e=i.getSecondClosestPastElement();if(e&&e.groupId===t.groupId)return!0}if(e.groupId===t.groupId)return!0}}return!1}async _confirmAndExecuteWorkspaceUndo(t,i,e,s){if(i.canSplit()&&!this._isPartOfUndoGroup(i)){let n;!function(t){t[t.All=0]="All",t[t.This=1]="This",t[t.Cancel=2]="Cancel"}(n||(n={}));const{result:o}=await this._dialogService.prompt({type:sT.Info,message:ot(0,"Would you like to undo '{0}' across all files?",i.label),buttons:[{label:ot(0,"&&Undo in {0} Files",e.editStacks.length),run:()=>n.All},{label:ot(0,"Undo this &&File"),run:()=>n.This}],cancelButton:{run:()=>n.Cancel}});if(o===n.Cancel)return;if(o===n.This)return this._splitPastWorkspaceElement(i,null),this._undo(t,0,!0);const r=this._checkWorkspaceUndo(t,i,e,!1);if(r)return r.returnValue;s=!0}let n;try{n=await this._invokeWorkspacePrepare(i)}catch(t){return this._onError(t,i)}const o=this._checkWorkspaceUndo(t,i,e,!0);if(o)return n.dispose(),o.returnValue;for(const t of e.editStacks)t.moveBackward(i);return this._safeInvokeWithLocks(i,(()=>i.actual.undo()),e,n,(()=>this._continueUndoInGroup(i.groupId,s)))}_resourceUndo(t,i,e){if(i.isValid){if(!t.locked)return this._invokeResourcePrepare(i,(s=>(t.moveBackward(i),this._safeInvokeWithLocks(i,(()=>i.actual.undo()),new rR([t]),s,(()=>this._continueUndoInGroup(i.groupId,e))))));{const t=ot(0,"Could not undo '{0}' because there is already an undo or redo operation running.",i.label);this._notificationService.warn(t)}}else t.flushAllElements()}_findClosestUndoElementInGroup(t){if(!t)return[null,null];let i=null,e=null;for(const[s,n]of this._editStacks){const o=n.getClosestPastElement();o&&o.groupId===t&&(!i||o.groupOrder>i.groupOrder)&&(i=o,e=s)}return[i,e]}_continueUndoInGroup(t,i){if(!t)return;const[,e]=this._findClosestUndoElementInGroup(t);return e?this._undo(e,0,i):void 0}undo(t){if(t instanceof lL){const[,i]=this._findClosestUndoElementWithSource(t.id);return i?this._undo(i,t.id,!1):void 0}return this._undo("string"==typeof t?t:this.getUriComparisonKey(t),0,!1)}_undo(t,i=0,e){if(!this._editStacks.has(t))return;const s=this._editStacks.get(t),n=s.getClosestPastElement();if(n){if(n.groupId){const[t,s]=this._findClosestUndoElementInGroup(n.groupId);if(n!==t&&s)return this._undo(s,i,e)}if((n.sourceId!==i||n.confirmBeforeUndo)&&!e)return this._confirmAndContinueUndo(t,i,n);try{return 1===n.type?this._workspaceUndo(t,n,e):this._resourceUndo(s,n,e)}finally{}}}async _confirmAndContinueUndo(t,i,e){if((await this._dialogService.confirm({message:ot(0,"Would you like to undo '{0}'?",e.label),primaryButton:ot(0,"&&Yes"),cancelButton:ot(0,"No")})).confirmed)return this._undo(t,i,!0)}_findClosestRedoElementWithSource(t){if(!t)return[null,null];let i=null,e=null;for(const[s,n]of this._editStacks){const o=n.getClosestFutureElement();o&&o.sourceId===t&&(!i||o.sourceOrder0)return this._tryToSplitAndRedo(t,i,null,ot(0,"Could not redo '{0}' across all files because changes were made to {1}",i.label,n.join(", ")));const o=[];for(const t of e.editStacks)t.locked&&o.push(t.resourceLabel);return o.length>0?this._tryToSplitAndRedo(t,i,null,ot(0,"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}",i.label,o.join(", "))):e.isValid()?null:this._tryToSplitAndRedo(t,i,null,ot(0,"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime",i.label))}_workspaceRedo(t,i){const e=this._getAffectedEditStacks(i),s=this._checkWorkspaceRedo(t,i,e,!1);return s?s.returnValue:this._executeWorkspaceRedo(t,i,e)}async _executeWorkspaceRedo(t,i,e){let s;try{s=await this._invokeWorkspacePrepare(i)}catch(t){return this._onError(t,i)}const n=this._checkWorkspaceRedo(t,i,e,!0);if(n)return s.dispose(),n.returnValue;for(const t of e.editStacks)t.moveForward(i);return this._safeInvokeWithLocks(i,(()=>i.actual.redo()),e,s,(()=>this._continueRedoInGroup(i.groupId)))}_resourceRedo(t,i){if(i.isValid){if(!t.locked)return this._invokeResourcePrepare(i,(e=>(t.moveForward(i),this._safeInvokeWithLocks(i,(()=>i.actual.redo()),new rR([t]),e,(()=>this._continueRedoInGroup(i.groupId))))));{const t=ot(0,"Could not redo '{0}' because there is already an undo or redo operation running.",i.label);this._notificationService.warn(t)}}else t.flushAllElements()}_findClosestRedoElementInGroup(t){if(!t)return[null,null];let i=null,e=null;for(const[s,n]of this._editStacks){const o=n.getClosestFutureElement();o&&o.groupId===t&&(!i||o.groupOrder=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([YT(0,JT),YT(1,oT)],cR);class aR{constructor(t){this.returnValue=t}}function lR(t,i,e){return Math.min(Math.max(t,i),e)}Cd(hL,cR,1);class uR{constructor(){this._n=1,this._val=0}update(t){return this._val=this._val+(t-this._val)/this._n,this._n+=1,this._val}get value(){return this._val}}class dR{constructor(t){this._n=0,this._val=0,this._values=[],this._index=0,this._sum=0,this._values=new Array(t),this._values.fill(0,0,t)}update(t){const i=this._values[this._index];return this._values[this._index]=t,this._index=(this._index+1)%this._values.length,this._sum-=i,this._sum+=t,this._nLa(mR.of(i),t)),0)}get(t){const i=this._key(t),e=this._cache.get(i);return e?lR(e.value,this._min,this._max):this.default()}update(t,i){const e=this._key(t);let s=this._cache.get(e);s||(s=new dR(6),this._cache.set(e,s));const n=lR(s.update(i),this._min,this._max);return xa(t.uri,"output")||this._logService.trace(`[DEBOUNCE: ${this._name}] for ${t.uri.toString()} is ${n}ms`),n}_overall(){const t=new uR;for(const[,i]of this._cache)t.update(i.value);return t.value}default(){return lR(0|this._overall()||this._default,this._min,this._max)}}let bR=class{constructor(t,i){this._logService=t,this._data=new Map,this._isDev=i.isExtensionDevelopment||!i.isBuilt}for(t,i,e){var s,n,o;const r=null!==(s=null==e?void 0:e.min)&&void 0!==s?s:50,h=null!==(n=null==e?void 0:e.max)&&void 0!==n?n:r**2,c=null!==(o=null==e?void 0:e.key)&&void 0!==o?o:void 0,a=`${mR.of(t)},${r}${c?","+c:""}`;let l=this._data.get(a);return l||(this._isDev?l=new vR(this._logService,i,t,0|this._overallAverage()||1.5*r,r,h):(this._logService.debug(`[DEBOUNCE: ${i}] is disabled in developed mode`),l=new wR(1.5*r)),this._data.set(a,l)),l}_overallAverage(){const t=new uR;for(const i of this._data.values())t.update(i.default());return t.value}};bR=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([pR(0,jh),pR(1,fR)],bR),Cd(gR,bR,1);class yR{static create(t,i){return new yR(t,new kR(i))}get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._endLineNumber}constructor(t,i){this._startLineNumber=t,this._tokens=i,this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}toString(){return this._tokens.toString(this._startLineNumber)}_updateEndLineNumber(){this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}isEmpty(){return this._tokens.isEmpty()}getLineTokens(t){return this._startLineNumber<=t&&t<=this._endLineNumber?this._tokens.getLineTokens(t-this._startLineNumber):null}getRange(){const t=this._tokens.getRange();return t?new Ms(this._startLineNumber+t.startLineNumber,t.startColumn,this._startLineNumber+t.endLineNumber,t.endColumn):t}removeTokens(t){this._startLineNumber+=this._tokens.removeTokens(t.startLineNumber-this._startLineNumber,t.startColumn-1,t.endLineNumber-this._startLineNumber,t.endColumn-1),this._updateEndLineNumber()}split(t){const i=t.startLineNumber-this._startLineNumber,e=t.endLineNumber-this._startLineNumber,[s,n,o]=this._tokens.split(i,t.startColumn-1,e,t.endColumn-1);return[new yR(this._startLineNumber,s),new yR(this._startLineNumber+o,n)]}applyEdit(t,i){const[e,s,n]=KD(i);this.acceptEdit(t,e,s,n,i.length>0?i.charCodeAt(0):0)}acceptEdit(t,i,e,s,n){this._acceptDeleteRange(t),this._acceptInsertText(new As(t.startLineNumber,t.startColumn),i,e,s,n),this._updateEndLineNumber()}_acceptDeleteRange(t){if(t.startLineNumber===t.endLineNumber&&t.startColumn===t.endColumn)return;const i=t.startLineNumber-this._startLineNumber,e=t.endLineNumber-this._startLineNumber;if(e<0)return void(this._startLineNumber-=e-i);const s=this._tokens.getMaxDeltaLine();if(!(i>=s+1)){if(i<0&&e>=s+1)return this._startLineNumber=0,void this._tokens.clear();i<0?(this._startLineNumber-=-i,this._tokens.acceptDeleteRange(t.startColumn-1,0,0,e,t.endColumn-1)):this._tokens.acceptDeleteRange(0,i,t.startColumn-1,e,t.endColumn-1)}}_acceptInsertText(t,i,e,s,n){if(0===i&&0===e)return;const o=t.lineNumber-this._startLineNumber;o<0?this._startLineNumber+=i:o>=this._tokens.getMaxDeltaLine()+1||this._tokens.acceptInsertText(o,t.column-1,i,e,s,n)}}class kR{constructor(t){this._tokens=t,this._tokenCount=t.length/4}toString(t){const i=[];for(let e=0;et)){let n=s;for(;n>i&&this._getDeltaLine(n-1)===t;)n--;let o=s;for(;ot||l===t&&d>=i)&&(lt||u===t&&f>=i){if(un?p-=n-e:p=e;else if(d===i&&f===e){if(!(d===s&&p>n)){a=!0;continue}p-=n-e}else if(dn)){a=!0;continue}d=i,f=e,p=f+(p-n)}else if(d>s){if(0===h&&!a){c=r;break}d-=h}else{if(!(d===s&&f>=n))throw new Error("Not possible!");t&&0===d&&(f+=t,p+=t),d-=h,f-=n-e,p-=n-e}const m=4*c;o[m]=d,o[m+1]=f,o[m+2]=p,o[m+3]=g,c++}this._tokenCount=c}acceptInsertText(t,i,e,s,n,o){const r=0===e&&1===s&&(o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122),h=this._tokens,c=this._tokenCount;for(let o=0;o0&&i>=1;t>0&&this._logService.getLevel()===zh.Trace&&(this._logService.trace(`SemanticTokensProviderStyling: unknown token modifier index: ${i.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}`),r.push("not-in-legend"));const s=this._themeService.getColorTheme().getTokenStyleMetadata(n,r,e);void 0===s?o=2147483647:(o=0,void 0!==s.italic&&(o|=1|(s.italic?1:0)<<11),void 0!==s.bold&&(o|=2|(s.bold?2:0)<<11),void 0!==s.underline&&(o|=4|(s.underline?4:0)<<11),void 0!==s.strikethrough&&(o|=8|(s.strikethrough?8:0)<<11),s.foreground&&(o|=16|s.foreground<<15),0===o&&(o=2147483647))}else this._logService.getLevel()===zh.Trace&&this._logService.trace(`SemanticTokensProviderStyling: unknown token type index: ${t} for legend: ${JSON.stringify(this._legend.tokenTypes)}`),o=2147483647,n="not-in-legend";this._hashTable.add(t,i,s,o),this._logService.getLevel()===zh.Trace&&this._logService.trace(`SemanticTokensProviderStyling ${t} (${n}) / ${i} (${r.join(" ")}): foreground ${Bg.getForeground(o)}, fontStyle ${Bg.getFontStyle(o).toString(2)}`)}return o}warnOverlappingSemanticTokens(t,i){this._hasWarnedOverlappingTokens||(this._hasWarnedOverlappingTokens=!0,console.warn(`Overlapping semantic tokens detected at lineNumber ${t}, column ${i}`))}warnInvalidLengthSemanticTokens(t,i){this._hasWarnedInvalidLengthTokens||(this._hasWarnedInvalidLengthTokens=!0,console.warn(`Semantic token with invalid length detected at lineNumber ${t}, column ${i}`))}warnInvalidEditStart(t,i,e,s,n){this._hasWarnedInvalidEditStart||(this._hasWarnedInvalidEditStart=!0,console.warn(`Invalid semantic tokens edit detected (previousResultId: ${t}, resultId: ${i}) at edit #${e}: The provided start offset ${s} is outside the previous data (length ${n}).`))}};function DR(t,i,e){const s=t.data,n=t.data.length/5|0,o=Math.max(Math.ceil(n/1024),400),r=[];let h=0,c=1,a=0;for(;ht&&0===s[5*i];)i--;if(i-1===t){let t=l;for(;t+1l)i.warnOverlappingSemanticTokens(r,l+1);else{const t=i.getMetadata(w,v,e);2147483647!==t&&(0===f&&(f=r),u[d]=r-f,u[d+1]=l,u[d+2]=m,u[d+3]=t,d+=4,p=r,g=m)}c=r,a=l,h++}d!==u.length&&(u=u.subarray(0,d));const m=yR.create(f,u);r.push(m)}return r}SR=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([CR(1,Xk),CR(2,yd),CR(3,jh)],SR);class ER{constructor(t,i,e,s){this.tokenTypeIndex=t,this.tokenModifierSet=i,this.languageId=e,this.metadata=s,this.next=null}}class AR{constructor(){this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=AR._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1=this._growCount){const t=this._elements;this._currentLengthIndex++,this._currentLength=AR._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1{this._caches=new WeakMap})))}getStyling(t){return this._caches.has(t)||this._caches.set(t,new SR(t.getLegend(),this._themeService,this._languageService,this._logService)),this._caches.get(t)}};FR=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([LR(0,Xk),LR(1,jh),LR(2,yd)],FR),Cd(MR,FR,1);const TR="**",RR="/",OR="[/\\\\]",IR="[^/\\\\]",_R=/\//g;function NR(t,i){switch(t){case 0:return"";case 1:return`${IR}*?`;default:return`(?:${OR}|${IR}+${OR}${i?`|${OR}${IR}+`:""})*?`}}function BR(t,i){if(!t)return[];const e=[];let s=!1,n=!1,o="";for(const r of t){switch(r){case i:if(!s&&!n){e.push(o),o="";continue}break;case"{":s=!0;break;case"}":s=!1;break;case"[":n=!0;break;case"]":n=!1}o+=r}return o&&e.push(o),e}function PR(t){if(!t)return"";let i="";const e=BR(t,RR);if(e.every((t=>t===TR)))i=".*";else{let t=!1;e.forEach(((s,n)=>{if(s===TR){if(t)return;i+=NR(2,n===e.length-1)}else{let t=!1,o="",r=!1,h="";for(const e of s)if("}"!==e&&t)o+=e;else if(!r||"]"===e&&h)switch(e){case"{":t=!0;continue;case"[":r=!0;continue;case"}":{const e=`(?:${BR(o,",").map((t=>PR(t))).join("|")})`;i+=e,t=!1,o="";break}case"]":i+="["+h+"]",r=!1,h="";break;case"?":i+=IR;continue;case"*":i+=NR(1);continue;default:i+=Gn(e)}else{let t;t="-"===e?e:"^"!==e&&"!"!==e||h?e===RR?"":Gn(e):"^",h+=t}nGR(t,i))).filter((t=>t!==KR)),t),s=e.length;if(!s)return KR;if(1===s)return e[0];const n=function(i,s){for(let n=0,o=e.length;n!!t.allBasenames));o&&(n.allBasenames=o.allBasenames);const r=e.reduce(((t,i)=>i.allPaths?t.concat(i.allPaths):t),[]);return r.length&&(n.allPaths=r),n}(e,i):(n=HR.exec(ZR(e,i)))?QR(n[1].substr(1),e,!0):(n=VR.exec(ZR(e,i)))?QR(n[1],e,!1):function(t){try{const i=new RegExp(`^${PR(t)}$`);return function(e){return i.lastIndex=0,"string"==typeof e&&i.test(e)?t:null}}catch(t){return KR}}(e),UR.set(s,o)),function(t,i){if("string"==typeof i)return t;const e=function(e,s){return dA(e,i.base,!St)?t(Qn(e.substr(i.base.length),as),s):null};return e.allBasenames=t.allBasenames,e.allPaths=t.allPaths,e.basenames=t.basenames,e.patterns=t.patterns,e}(o,t)}function ZR(t,i){return i.trimForExclusions&&t.endsWith("/**")?t.substr(0,t.length-2):t}function QR(t,i,e){const s=as===es.sep,n=s?t:t.replace(_R,as),o=as+n,r=es.sep+t;let h;return h=e?function(e){return"string"!=typeof e||e!==n&&!e.endsWith(o)&&(s||e!==t&&!e.endsWith(r))?null:i}:function(e){return"string"!=typeof e||e!==n&&(s||e!==t)?null:i},h.allPaths=[(e?"*/":"./")+t],h}function JR(t,i={}){if(!t)return qR;if("string"==typeof t||(e=t)&&"string"==typeof e.base&&"string"==typeof e.pattern){const e=GR(t,i);if(e===KR)return qR;const s=function(t,i){return!!e(t,i)};return e.allBasenames&&(s.allBasenames=e.allBasenames),e.allPaths&&(s.allPaths=e.allPaths),s}var e;return function(t,i){const e=YR(Object.getOwnPropertyNames(t).map((e=>function(t,i,e){if(!1===i)return KR;const s=GR(t,e);if(s===KR)return KR;if("boolean"==typeof i)return s;if(i){const e=i.when;if("string"==typeof e){const i=(i,n,o,r)=>{if(!r||!s(i,n))return null;const h=r(e.replace("$(basename)",(()=>o)));return sc(h)?h.then((i=>i?t:null)):h?t:null};return i.requiresSiblings=!0,i}}return s}(e,t[e],i))).filter((t=>t!==KR))),s=e.length;if(!s)return KR;if(!e.some((t=>!!t.requiresSiblings))){if(1===s)return e[0];const t=function(t,i){let s;for(let n=0,o=e.length;n{for(const t of s){const i=await t;if("string"==typeof i)return i}return null})():null},i=e.find((t=>!!t.allBasenames));i&&(t.allBasenames=i.allBasenames);const n=e.reduce(((t,i)=>i.allPaths?t.concat(i.allPaths):t),[]);return n.length&&(t.allPaths=n),t}const n=function(t,i,s){let n,o;for(let r=0,h=e.length;r{for(const t of o){const i=await t;if("string"==typeof i)return i}return null})():null},o=e.find((t=>!!t.allBasenames));o&&(n.allBasenames=o.allBasenames);const r=e.reduce(((t,i)=>i.allPaths?t.concat(i.allPaths):t),[]);return r.length&&(n.allPaths=r),n}(t,i)}function YR(t,i){const e=t.filter((t=>!!t.basenames));if(e.length<2)return t;const s=e.reduce(((t,i)=>{const e=i.basenames;return e?t.concat(e):t}),[]);let n;if(i){n=[];for(let t=0,e=s.length;t{const e=i.patterns;return e?t.concat(e):t}),[]);const o=function(t,i){if("string"!=typeof t)return null;if(!i){let e;for(e=t.length;e>0;e--){const i=t.charCodeAt(e-1);if(47===i||92===i)break}i=t.substr(e)}const e=s.indexOf(i);return-1!==e?n[e]:null};o.basenames=s,o.patterns=n,o.allBasenames=s;const r=t.filter((t=>!t.basenames));return r.push(o),r}function XR(t,i,e,s,n,o){if(Array.isArray(t)){let r=0;for(const h of t){const t=XR(h,i,e,s,n,o);if(10===t)return t;t>r&&(r=t)}return r}if("string"==typeof t)return s?"*"===t?5:t===e?10:0:0;if(t){const{language:c,pattern:a,scheme:l,hasAccessToAllModels:u,notebookType:d}=t;if(!s&&!u)return 0;d&&n&&(i=n);let f=0;if(l)if(l===i.scheme)f=10;else{if("*"!==l)return 0;f=5}if(c)if(c===e)f=10;else{if("*"!==c)return 0;f=Math.max(f,5)}if(d)if(d===o)f=10;else{if("*"!==d||void 0===o)return 0;f=Math.max(f,5)}if(a){let t;if(t="string"==typeof a?a:{...a,base:ss(a.base)},t!==i.fsPath&&(h=i.fsPath,!(r=t)||"string"!=typeof h||!JR(r)(h,void 0,undefined)))return 0;f=10}return f}return 0;var r,h}function tO(t){return"string"!=typeof t&&(Array.isArray(t)?t.every(tO):!!t.exclusive)}class iO{constructor(t,i,e,s){this.uri=t,this.languageId=i,this.notebookUri=e,this.notebookType=s}equals(t){var i,e;return this.notebookType===t.notebookType&&this.languageId===t.languageId&&this.uri.toString()===t.uri.toString()&&(null===(i=this.notebookUri)||void 0===i?void 0:i.toString())===(null===(e=t.notebookUri)||void 0===e?void 0:e.toString())}}class eO{constructor(t){this._notebookInfoResolver=t,this._clock=0,this._entries=[],this._onDidChange=new de,this.onDidChange=this._onDidChange.event}register(t,i){let e={selector:t,provider:i,_score:-1,_time:this._clock++};return this._entries.push(e),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),Yi((()=>{if(e){const t=this._entries.indexOf(e);t>=0&&(this._entries.splice(t,1),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),e=void 0)}}))}has(t){return this.all(t).length>0}all(t){if(!t)return[];this._updateScores(t);const i=[];for(const t of this._entries)t._score>0&&i.push(t.provider);return i}ordered(t){const i=[];return this._orderedForEach(t,(t=>i.push(t.provider))),i}orderedGroups(t){const i=[];let e,s;return this._orderedForEach(t,(t=>{e&&s===t._score?e.push(t.provider):(s=t._score,e=[t.provider],i.push(e))})),i}_orderedForEach(t,i){this._updateScores(t);for(const t of this._entries)t._score>0&&i(t)}_updateScores(t){var i,e;const s=null===(i=this._notebookInfoResolver)||void 0===i?void 0:i.call(this,t.uri),n=s?new iO(t.uri,t.getLanguageId(),s.uri,s.type):new iO(t.uri,t.getLanguageId(),void 0,void 0);if(!(null===(e=this._lastCandidate)||void 0===e?void 0:e.equals(n))){this._lastCandidate=n;for(const i of this._entries)if(i._score=XR(i.selector,n.uri,n.languageId,qf(t),n.notebookUri,n.notebookType),tO(i.selector)&&i._score>0){for(const t of this._entries)t._score=0;i._score=1e3;break}this._entries.sort(eO._compareByScoreAndTime)}}static _compareByScoreAndTime(t,i){return t._scorei._score?-1:sO(t.selector)&&!sO(i.selector)?1:!sO(t.selector)&&sO(i.selector)?-1:t._timei._time?-1:0}}function sO(t){return"string"!=typeof t&&(Array.isArray(t)?t.some(sO):Boolean(t.isBuiltin))}Cd(xg,class{constructor(){this.referenceProvider=new eO(this._score.bind(this)),this.renameProvider=new eO(this._score.bind(this)),this.codeActionProvider=new eO(this._score.bind(this)),this.definitionProvider=new eO(this._score.bind(this)),this.typeDefinitionProvider=new eO(this._score.bind(this)),this.declarationProvider=new eO(this._score.bind(this)),this.implementationProvider=new eO(this._score.bind(this)),this.documentSymbolProvider=new eO(this._score.bind(this)),this.inlayHintsProvider=new eO(this._score.bind(this)),this.colorProvider=new eO(this._score.bind(this)),this.codeLensProvider=new eO(this._score.bind(this)),this.documentFormattingEditProvider=new eO(this._score.bind(this)),this.documentRangeFormattingEditProvider=new eO(this._score.bind(this)),this.onTypeFormattingEditProvider=new eO(this._score.bind(this)),this.signatureHelpProvider=new eO(this._score.bind(this)),this.hoverProvider=new eO(this._score.bind(this)),this.documentHighlightProvider=new eO(this._score.bind(this)),this.multiDocumentHighlightProvider=new eO(this._score.bind(this)),this.selectionRangeProvider=new eO(this._score.bind(this)),this.foldingRangeProvider=new eO(this._score.bind(this)),this.linkProvider=new eO(this._score.bind(this)),this.inlineCompletionsProvider=new eO(this._score.bind(this)),this.completionProvider=new eO(this._score.bind(this)),this.linkedEditingRangeProvider=new eO(this._score.bind(this)),this.documentRangeSemanticTokensProvider=new eO(this._score.bind(this)),this.documentSemanticTokensProvider=new eO(this._score.bind(this)),this.documentOnDropEditProvider=new eO(this._score.bind(this)),this.documentPasteEditProvider=new eO(this._score.bind(this))}_score(t){var i;return null===(i=this._notebookTypeResolver)||void 0===i?void 0:i.call(this,t)}},1);const nO=dr("IWorkspaceEditService");class oO{constructor(t){this.metadata=t}static convert(t){return t.edits.map((t=>{if(rO.is(t))return rO.lift(t);if(hO.is(t))return hO.lift(t);throw new Error("Unsupported edit")}))}}class rO extends oO{static is(t){return t instanceof rO||P(t)&&ms.isUri(t.resource)&&P(t.textEdit)}static lift(t){return t instanceof rO?t:new rO(t.resource,t.textEdit,t.versionId,t.metadata)}constructor(t,i,e,s){super(s),this.resource=t,this.textEdit=i,this.versionId=e}}class hO extends oO{static is(t){return t instanceof hO||P(t)&&(Boolean(t.newResource)||Boolean(t.oldResource))}static lift(t){return t instanceof hO?t:new hO(t.oldResource,t.newResource,t.options,t.metadata)}constructor(t,i,e={},s){super(s),this.oldResource=t,this.newResource=i,this.options=e}}const cO={enableSplitViewResizing:!0,splitViewDefaultRatio:.5,renderSideBySide:!0,renderMarginRevertIcon:!0,maxComputationTime:5e3,maxFileSize:50,ignoreTrimWhitespace:!0,renderIndicators:!0,originalEditable:!1,diffCodeLens:!1,renderOverviewRuler:!0,diffWordWrap:"inherit",diffAlgorithm:"advanced",accessibilityVerbose:!1,experimental:{showMoves:!1,showEmptyDecorations:!0},hideUnchangedRegions:{enabled:!1,contextLineCount:3,minimumLineCount:3,revealLineCount:20},isInEmbeddedEditor:!1,onlyShowAccessibleDiffViewer:!1,renderSideBySideInlineBreakpoint:900,useInlineViewWhenSpaceIsLimited:!0},aO=Object.freeze({id:"editor",order:5,type:"object",title:ot(0,"Editor"),scope:5}),lO={...aO,properties:{"editor.tabSize":{type:"number",default:zt.tabSize,minimum:1,markdownDescription:ot(0,"The number of spaces a tab is equal to. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.indentSize":{anyOf:[{type:"string",enum:["tabSize"]},{type:"number",minimum:1}],default:"tabSize",markdownDescription:ot(0,'The number of spaces used for indentation or `"tabSize"` to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.')},"editor.insertSpaces":{type:"boolean",default:zt.insertSpaces,markdownDescription:ot(0,"Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.detectIndentation":{type:"boolean",default:zt.detectIndentation,markdownDescription:ot(0,"Controls whether {0} and {1} will be automatically detected when a file is opened based on the file contents.","`#editor.tabSize#`","`#editor.insertSpaces#`")},"editor.trimAutoWhitespace":{type:"boolean",default:zt.trimAutoWhitespace,description:ot(0,"Remove trailing auto inserted whitespace.")},"editor.largeFileOptimizations":{type:"boolean",default:zt.largeFileOptimizations,description:ot(0,"Special handling for large files to disable certain memory intensive features.")},"editor.wordBasedSuggestions":{enum:["off","currentDocument","matchingDocuments","allDocuments"],default:"matchingDocuments",enumDescriptions:[ot(0,"Turn off Word Based Suggestions."),ot(0,"Only suggest words from the active document."),ot(0,"Suggest words from all open documents of the same language."),ot(0,"Suggest words from all open documents.")],description:ot(0,"Controls whether completions should be computed based on words in the document and from which documents they are computed.")},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[ot(0,"Semantic highlighting enabled for all color themes."),ot(0,"Semantic highlighting disabled for all color themes."),ot(0,"Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.")],default:"configuredByTheme",description:ot(0,"Controls whether the semanticHighlighting is shown for the languages that support it.")},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:ot(0,"Keep peek editors open even when double-clicking their content or when hitting `Escape`.")},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:ot(0,"Lines above this length will not be tokenized for performance reasons")},"editor.experimental.asyncTokenization":{type:"boolean",default:!1,description:ot(0,"Controls whether the tokenization should happen asynchronously on a web worker."),tags:["experimental"]},"editor.experimental.asyncTokenizationLogging":{type:"boolean",default:!1,description:ot(0,"Controls whether async tokenization should be logged. For debugging only.")},"editor.experimental.asyncTokenizationVerification":{type:"boolean",default:!1,description:ot(0,"Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only."),tags:["experimental"]},"editor.language.brackets":{type:["array","null"],default:null,description:ot(0,"Defines the bracket symbols that increase or decrease the indentation."),items:{type:"array",items:[{type:"string",description:ot(0,"The opening bracket character or string sequence.")},{type:"string",description:ot(0,"The closing bracket character or string sequence.")}]}},"editor.language.colorizedBracketPairs":{type:["array","null"],default:null,description:ot(0,"Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled."),items:{type:"array",items:[{type:"string",description:ot(0,"The opening bracket character or string sequence.")},{type:"string",description:ot(0,"The closing bracket character or string sequence.")}]}},"diffEditor.maxComputationTime":{type:"number",default:cO.maxComputationTime,description:ot(0,"Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.")},"diffEditor.maxFileSize":{type:"number",default:cO.maxFileSize,description:ot(0,"Maximum file size in MB for which to compute diffs. Use 0 for no limit.")},"diffEditor.renderSideBySide":{type:"boolean",default:cO.renderSideBySide,description:ot(0,"Controls whether the diff editor shows the diff side by side or inline.")},"diffEditor.renderSideBySideInlineBreakpoint":{type:"number",default:cO.renderSideBySideInlineBreakpoint,description:ot(0,"If the diff editor width is smaller than this value, the inline view is used.")},"diffEditor.useInlineViewWhenSpaceIsLimited":{type:"boolean",default:cO.useInlineViewWhenSpaceIsLimited,description:ot(0,"If enabled and the editor width is too small, the inline view is used.")},"diffEditor.renderMarginRevertIcon":{type:"boolean",default:cO.renderMarginRevertIcon,description:ot(0,"When enabled, the diff editor shows arrows in its glyph margin to revert changes.")},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:cO.ignoreTrimWhitespace,description:ot(0,"When enabled, the diff editor ignores changes in leading or trailing whitespace.")},"diffEditor.renderIndicators":{type:"boolean",default:cO.renderIndicators,description:ot(0,"Controls whether the diff editor shows +/- indicators for added/removed changes.")},"diffEditor.codeLens":{type:"boolean",default:cO.diffCodeLens,description:ot(0,"Controls whether the editor shows CodeLens.")},"diffEditor.wordWrap":{type:"string",enum:["off","on","inherit"],default:cO.diffWordWrap,markdownEnumDescriptions:[ot(0,"Lines will never wrap."),ot(0,"Lines will wrap at the viewport width."),ot(0,"Lines will wrap according to the {0} setting.","`#editor.wordWrap#`")]},"diffEditor.diffAlgorithm":{type:"string",enum:["legacy","advanced"],default:cO.diffAlgorithm,markdownEnumDescriptions:[ot(0,"Uses the legacy diffing algorithm."),ot(0,"Uses the advanced diffing algorithm.")],tags:["experimental"]},"diffEditor.hideUnchangedRegions.enabled":{type:"boolean",default:cO.hideUnchangedRegions.enabled,markdownDescription:ot(0,"Controls whether the diff editor shows unchanged regions.")},"diffEditor.hideUnchangedRegions.revealLineCount":{type:"integer",default:cO.hideUnchangedRegions.revealLineCount,markdownDescription:ot(0,"Controls how many lines are used for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.minimumLineCount":{type:"integer",default:cO.hideUnchangedRegions.minimumLineCount,markdownDescription:ot(0,"Controls how many lines are used as a minimum for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.contextLineCount":{type:"integer",default:cO.hideUnchangedRegions.contextLineCount,markdownDescription:ot(0,"Controls how many lines are used as context when comparing unchanged regions."),minimum:1},"diffEditor.experimental.showMoves":{type:"boolean",default:cO.experimental.showMoves,markdownDescription:ot(0,"Controls whether the diff editor should show detected code moves.")},"diffEditor.experimental.showEmptyDecorations":{type:"boolean",default:cO.experimental.showEmptyDecorations,description:ot(0,"Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted.")}}};for(const t of Oi){const i=t.schema;if(void 0!==i)if(void 0!==(uO=i).type||void 0!==uO.anyOf)lO.properties[`editor.${t.name}`]=i;else for(const t in i)Object.hasOwnProperty.call(i,t)&&(lO.properties[t]=i[t])}var uO;let dO=null;function fO(){return null===dO&&(dO=Object.create(null),Object.keys(lO.properties).forEach((t=>{dO[t]=!0}))),dO}Dh.as(Md).registerConfiguration(lO);class pO{static insert(t,i){return{range:new Ms(t.lineNumber,t.column,t.lineNumber,t.column),text:i,forceMoveMarkers:!0}}static delete(t){return{range:t,text:null}}static replace(t,i){return{range:t,text:i}}static replaceMove(t,i){return{range:t,text:i,forceMoveMarkers:!0}}}function gO(t){return Object.isFrozen(t)?t:function(t){if(!t||"object"!=typeof t)return t;const i=[t];for(;i.length>0;){const t=i.shift();Object.freeze(t);for(const e in t)if(J.call(t,e)){const s=t[e];"object"!=typeof s||Object.isFrozen(s)||$(s)||i.push(s)}}return t}(t)}class mO{constructor(t={},i=[],e=[],s){this._contents=t,this._keys=i,this._overrides=e,this.raw=s,this.overrideConfigurations=new Map}get rawConfiguration(){var t;if(!this._rawConfiguration)if(null===(t=this.raw)||void 0===t?void 0:t.length){const t=this.raw.map((t=>{if(t instanceof mO)return t;const i=new wO("");return i.parseRaw(t),i.configurationModel}));this._rawConfiguration=t.reduce(((t,i)=>i===t?i:t.merge(i)),t[0])}else this._rawConfiguration=this;return this._rawConfiguration}get contents(){return this._contents}get overrides(){return this._overrides}get keys(){return this._keys}isEmpty(){return 0===this._keys.length&&0===Object.keys(this._contents).length&&0===this._overrides.length}getValue(t){return t?bd(this.contents,t):this.contents}inspect(t,i){const e=this.rawConfiguration.getValue(t);return{value:e,override:i?this.rawConfiguration.getOverrideValue(t,i):void 0,merged:i?this.rawConfiguration.override(i).getValue(t):e}}getOverrideValue(t,i){const e=this.getContentsForOverrideIdentifer(i);return e?t?bd(e,t):e:void 0}override(t){let i=this.overrideConfigurations.get(t);return i||(i=this.createOverrideConfigurationModel(t),this.overrideConfigurations.set(t,i)),i}merge(...t){var i,e;const s=Q(this.contents),n=Q(this.overrides),o=[...this.keys],r=(null===(i=this.raw)||void 0===i?void 0:i.length)?[...this.raw]:[this];for(const i of t)if(r.push(...(null===(e=i.raw)||void 0===e?void 0:e.length)?i.raw:[i]),!i.isEmpty()){this.mergeContents(s,i.contents);for(const t of i.overrides){const[i]=n.filter((i=>l(i.identifiers,t.identifiers)));i?(this.mergeContents(i.contents,t.contents),i.keys.push(...t.keys),i.keys=y(i.keys)):n.push(Q(t))}for(const t of i.keys)-1===o.indexOf(t)&&o.push(t)}return new mO(s,o,n,r.every((t=>t instanceof mO))?void 0:r)}createOverrideConfigurationModel(t){const i=this.getContentsForOverrideIdentifer(t);if(!i||"object"!=typeof i||!Object.keys(i).length)return this;const e={};for(const t of y([...Object.keys(this.contents),...Object.keys(i)])){let s=this.contents[t];const n=i[t];n&&("object"==typeof s&&"object"==typeof n?(s=Q(s),this.mergeContents(s,n)):s=n),e[t]=s}return new mO(e,this.keys,this.overrides)}mergeContents(t,i){for(const e of Object.keys(i))e in t&&P(t[e])&&P(i[e])?this.mergeContents(t[e],i[e]):t[e]=Q(i[e])}getContentsForOverrideIdentifer(t){let i=null,e=null;const s=t=>{t&&(e?this.mergeContents(e,t):e=Q(t))};for(const e of this.overrides)1===e.identifiers.length&&e.identifiers[0]===t?i=e.contents:e.identifiers.includes(t)&&s(e.contents);return s(i),e}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}addValue(t,i){this.updateValue(t,i,!0)}setValue(t,i){this.updateValue(t,i,!1)}removeValue(t){const i=this.keys.indexOf(t);-1!==i&&(this.keys.splice(i,1),wd(this.contents,t),Wd.test(t)&&this.overrides.splice(this.overrides.findIndex((i=>l(i.identifiers,jd(t)))),1))}updateValue(t,i,e){md(this.contents,t,i,(t=>console.error(t))),(e=e||-1===this.keys.indexOf(t))&&this.keys.push(t),Wd.test(t)&&this.overrides.push({identifiers:jd(t),keys:Object.keys(this.contents[t]),contents:gd(this.contents[t],(t=>console.error(t)))})}}class wO{constructor(t){this._name=t,this._raw=null,this._configurationModel=null,this._restrictedConfigurations=[]}get configurationModel(){return this._configurationModel||new mO}parseRaw(t,i){this._raw=t;const{contents:e,keys:s,overrides:n,restricted:o,hasExcludedProperties:r}=this.doParseRaw(t,i);this._configurationModel=new mO(e,s,n,r?[t]:void 0),this._restrictedConfigurations=o||[]}doParseRaw(t,i){const e=Dh.as(Md).getConfigurationProperties(),s=this.filter(t,e,!0,i);return{contents:gd(t=s.raw,(t=>console.error(`Conflict in settings file ${this._name}: ${t}`))),keys:Object.keys(t),overrides:this.toOverrides(t,(t=>console.error(`Conflict in settings file ${this._name}: ${t}`))),restricted:s.restricted,hasExcludedProperties:s.hasExcludedProperties}}filter(t,i,e,s){var n,o,r;let h=!1;if(!(null==s?void 0:s.scopes)&&!(null==s?void 0:s.skipRestricted)&&!(null===(n=null==s?void 0:s.exclude)||void 0===n?void 0:n.length))return{raw:t,restricted:[],hasExcludedProperties:h};const c={},a=[];for(const n in t)if(Wd.test(n)&&e){const e=this.filter(t[n],i,!1,s);c[n]=e.raw,h=h||e.hasExcludedProperties,a.push(...e.restricted)}else{const e=i[n],l=e?void 0!==e.scope?e.scope:3:void 0;(null==e?void 0:e.restricted)&&a.push(n),(null===(o=s.exclude)||void 0===o?void 0:o.includes(n))||!(null===(r=s.include)||void 0===r?void 0:r.includes(n))&&(void 0!==l&&void 0!==s.scopes&&!s.scopes.includes(l)||s.skipRestricted&&(null==e?void 0:e.restricted))?h=!0:c[n]=t[n]}return{raw:c,restricted:a,hasExcludedProperties:h}}toOverrides(t,i){const e=[];for(const s of Object.keys(t))if(Wd.test(s)){const n={};for(const i in t[s])n[i]=t[s][i];e.push({identifiers:jd(s),keys:Object.keys(n),contents:gd(n,i)})}return e}}class vO{constructor(t,i,e,s,n,o,r,h,c,a,l,u,d){this.key=t,this.overrides=i,this._value=e,this.overrideIdentifiers=s,this.defaultConfiguration=n,this.policyConfiguration=o,this.applicationConfiguration=r,this.userConfiguration=h,this.localUserConfiguration=c,this.remoteUserConfiguration=a,this.workspaceConfiguration=l,this.folderConfigurationModel=u,this.memoryConfigurationModel=d}inspect(t,i,e){const s=t.inspect(i,e);return{get value(){return gO(s.value)},get override(){return gO(s.override)},get merged(){return gO(s.merged)}}}get userInspectValue(){return this._userInspectValue||(this._userInspectValue=this.inspect(this.userConfiguration,this.key,this.overrides.overrideIdentifier)),this._userInspectValue}get user(){return void 0!==this.userInspectValue.value||void 0!==this.userInspectValue.override?{value:this.userInspectValue.value,override:this.userInspectValue.override}:void 0}}class bO{constructor(t,i,e,s,n=new mO,o=new mO,r=new zp,h=new mO,c=new zp){this._defaultConfiguration=t,this._policyConfiguration=i,this._applicationConfiguration=e,this._localUserConfiguration=s,this._remoteUserConfiguration=n,this._workspaceConfiguration=o,this._folderConfigurations=r,this._memoryConfiguration=h,this._memoryConfigurationByResource=c,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new zp,this._userConfiguration=null}getValue(t,i,e){return this.getConsolidatedConfigurationModel(t,i,e).getValue(t)}updateValue(t,i,e={}){let s;e.resource?(s=this._memoryConfigurationByResource.get(e.resource),s||(s=new mO,this._memoryConfigurationByResource.set(e.resource,s))):s=this._memoryConfiguration,void 0===i?s.removeValue(t):s.setValue(t,i),e.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(t,i,e){const s=this.getConsolidatedConfigurationModel(t,i,e),n=this.getFolderConfigurationModelForResource(i.resource,e),o=i.resource&&this._memoryConfigurationByResource.get(i.resource)||this._memoryConfiguration,r=new Set;for(const i of s.overrides)for(const e of i.identifiers)void 0!==s.getOverrideValue(t,e)&&r.add(e);return new vO(t,i,s.getValue(t),r.size?[...r]:void 0,this._defaultConfiguration,this._policyConfiguration.isEmpty()?void 0:this._policyConfiguration,this.applicationConfiguration.isEmpty()?void 0:this.applicationConfiguration,this.userConfiguration,this.localUserConfiguration,this.remoteUserConfiguration,e?this._workspaceConfiguration:void 0,n||void 0,o)}get applicationConfiguration(){return this._applicationConfiguration}get userConfiguration(){return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration)),this._userConfiguration}get localUserConfiguration(){return this._localUserConfiguration}get remoteUserConfiguration(){return this._remoteUserConfiguration}getConsolidatedConfigurationModel(t,i,e){let s=this.getConsolidatedConfigurationModelForResource(i,e);return i.overrideIdentifier&&(s=s.override(i.overrideIdentifier)),this._policyConfiguration.isEmpty()||void 0===this._policyConfiguration.getValue(t)||(s=s.merge(this._policyConfiguration)),s}getConsolidatedConfigurationModelForResource({resource:t},i){let e=this.getWorkspaceConsolidatedConfiguration();if(i&&t){const s=i.getFolder(t);s&&(e=this.getFolderConsolidatedConfiguration(s.uri)||e);const n=this._memoryConfigurationByResource.get(t);n&&(e=e.merge(n))}return e}getWorkspaceConsolidatedConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.applicationConfiguration,this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration)),this._workspaceConsolidatedConfiguration}getFolderConsolidatedConfiguration(t){let i=this._foldersConsolidatedConfigurations.get(t);if(!i){const e=this.getWorkspaceConsolidatedConfiguration(),s=this._folderConfigurations.get(t);s?(i=e.merge(s),this._foldersConsolidatedConfigurations.set(t,i)):i=e}return i}getFolderConfigurationModelForResource(t,i){if(i&&t){const e=i.getFolder(t);if(e)return this._folderConfigurations.get(e.uri)}}toData(){return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},policy:{contents:this._policyConfiguration.contents,overrides:this._policyConfiguration.overrides,keys:this._policyConfiguration.keys},application:{contents:this.applicationConfiguration.contents,overrides:this.applicationConfiguration.overrides,keys:this.applicationConfiguration.keys},user:{contents:this.userConfiguration.contents,overrides:this.userConfiguration.overrides,keys:this.userConfiguration.keys},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:[...this._folderConfigurations.keys()].reduce(((t,i)=>{const{contents:e,overrides:s,keys:n}=this._folderConfigurations.get(i);return t.push([i,{contents:e,overrides:s,keys:n}]),t}),[])}}static parse(t){const i=this.parseConfigurationModel(t.defaults),e=this.parseConfigurationModel(t.policy),s=this.parseConfigurationModel(t.application),n=this.parseConfigurationModel(t.user),o=this.parseConfigurationModel(t.workspace),r=t.folders.reduce(((t,i)=>(t.set(ms.revive(i[0]),this.parseConfigurationModel(i[1])),t)),new zp);return new bO(i,e,s,n,new mO,o,r,new mO,new zp)}static parseConfigurationModel(t){return new mO(t.contents,t.keys,t.overrides)}}class yO{constructor(t,i,e,s){this.change=t,this.previous=i,this.currentConfiguraiton=e,this.currentWorkspace=s,this._marker="\n",this._markerCode1=this._marker.charCodeAt(0),this._markerCode2=".".charCodeAt(0),this.affectedKeys=new Set,this._previousConfiguration=void 0;for(const i of t.keys)this.affectedKeys.add(i);for(const[,i]of t.overrides)for(const t of i)this.affectedKeys.add(t);this._affectsConfigStr=this._marker;for(const t of this.affectedKeys)this._affectsConfigStr+=t+this._marker}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=bO.parse(this.previous.data)),this._previousConfiguration}affectsConfiguration(t,i){var e;const s=this._marker+t,n=this._affectsConfigStr.indexOf(s);if(n<0)return!1;const o=n+s.length;if(o>=this._affectsConfigStr.length)return!1;const r=this._affectsConfigStr.charCodeAt(o);return(r===this._markerCode1||r===this._markerCode2)&&(!i||!it(this.previousConfiguration?this.previousConfiguration.getValue(t,i,null===(e=this.previous)||void 0===e?void 0:e.workspace):void 0,this.currentConfiguraiton.getValue(t,i,this.currentWorkspace)))}}const kO={kind:0},xO={kind:1};class CO{constructor(t,i,e){var s;this._log=e,this._defaultKeybindings=t,this._defaultBoundCommands=new Map;for(const i of t){const t=i.command;t&&"-"!==t.charAt(0)&&this._defaultBoundCommands.set(t,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=CO.handleRemovals([].concat(t).concat(i));for(let t=0,i=this._keybindings.length;t=0;t--){const s=e[t];if(s.command===i.command)continue;let n=!0;for(let t=1;t=0;t--){const s=e[t];if(i.contextMatchesRules(s.when))return s}return e[e.length-1]}resolve(t,i,e){const s=[...i,e];this._log(`| Resolving ${s}`);const n=this._map.get(s[0]);if(void 0===n)return this._log("\\ No keybinding entries."),kO;let o=null;if(s.length<2)o=n;else{o=[];for(let t=0,i=n.length;ti.chords.length)continue;let e=!0;for(let t=1;t=0;e--){const s=i[e];if(CO._contextMatchesRules(t,s.when))return s}return null}static _contextMatchesRules(t,i){return!i||i.evaluate(t)}}function SO(t){return t?`${t.serialize()}`:"no when condition"}function DO(t){return t.extensionId?t.isBuiltinExtension?`built-in extension ${t.extensionId}`:`user extension ${t.extensionId}`:t.isDefault?"built-in":"user"}const EO=/^(cursor|delete|undo|redo|tab|editor\.action\.clipboard)/;class AO extends te{get onDidUpdateKeybindings(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:he.None}get inChordMode(){return this._currentChords.length>0}constructor(t,i,e,s,n){super(),this._contextKeyService=t,this._commandService=i,this._telemetryService=e,this._notificationService=s,this._logService=n,this._onDidUpdateKeybindings=this._register(new de),this._currentChords=[],this._currentChordChecker=new fc,this._currentChordStatusMessage=null,this._ignoreSingleModifiers=MO.EMPTY,this._currentSingleModifier=null,this._currentSingleModifierClearTimeout=new dc,this._logging=!1}dispose(){super.dispose()}_log(t){this._logging&&this._logService.info(`[KeybindingService]: ${t}`)}getKeybindings(){return this._getResolver().getKeybindings()}lookupKeybinding(t,i){const e=this._getResolver().lookupPrimaryKeybinding(t,i||this._contextKeyService);if(e)return e.resolvedKeybinding}dispatchEvent(t,i){return this._dispatch(t,i)}softDispatch(t,i){this._log("/ Soft dispatching keyboard event");const e=this.resolveKeyboardEvent(t);if(e.hasMultipleChords())return console.warn("keyboard event should not be mapped to multiple chords"),kO;const[s]=e.getDispatchChords();if(null===s)return this._log("\\ Keyboard event cannot be dispatched"),kO;const n=this._contextKeyService.getContext(i),o=this._currentChords.map((({keypress:t})=>t));return this._getResolver().resolve(n,o,s)}_scheduleLeaveChordMode(){const t=Date.now();this._currentChordChecker.cancelAndSet((()=>{this._documentHasFocus()?Date.now()-t>5e3&&this._leaveChordMode():this._leaveChordMode()}),500)}_expectAnotherChord(t,i){switch(this._currentChords.push({keypress:t,label:i}),this._currentChords.length){case 0:throw Vi("impossible");case 1:this._currentChordStatusMessage=this._notificationService.status(ot(0,"({0}) was pressed. Waiting for second key of chord...",i));break;default:{const t=this._currentChords.map((({label:t})=>t)).join(", ");this._currentChordStatusMessage=this._notificationService.status(ot(0,"({0}) was pressed. Waiting for next key of chord...",t))}}this._scheduleLeaveChordMode(),nC.enabled&&nC.disable()}_leaveChordMode(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),this._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChords=[],nC.enable()}_dispatch(t,i){return this._doDispatch(this.resolveKeyboardEvent(t),i,!1)}_singleModifierDispatch(t,i){const e=this.resolveKeyboardEvent(t),[s]=e.getSingleModifierDispatchChords();if(s)return this._ignoreSingleModifiers.has(s)?(this._log(`+ Ignoring single modifier ${s} due to it being pressed together with other keys.`),this._ignoreSingleModifiers=MO.EMPTY,this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1):(this._ignoreSingleModifiers=MO.EMPTY,null===this._currentSingleModifier?(this._log(`+ Storing single modifier for possible chord ${s}.`),this._currentSingleModifier=s,this._currentSingleModifierClearTimeout.cancelAndSet((()=>{this._log("+ Clearing single modifier due to 300ms elapsed."),this._currentSingleModifier=null}),300),!1):s===this._currentSingleModifier?(this._log(`/ Dispatching single modifier chord ${s} ${s}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,this._doDispatch(e,i,!0)):(this._log(`+ Clearing single modifier due to modifier mismatch: ${this._currentSingleModifier} ${s}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1));const[n]=e.getChords();return this._ignoreSingleModifiers=new MO(n),null!==this._currentSingleModifier&&this._log("+ Clearing single modifier due to other key up."),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1}_doDispatch(t,i,e=!1){var s;let n=!1;if(t.hasMultipleChords())return console.warn("Unexpected keyboard event mapped to multiple chords"),!1;let o=null,r=null;if(e){const[i]=t.getSingleModifierDispatchChords();o=i,r=i?[i]:[]}else[o]=t.getDispatchChords(),r=this._currentChords.map((({keypress:t})=>t));if(null===o)return this._log("\\ Keyboard event cannot be dispatched in keydown phase."),n;const h=this._contextKeyService.getContext(i),c=t.getLabel(),a=this._getResolver().resolve(h,r,o);switch(a.kind){case 0:if(this._logService.trace("KeybindingService#dispatch",c,"[ No matching keybinding ]"),this.inChordMode){const t=this._currentChords.map((({label:t})=>t)).join(", ");this._log(`+ Leaving multi-chord mode: Nothing bound to "${t}, ${c}".`),this._notificationService.status(ot(0,"The key combination ({0}, {1}) is not a command.",t,c),{hideAfter:1e4}),this._leaveChordMode(),n=!0}return n;case 1:return this._logService.trace("KeybindingService#dispatch",c,"[ Several keybindings match - more chords needed ]"),n=!0,this._expectAnotherChord(o,c),this._log(1===this._currentChords.length?"+ Entering multi-chord mode...":"+ Continuing multi-chord mode..."),n;case 2:if(this._logService.trace("KeybindingService#dispatch",c,`[ Will dispatch command ${a.commandId} ]`),null===a.commandId||""===a.commandId){if(this.inChordMode){const t=this._currentChords.map((({label:t})=>t)).join(", ");this._log(`+ Leaving chord mode: Nothing bound to "${t}, ${c}".`),this._notificationService.status(ot(0,"The key combination ({0}, {1}) is not a command.",t,c),{hideAfter:1e4}),this._leaveChordMode(),n=!0}}else this.inChordMode&&this._leaveChordMode(),a.isBubble||(n=!0),this._log(`+ Invoking command ${a.commandId}.`),void 0===a.commandArgs?this._commandService.executeCommand(a.commandId).then(void 0,(t=>this._notificationService.warn(t))):this._commandService.executeCommand(a.commandId,a.commandArgs).then(void 0,(t=>this._notificationService.warn(t))),EO.test(a.commandId)||this._telemetryService.publicLog2("workbenchActionExecuted",{id:a.commandId,from:"keybinding",detail:null!==(s=t.getUserSettingsLabel())&&void 0!==s?s:void 0});return n}}mightProducePrintableCharacter(t){return!t.ctrlKey&&!t.metaKey&&(t.keyCode>=31&&t.keyCode<=56||t.keyCode>=21&&t.keyCode<=30)}}class MO{constructor(t){this._ctrlKey=!!t&&t.ctrlKey,this._shiftKey=!!t&&t.shiftKey,this._altKey=!!t&&t.altKey,this._metaKey=!!t&&t.metaKey}has(t){switch(t){case"ctrl":return this._ctrlKey;case"shift":return this._shiftKey;case"alt":return this._altKey;case"meta":return this._metaKey}}}MO.EMPTY=new MO(null);class LO{constructor(t,i,e,s,n,o,r){this._resolvedKeybindingItemBrand=void 0,this.resolvedKeybinding=t,this.chords=t?FO(t.getDispatchChords()):[],t&&0===this.chords.length&&(this.chords=FO(t.getSingleModifierDispatchChords())),this.bubble=!!i&&94===i.charCodeAt(0),this.command=this.bubble?i.substr(1):i,this.commandArgs=e,this.when=s,this.isDefault=n,this.extensionId=o,this.isBuiltinExtension=r}}function FO(t){const i=[];for(let e=0,s=t.length;ethis._getLabel(t)))}getAriaLabel(){return OO.toLabel(this._os,this._chords,(t=>this._getAriaLabel(t)))}getElectronAccelerator(){return this._chords.length>1||this._chords[0].isDuplicateModifierCase()?null:IO.toLabel(this._os,this._chords,(t=>this._getElectronAccelerator(t)))}getUserSettingsLabel(){return _O.toLabel(this._os,this._chords,(t=>this._getUserSettingsLabel(t)))}hasMultipleChords(){return this._chords.length>1}getChords(){return this._chords.map((t=>this._getChord(t)))}_getChord(t){return new bh(t.ctrlKey,t.shiftKey,t.altKey,t.metaKey,this._getLabel(t),this._getAriaLabel(t))}getDispatchChords(){return this._chords.map((t=>this._getChordDispatch(t)))}getSingleModifierDispatchChords(){return this._chords.map((t=>this._getSingleModifierChordDispatch(t)))}}class PO extends BO{constructor(t,i){super(i,t)}_keyCodeToUILabel(t){if(2===this._os)switch(t){case 15:return"←";case 16:return"↑";case 17:return"→";case 18:return"↓"}return _e.toString(t)}_getLabel(t){return t.isDuplicateModifierCase()?"":this._keyCodeToUILabel(t.keyCode)}_getAriaLabel(t){return t.isDuplicateModifierCase()?"":_e.toString(t.keyCode)}_getElectronAccelerator(t){return _e.toElectronAccelerator(t.keyCode)}_getUserSettingsLabel(t){if(t.isDuplicateModifierCase())return"";const i=_e.toUserSettingsUS(t.keyCode);return i?i.toLowerCase():i}_getChordDispatch(t){return PO.getDispatchStr(t)}static getDispatchStr(t){if(t.isModifierKey())return null;let i="";return t.ctrlKey&&(i+="ctrl+"),t.shiftKey&&(i+="shift+"),t.altKey&&(i+="alt+"),t.metaKey&&(i+="meta+"),i+=_e.toString(t.keyCode),i}_getSingleModifierChordDispatch(t){return 5!==t.keyCode||t.shiftKey||t.altKey||t.metaKey?4!==t.keyCode||t.ctrlKey||t.altKey||t.metaKey?6!==t.keyCode||t.ctrlKey||t.shiftKey||t.metaKey?57!==t.keyCode||t.ctrlKey||t.shiftKey||t.altKey?null:"meta":"alt":"shift":"ctrl"}static _scanCodeToKeyCode(t){const i=Oe[t];if(-1!==i)return i;switch(t){case 10:return 31;case 11:return 32;case 12:return 33;case 13:return 34;case 14:return 35;case 15:return 36;case 16:return 37;case 17:return 38;case 18:return 39;case 19:return 40;case 20:return 41;case 21:return 42;case 22:return 43;case 23:return 44;case 24:return 45;case 25:return 46;case 26:return 47;case 27:return 48;case 28:return 49;case 29:return 50;case 30:return 51;case 31:return 52;case 32:return 53;case 33:return 54;case 34:return 55;case 35:return 56;case 36:return 22;case 37:return 23;case 38:return 24;case 39:return 25;case 40:return 26;case 41:return 27;case 42:return 28;case 43:return 29;case 44:return 30;case 45:return 21;case 51:return 88;case 52:return 86;case 53:return 92;case 54:return 94;case 55:return 93;case 56:return 0;case 57:return 85;case 58:return 95;case 59:return 91;case 60:return 87;case 61:return 89;case 62:return 90;case 106:return 97}return 0}static _toKeyCodeChord(t){if(!t)return null;if(t instanceof wh)return t;const i=this._scanCodeToKeyCode(t.scanCode);return 0===i?null:new wh(t.ctrlKey,t.shiftKey,t.altKey,t.metaKey,i)}static resolveKeybinding(t,i){const e=FO(t.chords.map((t=>this._toKeyCodeChord(t))));return e.length>0?[new PO(e,i)]:[]}}const $O=dr("labelService"),WO=dr("progressService");Object.freeze({total(){},worked(){},done(){}});class jO{constructor(t){this.callback=t}report(t){this._value=t,this.callback(this._value)}}jO.None=Object.freeze({report(){}});const zO=dr("editorProgressService");class HO{constructor(){this._value="",this._pos=0}reset(t){return this._value=t,this._pos=0,this}next(){return this._pos+=1,this}hasNext(){return this._pos=0;i--,this._valueLen--){const t=this._value.charCodeAt(i);if(!(47===t||this._splitOnBackslash&&92===t))break}return this.next()}hasNext(){return this._to!1),i=(()=>!1)){return new GO(new qO(t,i))}static forStrings(){return new GO(new HO)}static forConfigKeys(){return new GO(new VO)}constructor(t){this._iter=t}clear(){this._root=void 0}set(t,i){const e=this._iter.reset(t);let s;this._root||(this._root=new KO,this._root.segment=e.value());const n=[];for(s=this._root;;){const t=e.cmp(s.segment);if(t>0)s.left||(s.left=new KO,s.left.segment=e.value()),n.push([-1,s]),s=s.left;else if(t<0)s.right||(s.right=new KO,s.right.segment=e.value()),n.push([1,s]),s=s.right;else{if(!e.hasNext())break;e.next(),s.mid||(s.mid=new KO,s.mid.segment=e.value()),n.push([0,s]),s=s.mid}}const o=s.value;s.value=i,s.key=t;for(let t=n.length-1;t>=0;t--){const i=n[t][1];i.updateHeight();const e=i.balanceFactor();if(e<-1||e>1){const e=n[t][0],s=n[t+1][0];if(1===e&&1===s)n[t][1]=i.rotateLeft();else if(-1===e&&-1===s)n[t][1]=i.rotateRight();else if(1===e&&-1===s)i.right=n[t+1][1]=n[t+1][1].rotateRight(),n[t][1]=i.rotateLeft();else{if(-1!==e||1!==s)throw new Error;i.left=n[t+1][1]=n[t+1][1].rotateLeft(),n[t][1]=i.rotateRight()}if(t>0)switch(n[t-1][0]){case-1:n[t-1][1].left=n[t][1];break;case 1:n[t-1][1].right=n[t][1];break;case 0:n[t-1][1].mid=n[t][1]}else this._root=n[0][1]}}return o}get(t){var i;return null===(i=this._getNode(t))||void 0===i?void 0:i.value}_getNode(t){const i=this._iter.reset(t);let e=this._root;for(;e;){const t=i.cmp(e.segment);if(t>0)e=e.left;else if(t<0)e=e.right;else{if(!i.hasNext())break;i.next(),e=e.mid}}return e}has(t){const i=this._getNode(t);return!(void 0===(null==i?void 0:i.value)&&void 0===(null==i?void 0:i.mid))}delete(t){return this._delete(t,!1)}deleteSuperstr(t){return this._delete(t,!0)}_delete(t,i){var e;const s=this._iter.reset(t),n=[];let o=this._root;for(;o;){const t=s.cmp(o.segment);if(t>0)n.push([-1,o]),o=o.left;else if(t<0)n.push([1,o]),o=o.right;else{if(!s.hasNext())break;s.next(),n.push([0,o]),o=o.mid}}if(o){if(i?(o.left=void 0,o.mid=void 0,o.right=void 0,o.height=1):(o.key=void 0,o.value=void 0),!o.mid&&!o.value)if(o.left&&o.right){const t=this._min(o.right);if(t.key){const{key:i,value:e,segment:s}=t;this._delete(t.key,!1),o.key=i,o.value=e,o.segment=s}}else{const t=null!==(e=o.left)&&void 0!==e?e:o.right;if(n.length>0){const[i,e]=n[n.length-1];switch(i){case-1:e.left=t;break;case 0:e.mid=t;break;case 1:e.right=t}}else this._root=t}for(let t=n.length-1;t>=0;t--){const i=n[t][1];i.updateHeight();const e=i.balanceFactor();if(e>1?(i.right.balanceFactor()>=0||(i.right=i.right.rotateRight()),n[t][1]=i.rotateLeft()):e<-1&&(i.left.balanceFactor()<=0||(i.left=i.left.rotateLeft()),n[t][1]=i.rotateRight()),t>0)switch(n[t-1][0]){case-1:n[t-1][1].left=n[t][1];break;case 1:n[t-1][1].right=n[t][1];break;case 0:n[t-1][1].mid=n[t][1]}else this._root=n[0][1]}}}_min(t){for(;t.left;)t=t.left;return t}findSubstr(t){const i=this._iter.reset(t);let e,s=this._root;for(;s;){const t=i.cmp(s.segment);if(t>0)s=s.left;else if(t<0)s=s.right;else{if(!i.hasNext())break;i.next(),e=s.value||e,s=s.mid}}return s&&s.value||e}findSuperstr(t){return this._findSuperstrOrElement(t,!1)}_findSuperstrOrElement(t,i){const e=this._iter.reset(t);let s=this._root;for(;s;){const t=e.cmp(s.segment);if(t>0)s=s.left;else if(t<0)s=s.right;else{if(!e.hasNext())return s.mid?this._entries(s.mid):i?s.value:void 0;e.next(),s=s.mid}}}forEach(t){for(const[i,e]of this)t(e,i)}*[Symbol.iterator](){yield*this._entries(this._root)}_entries(t){const i=[];return this._dfsEntries(t,i),i[Symbol.iterator]()}_dfsEntries(t,i){t&&(t.left&&this._dfsEntries(t.left,i),t.value&&i.push([t.key,t.value]),t.mid&&this._dfsEntries(t.mid,i),t.right&&this._dfsEntries(t.right,i))}}const ZO=dr("contextService");function QO(t){return"string"==typeof(null==t?void 0:t.id)&&ms.isUri(t.uri)}const JO={id:"empty-window"};class YO{constructor(t,i){this.raw=i,this.uri=t.uri,this.index=t.index,this.name=t.name}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}}ot(0,"Code Workspace");const XO="4064f6ec-cb38-4ad0-af64-ee6467e63c82";var tI,iI,eI,sI,nI,oI,rI,hI;!function(t){t.inspectTokensAction=ot(0,"Developer: Inspect Tokens")}(tI||(tI={})),function(t){t.gotoLineActionLabel=ot(0,"Go to Line/Column...")}(iI||(iI={})),function(t){t.helpQuickAccessActionLabel=ot(0,"Show all Quick Access Providers")}(eI||(eI={})),function(t){t.quickCommandActionLabel=ot(0,"Command Palette"),t.quickCommandHelp=ot(0,"Show And Run Commands")}(sI||(sI={})),function(t){t.quickOutlineActionLabel=ot(0,"Go to Symbol..."),t.quickOutlineByCategoryActionLabel=ot(0,"Go to Symbol by Category...")}(nI||(nI={})),function(t){t.editorViewAccessibleLabel=ot(0,"Editor content"),t.accessibilityHelpMessage=ot(0,"Press Alt+F1 for Accessibility Options.")}(oI||(oI={})),function(t){t.toggleHighContrast=ot(0,"Toggle High Contrast Theme")}(rI||(rI={})),function(t){t.bulkEditServiceSummary=ot(0,"Made {0} edits in {1} files")}(hI||(hI={}));const cI=dr("workspaceTrustManagementService"),aI=dr("contextViewService"),lI=dr("contextMenuService");var uI,dI;function fI(t,i,e){const s=e.mode===dI.ALIGN?e.offset:e.offset+e.size,n=e.mode===dI.ALIGN?e.offset+e.size:e.offset;return 0===e.position?i<=t-s?s:i<=n?n-i:Math.max(t-i,0):i<=n?n-i:i<=t-s?s:0}!function(t){function i(t,i){if(t.start>=i.end||i.start>=t.end)return{start:0,end:0};const e=Math.max(t.start,i.start),s=Math.min(t.end,i.end);return s-e<=0?{start:0,end:0}:{start:e,end:s}}function e(t){return t.end-t.start<=0}t.intersect=i,t.isEmpty=e,t.intersects=function(t,s){return!e(i(t,s))},t.relativeComplement=function(t,i){const s=[],n={start:t.start,end:Math.min(i.start,t.end)},o={start:Math.max(i.end,t.start),end:t.end};return e(n)||s.push(n),e(o)||s.push(o),s}}(uI||(uI={})),function(t){t[t.AVOID=0]="AVOID",t[t.ALIGN=1]="ALIGN"}(dI||(dI={}));class pI extends te{constructor(t,i){super(),this.container=null,this.useFixedPosition=!1,this.useShadowDOM=!1,this.delegate=null,this.toDisposeOnClean=te.None,this.toDisposeOnSetContainer=te.None,this.shadowRoot=null,this.shadowRootHostElement=null,this.view=$l(".context-view"),jl(this.view),this.setContainer(t,i),this._register(Yi((()=>this.setContainer(null,1))))}setContainer(t,i){var e;this.useFixedPosition=1!==i;const s=this.useShadowDOM;if(this.useShadowDOM=3===i,(t!==this.container||s===this.useShadowDOM)&&(this.container&&(this.toDisposeOnSetContainer.dispose(),this.shadowRoot?(this.shadowRoot.removeChild(this.view),this.shadowRoot=null,null===(e=this.shadowRootHostElement)||void 0===e||e.remove(),this.shadowRootHostElement=null):this.container.removeChild(this.view),this.container=null),t)){if(this.container=t,this.useShadowDOM){this.shadowRootHostElement=$l(".shadow-root-host"),this.container.appendChild(this.shadowRootHostElement),this.shadowRoot=this.shadowRootHostElement.attachShadow({mode:"open"});const t=document.createElement("style");t.textContent=gI,this.shadowRoot.appendChild(t),this.shadowRoot.appendChild(this.view),this.shadowRoot.appendChild($l("slot"))}else this.container.appendChild(this.view);const i=new Xi;pI.BUBBLE_UP_EVENTS.forEach((t=>{i.add(qa(this.container,t,(t=>{this.onDOMEvent(t,!1)})))})),pI.BUBBLE_DOWN_EVENTS.forEach((t=>{i.add(qa(this.container,t,(t=>{this.onDOMEvent(t,!0)}),!0))})),this.toDisposeOnSetContainer=i}}show(t){var i,e;this.isVisible()&&this.hide(),za(this.view),this.view.className="context-view",this.view.style.top="0px",this.view.style.left="0px",this.view.style.zIndex="2575",this.view.style.position=this.useFixedPosition?"fixed":"absolute",Wl(this.view),this.toDisposeOnClean=t.render(this.view)||te.None,this.delegate=t,this.doLayout(),null===(e=(i=this.delegate).focus)||void 0===e||e.call(i)}getViewElement(){return this.view}layout(){this.isVisible()&&(!1!==this.delegate.canRelayout||Mt&&Kh?(this.delegate.layout&&this.delegate.layout(),this.doLayout()):this.hide())}doLayout(){if(!this.isVisible())return;const t=this.delegate.getAnchor();let i;if(t instanceof HTMLElement){const e=nl(t),s=function(t){let i=t,e=1;do{const t=Xa(i).zoom;null!=t&&"1"!==t&&(e*=t),i=i.parentElement}while(null!==i&&i!==i.ownerDocument.documentElement);return e}(t);i={top:e.top*s,left:e.left*s,width:e.width*s,height:e.height*s}}else i=(e=t)&&"number"==typeof e.x&&"number"==typeof e.y?{top:t.y,left:t.x,width:t.width||1,height:t.height||2}:{top:t.posy,left:t.posx,width:2,height:2};var e;const s=ol(this.view),n=cl(this.view),o=this.delegate.anchorPosition||0,r=this.delegate.anchorAlignment||0,h=this.delegate.anchorAxisAlignment||0;let c,a;const l=function(){var t,i;return null!==(i=null===(t=ml().defaultView)||void 0===t?void 0:t.window)&&void 0!==i?i:$n}();if(0===h){const t={offset:i.top-l.pageYOffset,size:i.height,position:0===o?0:1},e={offset:i.left,size:i.width,position:0===r?0:1,mode:dI.ALIGN};c=fI(l.innerHeight,n,t)+l.pageYOffset,uI.intersects({start:c,end:c+n},{start:t.offset,end:t.offset+t.size})&&(e.mode=dI.AVOID),a=fI(l.innerWidth,s,e)}else{const t={offset:i.left,size:i.width,position:0===r?0:1},e={offset:i.top,size:i.height,position:0===o?0:1,mode:dI.ALIGN};a=fI(l.innerWidth,s,t),uI.intersects({start:a,end:a+s},{start:t.offset,end:t.offset+t.size})&&(e.mode=dI.AVOID),c=fI(l.innerHeight,n,e)+l.pageYOffset}this.view.classList.remove("top","bottom","left","right"),this.view.classList.add(0===o?"bottom":"top"),this.view.classList.add(0===r?"left":"right"),this.view.classList.toggle("fixed",this.useFixedPosition);const u=nl(this.container);this.view.style.top=c-(this.useFixedPosition?nl(this.view).top:u.top)+"px",this.view.style.left=a-(this.useFixedPosition?nl(this.view).left:u.left)+"px",this.view.style.width="initial"}hide(t){const i=this.delegate;this.delegate=null,(null==i?void 0:i.onHide)&&i.onHide(t),this.toDisposeOnClean.dispose(),jl(this.view)}isVisible(){return!!this.delegate}onDOMEvent(t,i){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(t,Na(t).document.activeElement):i&&!al(t.target,this.container)&&this.hide())}dispose(){this.hide(),super.dispose()}}pI.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"],pI.BUBBLE_DOWN_EVENTS=["click"];const gI='\n\t:host {\n\t\tall: initial; /* 1st rule so subsequent properties are reset. */\n\t}\n\n\t.codicon[class*=\'codicon-\'] {\n\t\tfont: normal normal normal 16px/1 codicon;\n\t\tdisplay: inline-block;\n\t\ttext-decoration: none;\n\t\ttext-rendering: auto;\n\t\ttext-align: center;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tuser-select: none;\n\t\t-webkit-user-select: none;\n\t\t-ms-user-select: none;\n\t}\n\n\t:host {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif;\n\t}\n\n\t:host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }\n\t:host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; }\n\t:host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; }\n\t:host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; }\n\t:host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, "Nanum Gothic", "Apple SD Gothic Neo", "AppleGothic", sans-serif; }\n\n\t:host-context(.windows) { font-family: "Segoe WPC", "Segoe UI", sans-serif; }\n\t:host-context(.windows:lang(zh-Hans)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; }\n\t:host-context(.windows:lang(zh-Hant)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; }\n\t:host-context(.windows:lang(ja)) { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; }\n\t:host-context(.windows:lang(ko)) { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; }\n\n\t:host-context(.linux) { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; }\n\t:host-context(.linux:lang(zh-Hans)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(zh-Hant)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans TC", "Source Han Sans TW", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(ja)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans J", "Source Han Sans JP", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(ko)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans K", "Source Han Sans JR", "Source Han Sans", "UnDotum", "FBaekmuk Gulim", sans-serif; }\n';let mI=class extends te{constructor(t){super(),this.layoutService=t,this.currentViewDisposable=te.None,this.contextView=this._register(new pI(this.layoutService.mainContainer,1)),this.layout(),this._register(t.onDidLayoutContainer((()=>this.layout())))}showContextView(t,i,e){let s;s=i?i===this.layoutService.getContainer(Na(i))?1:e?3:2:1,this.contextView.setContainer(null!=i?i:this.layoutService.activeContainer,s),this.contextView.show(t);const n=Yi((()=>{this.currentViewDisposable===n&&this.hideContextView()}));return this.currentViewDisposable=n,n}getContextViewElement(){return this.contextView.getViewElement()}layout(){this.contextView.layout()}hideContextView(t){this.contextView.hide(t)}dispose(){super.dispose(),this.currentViewDisposable.dispose(),this.currentViewDisposable=te.None}};mI=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(0,qT)],mI);let wI=[],vI=[],bI=[];function yI(t,i=!1){!function(t,i,e){const s=function(t){return{id:t.id,mime:t.mime,filename:t.filename,extension:t.extension,filepattern:t.filepattern,firstline:t.firstline,userConfigured:false,filenameLowercase:t.filename?t.filename.toLowerCase():void 0,extensionLowercase:t.extension?t.extension.toLowerCase():void 0,filepatternLowercase:t.filepattern?JR(t.filepattern.toLowerCase()):void 0,filepatternOnPath:!!t.filepattern&&t.filepattern.indexOf(es.sep)>=0}}(t);wI.push(s),s.userConfigured?bI.push(s):vI.push(s),e&&!s.userConfigured&&wI.forEach((t=>{t.mime===s.mime||t.userConfigured||(s.extension&&t.extension===s.extension&&console.warn(`Overwriting extension <<${s.extension}>> to now point to mime <<${s.mime}>>`),s.filename&&t.filename===s.filename&&console.warn(`Overwriting filename <<${s.filename}>> to now point to mime <<${s.mime}>>`),s.filepattern&&t.filepattern===s.filepattern&&console.warn(`Overwriting filepattern <<${s.filepattern}>> to now point to mime <<${s.mime}>>`),s.firstline&&t.firstline===s.firstline&&console.warn(`Overwriting firstline <<${s.firstline}>> to now point to mime <<${s.mime}>>`))}))}(t,0,i)}function kI(t,i,e){var s;let n,o,r;for(let h=e.length-1;h>=0;h--){const c=e[h];if(i===c.filenameLowercase){n=c;break}c.filepattern&&(!o||c.filepattern.length>o.filepattern.length)&&(null===(s=c.filepatternLowercase)||void 0===s?void 0:s.call(c,c.filepatternOnPath?t:i))&&(o=c),c.extension&&(!r||c.extension.length>r.extension.length)&&i.endsWith(c.extensionLowercase)&&(r=c)}return n||o||r||void 0}const xI=Object.prototype.hasOwnProperty,CI="vs.editor.nullLanguage";class SI{constructor(){this._languageIdToLanguage=[],this._languageToLanguageId=new Map,this._register(CI,0),this._register(Ud,1),this._nextLanguageId=2}_register(t,i){this._languageIdToLanguage[i]=t,this._languageToLanguageId.set(t,i)}register(t){if(this._languageToLanguageId.has(t))return;const i=this._nextLanguageId++;this._register(t,i)}encodeLanguageId(t){return this._languageToLanguageId.get(t)||0}decodeLanguageId(t){return this._languageIdToLanguage[t]||CI}}class DI extends te{constructor(t=!0,i=!1){super(),this._onDidChange=this._register(new de),this.onDidChange=this._onDidChange.event,DI.instanceCount++,this._warnOnOverwrite=i,this.languageIdCodec=new SI,this._dynamicLanguages=[],this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},t&&(this._initializeFromRegistry(),this._register(Vd.onDidChangeLanguages((()=>{this._initializeFromRegistry()}))))}dispose(){DI.instanceCount--,super.dispose()}_initializeFromRegistry(){this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},wI=wI.filter((t=>t.userConfigured)),vI=[];const t=[].concat(Vd.getLanguages()).concat(this._dynamicLanguages);this._registerLanguages(t)}_registerLanguages(t){for(const i of t)this._registerLanguage(i);this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach((t=>{const i=this._languages[t];i.name&&(this._nameMap[i.name]=i.identifier),i.aliases.forEach((t=>{this._lowercaseNameMap[t.toLowerCase()]=i.identifier})),i.mimetypes.forEach((t=>{this._mimeTypesMap[t]=i.identifier}))})),Dh.as(Md).registerOverrideIdentifiers(this.getRegisteredLanguageIds()),this._onDidChange.fire()}_registerLanguage(t){const i=t.id;let e;xI.call(this._languages,i)?e=this._languages[i]:(this.languageIdCodec.register(i),e={identifier:i,name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[],icons:[]},this._languages[i]=e),this._mergeLanguage(e,t)}_mergeLanguage(t,i){const e=i.id;let s=null;if(Array.isArray(i.mimetypes)&&i.mimetypes.length>0&&(t.mimetypes.push(...i.mimetypes),s=i.mimetypes[0]),s||(s=`text/x-${e}`,t.mimetypes.push(s)),Array.isArray(i.extensions)){t.extensions=i.configuration?i.extensions.concat(t.extensions):t.extensions.concat(i.extensions);for(const t of i.extensions)yI({id:e,mime:s,extension:t},this._warnOnOverwrite)}if(Array.isArray(i.filenames))for(const n of i.filenames)yI({id:e,mime:s,filename:n},this._warnOnOverwrite),t.filenames.push(n);if(Array.isArray(i.filenamePatterns))for(const t of i.filenamePatterns)yI({id:e,mime:s,filepattern:t},this._warnOnOverwrite);if("string"==typeof i.firstLine&&i.firstLine.length>0){let t=i.firstLine;"^"!==t.charAt(0)&&(t="^"+t);try{const i=new RegExp(t);"^"!==(n=i).source&&"^$"!==n.source&&"$"!==n.source&&"^\\s*$"!==n.source&&n.exec("")&&0===n.lastIndex||yI({id:e,mime:s,firstline:i},this._warnOnOverwrite)}catch(e){console.warn(`[${i.id}]: Invalid regular expression \`${t}\`: `,e)}}var n;t.aliases.push(e);let o=null;if(void 0!==i.aliases&&Array.isArray(i.aliases)&&(o=0===i.aliases.length?[null]:i.aliases),null!==o)for(const i of o)i&&0!==i.length&&t.aliases.push(i);const r=null!==o&&o.length>0;r&&null===o[0]||!r&&t.name||(t.name=(r?o[0]:null)||e),i.configuration&&t.configurationFiles.push(i.configuration),i.icon&&t.icons.push(i.icon)}isRegisteredLanguageId(t){return!!t&&xI.call(this._languages,t)}getRegisteredLanguageIds(){return Object.keys(this._languages)}getLanguageIdByLanguageName(t){const i=t.toLowerCase();return xI.call(this._lowercaseNameMap,i)?this._lowercaseNameMap[i]:null}getLanguageIdByMimeType(t){return t&&xI.call(this._mimeTypesMap,t)?this._mimeTypesMap[t]:null}guessLanguageIdByFilepathOrFirstLine(t,i){return t||i?function(t,i){return function(t,i){let e;if(t)switch(t.scheme){case ka.file:e=t.fsPath;break;case ka.data:e=MA.parseMetaData(t).get(MA.META_DATA_LABEL);break;case ka.vscodeNotebookCell:e=void 0;break;default:e=t.path}if(!e)return[{id:"unknown",mime:Dd.unknown}];e=e.toLowerCase();const s=hs(e),n=kI(e,s,bI);if(n)return[n,{id:Ud,mime:Dd.text}];const o=kI(e,s,vI);if(o)return[o,{id:Ud,mime:Dd.text}];if(i){const t=function(t){if(Ro(t)&&(t=t.substr(1)),t.length>0)for(let i=wI.length-1;i>=0;i--){const e=wI[i];if(!e.firstline)continue;const s=t.match(e.firstline);if(s&&s.length>0)return e}}(i);if(t)return[t,{id:Ud,mime:Dd.text}]}return[{id:"unknown",mime:Dd.unknown}]}(t,i).map((t=>t.id))}(t,i):[]}}DI.instanceCount=0;class EI extends te{constructor(t=!1){super(),this._onDidRequestBasicLanguageFeatures=this._register(new de),this.onDidRequestBasicLanguageFeatures=this._onDidRequestBasicLanguageFeatures.event,this._onDidRequestRichLanguageFeatures=this._register(new de),this.onDidRequestRichLanguageFeatures=this._onDidRequestRichLanguageFeatures.event,this._onDidChange=this._register(new de({leakWarningThreshold:200})),this.onDidChange=this._onDidChange.event,this._requestedBasicLanguages=new Set,this._requestedRichLanguages=new Set,EI.instanceCount++,this._registry=this._register(new DI(!0,t)),this.languageIdCodec=this._registry.languageIdCodec,this._register(this._registry.onDidChange((()=>this._onDidChange.fire())))}dispose(){EI.instanceCount--,super.dispose()}isRegisteredLanguageId(t){return this._registry.isRegisteredLanguageId(t)}getLanguageIdByLanguageName(t){return this._registry.getLanguageIdByLanguageName(t)}getLanguageIdByMimeType(t){return this._registry.getLanguageIdByMimeType(t)}guessLanguageIdByFilepathOrFirstLine(t,i){return k(this._registry.guessLanguageIdByFilepathOrFirstLine(t,i),null)}createById(t){return new AI(this.onDidChange,(()=>this._createAndGetLanguageIdentifier(t)))}createByFilepathOrFirstLine(t,i){return new AI(this.onDidChange,(()=>{const e=this.guessLanguageIdByFilepathOrFirstLine(t,i);return this._createAndGetLanguageIdentifier(e)}))}_createAndGetLanguageIdentifier(t){return t&&this.isRegisteredLanguageId(t)||(t=Ud),t}requestBasicLanguageFeatures(t){this._requestedBasicLanguages.has(t)||(this._requestedBasicLanguages.add(t),this._onDidRequestBasicLanguageFeatures.fire(t))}requestRichLanguageFeatures(t){this._requestedRichLanguages.has(t)||(this._requestedRichLanguages.add(t),this.requestBasicLanguageFeatures(t),Zs.getOrCreate(t),this._onDidRequestRichLanguageFeatures.fire(t))}}EI.instanceCount=0;class AI{constructor(t,i){this._onDidChangeLanguages=t,this._selector=i,this._listener=null,this._emitter=null,this.languageId=this._selector()}_dispose(){this._listener&&(this._listener.dispose(),this._listener=null),this._emitter&&(this._emitter.dispose(),this._emitter=null)}get onDidChange(){return this._listener||(this._listener=this._onDidChangeLanguages((()=>this._evaluate()))),this._emitter||(this._emitter=new de({onDidRemoveLastListener:()=>{this._dispose()}})),this._emitter.event}_evaluate(){var t;const i=this._selector();i!==this.languageId&&(this.languageId=i,null===(t=this._emitter)||void 0===t||t.fire(this.languageId))}}const MI={RESOURCES:"ResourceURLs",DOWNLOAD_URL:"DownloadURL",FILES:"Files",TEXT:Dd.text,INTERNAL_URI_LIST:"application/vnd.code.uri-list"};let LI=0;const FI=new Uint32Array(10);function TI(t,i,e){var s;t>=e&&t>8&&(FI[LI++]=s>>8&255),s>>16&&(FI[LI++]=s>>16&255)))}const RI=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),OI=new Uint16Array([107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]),II=new Uint16Array([114,82,29810,115,30579,26483,101,102,29286,24934,29030,29798,30822,30310,26470,97,113,29809,116,84,100,119,99,122,120,118,103]),_I=new Uint16Array([114,82,29810,115,30579,26483,101,69,102,29286,24934,29030,29798,30822,30310,26470,97,113,81,29809,116,84,100,119,87,99,122,120,118,103,107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]);function NI(...t){return function(i,e){for(let s=0,n=t.length;s0?[{start:0,end:i.length}]:[]:null}function $I(t,i){const e=i.toLowerCase().indexOf(t.toLowerCase());return-1===e?null:[{start:e,end:e+t.length}]}function WI(t,i){return jI(t.toLowerCase(),i.toLowerCase(),0,0)}function jI(t,i,e,s){if(e===t.length)return[];if(s===i.length)return null;if(t[e]===i[s]){let n=null;return(n=jI(t,i,e+1,s+1))?YI({start:s,end:s+1},n):null}return jI(t,i,e,s+1)}function zI(t){return 97<=t&&t<=122}function HI(t){return 65<=t&&t<=90}function VI(t){return 48<=t&&t<=57}function UI(t){return 32===t||9===t||10===t||13===t}const qI=new Set;function KI(t){return UI(t)||qI.has(t)}function GI(t,i){return t===i||KI(t)&&KI(i)}"()[]{}<>`'\"-/;:,.?!".split("").forEach((t=>qI.add(t.charCodeAt(0))));const ZI=new Map;function QI(t){if(ZI.has(t))return ZI.get(t);let i;const e=function(t){const i=function(t){if(LI=0,TI(t,RI,4352),LI>0)return FI.subarray(0,LI);if(TI(t,OI,4449),LI>0)return FI.subarray(0,LI);if(TI(t,II,4520),LI>0)return FI.subarray(0,LI);if(TI(t,_I,12593),LI)return FI.subarray(0,LI);if(t>=44032&&t<=55203){const i=t-44032,e=i%588,s=Math.floor(i/588),n=Math.floor(e/28),o=e%28-1;if(s=0&&(o0)return FI.subarray(0,LI)}}(t);if(i&&i.length>0)return new Uint32Array(i)}(t);return e&&(i=e),ZI.set(t,i),i}function JI(t){return zI(t)||HI(t)||VI(t)}function YI(t,i){return 0===i.length?i=[t]:t.end===i[0].start?i[0].start=t.start:i.unshift(t),i}function XI(t,i){for(let e=i;e0&&!JI(t.charCodeAt(e-1)))return e}return t.length}function t_(t,i,e,s){if(e===t.length)return[];if(s===i.length)return null;if(t[e]!==i[s].toLowerCase())return null;{let n=null,o=s+1;for(n=t_(t,i,e+1,s+1);!n&&(o=XI(i,o))60)return null;const e=function(t){let i=0,e=0,s=0,n=0,o=0;for(let r=0;r.2&&i<.8&&s>.6&&n<.2}(e)){if(!function(t){const{upperPercent:i,lowerPercent:e}=t;return 0===e&&i>.6}(e))return null;i=i.toLowerCase()}let s=null,n=0;for(t=t.toLowerCase();n0&&KI(t.charCodeAt(e-1)))return e;return t.length}const n_=NI(BI,i_,$I),o_=NI(BI,i_,WI),r_=new Vp(1e4);function h_(t,i,e=!1){if("string"!=typeof t||"string"!=typeof i)return null;let s=r_.get(t);s||(s=new RegExp(t.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*"),"i"),r_.set(t,s));const n=s.exec(i);return n?[{start:n.index,end:n.index+n[0].length}]:e?o_(t,i):n_(t,i)}function c_(t,i){const e=S_(t,t.toLowerCase(),0,i,i.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return e?l_(e):null}function a_(t,i,e,s,n,o){const r=Math.min(13,t.length);for(;e1;s--){const n=t[s]+e,o=i[i.length-1];o&&o.end===n?o.end=n+1:i.push({start:n,end:n+1})}return i}const u_=128;function d_(){const t=[],i=[];for(let t=0;t<=u_;t++)i[t]=0;for(let e=0;e<=u_;e++)t.push(i.slice(0));return t}function f_(t){const i=[];for(let e=0;e<=t;e++)i[e]=0;return i}const p_=f_(2*u_),g_=f_(2*u_),m_=d_(),w_=d_(),v_=d_();function b_(t,i){if(i<0||i>=t.length)return!1;const e=t.codePointAt(i);switch(e){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:case 60:case 62:case 40:case 41:case 91:case 93:case 123:case 125:return!0;case void 0:return!1;default:return!!Fo(e)}}function y_(t,i){if(i<0||i>=t.length)return!1;switch(t.charCodeAt(i)){case 32:case 9:return!0;default:return!1}}function k_(t,i,e){return i[t]!==e[t]}var x_;!function(t){t.Default=[-100,0],t.isDefault=function(t){return!t||2===t.length&&-100===t[0]&&0===t[1]}}(x_||(x_={}));class C_{constructor(t,i){this.firstMatchCanBeWeak=t,this.boostFullMatch=i}}function S_(t,i,e,s,n,o,r=C_.default){const h=t.length>u_?u_:t.length,c=s.length>u_?u_:s.length;if(e>=h||o>=c||h-e>c-o)return;if(!function(t,i,e,s,n,o,r=!1){for(;i=e&&h>=s;)n[r]===o[h]&&(g_[r]=h,r--),h--}(h,c,e,o,i,n);let a=1,l=1,u=e,d=o;const f=[!1];for(a=1,u=e;ur,v=w?w_[a][l-1]+(m_[a][l-1]>0?-5:0):0,b=d>r+1&&m_[a][l-1]>0,y=b?w_[a][l-2]+(m_[a][l-2]>0?-5:0):0;if(b&&(!w||y>=v)&&(!g||y>=m))w_[a][l]=y,v_[a][l]=3,m_[a][l]=0;else if(w&&(!g||v>=m))w_[a][l]=v,v_[a][l]=2,m_[a][l]=0;else{if(!g)throw new Error("not possible");w_[a][l]=m,v_[a][l]=1,m_[a][l]=m_[a-1][l-1]+1}}}if(!f[0]&&!r.firstMatchCanBeWeak)return;a--,l--;const p=[w_[a][l],o];let g=0,m=0;for(;a>=1;){let t=l;do{const i=v_[a][t];if(3===i)t-=2;else{if(2!==i)break;t-=1}}while(t>=1);g>1&&i[e+a-1]===n[o+l-1]&&!k_(t+o-1,s,n)&&g+1>m_[a][t]&&(t=l),t===l?g++:g=1,m||(m=t),a--,l=t-1,p.push(l)}return c===h&&r.boostFullMatch&&(p[0]+=2),p[0]-=m-h,p}function D_(t,i,e,s,n,o,r,h,c,a,l){if(i[e]!==o[r])return Number.MIN_SAFE_INTEGER;let u=1,d=!1;return r===e-s?u=t[e]===n[r]?7:5:!k_(r,n,o)||0!==r&&k_(r-1,n,o)?!b_(o,r)||0!==r&&b_(o,r-1)?(b_(o,r-1)||y_(o,r-1))&&(u=5,d=!0):u=5:(u=t[e]===n[r]?7:5,d=!0),u>1&&e===s&&(l[0]=!0),d||(d=k_(r,n,o)||b_(o,r-1)||y_(o,r-1)),e===s?r>c&&(u-=d?3:5):u+=a?d?2:0:d?0:1,r+1===h&&(u-=d?3:5),u}function E_(t,i,e,s,n,o,r){return function(t,i,e,s,n,o,r,h){let c=S_(t,i,e,s,n,o,h);if(t.length>=3){const i=Math.min(7,t.length-1);for(let r=e+1;rc[0])&&(c=t))}}}return c}(t,i,e,s,n,o,0,r)}function A_(t,i){if(i+1>=t.length)return;const e=t[i],s=t[i+1];return e!==s?t.slice(0,i)+s+e+t.slice(i+2):void 0}C_.default={boostFullMatch:!0,firstMatchCanBeWeak:!1};const M_=new RegExp(`\\$\\(${Cr.iconNameExpression}(?:${Cr.iconModifierExpression})?\\)`,"g"),L_=new RegExp(`(\\\\)?${M_.source}`,"g"),F_=new RegExp(`\\\\${M_.source}`,"g"),T_=new RegExp(`(\\s)?(\\\\)?${M_.source}(\\s)?`,"g");function R_(t){return-1===t.indexOf("$(")?t:t.replace(T_,((t,i,e,s)=>e?t:i||s||""))}const O_=new RegExp(`\\$\\(${Cr.iconNameCharacter}+\\)`,"g");function I_(t){O_.lastIndex=0;let i="";const e=[];let s=0;for(;;){const n=O_.lastIndex,o=O_.exec(t),r=t.substring(n,null==o?void 0:o.index);if(r.length>0){i+=r;for(let t=0;ti?t:`\\${t}`))}(t):t).replace(/([ \t]+)/g,((t,i)=>" ".repeat(i.length))).replace(/\>/gm,"\\>").replace(/\n/g,1===i?"\\\n":"\n\n"),this}appendMarkdown(t){return this.value+=t,this}appendCodeblock(t,i){return this.value+="\n```",this.value+=t,this.value+="\n",this.value+=i,this.value+="\n```\n",this}appendLink(t,i,e){return this.value+="[",this.value+=this._escape(i,"]"),this.value+="](",this.value+=this._escape(String(t),")"),e&&(this.value+=` "${this._escape(this._escape(e,'"'),")")}"`),this.value+=")",this}_escape(t,i){const e=new RegExp(Gn(i),"g");return t.replace(e,((i,e)=>"\\"!==t.charAt(e-1)?`\\${i}`:i))}}function B_(t){return P_(t)?!t.value:!Array.isArray(t)||t.every(B_)}function P_(t){return t instanceof N_||!(!t||"object"!=typeof t)&&!("string"!=typeof t.value||"boolean"!=typeof t.isTrusted&&"object"!=typeof t.isTrusted&&void 0!==t.isTrusted||"boolean"!=typeof t.supportThemeIcons&&void 0!==t.supportThemeIcons)}function $_(t){return t.replace(/"/g,""")}function W_(t){return t?t.replace(/\\([\\`*_{}[\]()#+\-.!~])/g,"$1"):t}class j_{constructor(t,i,e){this.hoverDelegate=t,this.target=i,this.fadeInAnimation=e}async update(t,i,e){var s;if(this._cancellationTokenSource&&(this._cancellationTokenSource.dispose(!0),this._cancellationTokenSource=void 0),this.isDisposed)return;let n;if(void 0===t||B(t)||t instanceof HTMLElement)n=t;else if(G(t.markdown)){this._hoverWidget||this.show(ot(0,"Loading..."),i),this._cancellationTokenSource=new Ce;const e=this._cancellationTokenSource.token;if(n=await t.markdown(e),void 0===n&&(n=t.markdownNotSupportedFallback),this.isDisposed||e.isCancellationRequested)return}else n=null!==(s=t.markdown)&&void 0!==s?s:t.markdownNotSupportedFallback;this.show(n,i,e)}show(t,i,e){const s=this._hoverWidget;if(this.hasContent(t)){const n={content:t,target:this.target,appearance:{showPointer:"element"===this.hoverDelegate.placement,skipFadeInAnimation:!this.fadeInAnimation||!!s},position:{hoverPosition:2},...e};this._hoverWidget=this.hoverDelegate.showHover(n,i)}null==s||s.dispose()}hasContent(t){return!(!t||P_(t)&&!t.value)}get isDisposed(){var t;return null===(t=this._hoverWidget)||void 0===t?void 0:t.isDisposed}dispose(){var t,i;null===(t=this._hoverWidget)||void 0===t||t.dispose(),null===(i=this._cancellationTokenSource)||void 0===i||i.dispose(!0),this._cancellationTokenSource=void 0}}function z_(t,i,e,s){let n,o;const r=(i,e)=>{var s;const r=void 0!==o;i&&(null==o||o.dispose(),o=void 0),e&&(null==n||n.dispose(),n=void 0),r&&(null===(s=t.onDidHideHover)||void 0===s||s.call(t))},h=(n,r,h)=>new dc((async()=>{o&&!o.isDisposed||(o=new j_(t,h||i,n>0),await o.update(e,r,s))}),n),c=Va(i,Ll.MOUSE_OVER,(()=>{if(n)return;const e=new Xi;e.add(Va(i,Ll.MOUSE_LEAVE,(t=>r(!1,t.fromElement===i)),!0)),e.add(Va(i,Ll.MOUSE_DOWN,(()=>r(!0,!0)),!0));const s={targetElements:[i],dispose:()=>{}};void 0!==t.placement&&"mouse"!==t.placement||e.add(Va(i,Ll.MOUSE_MOVE,(t=>{s.x=t.x+10,t.target instanceof HTMLElement&&t.target.classList.contains("action-label")&&r(!0,!0)}),!0)),e.add(h(t.delay,!1,s)),n=e}),!0),a=Va(i,Ll.FOCUS,(()=>{if(n)return;const e={targetElements:[i],dispose:()=>{}},s=new Xi;s.add(Va(i,Ll.BLUR,(()=>r(!0,!0)),!0)),s.add(h(t.delay,!1,e)),n=s}),!0);return{show:t=>{r(!1,!0),h(0,t)},hide:()=>{r(!0,!0)},update:async(t,i)=>{e=t,await(null==o?void 0:o.update(e,void 0,i))},dispose:()=>{c.dispose(),a.dispose(),r(!0,!0)}}}function H_(t,i={}){const e=V_(i);return q_(e,function(t,i){const e={type:1,children:[]};let s=0,n=e;const o=[],r=new U_(t);for(;!r.eos();){let t=r.next();const e="\\"===t&&0!==K_(r.peek(),i);if(e&&(t=r.next()),e||0===K_(t,i)||t!==r.peek())if("\n"===t)2===n.type&&(n=o.pop()),n.children.push({type:8});else if(2!==n.type){const i={type:2,content:t};n.children.push(i),o.push(n),n=i}else n.content+=t;else{r.advance(),2===n.type&&(n=o.pop());const e=K_(t,i);if(n.type===e||5===n.type&&6===e)n=o.pop();else{const t={type:e,children:[]};5===e&&(t.index=s,s++),n.children.push(t),o.push(n),n=t}}}return 2===n.type&&(n=o.pop()),e}(t,!!i.renderCodeSegments),i.actionHandler,i.renderCodeSegments),e}function V_(t){const i=document.createElement(t.inline?"span":"div");return t.className&&(i.className=t.className),i}class U_{constructor(t){this.source=t,this.index=0}eos(){return this.index>=this.source.length}next(){const t=this.peek();return this.advance(),t}peek(){return this.source[this.index]}advance(){this.index++}}function q_(t,i,e,s){let n;if(2===i.type)n=document.createTextNode(i.content||"");else if(3===i.type)n=document.createElement("b");else if(4===i.type)n=document.createElement("i");else if(7===i.type&&s)n=document.createElement("code");else if(5===i.type&&e){const t=document.createElement("a");e.disposables.add(qa(t,"click",(t=>{e.callback(String(i.index),t)}))),n=t}else 8===i.type?n=document.createElement("br"):1===i.type&&(n=t);n&&t!==n&&t.appendChild(n),n&&Array.isArray(i.children)&&i.children.forEach((t=>{q_(n,t,e,s)}))}function K_(t,i){switch(t){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;case"`":return i?7:0;default:return 0}}const G_=new RegExp(`(\\\\)?\\$\\((${Cr.iconNameExpression}(?:${Cr.iconModifierExpression})?)\\)`,"g");function Z_(t){const i=new Array;let e,s=0,n=0;for(;null!==(e=G_.exec(t));){n=e.index||0,st.length)&&(i=t.length);for(var e=0,s=new Array(i);e=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function n(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}t.defaults={async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1};var o=/[&<>"']/,r=/[&<>"']/g,h=/[<>"']|&(?!#?\w+;)/,c=/[<>"']|&(?!#?\w+;)/g,a={"&":"&","<":"<",">":">",'"':""","'":"'"},l=function(t){return a[t]};function u(t,i){if(i){if(o.test(t))return t.replace(r,l)}else if(h.test(t))return t.replace(c,l);return t}var d=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function f(t){return t.replace(d,(function(t,i){return"colon"===(i=i.toLowerCase())?":":"#"===i.charAt(0)?"x"===i.charAt(1)?String.fromCharCode(parseInt(i.substring(2),16)):String.fromCharCode(+i.substring(1)):""}))}var p=/(^|[^\[])\^/g;function g(t,i){t="string"==typeof t?t:t.source,i=i||"";var e={replace:function(i,s){return s=(s=s.source||s).replace(p,"$1"),t=t.replace(i,s),e},getRegex:function(){return new RegExp(t,i)}};return e}var m=/[^\w:]/g,w=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function v(t,i,e){if(t){var s;try{s=decodeURIComponent(f(e)).replace(m,"").toLowerCase()}catch(t){return null}if(0===s.indexOf("javascript:")||0===s.indexOf("vbscript:")||0===s.indexOf("data:"))return null}i&&!w.test(e)&&(e=function(t,i){b[" "+t]||(b[" "+t]=y.test(t)?t+"/":E(t,"/",!0));var e=-1===(t=b[" "+t]).indexOf(":");return"//"===i.substring(0,2)?e?i:t.replace(k,"$1")+i:"/"===i.charAt(0)?e?i:t.replace(x,"$1")+i:t+i}(i,e));try{e=encodeURI(e).replace(/%25/g,"%")}catch(t){return null}return e}var b={},y=/^[^:]+:\/*[^/]*$/,k=/^([^:]+:)[\s\S]*$/,x=/^([^:]+:\/*[^/]*)[\s\S]*$/,C={exec:function(){}};function S(t){for(var i,e,s=1;s=0&&"\\"===e[n];)s=!s;return s?"|":" |"})).split(/ \|/),s=0;if(e[0].trim()||e.shift(),e.length>0&&!e[e.length-1].trim()&&e.pop(),e.length>i)e.splice(i);else for(;e.length1;)1&i&&(e+=t),i>>=1,t+=t;return e+t}function L(t,i,e,s){var n=i.href,o=i.title?u(i.title):null,r=t[1].replace(/\\([\[\]])/g,"$1");if("!"!==t[0].charAt(0)){s.state.inLink=!0;var h={type:"link",raw:e,href:n,title:o,text:r,tokens:s.inlineTokens(r)};return s.state.inLink=!1,h}return{type:"image",raw:e,href:n,title:o,text:u(r)}}var F=function(){function i(i){this.options=i||t.defaults}var e=i.prototype;return e.space=function(t){var i=this.rules.block.newline.exec(t);if(i&&i[0].length>0)return{type:"space",raw:i[0]}},e.code=function(t){var i=this.rules.block.code.exec(t);if(i){var e=i[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:i[0],codeBlockStyle:"indented",text:this.options.pedantic?e:E(e,"\n")}}},e.fences=function(t){var i=this.rules.block.fences.exec(t);if(i){var e=i[0],s=function(t,i){var e=t.match(/^(\s+)(?:```)/);if(null===e)return i;var s=e[1];return i.split("\n").map((function(t){var i=t.match(/^\s+/);return null===i?t:i[0].length>=s.length?t.slice(s.length):t})).join("\n")}(e,i[3]||"");return{type:"code",raw:e,lang:i[2]?i[2].trim():i[2],text:s}}},e.heading=function(t){var i=this.rules.block.heading.exec(t);if(i){var e=i[2].trim();if(/#$/.test(e)){var s=E(e,"#");this.options.pedantic?e=s.trim():s&&!/ $/.test(s)||(e=s.trim())}return{type:"heading",raw:i[0],depth:i[1].length,text:e,tokens:this.lexer.inline(e)}}},e.hr=function(t){var i=this.rules.block.hr.exec(t);if(i)return{type:"hr",raw:i[0]}},e.blockquote=function(t){var i=this.rules.block.blockquote.exec(t);if(i){var e=i[0].replace(/^ *>[ \t]?/gm,"");return{type:"blockquote",raw:i[0],tokens:this.lexer.blockTokens(e,[]),text:e}}},e.list=function(t){var i=this.rules.block.list.exec(t);if(i){var e,n,o,r,h,c,a,l,u,d,f,p,g=i[1].trim(),m=g.length>1,w={type:"list",raw:"",ordered:m,start:m?+g.slice(0,-1):"",loose:!1,items:[]};g=m?"\\d{1,9}\\"+g.slice(-1):"\\"+g,this.options.pedantic&&(g=m?g:"[*+-]");for(var v=new RegExp("^( {0,3}"+g+")((?:[\t ][^\\n]*)?(?:\\n|$))");t&&(p=!1,i=v.exec(t))&&!this.rules.block.hr.test(t);){if(t=t.substring((e=i[0]).length),l=i[2].split("\n",1)[0],u=t.split("\n",1)[0],this.options.pedantic?(r=2,f=l.trimLeft()):(r=i[2].search(/[^ ]/),f=l.slice(r=r>4?1:r),r+=i[1].length),c=!1,!l&&/^ *$/.test(u)&&(e+=u+"\n",t=t.substring(u.length+1),p=!0),!p)for(var b=new RegExp("^ {0,"+Math.min(3,r-1)+"}(?:[*+-]|\\d{1,9}[.)])((?: [^\\n]*)?(?:\\n|$))"),y=new RegExp("^ {0,"+Math.min(3,r-1)+"}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)"),k=new RegExp("^ {0,"+Math.min(3,r-1)+"}(?:```|~~~)"),x=new RegExp("^ {0,"+Math.min(3,r-1)+"}#");t&&(l=d=t.split("\n",1)[0],this.options.pedantic&&(l=l.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!k.test(l))&&!x.test(l)&&!b.test(l)&&!y.test(t);){if(l.search(/[^ ]/)>=r||!l.trim())f+="\n"+l.slice(r);else{if(c)break;f+="\n"+l}c||l.trim()||(c=!0),e+=d+"\n",t=t.substring(d.length+1)}w.loose||(a?w.loose=!0:/\n *\n *$/.test(e)&&(a=!0)),this.options.gfm&&(n=/^\[[ xX]\] /.exec(f))&&(o="[ ] "!==n[0],f=f.replace(/^\[[ xX]\] +/,"")),w.items.push({type:"list_item",raw:e,task:!!n,checked:o,loose:!1,text:f}),w.raw+=e}w.items[w.items.length-1].raw=e.trimRight(),w.items[w.items.length-1].text=f.trimRight(),w.raw=w.raw.trimRight();var C=w.items.length;for(h=0;h1)return!0;return!1}));!w.loose&&S.length&&D&&(w.loose=!0,w.items[h].loose=!0)}return w}},e.html=function(t){var i=this.rules.block.html.exec(t);if(i){var e={type:"html",raw:i[0],pre:!this.options.sanitizer&&("pre"===i[1]||"script"===i[1]||"style"===i[1]),text:i[0]};if(this.options.sanitize){var s=this.options.sanitizer?this.options.sanitizer(i[0]):u(i[0]);e.type="paragraph",e.text=s,e.tokens=this.lexer.inline(s)}return e}},e.def=function(t){var i=this.rules.block.def.exec(t);if(i)return i[3]&&(i[3]=i[3].substring(1,i[3].length-1)),{type:"def",tag:i[1].toLowerCase().replace(/\s+/g," "),raw:i[0],href:i[2],title:i[3]}},e.table=function(t){var i=this.rules.block.table.exec(t);if(i){var e={type:"table",header:D(i[1]).map((function(t){return{text:t}})),align:i[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:i[3]&&i[3].trim()?i[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(e.header.length===e.align.length){e.raw=i[0];var s,n,o,r,h=e.align.length;for(s=0;s/i.test(i[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(i[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(i[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:i[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):u(i[0]):i[0]}},e.link=function(t){var i=this.rules.inline.link.exec(t);if(i){var e=i[2].trim();if(!this.options.pedantic&&/^$/.test(e))return;var s=E(e.slice(0,-1),"\\");if((e.length-s.length)%2==0)return}else{var n=function(t,i){if(-1===t.indexOf(i[1]))return-1;for(var e=t.length,s=0,n=0;n-1){var o=(0===i[0].indexOf("!")?5:4)+i[1].length+n;i[2]=i[2].substring(0,n),i[0]=i[0].substring(0,o).trim(),i[3]=""}}var r=i[2],h="";if(this.options.pedantic){var c=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);c&&(r=c[1],h=c[3])}else h=i[3]?i[3].slice(1,-1):"";return r=r.trim(),/^$/.test(e)?r.slice(1):r.slice(1,-1)),L(i,{href:r?r.replace(this.rules.inline._escapes,"$1"):r,title:h?h.replace(this.rules.inline._escapes,"$1"):h},i[0],this.lexer)}},e.reflink=function(t,i){var e;if((e=this.rules.inline.reflink.exec(t))||(e=this.rules.inline.nolink.exec(t))){var s=(e[2]||e[1]).replace(/\s+/g," ");if(!(s=i[s.toLowerCase()])||!s.href){var n=e[0].charAt(0);return{type:"text",raw:n,text:n}}return L(e,s,e[0],this.lexer)}},e.emStrong=function(t,i,e){void 0===e&&(e="");var s=this.rules.inline.emStrong.lDelim.exec(t);if(s&&(!s[3]||!e.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var n=s[1]||s[2]||"";if(!n||n&&(""===e||this.rules.inline.punctuation.exec(e))){var o,r,h=s[0].length-1,c=h,a=0,l="*"===s[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(l.lastIndex=0,i=i.slice(-1*t.length+h);null!=(s=l.exec(i));)if(o=s[1]||s[2]||s[3]||s[4]||s[5]||s[6])if(r=o.length,s[3]||s[4])c+=r;else if(!((s[5]||s[6])&&h%3)||(h+r)%3){if(!((c-=r)>0)){if(r=Math.min(r,r+c+a),Math.min(h,r)%2){var u=t.slice(1,h+s.index+r);return{type:"em",raw:t.slice(0,h+s.index+r+1),text:u,tokens:this.lexer.inlineTokens(u)}}var d=t.slice(2,h+s.index+r-1);return{type:"strong",raw:t.slice(0,h+s.index+r+1),text:d,tokens:this.lexer.inlineTokens(d)}}}else a+=r}}},e.codespan=function(t){var i=this.rules.inline.code.exec(t);if(i){var e=i[2].replace(/\n/g," "),s=/[^ ]/.test(e),n=/^ /.test(e)&&/ $/.test(e);return s&&n&&(e=e.substring(1,e.length-1)),e=u(e,!0),{type:"codespan",raw:i[0],text:e}}},e.br=function(t){var i=this.rules.inline.br.exec(t);if(i)return{type:"br",raw:i[0]}},e.del=function(t){var i=this.rules.inline.del.exec(t);if(i)return{type:"del",raw:i[0],text:i[2],tokens:this.lexer.inlineTokens(i[2])}},e.autolink=function(t,i){var e,s,n=this.rules.inline.autolink.exec(t);if(n)return s="@"===n[2]?"mailto:"+(e=u(this.options.mangle?i(n[1]):n[1])):e=u(n[1]),{type:"link",raw:n[0],text:e,href:s,tokens:[{type:"text",raw:e,text:e}]}},e.url=function(t,i){var e;if(e=this.rules.inline.url.exec(t)){var s,n;if("@"===e[2])n="mailto:"+(s=u(this.options.mangle?i(e[0]):e[0]));else{var o;do{o=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])[0]}while(o!==e[0]);s=u(e[0]),n="www."===e[1]?"http://"+s:s}return{type:"link",raw:e[0],text:s,href:n,tokens:[{type:"text",raw:s,text:s}]}}},e.inlineText=function(t,i){var e,s=this.rules.inline.text.exec(t);if(s)return e=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(s[0]):u(s[0]):s[0]:u(this.options.smartypants?i(s[0]):s[0]),{type:"text",raw:s[0],text:e}},i}(),T={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:C,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};T.def=g(T.def).replace("label",T._label).replace("title",T._title).getRegex(),T.bullet=/(?:[*+-]|\d{1,9}[.)])/,T.listItemStart=g(/^( *)(bull) */).replace("bull",T.bullet).getRegex(),T.list=g(T.list).replace(/bull/g,T.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+T.def.source+")").getRegex(),T._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",T._comment=/|$)/,T.html=g(T.html,"i").replace("comment",T._comment).replace("tag",T._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),T.paragraph=g(T._paragraph).replace("hr",T.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",T._tag).getRegex(),T.blockquote=g(T.blockquote).replace("paragraph",T.paragraph).getRegex(),T.normal=S({},T),T.gfm=S({},T.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),T.gfm.table=g(T.gfm.table).replace("hr",T.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",T._tag).getRegex(),T.gfm.paragraph=g(T._paragraph).replace("hr",T.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",T.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",T._tag).getRegex(),T.pedantic=S({},T.normal,{html:g("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",T._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:C,paragraph:g(T.normal._paragraph).replace("hr",T.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",T.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var R={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:C,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[^*]+(?=[^*])|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:C,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(e="x"+e.toString(16)),s+="&#"+e+";";return s}R._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",R.punctuation=g(R.punctuation).replace(/punctuation/g,R._punctuation).getRegex(),R.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,R.escapedEmSt=/\\\*|\\_/g,R._comment=g(T._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),R.emStrong.lDelim=g(R.emStrong.lDelim).replace(/punct/g,R._punctuation).getRegex(),R.emStrong.rDelimAst=g(R.emStrong.rDelimAst,"g").replace(/punct/g,R._punctuation).getRegex(),R.emStrong.rDelimUnd=g(R.emStrong.rDelimUnd,"g").replace(/punct/g,R._punctuation).getRegex(),R._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,R._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,R._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,R.autolink=g(R.autolink).replace("scheme",R._scheme).replace("email",R._email).getRegex(),R._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,R.tag=g(R.tag).replace("comment",R._comment).replace("attribute",R._attribute).getRegex(),R._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,R._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,R._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,R.link=g(R.link).replace("label",R._label).replace("href",R._href).replace("title",R._title).getRegex(),R.reflink=g(R.reflink).replace("label",R._label).replace("ref",T._label).getRegex(),R.nolink=g(R.nolink).replace("ref",T._label).getRegex(),R.reflinkSearch=g(R.reflinkSearch,"g").replace("reflink",R.reflink).replace("nolink",R.nolink).getRegex(),R.normal=S({},R),R.pedantic=S({},R.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:g(/^!?\[(label)\]\((.*?)\)/).replace("label",R._label).getRegex(),reflink:g(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",R._label).getRegex()}),R.gfm=S({},R.normal,{escape:g(R.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\0?i[i.length-1].raw+="\n":i.push(e);else if(e=this.tokenizer.code(t))t=t.substring(e.raw.length),!(s=i[i.length-1])||"paragraph"!==s.type&&"text"!==s.type?i.push(e):(s.raw+="\n"+e.raw,s.text+="\n"+e.text,this.inlineQueue[this.inlineQueue.length-1].src=s.text);else if(e=this.tokenizer.fences(t))t=t.substring(e.raw.length),i.push(e);else if(e=this.tokenizer.heading(t))t=t.substring(e.raw.length),i.push(e);else if(e=this.tokenizer.hr(t))t=t.substring(e.raw.length),i.push(e);else if(e=this.tokenizer.blockquote(t))t=t.substring(e.raw.length),i.push(e);else if(e=this.tokenizer.list(t))t=t.substring(e.raw.length),i.push(e);else if(e=this.tokenizer.html(t))t=t.substring(e.raw.length),i.push(e);else if(e=this.tokenizer.def(t))t=t.substring(e.raw.length),!(s=i[i.length-1])||"paragraph"!==s.type&&"text"!==s.type?this.tokens.links[e.tag]||(this.tokens.links[e.tag]={href:e.href,title:e.title}):(s.raw+="\n"+e.raw,s.text+="\n"+e.raw,this.inlineQueue[this.inlineQueue.length-1].src=s.text);else if(e=this.tokenizer.table(t))t=t.substring(e.raw.length),i.push(e);else if(e=this.tokenizer.lheading(t))t=t.substring(e.raw.length),i.push(e);else if(n=t,this.options.extensions&&this.options.extensions.startBlock&&function(){var i=1/0,e=t.slice(1),s=void 0;r.options.extensions.startBlock.forEach((function(t){"number"==typeof(s=t.call({lexer:this},e))&&s>=0&&(i=Math.min(i,s))})),i<1/0&&i>=0&&(n=t.substring(0,i+1))}(),this.state.top&&(e=this.tokenizer.paragraph(n)))s=i[i.length-1],o&&"paragraph"===s.type?(s.raw+="\n"+e.raw,s.text+="\n"+e.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=s.text):i.push(e),o=n.length!==t.length,t=t.substring(e.raw.length);else if(e=this.tokenizer.text(t))t=t.substring(e.raw.length),(s=i[i.length-1])&&"text"===s.type?(s.raw+="\n"+e.raw,s.text+="\n"+e.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=s.text):i.push(e);else if(t){var h="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(h);break}throw new Error(h)}return this.state.top=!0,i},o.inline=function(t,i){return void 0===i&&(i=[]),this.inlineQueue.push({src:t,tokens:i}),i},o.inlineTokens=function(t,i){var e,s,n,o=this;void 0===i&&(i=[]);var r,h,c,a=t;if(this.tokens.links){var l=Object.keys(this.tokens.links);if(l.length>0)for(;null!=(r=this.tokenizer.rules.inline.reflinkSearch.exec(a));)l.includes(r[0].slice(r[0].lastIndexOf("[")+1,-1))&&(a=a.slice(0,r.index)+"["+M("a",r[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(r=this.tokenizer.rules.inline.blockSkip.exec(a));)a=a.slice(0,r.index)+"["+M("a",r[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(r=this.tokenizer.rules.inline.escapedEmSt.exec(a));)a=a.slice(0,r.index)+"++"+a.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;t;)if(h||(c=""),h=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((function(s){return!!(e=s.call({lexer:o},t,i))&&(t=t.substring(e.raw.length),i.push(e),!0)}))))if(e=this.tokenizer.escape(t))t=t.substring(e.raw.length),i.push(e);else if(e=this.tokenizer.tag(t))t=t.substring(e.raw.length),(s=i[i.length-1])&&"text"===e.type&&"text"===s.type?(s.raw+=e.raw,s.text+=e.text):i.push(e);else if(e=this.tokenizer.link(t))t=t.substring(e.raw.length),i.push(e);else if(e=this.tokenizer.reflink(t,this.tokens.links))t=t.substring(e.raw.length),(s=i[i.length-1])&&"text"===e.type&&"text"===s.type?(s.raw+=e.raw,s.text+=e.text):i.push(e);else if(e=this.tokenizer.emStrong(t,a,c))t=t.substring(e.raw.length),i.push(e);else if(e=this.tokenizer.codespan(t))t=t.substring(e.raw.length),i.push(e);else if(e=this.tokenizer.br(t))t=t.substring(e.raw.length),i.push(e);else if(e=this.tokenizer.del(t))t=t.substring(e.raw.length),i.push(e);else if(e=this.tokenizer.autolink(t,I))t=t.substring(e.raw.length),i.push(e);else if(this.state.inLink||!(e=this.tokenizer.url(t,I))){if(n=t,this.options.extensions&&this.options.extensions.startInline&&function(){var i=1/0,e=t.slice(1),s=void 0;o.options.extensions.startInline.forEach((function(t){"number"==typeof(s=t.call({lexer:this},e))&&s>=0&&(i=Math.min(i,s))})),i<1/0&&i>=0&&(n=t.substring(0,i+1))}(),e=this.tokenizer.inlineText(n,O))t=t.substring(e.raw.length),"_"!==e.raw.slice(-1)&&(c=e.raw.slice(-1)),h=!0,(s=i[i.length-1])&&"text"===s.type?(s.raw+=e.raw,s.text+=e.text):i.push(e);else if(t){var u="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(u);break}throw new Error(u)}}else t=t.substring(e.raw.length),i.push(e);return i},s=e,n=[{key:"rules",get:function(){return{block:T,inline:R}}}],null&&i(s.prototype,null),n&&i(s,n),Object.defineProperty(s,"prototype",{writable:!1}),e}(),N=function(){function i(i){this.options=i||t.defaults}var e=i.prototype;return e.code=function(t,i,e){var s=(i||"").match(/\S*/)[0];if(this.options.highlight){var n=this.options.highlight(t,s);null!=n&&n!==t&&(e=!0,t=n)}return t=t.replace(/\n$/,"")+"\n",s?'
      '+(e?t:u(t,!0))+"
      \n":"
      "+(e?t:u(t,!0))+"
      \n"},e.blockquote=function(t){return"
      \n"+t+"
      \n"},e.html=function(t){return t},e.heading=function(t,i,e,s){return this.options.headerIds?"'+t+"\n":""+t+"\n"},e.hr=function(){return this.options.xhtml?"
      \n":"
      \n"},e.list=function(t,i,e){var s=i?"ol":"ul";return"<"+s+(i&&1!==e?' start="'+e+'"':"")+">\n"+t+"\n"},e.listitem=function(t){return"
    • "+t+"
    • \n"},e.checkbox=function(t){return" "},e.paragraph=function(t){return"

      "+t+"

      \n"},e.table=function(t,i){return i&&(i=""+i+""),"\n\n"+t+"\n"+i+"
      \n"},e.tablerow=function(t){return"\n"+t+"\n"},e.tablecell=function(t,i){var e=i.header?"th":"td";return(i.align?"<"+e+' align="'+i.align+'">':"<"+e+">")+t+"\n"},e.strong=function(t){return""+t+""},e.em=function(t){return""+t+""},e.codespan=function(t){return""+t+""},e.br=function(){return this.options.xhtml?"
      ":"
      "},e.del=function(t){return""+t+""},e.link=function(t,i,e){if(null===(t=v(this.options.sanitize,this.options.baseUrl,t)))return e;var s='"+e+""},e.image=function(t,i,e){if(null===(t=v(this.options.sanitize,this.options.baseUrl,t)))return e;var s=''+e+'":">")},e.text=function(t){return t},i}(),B=function(){function t(){}var i=t.prototype;return i.strong=function(t){return t},i.em=function(t){return t},i.codespan=function(t){return t},i.del=function(t){return t},i.html=function(t){return t},i.text=function(t){return t},i.link=function(t,i,e){return""+e},i.image=function(t,i,e){return""+e},i.br=function(){return""},t}(),P=function(){function t(){this.seen={}}var i=t.prototype;return i.serialize=function(t){return t.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},i.getNextSafeSlug=function(t,i){var e=t,s=0;if(this.seen.hasOwnProperty(e)){s=this.seen[t];do{e=t+"-"+ ++s}while(this.seen.hasOwnProperty(e))}return i||(this.seen[t]=s,this.seen[e]=0),e},i.slug=function(t,i){void 0===i&&(i={});var e=this.serialize(t);return this.getNextSafeSlug(e,i.dryrun)},t}(),$=function(){function i(i){this.options=i||t.defaults,this.options.renderer=this.options.renderer||new N,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new B,this.slugger=new P}i.parse=function(t,e){return new i(e).parse(t)},i.parseInline=function(t,e){return new i(e).parseInline(t)};var e=i.prototype;return e.parse=function(t,i){void 0===i&&(i=!0);var e,s,n,o,r,h,c,a,l,u,d,p,g,m,w,v,b,y,k,x="",C=t.length;for(e=0;e0&&"paragraph"===w.tokens[0].type?(w.tokens[0].text=y+" "+w.tokens[0].text,w.tokens[0].tokens&&w.tokens[0].tokens.length>0&&"text"===w.tokens[0].tokens[0].type&&(w.tokens[0].tokens[0].text=y+" "+w.tokens[0].tokens[0].text)):w.tokens.unshift({type:"text",text:y}):m+=y),m+=this.parse(w.tokens,g),l+=this.renderer.listitem(m,b,v);x+=this.renderer.list(l,d,p);continue;case"html":x+=this.renderer.html(u.text);continue;case"paragraph":x+=this.renderer.paragraph(this.parseInline(u.tokens));continue;case"text":for(l=u.tokens?this.parseInline(u.tokens):u.text;e+1An error occurred:

      "+u(t.message+"",!0)+"
      ";throw t}try{var c=_.lex(t,i);if(i.walkTokens){if(i.async)return Promise.all(W.walkTokens(c,i.walkTokens)).then((function(){return $.parse(c,i)})).catch(h);W.walkTokens(c,i.walkTokens)}return $.parse(c,i)}catch(t){h(t)}}W.options=W.setOptions=function(i){return S(W.defaults,i),t.defaults=W.defaults,W},W.getDefaults=n,W.defaults=t.defaults,W.use=function(){for(var t=arguments.length,i=new Array(t),e=0;eAn error occurred:

      "+u(t.message+"",!0)+"
      ";throw t}},W.Parser=$,W.parser=$.parse,W.Renderer=N,W.TextRenderer=B,W.Lexer=_,W.lexer=_.lex,W.Tokenizer=F,W.Slugger=P,W.parse=W;var j=W.options,z=W.setOptions,H=W.use,V=W.walkTokens,U=W.parseInline,q=W,K=$.parse,G=_.lex;t.Lexer=_,t.Parser=$,t.Renderer=N,t.Slugger=P,t.TextRenderer=B,t.Tokenizer=F,t.getDefaults=n,t.lexer=G,t.marked=W,t.options=j,t.parse=q,t.parseInline=U,t.parser=K,t.setOptions=z,t.use=H,t.walkTokens=V,Object.defineProperty(t,"__esModule",{value:!0})},(t.amd=!0)?t(0,e):"object"==typeof exports&&"undefined"!=typeof module?e(exports):e((i="undefined"!=typeof globalThis?globalThis:i||self).marked={})}(),X_.Lexer||exports,X_.Parser||exports,X_.Renderer||exports,X_.Slugger||exports,X_.TextRenderer||exports,X_.Tokenizer||exports,X_.getDefaults||exports,X_.lexer||exports;var tN=X_.marked||exports.marked;function iN(t){let i=JSON.parse(t);return i=sN(i),i}function eN(t,i){return i instanceof RegExp?{$mid:2,source:i.source,flags:i.flags}:i}function sN(t,i=0){if(!t||i>200)return t;if("object"==typeof t){switch(t.$mid){case 1:return ms.revive(t);case 2:return new RegExp(t.source,t.flags);case 17:return new Date(t.source)}if(t instanceof Uu||t instanceof Uint8Array)return t;if(Array.isArray(t))for(let e=0;e{let s=[],n=[];return t&&(({href:t,dimensions:s}=function(t){const i=[],e=t.split("|").map((t=>t.trim()));t=e[0];const s=e[1];if(s){const t=/height=(\d+)/.exec(s),e=/width=(\d+)/.exec(s),n=t?t[1]:"",o=e?e[1]:"",r=isFinite(parseInt(o)),h=isFinite(parseInt(n));r&&i.push(`width="${o}"`),h&&i.push(`height="${n}"`)}return{href:t,dimensions:i}}(t)),n.push(`src="${$_(t)}"`)),e&&n.push(`alt="${$_(e)}"`),i&&n.push(`title="${$_(i)}"`),s.length&&(n=n.concat(s)),""},paragraph:t=>`

      ${t}

      `,link:(t,i,e)=>"string"!=typeof t?"":(t===e&&(e=W_(e)),i="string"==typeof i?$_(W_(i)):"",`/g,">").replace(/"/g,""").replace(/'/g,"'")}" title="${i||t}" draggable="false">${e}`)});function oN(t,i={},e={}){var s,n;const o=new Xi;let r=!1;const h=V_(i),c=function(i){let e;try{e=iN(decodeURIComponent(i))}catch(t){}return e?(e=Y(e,(i=>t.uris&&t.uris[i]?ms.revive(t.uris[i]):void 0)),encodeURIComponent(JSON.stringify(e))):i},a=function(i,e){let s=ms.revive(t.uris&&t.uris[i]);return e?i.startsWith(ka.data+":")?i:(s||(s=ms.parse(i)),Ea.uriToBrowserUri(s).toString(!0)):s?ms.parse(i).toString()===s.toString()?i:(s.query&&(s=s.with({query:c(s.query)})),s.toString()):i},l=new tN.Renderer;l.image=nN.image,l.link=nN.link,l.paragraph=nN.paragraph;const u=[],d=[];if(i.codeBlockRendererSync?l.code=(t,e)=>{const s=Y_.nextId(),n=i.codeBlockRendererSync(rN(e),t);return d.push([s,n]),`
      ${Kn(t)}
      `}:i.codeBlockRenderer&&(l.code=(t,e)=>{const s=Y_.nextId(),n=i.codeBlockRenderer(rN(e),t);return u.push(n.then((t=>[s,t]))),`
      ${Kn(t)}
      `}),i.actionHandler){const e=function(e){let s=e.target;if("A"===s.tagName||(s=s.parentElement,s&&"A"===s.tagName))try{let n=s.dataset.href;n&&(t.baseUri&&(n=hN(ms.from(t.baseUri),n)),i.actionHandler.callback(n,e))}catch(t){Bi(t)}finally{e.preventDefault()}},s=i.actionHandler.disposables.add(new Bk(h,"click")),n=i.actionHandler.disposables.add(new Bk(h,"auxclick"));i.actionHandler.disposables.add(he.any(s.event,n.event)((t=>{const i=new tc(Na(h),t);(i.leftButton||i.middleButton)&&e(i)}))),i.actionHandler.disposables.add(Va(h,"keydown",(t=>{const i=new Qh(t);(i.equals(10)||i.equals(3))&&e(i)})))}t.supportHtml||(e.sanitizer=i=>(t.isTrusted?i.match(/^(]+>)|(<\/\s*span>)$/):void 0)?i:"",e.sanitize=!0,e.silent=!0),e.renderer=l;let f,p=null!==(s=t.value)&&void 0!==s?s:"";if(p.length>1e5&&(p=`${p.substr(0,1e5)}…`),t.supportThemeIcons&&(p=function(t){return t.replace(F_,(t=>`\\${t}`))}(p)),i.fillInIncompleteTokens){const t={...tN.defaults,...e},i=function(t){let i,e;for(i=0;i"string"==typeof t?t:t.outerHTML)).join(""));const g=(new DOMParser).parseFromString(cN(t,f),"text/html");if(g.body.querySelectorAll("img").forEach((i=>{const e=i.getAttribute("src");if(e){let s=e;try{t.baseUri&&(s=hN(ms.from(t.baseUri),s))}catch(t){}i.src=a(s,!0)}})),g.body.querySelectorAll("a").forEach((i=>{const e=i.getAttribute("href");if(i.setAttribute("href",""),!e||/^data:|javascript:/i.test(e)||/^command:/i.test(e)&&!t.isTrusted||/^command:(\/\/\/)?_workbench\.downloadResource/i.test(e))i.replaceWith(...i.childNodes);else{let s=a(e,!1);t.baseUri&&(s=hN(ms.from(t.baseUri),e)),i.dataset.href=s}})),h.innerHTML=cN(t,g.body.innerHTML),u.length>0)Promise.all(u).then((t=>{var e,s;if(r)return;const n=new Map(t),o=h.querySelectorAll("div[data-code]");for(const t of o){const i=n.get(null!==(e=t.dataset.code)&&void 0!==e?e:"");i&&_l(t,i)}null===(s=i.asyncRenderCallback)||void 0===s||s.call(i)}));else if(d.length>0){const t=new Map(d),i=h.querySelectorAll("div[data-code]");for(const e of i){const i=t.get(null!==(n=e.dataset.code)&&void 0!==n?n:"");i&&_l(e,i)}}if(i.asyncRenderCallback)for(const t of h.getElementsByTagName("img")){const e=o.add(Va(t,"load",(()=>{e.dispose(),i.asyncRenderCallback()})))}return{element:h,dispose:()=>{r=!0,o.dispose()}}}function rN(t){if(!t)return"";const i=t.split(/[\s+|:|,|\{|\?]/,1);return i.length?i[0]:t}function hN(t,i){return/^\w[\w\d+.-]*:/.test(i)?i:t.path.endsWith("/")?DA(t,i).toString():DA(kA(t),i).toString()}function cN(t,i){const{config:e,allowedSchemes:s}=function(t){const i=[ka.http,ka.https,ka.mailto,ka.data,ka.file,ka.vscodeFileResource,ka.vscodeRemote,ka.vscodeRemoteResource];return t.isTrusted&&i.push(ka.command),{config:{ALLOWED_TAGS:[...Kl],ALLOWED_ATTR:aN,ALLOW_UNKNOWN_PROTOCOLS:!0},allowedSchemes:i}}(t);ba("uponSanitizeAttribute",((t,i)=>{if("style"!==i.attrName&&"class"!==i.attrName);else{if("SPAN"===t.tagName){if("style"===i.attrName)return void(i.keepAttr=/^(color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?(background-color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?$/.test(i.attrValue));if("class"===i.attrName)return void(i.keepAttr=/^codicon codicon-[a-z\-]+( codicon-modifier-[a-z\-]+)?$/.test(i.attrValue))}i.keepAttr=!1}}));const n=function(t,i=!1){const e=document.createElement("a");return ba("afterSanitizeAttributes",(s=>{for(const n of["href","src"])if(s.hasAttribute(n)){const o=s.getAttribute(n);if("href"===n&&o.startsWith("#"))continue;if(e.href=o,!t.includes(e.protocol.replace(/:$/,""))){if(i&&"src"===n&&e.href.startsWith("data:"))continue;s.removeAttribute(n)}}})),Yi((()=>{ya("afterSanitizeAttributes")}))}(s);try{return va(i,{...e,RETURN_TRUSTED_TYPE:!0})}finally{ya("uponSanitizeAttribute"),n.dispose()}}const aN=["align","autoplay","alt","class","controls","data-code","data-href","draggable","height","href","loop","muted","playsinline","poster","src","style","target","title","width","start"];const lN=new Map([[""",'"'],[" "," "],["&","&"],["'","'"],["<","<"],[">",">"]]),uN=new zn((()=>{const t=new tN.Renderer;return t.code=t=>t,t.blockquote=t=>t,t.html=()=>"",t.heading=t=>t+"\n",t.hr=()=>"",t.list=t=>t,t.listitem=t=>t+"\n",t.paragraph=t=>t+"\n",t.table=(t,i)=>t+i+"\n",t.tablerow=t=>t,t.tablecell=t=>t+" ",t.strong=t=>t,t.em=t=>t,t.codespan=t=>t,t.br=()=>"\n",t.del=t=>t,t.image=()=>"",t.text=t=>t,t.link=(t,i,e)=>e,t}));function dN(t){let i="";return t.forEach((t=>{i+=t.raw})),i}function fN(t){for(const i of t.tokens)if("text"===i.type){const e=i.raw.split("\n"),s=e[e.length-1];if(s.includes("`"))return gN(t);if(s.includes("**"))return yN(t,"**");if(s.match(/\*\w/))return yN(t,"*");if(s.match(/(^|\s)__\w/))return bN(t);if(s.match(/(^|\s)_\w/))return mN(t);if(s.match(/(^|\s)\[.*\]\(\w*/))return wN(t);if(s.match(/(^|\s)\[\w/))return vN(t)}}function pN(t){const i=dN(t);return tN.lexer(i+"\n```")}function gN(t){return yN(t,"`")}function mN(t){return yN(t,"_")}function wN(t){return yN(t,")")}function vN(t){return yN(t,"](about:blank)")}function bN(t){return yN(t,"__")}function yN(t,i){const e=dN(Array.isArray(t)?t:[t]);return tN.lexer(e+i)[0]}function kN(t){const i=dN(t),e=i.split("\n");let s,n=!1;for(let t=0;t0){const t=n?e.slice(0,-1).join("\n"):i,o=!!t.match(/\|\s*$/),r=t+(o?"":"|")+`\n|${" --- |".repeat(s)}`;return tN.lexer(r)}}class xN{constructor(t){this.spliceables=t}splice(t,i,e){this.spliceables.forEach((s=>s.splice(t,i,e)))}}class CN extends Error{constructor(t,i){super(`ListError [${t}] ${i}`)}}function SN(t,i){const e=[];for(const s of i){if(t.start>=s.range.end)continue;if(t.end({range:DN(t.range,s),size:t.size}))),r=e.map(((i,e)=>({range:{start:t+e,end:t+e+1},size:i.size})));this.groups=function(...t){return function(t){const i=[];let e=null;for(const s of t){const t=s.range.start,n=s.range.end,o=s.size;e&&o===e.size?e.range.end=n:(e={range:{start:t,end:n},size:o},i.push(e))}return i}(t.reduce(((t,i)=>t.concat(i)),[]))}(n,r,o),this._size=this._paddingTop+this.groups.reduce(((t,i)=>t+i.size*(i.range.end-i.range.start)),0)}get count(){const t=this.groups.length;return t?this.groups[t-1].range.end:0}get size(){return this._size}indexAt(t){if(t<0)return-1;if(t{for(const e of t)this.getRenderer(i).disposeTemplate(e.templateData),e.templateData=null})),this.cache.clear(),this.transactionNodesPendingRemoval.clear()}getRenderer(t){const i=this.renderers.get(t);if(!i)throw new Error(`No renderer found for ${t}`);return i}}var MN=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r};const LN={CurrentDragAndDropData:void 0},FN={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0,setRowHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements:t=>[t],getDragURI:()=>null,onDragStart(){},onDragOver:()=>!1,drop(){},dispose(){}},horizontalScrolling:!1,transformOptimization:!0,alwaysConsumeMouseWheel:!0};class TN{constructor(t){this.elements=t}update(){}getData(){return this.elements}}class RN{constructor(t){this.elements=t}update(){}getData(){return this.elements}}class ON{constructor(){this.types=[],this.files=[]}update(t){if(t.types&&this.types.splice(0,this.types.length,...t.types),t.files){this.files.splice(0,this.files.length);for(let i=0;ie,this.getPosInSet=(null==t?void 0:t.getPosInSet)?t.getPosInSet.bind(t):(t,i)=>i+1,this.getRole=(null==t?void 0:t.getRole)?t.getRole.bind(t):()=>"listitem",this.isChecked=(null==t?void 0:t.isChecked)?t.isChecked.bind(t):()=>{}}}class _N{get contentHeight(){return this.rangeMap.size}get onDidScroll(){return this.scrollableElement.onScroll}get scrollableElementDomNode(){return this.scrollableElement.getDomNode()}get horizontalScrolling(){return this._horizontalScrolling}set horizontalScrolling(t){if(t!==this._horizontalScrolling){if(t&&this.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");if(this._horizontalScrolling=t,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this._horizontalScrolling){for(const t of this.items)this.measureItemWidth(t);this.updateScrollWidth(),this.scrollableElement.setScrollDimensions({width:rl(this.domNode)}),this.rowsContainer.style.width=`${Math.max(this.scrollWidth||0,this.renderWidth)}px`}else this.scrollableElementWidthDelayer.cancel(),this.scrollableElement.setScrollDimensions({width:this.renderWidth,scrollWidth:this.renderWidth}),this.rowsContainer.style.width=""}}constructor(t,i,e,s=FN){var n,o,r,h,c,a,l,u,d,f,p,g,m;if(this.virtualDelegate=i,this.domId="list_id_"+ ++_N.InstanceCount,this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new hc(50),this.splicing=!1,this.dragOverAnimationStopDisposable=te.None,this.dragOverMouseY=0,this.canDrop=!1,this.currentDragFeedbackDisposable=te.None,this.onDragLeaveTimeout=te.None,this.disposables=new Xi,this._onDidChangeContentHeight=new de,this._onDidChangeContentWidth=new de,this.onDidChangeContentHeight=he.latch(this._onDidChangeContentHeight.event,void 0,this.disposables),this._horizontalScrolling=!1,s.horizontalScrolling&&s.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");this.items=[],this.itemId=0,this.rangeMap=new EN(null!==(n=s.paddingTop)&&void 0!==n?n:0);for(const t of e)this.renderers.set(t.templateId,t);this.cache=this.disposables.add(new AN(this.renderers)),this.lastRenderTop=0,this.lastRenderHeight=0,this.domNode=document.createElement("div"),this.domNode.className="monaco-list",this.domNode.classList.add(this.domId),this.domNode.tabIndex=0,this.domNode.classList.toggle("mouse-support","boolean"!=typeof s.mouseSupport||s.mouseSupport),this._horizontalScrolling=null!==(o=s.horizontalScrolling)&&void 0!==o?o:FN.horizontalScrolling,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this.paddingBottom=void 0===s.paddingBottom?0:s.paddingBottom,this.accessibilityProvider=new IN(s.accessibilityProvider),this.rowsContainer=document.createElement("div"),this.rowsContainer.className="monaco-list-rows",(null!==(r=s.transformOptimization)&&void 0!==r?r:FN.transformOptimization)&&(this.rowsContainer.style.transform="translate3d(0px, 0px, 0px)",this.rowsContainer.style.overflow="hidden",this.rowsContainer.style.contain="strict"),this.disposables.add(rw.addTarget(this.rowsContainer)),this.scrollable=this.disposables.add(new xk({forceIntegerValues:!0,smoothScrollDuration:null!==(h=s.smoothScrolling)&&void 0!==h&&h?125:0,scheduleAtNextAnimationFrame:t=>Qa(Na(this.domNode),t)})),this.scrollableElement=this.disposables.add(new Fk(this.rowsContainer,{alwaysConsumeMouseWheel:null!==(c=s.alwaysConsumeMouseWheel)&&void 0!==c?c:FN.alwaysConsumeMouseWheel,horizontal:1,vertical:null!==(a=s.verticalScrollMode)&&void 0!==a?a:FN.verticalScrollMode,useShadows:null!==(l=s.useShadows)&&void 0!==l?l:FN.useShadows,mouseWheelScrollSensitivity:s.mouseWheelScrollSensitivity,fastScrollSensitivity:s.fastScrollSensitivity,scrollByPage:s.scrollByPage},this.scrollable)),this.domNode.appendChild(this.scrollableElement.getDomNode()),t.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),this.disposables.add(Va(this.rowsContainer,ow.Change,(t=>this.onTouchChange(t)))),this.disposables.add(Va(this.scrollableElement.getDomNode(),"scroll",(t=>t.target.scrollTop=0))),this.disposables.add(Va(this.domNode,"dragover",(t=>this.onDragOver(this.toDragEvent(t))))),this.disposables.add(Va(this.domNode,"drop",(t=>this.onDrop(this.toDragEvent(t))))),this.disposables.add(Va(this.domNode,"dragleave",(t=>this.onDragLeave(this.toDragEvent(t))))),this.disposables.add(Va(this.domNode,"dragend",(t=>this.onDragEnd(t)))),this.setRowLineHeight=null!==(u=s.setRowLineHeight)&&void 0!==u?u:FN.setRowLineHeight,this.setRowHeight=null!==(d=s.setRowHeight)&&void 0!==d?d:FN.setRowHeight,this.supportDynamicHeights=null!==(f=s.supportDynamicHeights)&&void 0!==f?f:FN.supportDynamicHeights,this.dnd=null!==(p=s.dnd)&&void 0!==p?p:this.disposables.add(FN.dnd),this.layout(null===(g=s.initialSize)||void 0===g?void 0:g.height,null===(m=s.initialSize)||void 0===m?void 0:m.width)}updateOptions(t){let i;if(void 0!==t.paddingBottom&&(this.paddingBottom=t.paddingBottom,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),void 0!==t.smoothScrolling&&this.scrollable.setSmoothScrollDuration(t.smoothScrolling?125:0),void 0!==t.horizontalScrolling&&(this.horizontalScrolling=t.horizontalScrolling),void 0!==t.scrollByPage&&(i={...null!=i?i:{},scrollByPage:t.scrollByPage}),void 0!==t.mouseWheelScrollSensitivity&&(i={...null!=i?i:{},mouseWheelScrollSensitivity:t.mouseWheelScrollSensitivity}),void 0!==t.fastScrollSensitivity&&(i={...null!=i?i:{},fastScrollSensitivity:t.fastScrollSensitivity}),i&&this.scrollableElement.updateOptions(i),void 0!==t.paddingTop&&t.paddingTop!==this.rangeMap.paddingTop){const i=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),e=t.paddingTop-this.rangeMap.paddingTop;this.rangeMap.paddingTop=t.paddingTop,this.render(i,Math.max(0,this.lastRenderTop+e),this.lastRenderHeight,void 0,void 0,!0),this.setScrollTop(this.lastRenderTop),this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.lastRenderTop,this.lastRenderHeight)}}splice(t,i,e=[]){if(this.splicing)throw new Error("Can't run recursive splices.");this.splicing=!0;try{return this._splice(t,i,e)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}}_splice(t,i,e=[]){const s=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),n=uI.intersect(s,{start:t,end:t+i}),o=new Map;for(let t=n.end-1;t>=n.start;t--){const i=this.items[t];if(i.dragStartDisposable.dispose(),i.checkedDisposable.dispose(),i.row){let e=o.get(i.templateId);e||(e=[],o.set(i.templateId,e));const s=this.renderers.get(i.templateId);s&&s.disposeElement&&s.disposeElement(i.element,t,i.row.templateData,i.size),e.push(i.row)}i.row=null}const r={start:t+i,end:this.items.length},h=uI.intersect(r,s),c=uI.relativeComplement(r,s),a=e.map((t=>({id:String(this.itemId++),element:t,templateId:this.virtualDelegate.getTemplateId(t),size:this.virtualDelegate.getHeight(t),width:void 0,hasDynamicHeight:!!this.virtualDelegate.hasDynamicHeight&&this.virtualDelegate.hasDynamicHeight(t),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:te.None,checkedDisposable:te.None})));let l;0===t&&i>=this.items.length?(this.rangeMap=new EN(this.rangeMap.paddingTop),this.rangeMap.splice(0,0,a),l=this.items,this.items=a):(this.rangeMap.splice(t,i,a),l=this.items.splice(t,i,...a));const u=e.length-i,d=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),f=DN(h,u),p=uI.intersect(d,f);for(let t=p.start;tDN(t,u))),w=[{start:t,end:t+e.length},...m].map((t=>uI.intersect(d,t))),v=this.getNextToLastElement(w);for(const t of w)for(let i=t.start;it.element))}eventuallyUpdateScrollDimensions(){this._scrollHeight=this.contentHeight,this.rowsContainer.style.height=`${this._scrollHeight}px`,this.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=Qa(Na(this.domNode),(()=>{this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight}),this.updateScrollWidth(),this.scrollableElementUpdateDisposable=null})))}eventuallyUpdateScrollWidth(){this.horizontalScrolling?this.scrollableElementWidthDelayer.trigger((()=>this.updateScrollWidth())):this.scrollableElementWidthDelayer.cancel()}updateScrollWidth(){if(!this.horizontalScrolling)return;let t=0;for(const i of this.items)void 0!==i.width&&(t=Math.max(t,i.width));this.scrollWidth=t,this.scrollableElement.setScrollDimensions({scrollWidth:0===t?0:t+10}),this._onDidChangeContentWidth.fire(this.scrollWidth)}rerender(){if(this.supportDynamicHeights){for(const t of this.items)t.lastDynamicHeightWidth=void 0;this._rerender(this.lastRenderTop,this.lastRenderHeight)}}get length(){return this.items.length}get renderHeight(){return this.scrollableElement.getScrollDimensions().height}get firstVisibleIndex(){return this.getRenderRange(this.lastRenderTop,this.lastRenderHeight).start}element(t){return this.items[t].element}indexOf(t){return this.items.findIndex((i=>i.element===t))}domElement(t){const i=this.items[t].row;return i&&i.domNode}elementHeight(t){return this.items[t].size}elementTop(t){return this.rangeMap.positionAt(t)}indexAt(t){return this.rangeMap.indexAt(t)}indexAfter(t){return this.rangeMap.indexAfter(t)}layout(t,i){const e={height:"number"==typeof t?t:hl(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,e.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(e),void 0!==i&&(this.renderWidth=i,this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight)),this.horizontalScrolling&&this.scrollableElement.setScrollDimensions({width:"number"==typeof i?i:rl(this.domNode)})}render(t,i,e,s,n,o=!1){const r=this.getRenderRange(i,e),h=uI.relativeComplement(r,t),c=uI.relativeComplement(t,r),a=this.getNextToLastElement(h);if(o){const i=uI.intersect(t,r);for(let t=i.start;t{for(const t of c)for(let i=t.start;is.row.domNode.setAttribute("aria-checked",String(!!t));t(r.value),s.checkedDisposable=r.onDidChange(t)}!n&&s.row.domNode.parentElement||(i?this.rowsContainer.insertBefore(s.row.domNode,i):this.rowsContainer.appendChild(s.row.domNode)),this.updateItemInDOM(s,t);const h=this.renderers.get(s.templateId);if(!h)throw new Error(`No renderer found for template id ${s.templateId}`);null==h||h.renderElement(s.element,t,s.row.templateData,s.size);const c=this.dnd.getDragURI(s.element);s.dragStartDisposable.dispose(),s.row.domNode.draggable=!!c,c&&(s.dragStartDisposable=Va(s.row.domNode,"dragstart",(t=>this.onDragStart(s.element,c,t)))),this.horizontalScrolling&&(this.measureItemWidth(s),this.eventuallyUpdateScrollWidth())}measureItemWidth(t){if(!t.row||!t.row.domNode)return;t.row.domNode.style.width="fit-content",t.width=rl(t.row.domNode);const i=Na(t.row.domNode).getComputedStyle(t.row.domNode);i.paddingLeft&&(t.width+=parseFloat(i.paddingLeft)),i.paddingRight&&(t.width+=parseFloat(i.paddingRight)),t.row.domNode.style.width=""}updateItemInDOM(t,i){t.row.domNode.style.top=`${this.elementTop(i)}px`,this.setRowHeight&&(t.row.domNode.style.height=`${t.size}px`),this.setRowLineHeight&&(t.row.domNode.style.lineHeight=`${t.size}px`),t.row.domNode.setAttribute("data-index",`${i}`),t.row.domNode.setAttribute("data-last-element",i===this.length-1?"true":"false"),t.row.domNode.setAttribute("data-parity",i%2==0?"even":"odd"),t.row.domNode.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(t.element,i,this.length))),t.row.domNode.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(t.element,i))),t.row.domNode.setAttribute("id",this.getElementDomId(i)),t.row.domNode.classList.toggle("drop-target",t.dropTarget)}removeItemFromDOM(t){const i=this.items[t];if(i.dragStartDisposable.dispose(),i.checkedDisposable.dispose(),i.row){const e=this.renderers.get(i.templateId);e&&e.disposeElement&&e.disposeElement(i.element,t,i.row.templateData,i.size),this.cache.release(i.row),i.row=null}this.horizontalScrolling&&this.eventuallyUpdateScrollWidth()}getScrollTop(){return this.scrollableElement.getScrollPosition().scrollTop}setScrollTop(t,i){this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),this.scrollableElement.setScrollPosition({scrollTop:t,reuseAnimation:i})}get scrollTop(){return this.getScrollTop()}set scrollTop(t){this.setScrollTop(t)}get scrollHeight(){return this._scrollHeight+(this.horizontalScrolling?10:0)+this.paddingBottom}get onMouseClick(){return he.map(this.disposables.add(new Bk(this.domNode,"click")).event,(t=>this.toMouseEvent(t)),this.disposables)}get onMouseDblClick(){return he.map(this.disposables.add(new Bk(this.domNode,"dblclick")).event,(t=>this.toMouseEvent(t)),this.disposables)}get onMouseMiddleClick(){return he.filter(he.map(this.disposables.add(new Bk(this.domNode,"auxclick")).event,(t=>this.toMouseEvent(t)),this.disposables),(t=>1===t.browserEvent.button),this.disposables)}get onMouseDown(){return he.map(this.disposables.add(new Bk(this.domNode,"mousedown")).event,(t=>this.toMouseEvent(t)),this.disposables)}get onMouseOver(){return he.map(this.disposables.add(new Bk(this.domNode,"mouseover")).event,(t=>this.toMouseEvent(t)),this.disposables)}get onMouseOut(){return he.map(this.disposables.add(new Bk(this.domNode,"mouseout")).event,(t=>this.toMouseEvent(t)),this.disposables)}get onContextMenu(){return he.any(he.map(this.disposables.add(new Bk(this.domNode,"contextmenu")).event,(t=>this.toMouseEvent(t)),this.disposables),he.map(this.disposables.add(new Bk(this.domNode,ow.Contextmenu)).event,(t=>this.toGestureEvent(t)),this.disposables))}get onTouchStart(){return he.map(this.disposables.add(new Bk(this.domNode,"touchstart")).event,(t=>this.toTouchEvent(t)),this.disposables)}get onTap(){return he.map(this.disposables.add(new Bk(this.rowsContainer,ow.Tap)).event,(t=>this.toGestureEvent(t)),this.disposables)}toMouseEvent(t){const i=this.getItemIndexFromEventTarget(t.target||null),e=void 0===i?void 0:this.items[i];return{browserEvent:t,index:i,element:e&&e.element}}toTouchEvent(t){const i=this.getItemIndexFromEventTarget(t.target||null),e=void 0===i?void 0:this.items[i];return{browserEvent:t,index:i,element:e&&e.element}}toGestureEvent(t){const i=this.getItemIndexFromEventTarget(t.initialTarget||null),e=void 0===i?void 0:this.items[i];return{browserEvent:t,index:i,element:e&&e.element}}toDragEvent(t){const i=this.getItemIndexFromEventTarget(t.target||null),e=void 0===i?void 0:this.items[i];return{browserEvent:t,index:i,element:e&&e.element}}onScroll(t){try{const i=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);this.render(i,t.scrollTop,t.height,t.scrollLeft,t.scrollWidth),this.supportDynamicHeights&&this._rerender(t.scrollTop,t.height,t.inSmoothScrolling)}catch(i){throw console.error("Got bad scroll event:",t),i}}onTouchChange(t){t.preventDefault(),t.stopPropagation(),this.scrollTop-=t.translationY}onDragStart(t,i,e){var s,n;if(!e.dataTransfer)return;const o=this.dnd.getDragElements(t);if(e.dataTransfer.effectAllowed="copyMove",e.dataTransfer.setData(MI.TEXT,i),e.dataTransfer.setDragImage){let t;this.dnd.getDragLabel&&(t=this.dnd.getDragLabel(o,e)),void 0===t&&(t=String(o.length));const i=$l(".monaco-drag-image");i.textContent=t;const s=(t=>{for(;t&&!t.classList.contains("monaco-workbench");)t=t.parentElement;return t||this.domNode.ownerDocument})(this.domNode);s.appendChild(i),e.dataTransfer.setDragImage(i,-10,-10),setTimeout((()=>s.removeChild(i)),0)}this.domNode.classList.add("dragging"),this.currentDragData=new TN(o),LN.CurrentDragAndDropData=new RN(o),null===(n=(s=this.dnd).onDragStart)||void 0===n||n.call(s,this.currentDragData,e)}onDragOver(t){var i;if(t.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),LN.CurrentDragAndDropData&&"vscode-ui"===LN.CurrentDragAndDropData.getData())return!1;if(this.setupDragAndDropScrollTopAnimation(t.browserEvent),!t.browserEvent.dataTransfer)return!1;if(!this.currentDragData)if(LN.CurrentDragAndDropData)this.currentDragData=LN.CurrentDragAndDropData;else{if(!t.browserEvent.dataTransfer.types)return!1;this.currentDragData=new ON}const e=this.dnd.onDragOver(this.currentDragData,t.element,t.index,t.browserEvent);if(this.canDrop="boolean"==typeof e?e:e.accept,!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;let s;if(t.browserEvent.dataTransfer.dropEffect="boolean"!=typeof e&&0===e.effect?"copy":"move",s="boolean"!=typeof e&&e.feedback?e.feedback:void 0===t.index?[-1]:[t.index],s=y(s).filter((t=>t>=-1&&tt-i)),s=-1===s[0]?[-1]:s,n=this.currentDragFeedback,o=s,Array.isArray(n)&&Array.isArray(o)?l(n,o):n===o)return!0;var n,o;if(this.currentDragFeedback=s,this.currentDragFeedbackDisposable.dispose(),-1===s[0])this.domNode.classList.add("drop-target"),this.rowsContainer.classList.add("drop-target"),this.currentDragFeedbackDisposable=Yi((()=>{this.domNode.classList.remove("drop-target"),this.rowsContainer.classList.remove("drop-target")}));else{for(const t of s){const e=this.items[t];e.dropTarget=!0,null===(i=e.row)||void 0===i||i.domNode.classList.add("drop-target")}this.currentDragFeedbackDisposable=Yi((()=>{var t;for(const i of s){const e=this.items[i];e.dropTarget=!1,null===(t=e.row)||void 0===t||t.domNode.classList.remove("drop-target")}}))}return!0}onDragLeave(t){var i,e;this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=lc((()=>this.clearDragOverFeedback()),100,this.disposables),this.currentDragData&&(null===(e=(i=this.dnd).onDragLeave)||void 0===e||e.call(i,this.currentDragData,t.element,t.index,t.browserEvent))}onDrop(t){if(!this.canDrop)return;const i=this.currentDragData;this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,LN.CurrentDragAndDropData=void 0,i&&t.browserEvent.dataTransfer&&(t.browserEvent.preventDefault(),i.update(t.browserEvent.dataTransfer),this.dnd.drop(i,t.element,t.index,t.browserEvent))}onDragEnd(t){var i,e;this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,LN.CurrentDragAndDropData=void 0,null===(e=(i=this.dnd).onDragEnd)||void 0===e||e.call(i,t)}clearDragOverFeedback(){this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=te.None}setupDragAndDropScrollTopAnimation(t){if(!this.dragOverAnimationDisposable){const t=sl(this.domNode).top;this.dragOverAnimationDisposable=function(t,i){const e=()=>{i(),s=Qa(t,e)};let s=Qa(t,e);return Yi((()=>s.dispose()))}(Na(this.domNode),this.animateDragAndDropScrollTop.bind(this,t))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=lc((()=>{this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}),1e3,this.disposables),this.dragOverMouseY=t.pageY}animateDragAndDropScrollTop(t){if(void 0===this.dragOverMouseY)return;const i=this.dragOverMouseY-t,e=this.renderHeight-35;i<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(i-35))):i>e&&(this.scrollTop+=Math.min(14,Math.floor(.3*(i-e))))}teardownDragAndDropScrollTopAnimation(){this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}getItemIndexFromEventTarget(t){const i=this.scrollableElement.getDomNode();let e=t;for(;e instanceof HTMLElement&&e!==this.rowsContainer&&i.contains(e);){const t=e.getAttribute("data-index");if(t){const i=Number(t);if(!isNaN(i))return i}e=e.parentElement}}getRenderRange(t,i){return{start:this.rangeMap.indexAt(t),end:this.rangeMap.indexAfter(t+i-1)}}_rerender(t,i,e){const s=this.getRenderRange(t,i);let n,o;t===this.elementTop(s.start)?(n=s.start,o=0):s.end-s.start>1&&(n=s.start+1,o=this.elementTop(n)-t);let r=0;for(;;){const h=this.getRenderRange(t,i);let c=!1;for(let t=h.start;t=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r};class $N{constructor(t){this.trait=t,this.renderedElements=[]}get templateId(){return`template:${this.trait.name}`}renderTemplate(t){return t}renderElement(t,i,e){const s=this.renderedElements.findIndex((t=>t.templateData===e));if(s>=0){const t=this.renderedElements[s];this.trait.unrender(e),t.index=i}else this.renderedElements.push({index:i,templateData:e});this.trait.renderIndex(i,e)}splice(t,i,e){const s=[];for(const n of this.renderedElements)n.index=t+i&&s.push({index:n.index+e-i,templateData:n.templateData});this.renderedElements=s}renderIndexes(t){for(const{index:i,templateData:e}of this.renderedElements)t.indexOf(i)>-1&&this.trait.renderIndex(i,e)}disposeTemplate(t){const i=this.renderedElements.findIndex((i=>i.templateData===t));i<0||this.renderedElements.splice(i,1)}}class WN{get name(){return this._trait}get renderer(){return new $N(this)}constructor(t){this._trait=t,this.length=0,this.indexes=[],this.sortedIndexes=[],this._onChange=new de,this.onChange=this._onChange.event}splice(t,i,e){var s;i=Math.max(0,Math.min(i,this.length-t));const n=e.length-i,o=t+i,r=[];let h=0;for(;h=o;)r.push(this.sortedIndexes[h++]+n);const c=this.length+n;if(this.sortedIndexes.length>0&&0===r.length&&c>0){const i=null!==(s=this.sortedIndexes.find((i=>i>=t)))&&void 0!==s?s:c-1;r.push(Math.min(i,c-1))}this.renderer.splice(t,i,e.length),this._set(r,r),this.length=c}renderIndex(t,i){i.classList.toggle(this._trait,this.contains(t))}unrender(t){t.classList.remove(this._trait)}set(t,i){return this._set(t,[...t].sort(oB),i)}_set(t,i,e){const s=this.indexes,n=this.sortedIndexes;this.indexes=t,this.sortedIndexes=i;const o=nB(n,t);return this.renderer.renderIndexes(o),this._onChange.fire({indexes:t,browserEvent:e}),s}get(){return this.indexes}contains(t){return u(this.sortedIndexes,t,oB)>=0}dispose(){Qi(this._onChange)}}PN([nw],WN.prototype,"renderer",null);class jN extends WN{constructor(t){super("selected"),this.setAriaSelected=t}renderIndex(t,i){super.renderIndex(t,i),this.setAriaSelected&&(this.contains(t)?i.setAttribute("aria-selected","true"):i.setAttribute("aria-selected","false"))}}class zN{constructor(t,i,e){this.trait=t,this.view=i,this.identityProvider=e}splice(t,i,e){if(!this.identityProvider)return this.trait.splice(t,i,new Array(e.length).fill(!1));const s=this.trait.get().map((t=>this.identityProvider.getId(this.view.element(t)).toString()));if(0===s.length)return this.trait.splice(t,i,new Array(e.length).fill(!1));const n=new Set(s),o=e.map((t=>n.has(this.identityProvider.getId(t).toString())));this.trait.splice(t,i,o)}}function HN(t){return"INPUT"===t.tagName||"TEXTAREA"===t.tagName}function VN(t,i){return!!t.classList.contains(i)||!t.classList.contains("monaco-list")&&!!t.parentElement&&VN(t.parentElement,i)}function UN(t){return VN(t,"monaco-editor")}function qN(t){return!!("A"===t.tagName&&t.classList.contains("monaco-button")||"DIV"===t.tagName&&t.classList.contains("monaco-button-dropdown"))||!t.classList.contains("monaco-list")&&!!t.parentElement&&qN(t.parentElement)}class KN{get onKeyDown(){return he.chain(this.disposables.add(new Bk(this.view.domNode,"keydown")).event,(t=>t.filter((t=>!HN(t.target))).map((t=>new Qh(t)))))}constructor(t,i,e){this.list=t,this.view=i,this.disposables=new Xi,this.multipleSelectionDisposables=new Xi,this.multipleSelectionSupport=e.multipleSelectionSupport,this.disposables.add(this.onKeyDown((t=>{switch(t.keyCode){case 3:return this.onEnter(t);case 16:return this.onUpArrow(t);case 18:return this.onDownArrow(t);case 11:return this.onPageUpArrow(t);case 12:return this.onPageDownArrow(t);case 9:return this.onEscape(t);case 31:this.multipleSelectionSupport&&(Ct?t.metaKey:t.ctrlKey)&&this.onCtrlA(t)}})))}updateOptions(t){void 0!==t.multipleSelectionSupport&&(this.multipleSelectionSupport=t.multipleSelectionSupport)}onEnter(t){t.preventDefault(),t.stopPropagation(),this.list.setSelection(this.list.getFocus(),t.browserEvent)}onUpArrow(t){t.preventDefault(),t.stopPropagation(),this.list.focusPrevious(1,!1,t.browserEvent);const i=this.list.getFocus()[0];this.list.setAnchor(i),this.list.reveal(i),this.view.domNode.focus()}onDownArrow(t){t.preventDefault(),t.stopPropagation(),this.list.focusNext(1,!1,t.browserEvent);const i=this.list.getFocus()[0];this.list.setAnchor(i),this.list.reveal(i),this.view.domNode.focus()}onPageUpArrow(t){t.preventDefault(),t.stopPropagation(),this.list.focusPreviousPage(t.browserEvent);const i=this.list.getFocus()[0];this.list.setAnchor(i),this.list.reveal(i),this.view.domNode.focus()}onPageDownArrow(t){t.preventDefault(),t.stopPropagation(),this.list.focusNextPage(t.browserEvent);const i=this.list.getFocus()[0];this.list.setAnchor(i),this.list.reveal(i),this.view.domNode.focus()}onCtrlA(t){t.preventDefault(),t.stopPropagation(),this.list.setSelection(x(this.list.length),t.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus()}onEscape(t){this.list.getSelection().length&&(t.preventDefault(),t.stopPropagation(),this.list.setSelection([],t.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus())}dispose(){this.disposables.dispose(),this.multipleSelectionDisposables.dispose()}}PN([nw],KN.prototype,"onKeyDown",null),function(t){t[t.Automatic=0]="Automatic",t[t.Trigger=1]="Trigger"}(NN||(NN={})),function(t){t[t.Idle=0]="Idle",t[t.Typing=1]="Typing"}(BN||(BN={}));const GN=new class{mightProducePrintableCharacter(t){return!(t.ctrlKey||t.metaKey||t.altKey)&&(t.keyCode>=31&&t.keyCode<=56||t.keyCode>=21&&t.keyCode<=30||t.keyCode>=98&&t.keyCode<=107||t.keyCode>=85&&t.keyCode<=95)}};class ZN{constructor(t,i,e,s,n){this.list=t,this.view=i,this.keyboardNavigationLabelProvider=e,this.keyboardNavigationEventFilter=s,this.delegate=n,this.enabled=!1,this.state=BN.Idle,this.mode=NN.Automatic,this.triggered=!1,this.previouslyFocused=-1,this.enabledDisposables=new Xi,this.disposables=new Xi,this.updateOptions(t.options)}updateOptions(t){var i,e;null===(i=t.typeNavigationEnabled)||void 0===i||i?this.enable():this.disable(),this.mode=null!==(e=t.typeNavigationMode)&&void 0!==e?e:NN.Automatic}enable(){if(this.enabled)return;let t=!1;const i=he.chain(this.enabledDisposables.add(new Bk(this.view.domNode,"keydown")).event,(i=>i.filter((t=>!HN(t.target))).filter((()=>this.mode===NN.Automatic||this.triggered)).map((t=>new Qh(t))).filter((i=>t||this.keyboardNavigationEventFilter(i))).filter((t=>this.delegate.mightProducePrintableCharacter(t))).forEach((t=>Fl(t,!0))).map((t=>t.browserEvent.key)))),e=he.debounce(i,(()=>null),800,void 0,void 0,void 0,this.enabledDisposables);he.reduce(he.any(i,e),((t,i)=>null===i?null:(t||"")+i),void 0,this.enabledDisposables)(this.onInput,this,this.enabledDisposables),e(this.onClear,this,this.enabledDisposables),i((()=>t=!0),void 0,this.enabledDisposables),e((()=>t=!1),void 0,this.enabledDisposables),this.enabled=!0,this.triggered=!1}disable(){this.enabled&&(this.enabledDisposables.clear(),this.enabled=!1,this.triggered=!1)}onClear(){var t;const i=this.list.getFocus();if(i.length>0&&i[0]===this.previouslyFocused){const e=null===(t=this.list.options.accessibilityProvider)||void 0===t?void 0:t.getAriaLabel(this.list.element(i[0]));e&&Pm(e)}this.previouslyFocused=-1}onInput(t){if(!t)return this.state=BN.Idle,void(this.triggered=!1);const i=this.list.getFocus(),e=i.length>0?i[0]:0,s=this.state===BN.Idle?1:0;this.state=BN.Typing;for(let i=0;i1&&1===i.length)return this.previouslyFocused=e,this.list.setFocus([n]),void this.list.reveal(n)}}else if(void 0===r||BI(t,r))return this.previouslyFocused=e,this.list.setFocus([n]),void this.list.reveal(n)}}dispose(){this.disable(),this.enabledDisposables.dispose(),this.disposables.dispose()}}class QN{constructor(t,i){this.list=t,this.view=i,this.disposables=new Xi;const e=he.chain(this.disposables.add(new Bk(i.domNode,"keydown")).event,(t=>t.filter((t=>!HN(t.target))).map((t=>new Qh(t))))),s=he.chain(e,(t=>t.filter((t=>!(2!==t.keyCode||t.ctrlKey||t.metaKey||t.shiftKey||t.altKey)))));s(this.onTab,this,this.disposables)}onTab(t){if(t.target!==this.view.domNode)return;const i=this.list.getFocus();if(0===i.length)return;const e=this.view.domElement(i[0]);if(!e)return;const s=e.querySelector("[tabIndex]");if(!(s&&s instanceof HTMLElement&&-1!==s.tabIndex))return;const n=Na(s).getComputedStyle(s);"hidden"!==n.visibility&&"none"!==n.display&&(t.preventDefault(),t.stopPropagation(),s.focus())}dispose(){this.disposables.dispose()}}function JN(t){return Ct?t.browserEvent.metaKey:t.browserEvent.ctrlKey}function YN(t){return t.browserEvent.shiftKey}const XN={isSelectionSingleChangeEvent:JN,isSelectionRangeChangeEvent:YN};class tB{constructor(t){this.list=t,this.disposables=new Xi,this._onPointer=new de,this.onPointer=this._onPointer.event,!1!==t.options.multipleSelectionSupport&&(this.multipleSelectionController=this.list.options.multipleSelectionController||XN),this.mouseSupport=void 0===t.options.mouseSupport||!!t.options.mouseSupport,this.mouseSupport&&(t.onMouseDown(this.onMouseDown,this,this.disposables),t.onContextMenu(this.onContextMenu,this,this.disposables),t.onMouseDblClick(this.onDoubleClick,this,this.disposables),t.onTouchStart(this.onMouseDown,this,this.disposables),this.disposables.add(rw.addTarget(t.getHTMLElement()))),he.any(t.onMouseClick,t.onMouseMiddleClick,t.onTap)(this.onViewPointer,this,this.disposables)}updateOptions(t){void 0!==t.multipleSelectionSupport&&(this.multipleSelectionController=void 0,t.multipleSelectionSupport&&(this.multipleSelectionController=this.list.options.multipleSelectionController||XN))}isSelectionSingleChangeEvent(t){return!!this.multipleSelectionController&&this.multipleSelectionController.isSelectionSingleChangeEvent(t)}isSelectionRangeChangeEvent(t){return!!this.multipleSelectionController&&this.multipleSelectionController.isSelectionRangeChangeEvent(t)}isSelectionChangeEvent(t){return this.isSelectionSingleChangeEvent(t)||this.isSelectionRangeChangeEvent(t)}onMouseDown(t){UN(t.browserEvent.target)||pl()!==t.browserEvent.target&&this.list.domFocus()}onContextMenu(t){HN(t.browserEvent.target)||UN(t.browserEvent.target)||this.list.setFocus(void 0===t.index?[]:[t.index],t.browserEvent)}onViewPointer(t){if(!this.mouseSupport)return;if(HN(t.browserEvent.target)||UN(t.browserEvent.target))return;if(t.browserEvent.isHandledByList)return;t.browserEvent.isHandledByList=!0;const i=t.index;return void 0===i?(this.list.setFocus([],t.browserEvent),this.list.setSelection([],t.browserEvent),void this.list.setAnchor(void 0)):this.isSelectionChangeEvent(t)?this.changeSelection(t):(this.list.setFocus([i],t.browserEvent),this.list.setAnchor(i),Al(e=t.browserEvent)&&2===e.button||this.list.setSelection([i],t.browserEvent),void this._onPointer.fire(t));var e}onDoubleClick(t){if(HN(t.browserEvent.target)||UN(t.browserEvent.target))return;if(this.isSelectionChangeEvent(t))return;if(t.browserEvent.isHandledByList)return;t.browserEvent.isHandledByList=!0;const i=this.list.getFocus();this.list.setSelection(i,t.browserEvent)}changeSelection(t){const i=t.index;let e=this.list.getAnchor();if(this.isSelectionRangeChangeEvent(t)){if(void 0===e){const t=this.list.getFocus()[0];e=null!=t?t:i,this.list.setAnchor(e)}const s=x(Math.min(e,i),Math.max(e,i)+1),n=this.list.getSelection(),o=function(t,i){const e=t.indexOf(i);if(-1===e)return[];const s=[];let n=e-1;for(;n>=0&&t[n]===i-(e-n);)s.push(t[n--]);for(s.reverse(),n=e;n=t.length)e.push(i[n++]);else if(n>=i.length)e.push(t[s++]);else{if(t[s]===i[n]){s++,n++;continue}t[s]t!==i));this.list.setFocus([i]),this.list.setAnchor(i),this.list.setSelection(e.length===s.length?[...s,i]:s,t.browserEvent)}}dispose(){this.disposables.dispose()}}class iB{constructor(t,i){this.styleElement=t,this.selectorSuffix=i}style(t){var i,e;const s=this.selectorSuffix&&`.${this.selectorSuffix}`,n=[];t.listBackground&&n.push(`.monaco-list${s} .monaco-list-rows { background: ${t.listBackground}; }`),t.listFocusBackground&&(n.push(`.monaco-list${s}:focus .monaco-list-row.focused { background-color: ${t.listFocusBackground}; }`),n.push(`.monaco-list${s}:focus .monaco-list-row.focused:hover { background-color: ${t.listFocusBackground}; }`)),t.listFocusForeground&&n.push(`.monaco-list${s}:focus .monaco-list-row.focused { color: ${t.listFocusForeground}; }`),t.listActiveSelectionBackground&&(n.push(`.monaco-list${s}:focus .monaco-list-row.selected { background-color: ${t.listActiveSelectionBackground}; }`),n.push(`.monaco-list${s}:focus .monaco-list-row.selected:hover { background-color: ${t.listActiveSelectionBackground}; }`)),t.listActiveSelectionForeground&&n.push(`.monaco-list${s}:focus .monaco-list-row.selected { color: ${t.listActiveSelectionForeground}; }`),t.listActiveSelectionIconForeground&&n.push(`.monaco-list${s}:focus .monaco-list-row.selected .codicon { color: ${t.listActiveSelectionIconForeground}; }`),t.listFocusAndSelectionBackground&&n.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${s}:focus .monaco-list-row.selected.focused { background-color: ${t.listFocusAndSelectionBackground}; }\n\t\t\t`),t.listFocusAndSelectionForeground&&n.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${s}:focus .monaco-list-row.selected.focused { color: ${t.listFocusAndSelectionForeground}; }\n\t\t\t`),t.listInactiveFocusForeground&&(n.push(`.monaco-list${s} .monaco-list-row.focused { color: ${t.listInactiveFocusForeground}; }`),n.push(`.monaco-list${s} .monaco-list-row.focused:hover { color: ${t.listInactiveFocusForeground}; }`)),t.listInactiveSelectionIconForeground&&n.push(`.monaco-list${s} .monaco-list-row.focused .codicon { color: ${t.listInactiveSelectionIconForeground}; }`),t.listInactiveFocusBackground&&(n.push(`.monaco-list${s} .monaco-list-row.focused { background-color: ${t.listInactiveFocusBackground}; }`),n.push(`.monaco-list${s} .monaco-list-row.focused:hover { background-color: ${t.listInactiveFocusBackground}; }`)),t.listInactiveSelectionBackground&&(n.push(`.monaco-list${s} .monaco-list-row.selected { background-color: ${t.listInactiveSelectionBackground}; }`),n.push(`.monaco-list${s} .monaco-list-row.selected:hover { background-color: ${t.listInactiveSelectionBackground}; }`)),t.listInactiveSelectionForeground&&n.push(`.monaco-list${s} .monaco-list-row.selected { color: ${t.listInactiveSelectionForeground}; }`),t.listHoverBackground&&n.push(`.monaco-list${s}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${t.listHoverBackground}; }`),t.listHoverForeground&&n.push(`.monaco-list${s}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { color: ${t.listHoverForeground}; }`);const o=ql(t.listFocusAndSelectionOutline,ql(t.listSelectionOutline,null!==(i=t.listFocusOutline)&&void 0!==i?i:""));o&&n.push(`.monaco-list${s}:focus .monaco-list-row.focused.selected { outline: 1px solid ${o}; outline-offset: -1px;}`),t.listFocusOutline&&n.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${s}:focus .monaco-list-row.focused { outline: 1px solid ${t.listFocusOutline}; outline-offset: -1px; }\n\t\t\t\t.monaco-workbench.context-menu-visible .monaco-list${s}.last-focused .monaco-list-row.focused { outline: 1px solid ${t.listFocusOutline}; outline-offset: -1px; }\n\t\t\t`);const r=ql(t.listSelectionOutline,null!==(e=t.listInactiveFocusOutline)&&void 0!==e?e:"");r&&n.push(`.monaco-list${s} .monaco-list-row.focused.selected { outline: 1px dotted ${r}; outline-offset: -1px; }`),t.listSelectionOutline&&n.push(`.monaco-list${s} .monaco-list-row.selected { outline: 1px dotted ${t.listSelectionOutline}; outline-offset: -1px; }`),t.listInactiveFocusOutline&&n.push(`.monaco-list${s} .monaco-list-row.focused { outline: 1px dotted ${t.listInactiveFocusOutline}; outline-offset: -1px; }`),t.listHoverOutline&&n.push(`.monaco-list${s} .monaco-list-row:hover { outline: 1px dashed ${t.listHoverOutline}; outline-offset: -1px; }`),t.listDropBackground&&n.push(`\n\t\t\t\t.monaco-list${s}.drop-target,\n\t\t\t\t.monaco-list${s} .monaco-list-rows.drop-target,\n\t\t\t\t.monaco-list${s} .monaco-list-row.drop-target { background-color: ${t.listDropBackground} !important; color: inherit !important; }\n\t\t\t`),t.tableColumnsBorder&&n.push(`\n\t\t\t\t.monaco-table > .monaco-split-view2,\n\t\t\t\t.monaco-table > .monaco-split-view2 .monaco-sash.vertical::before,\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2,\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\t\t\tborder-color: ${t.tableColumnsBorder};\n\t\t\t\t}\n\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2,\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\t\t\tborder-color: transparent;\n\t\t\t\t}\n\t\t\t`),t.tableOddRowsBackgroundColor&&n.push(`\n\t\t\t\t.monaco-table .monaco-list-row[data-parity=odd]:not(.focused):not(.selected):not(:hover) .monaco-table-tr,\n\t\t\t\t.monaco-table .monaco-list:not(:focus) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr,\n\t\t\t\t.monaco-table .monaco-list:not(.focused) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr {\n\t\t\t\t\tbackground-color: ${t.tableOddRowsBackgroundColor};\n\t\t\t\t}\n\t\t\t`),this.styleElement.textContent=n.join("\n")}}const eB={listFocusBackground:"#7FB0D0",listActiveSelectionBackground:"#0E639C",listActiveSelectionForeground:"#FFFFFF",listActiveSelectionIconForeground:"#FFFFFF",listFocusAndSelectionOutline:"#90C2F9",listFocusAndSelectionBackground:"#094771",listFocusAndSelectionForeground:"#FFFFFF",listInactiveSelectionBackground:"#3F3F46",listInactiveSelectionIconForeground:"#FFFFFF",listHoverBackground:"#2A2D2E",listDropBackground:"#383B3D",treeIndentGuidesStroke:"#a9a9a9",treeInactiveIndentGuidesStroke:lg.fromHex("#a9a9a9").transparent(.4).toString(),tableColumnsBorder:lg.fromHex("#cccccc").transparent(.2).toString(),tableOddRowsBackgroundColor:lg.fromHex("#cccccc").transparent(.04).toString(),listBackground:void 0,listFocusForeground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusForeground:void 0,listInactiveFocusBackground:void 0,listHoverForeground:void 0,listFocusOutline:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listHoverOutline:void 0},sB={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI:()=>null,onDragStart(){},onDragOver:()=>!1,drop(){},dispose(){}}};function nB(t,i){const e=[];let s=0,n=0;for(;s=t.length)e.push(i[n++]);else if(n>=i.length)e.push(t[s++]);else{if(t[s]===i[n]){e.push(t[s]),s++,n++;continue}e.push(t[s]t-i;class rB{constructor(t,i){this._templateId=t,this.renderers=i}get templateId(){return this._templateId}renderTemplate(t){return this.renderers.map((i=>i.renderTemplate(t)))}renderElement(t,i,e,s){let n=0;for(const o of this.renderers)o.renderElement(t,i,e[n++],s)}disposeElement(t,i,e,s){var n;let o=0;for(const r of this.renderers)null===(n=r.disposeElement)||void 0===n||n.call(r,t,i,e[o],s),o+=1}disposeTemplate(t){let i=0;for(const e of this.renderers)e.disposeTemplate(t[i++])}}class hB{constructor(t){this.accessibilityProvider=t,this.templateId="a18n"}renderTemplate(t){return t}renderElement(t,i,e){const s=this.accessibilityProvider.getAriaLabel(t);s?e.setAttribute("aria-label",s):e.removeAttribute("aria-label");const n=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(t);"number"==typeof n?e.setAttribute("aria-level",`${n}`):e.removeAttribute("aria-level")}disposeTemplate(t){}}class cB{constructor(t,i){this.list=t,this.dnd=i}getDragElements(t){const i=this.list.getSelectedElements();return i.indexOf(t)>-1?i:[t]}getDragURI(t){return this.dnd.getDragURI(t)}getDragLabel(t,i){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(t,i)}onDragStart(t,i){var e,s;null===(s=(e=this.dnd).onDragStart)||void 0===s||s.call(e,t,i)}onDragOver(t,i,e,s){return this.dnd.onDragOver(t,i,e,s)}onDragLeave(t,i,e,s){var n,o;null===(o=(n=this.dnd).onDragLeave)||void 0===o||o.call(n,t,i,e,s)}onDragEnd(t){var i,e;null===(e=(i=this.dnd).onDragEnd)||void 0===e||e.call(i,t)}drop(t,i,e,s){this.dnd.drop(t,i,e,s)}dispose(){this.dnd.dispose()}}class aB{get onDidChangeFocus(){return he.map(this.eventBufferer.wrapEvent(this.focus.onChange),(t=>this.toListEvent(t)),this.disposables)}get onDidChangeSelection(){return he.map(this.eventBufferer.wrapEvent(this.selection.onChange),(t=>this.toListEvent(t)),this.disposables)}get domId(){return this.view.domId}get onDidScroll(){return this.view.onDidScroll}get onMouseClick(){return this.view.onMouseClick}get onMouseDblClick(){return this.view.onMouseDblClick}get onMouseMiddleClick(){return this.view.onMouseMiddleClick}get onPointer(){return this.mouseController.onPointer}get onMouseDown(){return this.view.onMouseDown}get onMouseOver(){return this.view.onMouseOver}get onMouseOut(){return this.view.onMouseOut}get onTouchStart(){return this.view.onTouchStart}get onTap(){return this.view.onTap}get onContextMenu(){let t=!1;const i=he.chain(this.disposables.add(new Bk(this.view.domNode,"keydown")).event,(i=>i.map((t=>new Qh(t))).filter((i=>t=58===i.keyCode||i.shiftKey&&68===i.keyCode)).map((t=>Fl(t,!0))).filter((()=>!1)))),e=he.chain(this.disposables.add(new Bk(this.view.domNode,"keyup")).event,(i=>i.forEach((()=>t=!1)).map((t=>new Qh(t))).filter((t=>58===t.keyCode||t.shiftKey&&68===t.keyCode)).map((t=>Fl(t,!0))).map((({browserEvent:t})=>{const i=this.getFocus(),e=i.length?i[0]:void 0;return{index:e,element:void 0!==e?this.view.element(e):void 0,anchor:void 0!==e?this.view.domElement(e):this.view.domNode,browserEvent:t}})))),s=he.chain(this.view.onContextMenu,(i=>i.filter((()=>!t)).map((({element:t,index:i,browserEvent:e})=>({element:t,index:i,anchor:new tc(Na(this.view.domNode),e),browserEvent:e})))));return he.any(i,e,s)}get onKeyDown(){return this.disposables.add(new Bk(this.view.domNode,"keydown")).event}get onDidFocus(){return he.signal(this.disposables.add(new Bk(this.view.domNode,"focus",!0)).event)}constructor(t,i,e,s,n=sB){var o,r,h,c;this.user=t,this._options=n,this.focus=new WN("focused"),this.anchor=new WN("anchor"),this.eventBufferer=new ve,this._ariaLabel="",this.disposables=new Xi,this._onDidDispose=new de,this.onDidDispose=this._onDidDispose.event;const a=this._options.accessibilityProvider&&this._options.accessibilityProvider.getWidgetRole?null===(o=this._options.accessibilityProvider)||void 0===o?void 0:o.getWidgetRole():"list";this.selection=new jN("listbox"!==a);const l=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=n.accessibilityProvider,this.accessibilityProvider&&(l.push(new hB(this.accessibilityProvider)),null===(h=(r=this.accessibilityProvider).onDidChangeActiveDescendant)||void 0===h||h.call(r,this.onDidChangeActiveDescendant,this,this.disposables)),s=s.map((t=>new rB(t.templateId,[...l,t])));const u={...n,dnd:n.dnd&&new cB(this,n.dnd)};if(this.view=this.createListView(i,e,s,u),this.view.domNode.setAttribute("role",a),n.styleController)this.styleController=n.styleController(this.view.domId);else{const t=vl(this.view.domNode);this.styleController=new iB(t,this.view.domId)}this.spliceable=new xN([new zN(this.focus,this.view,n.identityProvider),new zN(this.selection,this.view,n.identityProvider),new zN(this.anchor,this.view,n.identityProvider),this.view]),this.disposables.add(this.focus),this.disposables.add(this.selection),this.disposables.add(this.anchor),this.disposables.add(this.view),this.disposables.add(this._onDidDispose),this.disposables.add(new QN(this,this.view)),("boolean"!=typeof n.keyboardSupport||n.keyboardSupport)&&(this.keyboardController=new KN(this,this.view,n),this.disposables.add(this.keyboardController)),n.keyboardNavigationLabelProvider&&(this.typeNavigationController=new ZN(this,this.view,n.keyboardNavigationLabelProvider,null!==(c=n.keyboardNavigationEventFilter)&&void 0!==c?c:()=>!0,n.keyboardNavigationDelegate||GN),this.disposables.add(this.typeNavigationController)),this.mouseController=this.createMouseController(n),this.disposables.add(this.mouseController),this.onDidChangeFocus(this._onFocusChange,this,this.disposables),this.onDidChangeSelection(this._onSelectionChange,this,this.disposables),this.accessibilityProvider&&(this.ariaLabel=this.accessibilityProvider.getWidgetAriaLabel()),!1!==this._options.multipleSelectionSupport&&this.view.domNode.setAttribute("aria-multiselectable","true")}createListView(t,i,e,s){return new _N(t,i,e,s)}createMouseController(t){return new tB(this)}updateOptions(t={}){var i,e;this._options={...this._options,...t},null===(i=this.typeNavigationController)||void 0===i||i.updateOptions(this._options),void 0!==this._options.multipleSelectionController&&(this._options.multipleSelectionSupport?this.view.domNode.setAttribute("aria-multiselectable","true"):this.view.domNode.removeAttribute("aria-multiselectable")),this.mouseController.updateOptions(t),null===(e=this.keyboardController)||void 0===e||e.updateOptions(t),this.view.updateOptions(t)}get options(){return this._options}splice(t,i,e=[]){if(t<0||t>this.view.length)throw new CN(this.user,`Invalid start index: ${t}`);if(i<0)throw new CN(this.user,`Invalid delete count: ${i}`);0===i&&0===e.length||this.eventBufferer.bufferEvents((()=>this.spliceable.splice(t,i,e)))}rerender(){this.view.rerender()}element(t){return this.view.element(t)}indexOf(t){return this.view.indexOf(t)}get length(){return this.view.length}get contentHeight(){return this.view.contentHeight}get onDidChangeContentHeight(){return this.view.onDidChangeContentHeight}get scrollTop(){return this.view.getScrollTop()}set scrollTop(t){this.view.setScrollTop(t)}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get firstVisibleIndex(){return this.view.firstVisibleIndex}get ariaLabel(){return this._ariaLabel}set ariaLabel(t){this._ariaLabel=t,this.view.domNode.setAttribute("aria-label",t)}domFocus(){this.view.domNode.focus({preventScroll:!0})}layout(t,i){this.view.layout(t,i)}setSelection(t,i){for(const i of t)if(i<0||i>=this.length)throw new CN(this.user,`Invalid index ${i}`);this.selection.set(t,i)}getSelection(){return this.selection.get()}getSelectedElements(){return this.getSelection().map((t=>this.view.element(t)))}setAnchor(t){if(void 0!==t){if(t<0||t>=this.length)throw new CN(this.user,`Invalid index ${t}`);this.anchor.set([t])}else this.anchor.set([])}getAnchor(){return k(this.anchor.get(),void 0)}getAnchorElement(){const t=this.getAnchor();return void 0===t?void 0:this.element(t)}setFocus(t,i){for(const i of t)if(i<0||i>=this.length)throw new CN(this.user,`Invalid index ${i}`);this.focus.set(t,i)}focusNext(t=1,i=!1,e,s){if(0===this.length)return;const n=this.focus.get(),o=this.findNextIndex(n.length>0?n[0]+t:0,i,s);o>-1&&this.setFocus([o],e)}focusPrevious(t=1,i=!1,e,s){if(0===this.length)return;const n=this.focus.get(),o=this.findPreviousIndex(n.length>0?n[0]-t:0,i,s);o>-1&&this.setFocus([o],e)}async focusNextPage(t,i){let e=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);e=0===e?0:e-1;const s=this.getFocus()[0];if(s!==e&&(void 0===s||e>s)){const n=this.findPreviousIndex(e,!1,i);this.setFocus(n>-1&&s!==n?[n]:[e],t)}else{const n=this.view.getScrollTop();let o=n+this.view.renderHeight;e>s&&(o-=this.view.elementHeight(e)),this.view.setScrollTop(o),this.view.getScrollTop()!==n&&(this.setFocus([]),await ac(0),await this.focusNextPage(t,i))}}async focusPreviousPage(t,i){let e;const s=this.view.getScrollTop();e=0===s?this.view.indexAt(s):this.view.indexAfter(s-1);const n=this.getFocus()[0];if(n!==e&&(void 0===n||n>=e)){const s=this.findNextIndex(e,!1,i);this.setFocus(s>-1&&n!==s?[s]:[e],t)}else{const e=s;this.view.setScrollTop(s-this.view.renderHeight),this.view.getScrollTop()!==e&&(this.setFocus([]),await ac(0),await this.focusPreviousPage(t,i))}}focusLast(t,i){if(0===this.length)return;const e=this.findPreviousIndex(this.length-1,!1,i);e>-1&&this.setFocus([e],t)}focusFirst(t,i){this.focusNth(0,t,i)}focusNth(t,i,e){if(0===this.length)return;const s=this.findNextIndex(t,!1,e);s>-1&&this.setFocus([s],i)}findNextIndex(t,i=!1,e){for(let s=0;s=this.length&&!i)return-1;if(t%=this.length,!e||e(this.element(t)))return t;t++}return-1}findPreviousIndex(t,i=!1,e){for(let s=0;sthis.view.element(t)))}reveal(t,i,e=0){if(t<0||t>=this.length)throw new CN(this.user,`Invalid index ${t}`);const s=this.view.getScrollTop(),n=this.view.elementTop(t),o=this.view.elementHeight(t);if(W(i))this.view.setScrollTop((o-this.view.renderHeight+e)*lR(i,0,1)+n-e);else{const t=n+o,i=s+this.view.renderHeight;n=i||(n=i&&o>=this.view.renderHeight?this.view.setScrollTop(n-e):t>=i&&this.view.setScrollTop(t-this.view.renderHeight))}}getRelativeTop(t,i=0){if(t<0||t>=this.length)throw new CN(this.user,`Invalid index ${t}`);const e=this.view.getScrollTop(),s=this.view.elementTop(t),n=this.view.elementHeight(t);return se+this.view.renderHeight?null:Math.abs((e+i-s)/(n-this.view.renderHeight+i))}getHTMLElement(){return this.view.domNode}getScrollableElement(){return this.view.scrollableElementDomNode}getElementID(t){return this.view.getElementDomId(t)}getElementTop(t){return this.view.elementTop(t)}style(t){this.styleController.style(t)}toListEvent({indexes:t,browserEvent:i}){return{indexes:t,elements:t.map((t=>this.view.element(t))),browserEvent:i}}_onFocusChange(){const t=this.focus.get();this.view.domNode.classList.toggle("element-focused",t.length>0),this.onDidChangeActiveDescendant()}onDidChangeActiveDescendant(){var t;const i=this.focus.get();if(i.length>0){let e;(null===(t=this.accessibilityProvider)||void 0===t?void 0:t.getActiveDescendantId)&&(e=this.accessibilityProvider.getActiveDescendantId(this.view.element(i[0]))),this.view.domNode.setAttribute("aria-activedescendant",e||this.view.getElementDomId(i[0]))}else this.view.domNode.removeAttribute("aria-activedescendant")}_onSelectionChange(){const t=this.selection.get();this.view.domNode.classList.toggle("selection-none",0===t.length),this.view.domNode.classList.toggle("selection-single",1===t.length),this.view.domNode.classList.toggle("selection-multiple",t.length>1)}dispose(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidDispose.dispose()}}PN([nw],aB.prototype,"onDidChangeFocus",null),PN([nw],aB.prototype,"onDidChangeSelection",null),PN([nw],aB.prototype,"onContextMenu",null),PN([nw],aB.prototype,"onKeyDown",null),PN([nw],aB.prototype,"onDidFocus",null);const lB=$l,uB="selectOption.entry.template";class dB{get templateId(){return uB}renderTemplate(t){const i=Object.create(null);return i.root=t,i.text=Ol(t,lB(".option-text")),i.detail=Ol(t,lB(".option-detail")),i.decoratorRight=Ol(t,lB(".option-decorator-right")),i}renderElement(t,i,e){const s=e,n=t.detail,o=t.decoratorRight,r=t.isDisabled;s.text.textContent=t.text,s.detail.textContent=n||"",s.decoratorRight.innerText=o||"",r?s.root.classList.add("option-disabled"):s.root.classList.remove("option-disabled")}disposeTemplate(t){}}class fB extends te{constructor(t,i,e,s,n){super(),this.options=[],this._currentSelection=0,this._hasDetails=!1,this._skipLayout=!1,this._sticky=!1,this._isVisible=!1,this.styles=s,this.selectBoxOptions=n||Object.create(null),"number"!=typeof this.selectBoxOptions.minBottomMargin?this.selectBoxOptions.minBottomMargin=fB.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN:this.selectBoxOptions.minBottomMargin<0&&(this.selectBoxOptions.minBottomMargin=0),this.selectElement=document.createElement("select"),this.selectElement.className="monaco-select-box monaco-select-box-dropdown-padding","string"==typeof this.selectBoxOptions.ariaLabel&&this.selectElement.setAttribute("aria-label",this.selectBoxOptions.ariaLabel),"string"==typeof this.selectBoxOptions.ariaDescription&&this.selectElement.setAttribute("aria-description",this.selectBoxOptions.ariaDescription),this._onDidSelect=new de,this._register(this._onDidSelect),this.registerListeners(),this.constructSelectDropDown(e),this.selected=i||0,t&&this.setOptions(t,i),this.initStyleSheet()}getHeight(){return 22}getTemplateId(){return uB}constructSelectDropDown(t){this.contextViewProvider=t,this.selectDropDownContainer=$l(".monaco-select-box-dropdown-container"),this.selectDropDownContainer.classList.add("monaco-select-box-dropdown-padding"),this.selectionDetailsPane=Ol(this.selectDropDownContainer,lB(".select-box-details-pane"));const i=Ol(this.selectDropDownContainer,lB(".select-box-dropdown-container-width-control")),e=Ol(i,lB(".width-control-div"));this.widthControlElement=document.createElement("span"),this.widthControlElement.className="option-text-width-control",Ol(e,this.widthControlElement),this._dropDownPosition=0,this.styleElement=vl(this.selectDropDownContainer),this.selectDropDownContainer.setAttribute("draggable","true"),this._register(Va(this.selectDropDownContainer,Ll.DRAG_START,(t=>{Fl(t,!0)})))}registerListeners(){let t;this._register(qa(this.selectElement,"change",(t=>{this.selected=t.target.selectedIndex,this._onDidSelect.fire({index:t.target.selectedIndex,selected:t.target.value}),this.options[this.selected]&&this.options[this.selected].text&&(this.selectElement.title=this.options[this.selected].text)}))),this._register(Va(this.selectElement,Ll.CLICK,(t=>{Fl(t),this._isVisible?this.hideSelectDropDown(!0):this.showSelectDropDown()}))),this._register(Va(this.selectElement,Ll.MOUSE_DOWN,(t=>{Fl(t)}))),this._register(Va(this.selectElement,"touchstart",(()=>{t=this._isVisible}))),this._register(Va(this.selectElement,"touchend",(i=>{Fl(i),t?this.hideSelectDropDown(!0):this.showSelectDropDown()}))),this._register(Va(this.selectElement,Ll.KEY_DOWN,(t=>{const i=new Qh(t);let e=!1;Ct?18!==i.keyCode&&16!==i.keyCode&&10!==i.keyCode&&3!==i.keyCode||(e=!0):(18===i.keyCode&&i.altKey||16===i.keyCode&&i.altKey||10===i.keyCode||3===i.keyCode)&&(e=!0),e&&(this.showSelectDropDown(),Fl(t,!0))})))}get onDidSelect(){return this._onDidSelect.event}setOptions(t,i){l(this.options,t)||(this.options=t,this.selectElement.options.length=0,this._hasDetails=!1,this._cachedMaxDetailsHeight=void 0,this.options.forEach(((t,i)=>{this.selectElement.add(this.createOption(t.text,i,t.isDisabled)),"string"==typeof t.description&&(this._hasDetails=!0)}))),void 0!==i&&(this.select(i),this._currentSelection=this.selected)}setOptionsList(){var t;null===(t=this.selectList)||void 0===t||t.splice(0,this.selectList.length,this.options)}select(t){t>=0&&tthis.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.options[this.selected]&&this.options[this.selected].text&&(this.selectElement.title=this.options[this.selected].text)}focus(){this.selectElement&&(this.selectElement.tabIndex=0,this.selectElement.focus())}blur(){this.selectElement&&(this.selectElement.tabIndex=-1,this.selectElement.blur())}setFocusable(t){this.selectElement.tabIndex=t?0:-1}render(t){this.container=t,t.classList.add("select-container"),t.appendChild(this.selectElement),this.styleSelectElement()}initStyleSheet(){const t=[];this.styles.listFocusBackground&&t.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { background-color: ${this.styles.listFocusBackground} !important; }`),this.styles.listFocusForeground&&t.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { color: ${this.styles.listFocusForeground} !important; }`),this.styles.decoratorRightForeground&&t.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.focused) .option-decorator-right { color: ${this.styles.decoratorRightForeground}; }`),this.styles.selectBackground&&this.styles.selectBorder&&this.styles.selectBorder!==this.styles.selectBackground?(t.push(`.monaco-select-box-dropdown-container { border: 1px solid ${this.styles.selectBorder} } `),t.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectBorder} } `),t.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectBorder} } `)):this.styles.selectListBorder&&(t.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectListBorder} } `),t.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectListBorder} } `)),this.styles.listHoverForeground&&t.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { color: ${this.styles.listHoverForeground} !important; }`),this.styles.listHoverBackground&&t.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { background-color: ${this.styles.listHoverBackground} !important; }`),this.styles.listFocusOutline&&t.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { outline: 1.6px dotted ${this.styles.listFocusOutline} !important; outline-offset: -1.6px !important; }`),this.styles.listHoverOutline&&t.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { outline: 1.6px dashed ${this.styles.listHoverOutline} !important; outline-offset: -1.6px !important; }`),t.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled.focused { background-color: transparent !important; color: inherit !important; outline: none !important; }"),t.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled:hover { background-color: transparent !important; color: inherit !important; outline: none !important; }"),this.styleElement.textContent=t.join("\n")}styleSelectElement(){var t,i,e;const s=null!==(t=this.styles.selectBackground)&&void 0!==t?t:"",n=null!==(i=this.styles.selectForeground)&&void 0!==i?i:"",o=null!==(e=this.styles.selectBorder)&&void 0!==e?e:"";this.selectElement.style.backgroundColor=s,this.selectElement.style.color=n,this.selectElement.style.borderColor=o}styleList(){var t,i;const e=null!==(t=this.styles.selectBackground)&&void 0!==t?t:"",s=ql(this.styles.selectListBackground,e);this.selectDropDownListContainer.style.backgroundColor=s,this.selectionDetailsPane.style.backgroundColor=s;const n=null!==(i=this.styles.focusBorder)&&void 0!==i?i:"";this.selectDropDownContainer.style.outlineColor=n,this.selectDropDownContainer.style.outlineOffset="-1px",this.selectList.style(this.styles)}createOption(t,i,e){const s=document.createElement("option");return s.value=t,s.text=t,s.disabled=!!e,s}showSelectDropDown(){this.selectionDetailsPane.innerText="",this.contextViewProvider&&!this._isVisible&&(this.createSelectList(this.selectDropDownContainer),this.setOptionsList(),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:t=>this.renderSelectDropDown(t,!0),layout:()=>{this.layoutSelectDropDown()},onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._isVisible=!0,this.hideSelectDropDown(!1),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:t=>this.renderSelectDropDown(t),layout:()=>this.layoutSelectDropDown(),onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._currentSelection=this.selected,this._isVisible=!0,this.selectElement.setAttribute("aria-expanded","true"))}hideSelectDropDown(t){this.contextViewProvider&&this._isVisible&&(this._isVisible=!1,this.selectElement.setAttribute("aria-expanded","false"),t&&this.selectElement.focus(),this.contextViewProvider.hideContextView())}renderSelectDropDown(t,i){return t.appendChild(this.selectDropDownContainer),this.layoutSelectDropDown(i),{dispose:()=>{try{t.removeChild(this.selectDropDownContainer)}catch(t){}}}}measureMaxDetailsHeight(){let t=0;return this.options.forEach(((i,e)=>{this.updateDetail(e),this.selectionDetailsPane.offsetHeight>t&&(t=this.selectionDetailsPane.offsetHeight)})),t}layoutSelectDropDown(t){if(this._skipLayout)return!1;if(this.selectList){this.selectDropDownContainer.classList.add("visible");const i=Na(this.selectElement),e=nl(this.selectElement),s=Na(this.selectElement).getComputedStyle(this.selectElement),n=parseFloat(s.getPropertyValue("--dropdown-padding-top"))+parseFloat(s.getPropertyValue("--dropdown-padding-bottom")),o=i.innerHeight-e.top-e.height-(this.selectBoxOptions.minBottomMargin||0),r=e.top-fB.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN,h=this.selectElement.offsetWidth,c=this.setWidthControlElement(this.widthControlElement),a=Math.max(c,Math.round(h)).toString()+"px";this.selectDropDownContainer.style.width=a,this.selectList.getHTMLElement().style.height="",this.selectList.layout();let l=this.selectList.contentHeight;this._hasDetails&&void 0===this._cachedMaxDetailsHeight&&(this._cachedMaxDetailsHeight=this.measureMaxDetailsHeight());const u=this._hasDetails?this._cachedMaxDetailsHeight:0,d=l+n+u,f=Math.floor((o-n-u)/this.getHeight()),p=Math.floor((r-n-u)/this.getHeight());if(t)return!(e.top+e.height>i.innerHeight-22||e.topf&&this.options.length>f?(this._dropDownPosition=1,this.selectDropDownContainer.removeChild(this.selectDropDownListContainer),this.selectDropDownContainer.removeChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectionDetailsPane.classList.remove("border-top"),this.selectionDetailsPane.classList.add("border-bottom")):(this._dropDownPosition=0,this.selectDropDownContainer.removeChild(this.selectDropDownListContainer),this.selectDropDownContainer.removeChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectionDetailsPane.classList.remove("border-bottom"),this.selectionDetailsPane.classList.add("border-top")),0));if(e.top+e.height>i.innerHeight-22||e.topo&&(l=f*this.getHeight())}else d>r&&(l=p*this.getHeight());return this.selectList.layout(l),this.selectList.domFocus(),this.selectList.length>0&&(this.selectList.setFocus([this.selected||0]),this.selectList.reveal(this.selectList.getFocus()[0]||0)),this._hasDetails?(this.selectList.getHTMLElement().style.height=l+n+"px",this.selectDropDownContainer.style.height=""):this.selectDropDownContainer.style.height=l+n+"px",this.updateDetail(this.selected),this.selectDropDownContainer.style.width=a,this.selectDropDownListContainer.setAttribute("tabindex","0"),this.selectElement.classList.add("synthetic-focus"),this.selectDropDownContainer.classList.add("synthetic-focus"),!0}return!1}setWidthControlElement(t){let i=0;if(t){let e=0,s=0;this.options.forEach(((t,i)=>{const n=t.text.length+(t.detail?t.detail.length:0)+(t.decoratorRight?t.decoratorRight.length:0);n>s&&(e=i,s=n)})),t.textContent=this.options[e].text+(this.options[e].decoratorRight?this.options[e].decoratorRight+" ":""),i=ol(t)}return i}createSelectList(t){if(this.selectList)return;this.selectDropDownListContainer=Ol(t,lB(".select-box-dropdown-list-container")),this.listRenderer=new dB,this.selectList=new aB("SelectBoxCustom",this.selectDropDownListContainer,this,[this.listRenderer],{useShadows:!1,verticalScrollMode:3,keyboardSupport:!1,mouseSupport:!1,accessibilityProvider:{getAriaLabel:t=>{let i=t.text;return t.detail&&(i+=`. ${t.detail}`),t.decoratorRight&&(i+=`. ${t.decoratorRight}`),t.description&&(i+=`. ${t.description}`),i},getWidgetAriaLabel:()=>ot(0,"Select Box"),getRole:()=>Ct?"":"option",getWidgetRole:()=>"listbox"}}),this.selectBoxOptions.ariaLabel&&(this.selectList.ariaLabel=this.selectBoxOptions.ariaLabel);const i=this._register(new Bk(this.selectDropDownListContainer,"keydown")),e=he.chain(i.event,(t=>t.filter((()=>this.selectList.length>0)).map((t=>new Qh(t)))));this._register(he.chain(e,(t=>t.filter((t=>3===t.keyCode))))(this.onEnter,this)),this._register(he.chain(e,(t=>t.filter((t=>2===t.keyCode))))(this.onEnter,this)),this._register(he.chain(e,(t=>t.filter((t=>9===t.keyCode))))(this.onEscape,this)),this._register(he.chain(e,(t=>t.filter((t=>16===t.keyCode))))(this.onUpArrow,this)),this._register(he.chain(e,(t=>t.filter((t=>18===t.keyCode))))(this.onDownArrow,this)),this._register(he.chain(e,(t=>t.filter((t=>12===t.keyCode))))(this.onPageDown,this)),this._register(he.chain(e,(t=>t.filter((t=>11===t.keyCode))))(this.onPageUp,this)),this._register(he.chain(e,(t=>t.filter((t=>14===t.keyCode))))(this.onHome,this)),this._register(he.chain(e,(t=>t.filter((t=>13===t.keyCode))))(this.onEnd,this)),this._register(he.chain(e,(t=>t.filter((t=>t.keyCode>=21&&t.keyCode<=56||t.keyCode>=85&&t.keyCode<=113))))(this.onCharacter,this)),this._register(Va(this.selectList.getHTMLElement(),Ll.POINTER_UP,(t=>this.onPointerUp(t)))),this._register(this.selectList.onMouseOver((t=>void 0!==t.index&&this.selectList.setFocus([t.index])))),this._register(this.selectList.onDidChangeFocus((t=>this.onListFocus(t)))),this._register(Va(this.selectDropDownContainer,Ll.FOCUS_OUT,(t=>{this._isVisible&&!al(t.relatedTarget,this.selectDropDownContainer)&&this.onListBlur()}))),this.selectList.getHTMLElement().setAttribute("aria-label",this.selectBoxOptions.ariaLabel||""),this.selectList.getHTMLElement().setAttribute("aria-expanded","true"),this.styleList()}onPointerUp(t){if(!this.selectList.length)return;Fl(t);const i=t.target;if(!i)return;if(i.classList.contains("slider"))return;const e=i.closest(".monaco-list-row");if(!e)return;const s=Number(e.getAttribute("data-index")),n=e.classList.contains("option-disabled");s>=0&&s{for(let i=0;ithis.selected+2)this.selected+=2;else{if(i)return;this.selected++}this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0])}}onUpArrow(t){this.selected>0&&(Fl(t,!0),this.options[this.selected-1].isDisabled&&this.selected>1?this.selected-=2:this.selected--,this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0]))}onPageUp(t){Fl(t),this.selectList.focusPreviousPage(),setTimeout((()=>{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected>0&&(this.selected--,this.selectList.setFocus([this.selected])),this.selectList.reveal(this.selected),this.select(this.selected)}),1)}onHome(t){Fl(t),this.options.length<2||(this.selected=0,this.options[this.selected].isDisabled&&this.selected>1&&this.selected++,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onEnd(t){Fl(t),this.options.length<2||(this.selected=this.options.length-1,this.options[this.selected].isDisabled&&this.selected>1&&this.selected--,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onCharacter(t){const i=_e.toString(t.keyCode);let e=-1;for(let s=0;s{this._register(Va(this.selectElement,t,(()=>{this.selectElement.focus()})))})),this._register(qa(this.selectElement,"click",(t=>{Fl(t,!0)}))),this._register(qa(this.selectElement,"change",(t=>{this.selectElement.title=t.target.value,this._onDidSelect.fire({index:t.target.selectedIndex,selected:t.target.value})}))),this._register(qa(this.selectElement,"keydown",(t=>{let i=!1;Ct?18!==t.keyCode&&16!==t.keyCode&&10!==t.keyCode||(i=!0):(18===t.keyCode&&t.altKey||10===t.keyCode||3===t.keyCode)&&(i=!0),i&&t.stopPropagation()})))}get onDidSelect(){return this._onDidSelect.event}setOptions(t,i){this.options&&l(this.options,t)||(this.options=t,this.selectElement.options.length=0,this.options.forEach(((t,i)=>{this.selectElement.add(this.createOption(t.text,i,t.isDisabled))}))),void 0!==i&&this.select(i)}select(t){0===this.options.length?this.selected=0:t>=0&&tthis.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.selectElement.title=this.selected{this.element&&this.handleActionChangeEvent(t)})))}handleActionChangeEvent(t){void 0!==t.enabled&&this.updateEnabled(),void 0!==t.checked&&this.updateChecked(),void 0!==t.class&&this.updateClass(),void 0!==t.label&&(this.updateLabel(),this.updateTooltip()),void 0!==t.tooltip&&this.updateTooltip()}get actionRunner(){return this._actionRunner||(this._actionRunner=this._register(new wr)),this._actionRunner}set actionRunner(t){this._actionRunner=t}isEnabled(){return this._action.enabled}setActionContext(t){this._context=t}render(t){const i=this.element=t;this._register(rw.addTarget(t));const e=this.options&&this.options.draggable;e&&(t.draggable=!0,Uo&&this._register(Va(t,Ll.DRAG_START,(t=>{var i;return null===(i=t.dataTransfer)||void 0===i?void 0:i.setData(MI.TEXT,this._action.label)})))),this._register(Va(i,ow.Tap,(t=>this.onClick(t,!0)))),this._register(Va(i,Ll.MOUSE_DOWN,(t=>{e||Fl(t,!0),this._action.enabled&&0===t.button&&i.classList.add("active")}))),Ct&&this._register(Va(i,Ll.CONTEXT_MENU,(t=>{0===t.button&&!0===t.ctrlKey&&this.onClick(t)}))),this._register(Va(i,Ll.CLICK,(t=>{Fl(t,!0),this.options&&this.options.isMenu||this.onClick(t)}))),this._register(Va(i,Ll.DBLCLICK,(t=>{Fl(t,!0)}))),[Ll.MOUSE_UP,Ll.MOUSE_OUT].forEach((t=>{this._register(Va(i,t,(t=>{Fl(t),i.classList.remove("active")})))}))}onClick(t,i=!1){var e;Fl(t,!0);const s=U(this._context)?(null===(e=this.options)||void 0===e?void 0:e.useEventAsContext)?t:{preserveFocus:i}:this._context;this.actionRunner.run(this._action,s)}focus(){this.element&&(this.element.tabIndex=0,this.element.focus(),this.element.classList.add("focused"))}blur(){this.element&&(this.element.blur(),this.element.tabIndex=-1,this.element.classList.remove("focused"))}setFocusable(t){this.element&&(this.element.tabIndex=t?0:-1)}get trapsArrowNavigation(){return!1}updateEnabled(){}updateLabel(){}getClass(){return this.action.class}getTooltip(){return this.action.tooltip}updateTooltip(){var t;if(!this.element)return;const i=null!==(t=this.getTooltip())&&void 0!==t?t:"";this.updateAriaLabel(),this.options.hoverDelegate?(this.element.title="",this.customHover?this.customHover.update(i):(this.customHover=z_(this.options.hoverDelegate,this.element,i),this._store.add(this.customHover))):this.element.title=i}updateAriaLabel(){var t;if(this.element){const i=null!==(t=this.getTooltip())&&void 0!==t?t:"";this.element.setAttribute("aria-label",i)}}updateClass(){}updateChecked(){}dispose(){this.element&&(this.element.remove(),this.element=void 0),this._context=void 0,super.dispose()}}class wB extends mB{constructor(t,i,e){super(t,i,e),this.options=e,this.options.icon=void 0!==e.icon&&e.icon,this.options.label=void 0===e.label||e.label,this.cssClass=""}render(t){super.render(t),q(this.element);const i=document.createElement("a");if(i.classList.add("action-label"),i.setAttribute("role",this.getDefaultAriaRole()),this.label=i,this.element.appendChild(i),this.options.label&&this.options.keybinding){const t=document.createElement("span");t.classList.add("keybinding"),t.textContent=this.options.keybinding,this.element.appendChild(t)}this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()}getDefaultAriaRole(){return this._action.id===vr.ID?"presentation":this.options.isMenu?"menuitem":"button"}focus(){this.label&&(this.label.tabIndex=0,this.label.focus())}blur(){this.label&&(this.label.tabIndex=-1)}setFocusable(t){this.label&&(this.label.tabIndex=t?0:-1)}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this.action.label)}getTooltip(){let t=null;return this.action.tooltip?t=this.action.tooltip:!this.options.label&&this.action.label&&this.options.icon&&(t=this.action.label,this.options.keybinding&&(t=ot(0,"{0} ({1})",t,this.options.keybinding))),null!=t?t:void 0}updateClass(){var t;this.cssClass&&this.label&&this.label.classList.remove(...this.cssClass.split(" ")),this.options.icon?(this.cssClass=this.getClass(),this.label&&(this.label.classList.add("codicon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" "))),this.updateEnabled()):null===(t=this.label)||void 0===t||t.classList.remove("codicon")}updateEnabled(){var t,i;this.action.enabled?(this.label&&(this.label.removeAttribute("aria-disabled"),this.label.classList.remove("disabled")),null===(t=this.element)||void 0===t||t.classList.remove("disabled")):(this.label&&(this.label.setAttribute("aria-disabled","true"),this.label.classList.add("disabled")),null===(i=this.element)||void 0===i||i.classList.add("disabled"))}updateAriaLabel(){var t;if(this.label){const i=null!==(t=this.getTooltip())&&void 0!==t?t:"";this.label.setAttribute("aria-label",i)}}updateChecked(){this.label&&(void 0!==this.action.checked?(this.label.classList.toggle("checked",this.action.checked),this.label.setAttribute("aria-checked",this.action.checked?"true":"false"),this.label.setAttribute("role","checkbox")):(this.label.classList.remove("checked"),this.label.removeAttribute("aria-checked"),this.label.setAttribute("role",this.getDefaultAriaRole())))}}class vB extends mB{constructor(t,i,e,s,n,o,r){super(t,i),this.selectBox=new gB(e,s,n,o,r),this.selectBox.setFocusable(!1),this._register(this.selectBox),this.registerListeners()}select(t){this.selectBox.select(t)}registerListeners(){this._register(this.selectBox.onDidSelect((t=>this.runAction(t.selected,t.index))))}runAction(t,i){this.actionRunner.run(this._action,this.getActionContext(t,i))}getActionContext(t,i){return t}setFocusable(t){this.selectBox.setFocusable(t)}focus(){var t;null===(t=this.selectBox)||void 0===t||t.focus()}blur(){var t;null===(t=this.selectBox)||void 0===t||t.blur()}render(t){this.selectBox.render(t)}}class bB extends wr{constructor(t,i){super(),this._onDidChangeVisibility=this._register(new de),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this._element=Ol(t,$l(".monaco-dropdown")),this._label=Ol(this._element,$l(".dropdown-label"));let e=i.labelRenderer;e||(e=t=>(t.textContent=i.label||"",null));for(const t of[Ll.CLICK,Ll.MOUSE_DOWN,ow.Tap])this._register(Va(this.element,t,(t=>Fl(t,!0))));for(const t of[Ll.MOUSE_DOWN,ow.Tap])this._register(Va(this._label,t,(t=>{Al(t)&&(t.detail>1||0!==t.button)||(this.visible?this.hide():this.show())})));this._register(Va(this._label,Ll.KEY_UP,(t=>{const i=new Qh(t);(i.equals(3)||i.equals(10))&&(Fl(t,!0),this.visible?this.hide():this.show())})));const s=e(this._label);s&&this._register(s),this._register(rw.addTarget(this._label))}get element(){return this._element}show(){this.visible||(this.visible=!0,this._onDidChangeVisibility.fire(!0))}hide(){this.visible&&(this.visible=!1,this._onDidChangeVisibility.fire(!1))}dispose(){super.dispose(),this.hide(),this.boxContainer&&(this.boxContainer.remove(),this.boxContainer=void 0),this.contents&&(this.contents.remove(),this.contents=void 0),this._label&&(this._label.remove(),this._label=void 0)}}class yB extends bB{constructor(t,i){super(t,i),this._options=i,this._actions=[],this.actions=i.actions||[]}set menuOptions(t){this._menuOptions=t}get menuOptions(){return this._menuOptions}get actions(){return this._options.actionProvider?this._options.actionProvider.getActions():this._actions}set actions(t){this._actions=t}show(){super.show(),this.element.classList.add("active"),this._options.contextMenuProvider.showContextMenu({getAnchor:()=>this.element,getActions:()=>this.actions,getActionsContext:()=>this.menuOptions?this.menuOptions.context:null,getActionViewItem:(t,i)=>this.menuOptions&&this.menuOptions.actionViewItemProvider?this.menuOptions.actionViewItemProvider(t,i):void 0,getKeyBinding:t=>this.menuOptions&&this.menuOptions.getKeyBinding?this.menuOptions.getKeyBinding(t):void 0,getMenuClassName:()=>this._options.menuClassName||"",onHide:()=>this.onHide(),actionRunner:this.menuOptions?this.menuOptions.actionRunner:void 0,anchorAlignment:this.menuOptions?this.menuOptions.anchorAlignment:0,domForShadowRoot:this._options.menuAsChild?this.element:void 0,skipTelemetry:this._options.skipTelemetry})}hide(){super.hide()}onHide(){this.hide(),this.element.classList.remove("active")}}class kB extends mB{constructor(t,i,e,s=Object.create(null)){super(null,t,s),this.actionItem=null,this._onDidChangeVisibility=this._register(new de),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this.menuActionsOrProvider=i,this.contextMenuProvider=e,this.options=s,this.options.actionRunner&&(this.actionRunner=this.options.actionRunner)}render(t){this.actionItem=t;const i=Array.isArray(this.menuActionsOrProvider);if(this.dropdownMenu=this._register(new yB(t,{contextMenuProvider:this.contextMenuProvider,labelRenderer:t=>{this.element=Ol(t,$l("a.action-label"));let i=[];return"string"==typeof this.options.classNames?i=this.options.classNames.split(/\s+/g).filter((t=>!!t)):this.options.classNames&&(i=this.options.classNames),i.find((t=>"icon"===t))||i.push("codicon"),this.element.classList.add(...i),this.element.setAttribute("role","button"),this.element.setAttribute("aria-haspopup","true"),this.element.setAttribute("aria-expanded","false"),this.element.title=this._action.label||"",this.element.ariaLabel=this._action.label||"",null},menuAsChild:this.options.menuAsChild,actions:i?this.menuActionsOrProvider:void 0,actionProvider:i?void 0:this.menuActionsOrProvider,skipTelemetry:this.options.skipTelemetry})),this._register(this.dropdownMenu.onDidChangeVisibility((t=>{var i;null===(i=this.element)||void 0===i||i.setAttribute("aria-expanded",`${t}`),this._onDidChangeVisibility.fire(t)}))),this.dropdownMenu.menuOptions={actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,getKeyBinding:this.options.keybindingProvider,context:this._context},this.options.anchorAlignmentProvider){const t=this;this.dropdownMenu.menuOptions={...this.dropdownMenu.menuOptions,get anchorAlignment(){return t.options.anchorAlignmentProvider()}}}this.updateTooltip(),this.updateEnabled()}getTooltip(){let t=null;return this.action.tooltip?t=this.action.tooltip:this.action.label&&(t=this.action.label),null!=t?t:void 0}setActionContext(t){super.setActionContext(t),this.dropdownMenu&&(this.dropdownMenu.menuOptions?this.dropdownMenu.menuOptions.context=t:this.dropdownMenu.menuOptions={context:t})}show(){var t;null===(t=this.dropdownMenu)||void 0===t||t.show()}updateEnabled(){var t,i;const e=!this.action.enabled;null===(t=this.actionItem)||void 0===t||t.classList.toggle("disabled",e),null===(i=this.element)||void 0===i||i.classList.toggle("disabled",e)}}var xB,CB;!function(t){t[t.STORAGE_DOES_NOT_EXIST=0]="STORAGE_DOES_NOT_EXIST",t[t.STORAGE_IN_MEMORY=1]="STORAGE_IN_MEMORY"}(xB||(xB={})),function(t){t[t.None=0]="None",t[t.Initialized=1]="Initialized",t[t.Closed=2]="Closed"}(CB||(CB={}));class SB extends te{constructor(t,i=Object.create(null)){super(),this.database=t,this.options=i,this._onDidChangeStorage=this._register(new pe),this.onDidChangeStorage=this._onDidChangeStorage.event,this.state=CB.None,this.cache=new Map,this.flushDelayer=this._register(new cc(SB.DEFAULT_FLUSH_DELAY)),this.pendingDeletes=new Set,this.pendingInserts=new Map,this.whenFlushedCallbacks=[],this.registerListeners()}registerListeners(){this._register(this.database.onDidChangeItemsExternal((t=>this.onDidChangeItemsExternal(t))))}onDidChangeItemsExternal(t){var i,e;this._onDidChangeStorage.pause();try{null===(i=t.changed)||void 0===i||i.forEach(((t,i)=>this.acceptExternal(i,t))),null===(e=t.deleted)||void 0===e||e.forEach((t=>this.acceptExternal(t,void 0)))}finally{this._onDidChangeStorage.resume()}}acceptExternal(t,i){if(this.state===CB.Closed)return;let e=!1;U(i)?e=this.cache.delete(t):this.cache.get(t)!==i&&(this.cache.set(t,i),e=!0),e&&this._onDidChangeStorage.fire({key:t,external:!0})}get(t,i){const e=this.cache.get(t);return U(e)?i:e}getBoolean(t,i){const e=this.get(t);return U(e)?i:"true"===e}getNumber(t,i){const e=this.get(t);return U(e)?i:parseInt(e,10)}async set(t,i,e=!1){if(this.state===CB.Closed)return;if(U(i))return this.delete(t,e);const s=P(i)||Array.isArray(i)?JSON.stringify(i,eN):String(i);return this.cache.get(t)!==s?(this.cache.set(t,s),this.pendingInserts.set(t,s),this.pendingDeletes.delete(t),this._onDidChangeStorage.fire({key:t,external:e}),this.doFlush()):void 0}async delete(t,i=!1){if(this.state!==CB.Closed)return this.cache.delete(t)?(this.pendingDeletes.has(t)||this.pendingDeletes.add(t),this.pendingInserts.delete(t),this._onDidChangeStorage.fire({key:t,external:i}),this.doFlush()):void 0}get hasPending(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}async flushPending(){if(!this.hasPending)return;const t={insert:this.pendingInserts,delete:this.pendingDeletes};return this.pendingDeletes=new Set,this.pendingInserts=new Map,this.database.updateItems(t).finally((()=>{var t;if(!this.hasPending)for(;this.whenFlushedCallbacks.length;)null===(t=this.whenFlushedCallbacks.pop())||void 0===t||t()}))}async doFlush(t){return this.options.hint===xB.STORAGE_IN_MEMORY?this.flushPending():this.flushDelayer.trigger((()=>this.flushPending()),t)}}SB.DEFAULT_FLUSH_DELAY=100;class DB{constructor(){this.onDidChangeItemsExternal=he.None,this.items=new Map}async updateItems(t){var i,e;null===(i=t.insert)||void 0===i||i.forEach(((t,i)=>this.items.set(i,t))),null===(e=t.delete)||void 0===e||e.forEach((t=>this.items.delete(t)))}}const EB="__$__targetStorageMarker",AB=dr("storageService");var MB;!function(t){t[t.NONE=0]="NONE",t[t.SHUTDOWN=1]="SHUTDOWN"}(MB||(MB={}));class LB extends te{constructor(t={flushInterval:LB.DEFAULT_FLUSH_INTERVAL}){super(),this.options=t,this._onDidChangeValue=this._register(new pe),this._onDidChangeTarget=this._register(new pe),this._onWillSaveState=this._register(new de),this.onWillSaveState=this._onWillSaveState.event,this._workspaceKeyTargets=void 0,this._profileKeyTargets=void 0,this._applicationKeyTargets=void 0}onDidChangeValue(t,i,e){return he.filter(this._onDidChangeValue.event,(e=>e.scope===t&&(void 0===i||e.key===i)),e)}emitDidChangeValue(t,i){const{key:e,external:s}=i;if(e===EB){switch(t){case-1:this._applicationKeyTargets=void 0;break;case 0:this._profileKeyTargets=void 0;break;case 1:this._workspaceKeyTargets=void 0}this._onDidChangeTarget.fire({scope:t})}else this._onDidChangeValue.fire({scope:t,key:e,target:this.getKeyTargets(t)[e],external:s})}get(t,i,e){var s;return null===(s=this.getStorage(i))||void 0===s?void 0:s.get(t,e)}getBoolean(t,i,e){var s;return null===(s=this.getStorage(i))||void 0===s?void 0:s.getBoolean(t,e)}getNumber(t,i,e){var s;return null===(s=this.getStorage(i))||void 0===s?void 0:s.getNumber(t,e)}store(t,i,e,s,n=!1){U(i)?this.remove(t,e,n):this.withPausedEmitters((()=>{var o;this.updateKeyTarget(t,e,s),null===(o=this.getStorage(e))||void 0===o||o.set(t,i,n)}))}remove(t,i,e=!1){this.withPausedEmitters((()=>{var s;this.updateKeyTarget(t,i,void 0),null===(s=this.getStorage(i))||void 0===s||s.delete(t,e)}))}withPausedEmitters(t){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{t()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}updateKeyTarget(t,i,e,s=!1){var n,o;const r=this.getKeyTargets(i);"number"==typeof e?r[t]!==e&&(r[t]=e,null===(n=this.getStorage(i))||void 0===n||n.set(EB,JSON.stringify(r),s)):"number"==typeof r[t]&&(delete r[t],null===(o=this.getStorage(i))||void 0===o||o.set(EB,JSON.stringify(r),s))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get profileKeyTargets(){return this._profileKeyTargets||(this._profileKeyTargets=this.loadKeyTargets(0)),this._profileKeyTargets}get applicationKeyTargets(){return this._applicationKeyTargets||(this._applicationKeyTargets=this.loadKeyTargets(-1)),this._applicationKeyTargets}getKeyTargets(t){switch(t){case-1:return this.applicationKeyTargets;case 0:return this.profileKeyTargets;default:return this.workspaceKeyTargets}}loadKeyTargets(t){const i=this.getStorage(t);return i?function(t){const i=t.get(EB);if(i)try{return JSON.parse(i)}catch(t){}return Object.create(null)}(i):Object.create(null)}}LB.DEFAULT_FLUSH_INTERVAL=6e4;const FB={keybindingLabelBackground:aw(yv),keybindingLabelForeground:aw(kv),keybindingLabelBorder:aw(xv),keybindingLabelBottomBorder:aw(Cv),keybindingLabelShadow:aw(yw)},TB={buttonForeground:aw(jw),buttonSeparator:aw(zw),buttonBackground:aw(Hw),buttonHoverBackground:aw(Vw),buttonSecondaryForeground:aw(qw),buttonSecondaryBackground:aw(Kw),buttonSecondaryHoverBackground:aw(Gw),buttonBorder:aw(Uw)},RB={progressBarBackground:aw(iv)},OB={inputActiveOptionBorder:aw(Dw),inputActiveOptionForeground:aw(Aw),inputActiveOptionBackground:aw(Ew)};aw(xb),aw(Sb),aw(Cb),aw(uv),aw(dv),aw(yw),aw(ww),aw(oy),aw(ry),aw(hy),aw(bw);const IB={inputBackground:aw(xw),inputForeground:aw(Cw),inputBorder:aw(Sw),inputValidationInfoBorder:aw(Fw),inputValidationInfoBackground:aw(Mw),inputValidationInfoForeground:aw(Lw),inputValidationWarningBorder:aw(Ow),inputValidationWarningBackground:aw(Tw),inputValidationWarningForeground:aw(Rw),inputValidationErrorBorder:aw(Nw),inputValidationErrorBackground:aw(Iw),inputValidationErrorForeground:aw(_w)},_B={listFilterWidgetBackground:aw(pb),listFilterWidgetOutline:aw(gb),listFilterWidgetNoMatchesOutline:aw(mb),listFilterWidgetShadow:aw(wb),inputBoxStyles:IB,toggleStyles:OB},NB={badgeBackground:aw(Zw),badgeForeground:aw(Qw),badgeBorder:aw(ww)};aw(Pb),aw(Bb),aw($b),aw($b),aw(Wb);const BB={listBackground:void 0,listInactiveFocusForeground:void 0,listFocusBackground:aw(Zv),listFocusForeground:aw(Qv),listFocusOutline:aw(Jv),listActiveSelectionBackground:aw(Xv),listActiveSelectionForeground:aw(tb),listActiveSelectionIconForeground:aw(ib),listFocusAndSelectionOutline:aw(Yv),listFocusAndSelectionBackground:aw(Xv),listFocusAndSelectionForeground:aw(tb),listInactiveSelectionBackground:aw(eb),listInactiveSelectionIconForeground:aw(nb),listInactiveSelectionForeground:aw(sb),listInactiveFocusBackground:aw(ob),listInactiveFocusOutline:aw(rb),listHoverBackground:aw(hb),listHoverForeground:aw(cb),listDropBackground:aw(ab),listSelectionOutline:aw(vw),listHoverOutline:aw(vw),treeIndentGuidesStroke:aw(vb),treeInactiveIndentGuidesStroke:aw(bb),tableColumnsBorder:aw(yb),tableOddRowsBackgroundColor:aw(kb)};function PB(t){return function(t){const i={...BB};for(const e in t){const s=t[e];i[e]=void 0!==s?aw(s):void 0}return i}(t)}const $B={selectBackground:aw(Bw),selectListBackground:aw(Pw),selectForeground:aw($w),decoratorRightForeground:aw(vv),selectBorder:aw(Ww),focusBorder:aw(mw),listFocusBackground:aw(Mb),listInactiveSelectionIconForeground:aw(Ab),listFocusForeground:aw(Eb),listFocusOutline:(WB=vw,jB=lg.transparent.toString(),`var(${cw(WB)}, ${jB})`),listHoverBackground:aw(hb),listHoverForeground:aw(cb),listHoverOutline:aw(vw),selectListBorder:aw(fv),listBackground:void 0,listActiveSelectionBackground:void 0,listActiveSelectionForeground:void 0,listActiveSelectionIconForeground:void 0,listFocusAndSelectionBackground:void 0,listDropBackground:void 0,listInactiveSelectionBackground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusBackground:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listFocusAndSelectionForeground:void 0,listFocusAndSelectionOutline:void 0,listInactiveFocusForeground:void 0,tableColumnsBorder:void 0,tableOddRowsBackgroundColor:void 0,treeIndentGuidesStroke:void 0,treeInactiveIndentGuidesStroke:void 0};var WB,jB;const zB={shadowColor:aw(yw),borderColor:aw(Lb),foregroundColor:aw(Fb),backgroundColor:aw(Tb),selectionForegroundColor:aw(Rb),selectionBackgroundColor:aw(Ob),selectionBorderColor:aw(Ib),separatorColor:aw(_b),scrollbarShadow:aw(Jw),scrollbarSliderBackground:aw(Yw),scrollbarSliderHoverBackground:aw(Xw),scrollbarSliderActiveBackground:aw(tv)};var HB=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},VB=function(t,i){return function(e,s){i(e,s,t)}};function UB(t,i,e,s,n,o){qB(t.getActions(i),e,!1,"string"==typeof s?t=>t===s:s,n,o)}function qB(t,i,e,s=(t=>"navigation"===t),n=(()=>!1),o=!1){let r,h;Array.isArray(i)?(r=i,h=i):(r=i.primary,h=i.secondary);const c=new Set;for(const[i,n]of t){let t;s(i)?(t=r,t.length>0&&o&&t.push(new vr)):(t=h,t.length>0&&t.push(new vr));for(let s of n){e&&(s=s instanceof Bh&&s.alt?s.alt:s);const n=t.push(s);s instanceof br&&c.add({group:i,action:s,index:n-1})}}for(const{group:t,action:i,index:e}of c){const o=s(t)?r:h,c=i.actions;n(i,t,o.length)&&o.splice(e,1,...c)}}let KB=class extends wB{constructor(t,i,e,s,n,o,r,h){super(void 0,t,{icon:!(!t.class&&!t.item.icon),label:!t.class&&!t.item.icon,draggable:null==i?void 0:i.draggable,keybinding:null==i?void 0:i.keybinding,hoverDelegate:null==i?void 0:i.hoverDelegate}),this._keybindingService=e,this._notificationService=s,this._contextKeyService=n,this._themeService=o,this._contextMenuService=r,this._accessibilityService=h,this._wantsAltCommand=!1,this._itemClassDispose=this._register(new ie),this._altKey=Gl.getInstance()}get _menuItemAction(){return this._action}get _commandAction(){return this._wantsAltCommand&&this._menuItemAction.alt||this._menuItemAction}async onClick(t){t.preventDefault(),t.stopPropagation();try{await this.actionRunner.run(this._commandAction,this._context)}catch(t){this._notificationService.error(t)}}render(t){if(super.render(t),t.classList.add("menu-entry"),this.options.icon&&this._updateItemClass(this._menuItemAction.item),this._menuItemAction.alt){let i=!1;const e=()=>{var t;const e=!!(null===(t=this._menuItemAction.alt)||void 0===t?void 0:t.enabled)&&(!this._accessibilityService.isMotionReduced()||i)&&(this._altKey.keyStatus.altKey||this._altKey.keyStatus.shiftKey&&i);e!==this._wantsAltCommand&&(this._wantsAltCommand=e,this.updateLabel(),this.updateTooltip(),this.updateClass())};this._register(this._altKey.event(e)),this._register(Va(t,"mouseleave",(()=>{i=!1,e()}))),this._register(Va(t,"mouseenter",(()=>{i=!0,e()}))),e()}}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this._commandAction.label)}getTooltip(){var t;const i=this._keybindingService.lookupKeybinding(this._commandAction.id,this._contextKeyService),e=i&&i.getLabel(),s=this._commandAction.tooltip||this._commandAction.label;let n=e?ot(0,"{0} ({1})",s,e):s;if(!this._wantsAltCommand&&(null===(t=this._menuItemAction.alt)||void 0===t?void 0:t.enabled)){const t=this._menuItemAction.alt.tooltip||this._menuItemAction.alt.label,i=this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id,this._contextKeyService),e=i&&i.getLabel(),s=e?ot(0,"{0} ({1})",t,e):t;n=ot(0,"{0}\n[{1}] {2}",n,RO.modifierLabels[It].altKey,s)}return n}updateClass(){this.options.icon&&(this._commandAction!==this._menuItemAction?this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.alt.item):this._updateItemClass(this._menuItemAction.item))}_updateItemClass(t){this._itemClassDispose.value=void 0;const{element:i,label:e}=this;if(!i||!e)return;const s=this._commandAction.checked&&(n=t.toggled)&&void 0!==n.condition&&t.toggled.icon?t.toggled.icon:t.icon;var n;if(s)if(Cr.isThemeIcon(s)){const t=Cr.asClassNameArray(s);e.classList.add(...t),this._itemClassDispose.value=Yi((()=>{e.classList.remove(...t)}))}else e.style.backgroundImage=Hy(this._themeService.getColorTheme().type)?Vl(s.dark):Vl(s.light),e.classList.add("icon"),this._itemClassDispose.value=Ji(Yi((()=>{e.style.backgroundImage="",e.classList.remove("icon")})),this._themeService.onDidColorThemeChange((()=>{this.updateClass()})))}};KB=HB([VB(2,oC),VB(3,oT),VB(4,ah),VB(5,Xk),VB(6,lI),VB(7,Zm)],KB);let GB=class extends kB{constructor(t,i,e,s,n){var o,r,h;const c={...i,menuAsChild:null!==(o=null==i?void 0:i.menuAsChild)&&void 0!==o&&o,classNames:null!==(r=null==i?void 0:i.classNames)&&void 0!==r?r:Cr.isThemeIcon(t.item.icon)?Cr.asClassName(t.item.icon):void 0,keybindingProvider:null!==(h=null==i?void 0:i.keybindingProvider)&&void 0!==h?h:t=>e.lookupKeybinding(t.id)};super(t,{getActions:()=>t.actions},s,c),this._keybindingService=e,this._contextMenuService=s,this._themeService=n}render(t){super.render(t),q(this.element),t.classList.add("menu-entry");const i=this._action,{icon:e}=i.item;if(e&&!Cr.isThemeIcon(e)){this.element.classList.add("icon");const t=()=>{this.element&&(this.element.style.backgroundImage=Hy(this._themeService.getColorTheme().type)?Vl(e.dark):Vl(e.light))};t(),this._register(this._themeService.onDidColorThemeChange((()=>{t()})))}}};GB=HB([VB(2,oC),VB(3,lI),VB(4,Xk)],GB);let ZB=class extends mB{constructor(t,i,e,s,n,o,r,h){var c,a,l;let u;super(null,t),this._keybindingService=e,this._notificationService=s,this._contextMenuService=n,this._menuService=o,this._instaService=r,this._storageService=h,this._container=null,this._options=i,this._storageKey=`${t.item.submenu.id}_lastActionId`;const d=(null==i?void 0:i.persistLastActionId)?h.get(this._storageKey,1):void 0;d&&(u=t.actions.find((t=>d===t.id))),u||(u=t.actions[0]),this._defaultAction=this._instaService.createInstance(KB,u,{keybinding:this._getDefaultActionKeybindingLabel(u)});const f={keybindingProvider:t=>this._keybindingService.lookupKeybinding(t.id),...i,menuAsChild:null===(c=null==i?void 0:i.menuAsChild)||void 0===c||c,classNames:null!==(a=null==i?void 0:i.classNames)&&void 0!==a?a:["codicon","codicon-chevron-down"],actionRunner:null!==(l=null==i?void 0:i.actionRunner)&&void 0!==l?l:new wr};this._dropdown=new kB(t,t.actions,this._contextMenuService,f),this._dropdown.actionRunner.onDidRun((t=>{t.action instanceof Bh&&this.update(t.action)}))}update(t){var i;(null===(i=this._options)||void 0===i?void 0:i.persistLastActionId)&&this._storageService.store(this._storageKey,t.id,1,1),this._defaultAction.dispose(),this._defaultAction=this._instaService.createInstance(KB,t,{keybinding:this._getDefaultActionKeybindingLabel(t)}),this._defaultAction.actionRunner=new class extends wr{async runAction(t,i){await t.run(void 0)}},this._container&&this._defaultAction.render(Il(this._container,$l(".action-container")))}_getDefaultActionKeybindingLabel(t){var i;let e;if(null===(i=this._options)||void 0===i?void 0:i.renderKeybindingWithDefaultActionLabel){const i=this._keybindingService.lookupKeybinding(t.id);i&&(e=`(${i.getLabel()})`)}return e}setActionContext(t){super.setActionContext(t),this._defaultAction.setActionContext(t),this._dropdown.setActionContext(t)}render(t){this._container=t,super.render(this._container),this._container.classList.add("monaco-dropdown-with-default");const i=$l(".action-container");this._defaultAction.render(Ol(this._container,i)),this._register(Va(i,Ll.KEY_DOWN,(t=>{const i=new Qh(t);i.equals(17)&&(this._defaultAction.element.tabIndex=-1,this._dropdown.focus(),i.stopPropagation())})));const e=$l(".dropdown-action-container");this._dropdown.render(Ol(this._container,e)),this._register(Va(e,Ll.KEY_DOWN,(t=>{var i;const e=new Qh(t);e.equals(15)&&(this._defaultAction.element.tabIndex=0,this._dropdown.setFocusable(!1),null===(i=this._defaultAction.element)||void 0===i||i.focus(),e.stopPropagation())})))}focus(t){t?this._dropdown.focus():(this._defaultAction.element.tabIndex=0,this._defaultAction.element.focus())}blur(){this._defaultAction.element.tabIndex=-1,this._dropdown.blur(),this._container.blur()}setFocusable(t){t?this._defaultAction.element.tabIndex=0:(this._defaultAction.element.tabIndex=-1,this._dropdown.setFocusable(!1))}dispose(){this._defaultAction.dispose(),this._dropdown.dispose(),super.dispose()}};ZB=HB([VB(2,oC),VB(3,oT),VB(4,lI),VB(5,Oh),VB(6,ur),VB(7,AB)],ZB);let QB=class extends vB{constructor(t,i){super(null,t,t.actions.map((t=>({text:t.id===vr.ID?"─────────":t.label,isDisabled:!t.enabled}))),0,i,$B,{ariaLabel:t.tooltip,optionsAsChildren:!0}),this.select(Math.max(0,t.actions.findIndex((t=>t.checked))))}render(t){super.render(t),t.style.borderColor=aw(Ww)}runAction(t,i){const e=this.action.actions[i];e&&this.actionRunner.run(e)}};function JB(t,i,e){return i instanceof Bh?t.createInstance(KB,i,e):i instanceof Nh?i.item.isSelection?t.createInstance(QB,i):i.item.rememberDefaultAction?t.createInstance(ZB,i,{...e,persistLastActionId:!0}):t.createInstance(GB,i,e):void 0}QB=HB([VB(1,aI)],QB);class YB extends te{constructor(t,i={}){var e,s,n,o,r,h;let c,a;switch(super(),this._actionRunnerDisposables=this._register(new Xi),this.viewItemDisposables=this._register(new ne),this.triggerKeyDown=!1,this.focusable=!0,this._onDidBlur=this._register(new de),this.onDidBlur=this._onDidBlur.event,this._onDidCancel=this._register(new de({onWillAddFirstListener:()=>this.cancelHasListener=!0})),this.onDidCancel=this._onDidCancel.event,this.cancelHasListener=!1,this._onDidRun=this._register(new de),this.onDidRun=this._onDidRun.event,this._onWillRun=this._register(new de),this.onWillRun=this._onWillRun.event,this.options=i,this._context=null!==(e=i.context)&&void 0!==e?e:null,this._orientation=null!==(s=this.options.orientation)&&void 0!==s?s:0,this._triggerKeys={keyDown:null!==(o=null===(n=this.options.triggerKeys)||void 0===n?void 0:n.keyDown)&&void 0!==o&&o,keys:null!==(h=null===(r=this.options.triggerKeys)||void 0===r?void 0:r.keys)&&void 0!==h?h:[3,10]},this.options.actionRunner?this._actionRunner=this.options.actionRunner:(this._actionRunner=new wr,this._actionRunnerDisposables.add(this._actionRunner)),this._actionRunnerDisposables.add(this._actionRunner.onDidRun((t=>this._onDidRun.fire(t)))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun((t=>this._onWillRun.fire(t)))),this.viewItems=[],this.focusedItem=void 0,this.domNode=document.createElement("div"),this.domNode.className="monaco-action-bar",!1!==i.animated&&this.domNode.classList.add("animated"),this._orientation){case 0:c=[15],a=[17];break;case 1:c=[16],a=[18],this.domNode.className+=" vertical"}this._register(Va(this.domNode,Ll.KEY_DOWN,(t=>{const i=new Qh(t);let e=!0;const s="number"==typeof this.focusedItem?this.viewItems[this.focusedItem]:void 0;c&&(i.equals(c[0])||i.equals(c[1]))?e=this.focusPrevious():a&&(i.equals(a[0])||i.equals(a[1]))?e=this.focusNext():i.equals(9)&&this.cancelHasListener?this._onDidCancel.fire():i.equals(14)?e=this.focusFirst():i.equals(13)?e=this.focusLast():i.equals(2)&&s instanceof mB&&s.trapsArrowNavigation?e=this.focusNext():this.isTriggerKeyEvent(i)?this._triggerKeys.keyDown?this.doTrigger(i):this.triggerKeyDown=!0:e=!1,e&&(i.preventDefault(),i.stopPropagation())}))),this._register(Va(this.domNode,Ll.KEY_UP,(t=>{const i=new Qh(t);this.isTriggerKeyEvent(i)?(!this._triggerKeys.keyDown&&this.triggerKeyDown&&(this.triggerKeyDown=!1,this.doTrigger(i)),i.preventDefault(),i.stopPropagation()):(i.equals(2)||i.equals(1026)||i.equals(16)||i.equals(18)||i.equals(15)||i.equals(17))&&this.updateFocusedItem()}))),this.focusTracker=this._register(Rl(this.domNode)),this._register(this.focusTracker.onDidBlur((()=>{pl()!==this.domNode&&al(pl(),this.domNode)||(this._onDidBlur.fire(),this.previouslyFocusedItem=this.focusedItem,this.focusedItem=void 0,this.triggerKeyDown=!1)}))),this._register(this.focusTracker.onDidFocus((()=>this.updateFocusedItem()))),this.actionsList=document.createElement("ul"),this.actionsList.className="actions-container",this.options.highlightToggledItems&&this.actionsList.classList.add("highlight-toggled"),this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"),this.options.ariaLabel&&this.actionsList.setAttribute("aria-label",this.options.ariaLabel),this.domNode.appendChild(this.actionsList),t.appendChild(this.domNode)}refreshRole(){this.length()>=1?this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"):this.actionsList.setAttribute("role","presentation")}setFocusable(t){if(this.focusable=t,this.focusable){const t=this.viewItems.find((t=>t instanceof mB&&t.isEnabled()));t instanceof mB&&t.setFocusable(!0)}else this.viewItems.forEach((t=>{t instanceof mB&&t.setFocusable(!1)}))}isTriggerKeyEvent(t){let i=!1;return this._triggerKeys.keys.forEach((e=>{i=i||t.equals(e)})),i}updateFocusedItem(){var t,i;for(let e=0;ei.setActionContext(t)))}get actionRunner(){return this._actionRunner}set actionRunner(t){this._actionRunner=t,this._actionRunnerDisposables.clear(),this._actionRunnerDisposables.add(this._actionRunner.onDidRun((t=>this._onDidRun.fire(t)))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun((t=>this._onWillRun.fire(t)))),this.viewItems.forEach((i=>i.actionRunner=t))}getContainer(){return this.domNode}getAction(t){var i;if("number"==typeof t)return null===(i=this.viewItems[t])||void 0===i?void 0:i.action;if(t instanceof HTMLElement){for(;t.parentElement!==this.actionsList;){if(!t.parentElement)return;t=t.parentElement}for(let i=0;i{const e=document.createElement("li");let n;e.className="action-item",e.setAttribute("role","presentation");const o={hoverDelegate:this.options.hoverDelegate,...i};this.options.actionViewItemProvider&&(n=this.options.actionViewItemProvider(t,o)),n||(n=new wB(this.context,t,o)),this.options.allowContextMenu||this.viewItemDisposables.set(n,Va(e,Ll.CONTEXT_MENU,(t=>{Fl(t,!0)}))),n.actionRunner=this._actionRunner,n.setActionContext(this.context),n.render(e),this.focusable&&n instanceof mB&&0===this.viewItems.length&&n.setFocusable(!0),null===s||s<0||s>=this.actionsList.children.length?(this.actionsList.appendChild(e),this.viewItems.push(n)):(this.actionsList.insertBefore(e,this.actionsList.children[s]),this.viewItems.splice(s,0,n),s++)})),"number"==typeof this.focusedItem&&this.focus(this.focusedItem),this.refreshRole()}clear(){this.isEmpty()||(this.viewItems=Qi(this.viewItems),this.viewItemDisposables.clearAndDisposeAll(),za(this.actionsList),this.refreshRole())}length(){return this.viewItems.length}isEmpty(){return 0===this.viewItems.length}focus(t){let i,e=!1;if(void 0===t?e=!0:"number"==typeof t?i=t:"boolean"==typeof t&&(e=t),e&&void 0===this.focusedItem){const t=this.viewItems.findIndex((t=>t.isEnabled()));this.focusedItem=-1===t?void 0:t,this.updateFocus(void 0,void 0,!0)}else void 0!==i&&(this.focusedItem=i),this.updateFocus(void 0,void 0,!0)}focusFirst(){return this.focusedItem=this.length()-1,this.focusNext(!0)}focusLast(){return this.focusedItem=0,this.focusPrevious(!0)}focusNext(t){if(void 0===this.focusedItem)this.focusedItem=this.viewItems.length-1;else if(this.viewItems.length<=1)return!1;const i=this.focusedItem;let e;do{if(!t&&this.options.preventLoopNavigation&&this.focusedItem+1>=this.viewItems.length)return this.focusedItem=i,!1;this.focusedItem=(this.focusedItem+1)%this.viewItems.length,e=this.viewItems[this.focusedItem]}while(this.focusedItem!==i&&(this.options.focusOnlyEnabledItems&&!e.isEnabled()||e.action.id===vr.ID));return this.updateFocus(),!0}focusPrevious(t){if(void 0===this.focusedItem)this.focusedItem=0;else if(this.viewItems.length<=1)return!1;const i=this.focusedItem;let e;do{if(this.focusedItem=this.focusedItem-1,this.focusedItem<0){if(!t&&this.options.preventLoopNavigation)return this.focusedItem=i,!1;this.focusedItem=this.viewItems.length-1}e=this.viewItems[this.focusedItem]}while(this.focusedItem!==i&&(this.options.focusOnlyEnabledItems&&!e.isEnabled()||e.action.id===vr.ID));return this.updateFocus(!0),!0}updateFocus(t,i,e=!1){var s,n;void 0===this.focusedItem&&this.actionsList.focus({preventScroll:i}),void 0!==this.previouslyFocusedItem&&this.previouslyFocusedItem!==this.focusedItem&&(null===(s=this.viewItems[this.previouslyFocusedItem])||void 0===s||s.blur());const o=void 0!==this.focusedItem?this.viewItems[this.focusedItem]:void 0;if(o){let s=!0;G(o.focus)||(s=!1),this.options.focusOnlyEnabledItems&&G(o.isEnabled)&&!o.isEnabled()&&(s=!1),o.action.id===vr.ID&&(s=!1),s&&(null===(n=o.showHover)||void 0===n||n.call(o)),s?(e||this.previouslyFocusedItem!==this.focusedItem)&&(o.focus(t),this.previouslyFocusedItem=this.focusedItem):(this.actionsList.focus({preventScroll:i}),this.previouslyFocusedItem=void 0)}}doTrigger(t){if(void 0===this.focusedItem)return;const i=this.viewItems[this.focusedItem];i instanceof mB&&this.run(i._action,null==i._context?t:i._context)}async run(t,i){await this._actionRunner.run(t,i)}dispose(){this._context=void 0,this.viewItems=Qi(this.viewItems),this.getContainer().remove(),super.dispose()}}const XB=/\(&([^\s&])\)|(^|[^&])&([^\s&])/,tP=/(&)?(&)([^\s&])/g;var iP;!function(t){t[t.Right=0]="Right",t[t.Left=1]="Left"}(iP||(iP={}));class eP extends YB{constructor(t,i,e,s){t.classList.add("monaco-menu-container"),t.setAttribute("role","presentation");const n=document.createElement("div");n.classList.add("monaco-menu"),n.setAttribute("role","presentation"),super(n,{orientation:1,actionViewItemProvider:t=>this.doGetActionViewItem(t,e,o),context:e.context,actionRunner:e.actionRunner,ariaLabel:e.ariaLabel,ariaRole:"menu",focusOnlyEnabledItems:!0,triggerKeys:{keys:[3,...Ct||St?[10]:[]],keyDown:!0}}),this.menuStyles=s,this.menuElement=n,this.actionsList.tabIndex=0,this.initializeOrUpdateStyleSheet(t,s),this._register(rw.addTarget(n)),this._register(Va(n,Ll.KEY_DOWN,(t=>{new Qh(t).equals(2)&&t.preventDefault()}))),e.enableMnemonics&&this._register(Va(n,Ll.KEY_DOWN,(t=>{const i=t.key.toLocaleLowerCase();if(this.mnemonics.has(i)){Fl(t,!0);const e=this.mnemonics.get(i);if(1===e.length&&(e[0]instanceof nP&&e[0].container&&this.focusItemByElement(e[0].container),e[0].onClick(t)),e.length>1){const t=e.shift();t&&t.container&&(this.focusItemByElement(t.container),e.push(t)),this.mnemonics.set(i,e)}}}))),St&&this._register(Va(n,Ll.KEY_DOWN,(t=>{const i=new Qh(t);i.equals(14)||i.equals(11)?(this.focusedItem=this.viewItems.length-1,this.focusNext(),Fl(t,!0)):(i.equals(13)||i.equals(12))&&(this.focusedItem=0,this.focusPrevious(),Fl(t,!0))}))),this._register(Va(this.domNode,Ll.MOUSE_OUT,(t=>{al(t.relatedTarget,this.domNode)||(this.focusedItem=void 0,this.updateFocus(),t.stopPropagation())}))),this._register(Va(this.actionsList,Ll.MOUSE_OVER,(t=>{let i=t.target;if(i&&al(i,this.actionsList)&&i!==this.actionsList){for(;i.parentElement!==this.actionsList&&null!==i.parentElement;)i=i.parentElement;if(i.classList.contains("action-item")){const t=this.focusedItem;this.setFocusedItem(i),t!==this.focusedItem&&this.updateFocus()}}}))),this._register(rw.addTarget(this.actionsList)),this._register(Va(this.actionsList,ow.Tap,(t=>{let i=t.initialTarget;if(i&&al(i,this.actionsList)&&i!==this.actionsList){for(;i.parentElement!==this.actionsList&&null!==i.parentElement;)i=i.parentElement;if(i.classList.contains("action-item")){const t=this.focusedItem;this.setFocusedItem(i),t!==this.focusedItem&&this.updateFocus()}}})));const o={parent:this};this.mnemonics=new Map,this.scrollableElement=this._register(new Tk(n,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));const r=this.scrollableElement.getDomNode();r.style.position="",this.styleScrollElement(r,s),this._register(Va(n,ow.Change,(t=>{Fl(t,!0);const i=this.scrollableElement.getScrollPosition().scrollTop;this.scrollableElement.setScrollPosition({scrollTop:i-t.translationY})}))),this._register(Va(r,Ll.MOUSE_UP,(t=>{t.preventDefault()})));const h=Na(t);n.style.maxHeight=`${Math.max(10,h.innerHeight-t.getBoundingClientRect().top-35)}px`,i=i.filter((t=>{var i;return!(null===(i=e.submenuIds)||void 0===i?void 0:i.has(t.id))||(console.warn(`Found submenu cycle: ${t.id}`),!1)})),this.push(i,{icon:!0,label:!0,isMenu:!0}),t.appendChild(this.scrollableElement.getDomNode()),this.scrollableElement.scanDomNode(),this.viewItems.filter((t=>!(t instanceof oP))).forEach(((t,i,e)=>{t.updatePositionInSet(i+1,e.length)}))}initializeOrUpdateStyleSheet(t,i){this.styleSheet||(dl(t)?this.styleSheet=vl(t):(eP.globalStyleSheet||(eP.globalStyleSheet=vl()),this.styleSheet=eP.globalStyleSheet)),this.styleSheet.textContent=function(t,i){let e=`\n.monaco-menu {\n\tfont-size: 13px;\n\tborder-radius: 5px;\n\tmin-width: 160px;\n}\n\n${rP(Os.menuSelection)}\n${rP(Os.menuSubmenu)}\n\n.monaco-menu .monaco-action-bar {\n\ttext-align: right;\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n\n.monaco-menu .monaco-action-bar .actions-container {\n\tdisplay: flex;\n\tmargin: 0 auto;\n\tpadding: 0;\n\twidth: 100%;\n\tjustify-content: flex-end;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar.reverse .actions-container {\n\tflex-direction: row-reverse;\n}\n\n.monaco-menu .monaco-action-bar .action-item {\n\tcursor: pointer;\n\tdisplay: inline-block;\n\ttransition: transform 50ms ease;\n\tposition: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled {\n\tcursor: default;\n}\n\n.monaco-menu .monaco-action-bar.animated .action-item.active {\n\ttransform: scale(1.272019649, 1.272019649); /* 1.272019649 = √φ */\n}\n\n.monaco-menu .monaco-action-bar .action-item .icon,\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar .action-label {\n\tfont-size: 11px;\n\tmargin-right: 4px;\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label,\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover {\n\tcolor: var(--vscode-disabledForeground);\n}\n\n/* Vertical actions */\n\n.monaco-menu .monaco-action-bar.vertical {\n\ttext-align: left;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tdisplay: block;\n\tborder-bottom: 1px solid var(--vscode-menu-separatorBackground);\n\tpadding-top: 1px;\n\tpadding: 30px;\n}\n\n.monaco-menu .secondary-actions .monaco-action-bar .action-label {\n\tmargin-left: 6px;\n}\n\n/* Action Items */\n.monaco-menu .monaco-action-bar .action-item.select-container {\n\toverflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\n\tflex: 1;\n\tmax-width: 170px;\n\tmin-width: 60px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-right: 10px;\n}\n\n.monaco-menu .monaco-action-bar.vertical {\n\tmargin-left: 0;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tpadding: 0;\n\ttransform: none;\n\tdisplay: flex;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.active {\n\ttransform: none;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\tflex: 1 1 auto;\n\tdisplay: flex;\n\theight: 2em;\n\talign-items: center;\n\tposition: relative;\n\tmargin: 0 4px;\n\tborder-radius: 4px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .keybinding {\n\topacity: unset;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label {\n\tflex: 1 1 auto;\n\ttext-decoration: none;\n\tpadding: 0 1em;\n\tbackground: none;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .keybinding,\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tdisplay: inline-block;\n\tflex: 2 1 auto;\n\tpadding: 0 1em;\n\ttext-align: right;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon {\n\tfont-size: 16px !important;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before {\n\tmargin-left: auto;\n\tmargin-right: -20px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator {\n\topacity: 0.4;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) {\n\tdisplay: inline-block;\n\tbox-sizing: border-box;\n\tmargin: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tposition: static;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu {\n\tposition: absolute;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\twidth: 100%;\n\theight: 0px !important;\n\topacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator.text {\n\tpadding: 0.7em 1em 0.1em 1em;\n\tfont-weight: bold;\n\topacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:hover {\n\tcolor: inherit;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tposition: absolute;\n\tvisibility: hidden;\n\twidth: 1em;\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check {\n\tvisibility: visible;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Context Menu */\n\n.context-view.monaco-menu-container {\n\toutline: 0;\n\tborder: none;\n\tanimation: fadeIn 0.083s linear;\n\t-webkit-app-region: no-drag;\n}\n\n.context-view.monaco-menu-container :focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical :focus {\n\toutline: 0;\n}\n\n.hc-black .context-view.monaco-menu-container,\n.hc-light .context-view.monaco-menu-container,\n:host-context(.hc-black) .context-view.monaco-menu-container,\n:host-context(.hc-light) .context-view.monaco-menu-container {\n\tbox-shadow: none;\n}\n\n.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n.hc-light .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n:host-context(.hc-light) .monaco-menu .monaco-action-bar.vertical .action-item.focused {\n\tbackground: none;\n}\n\n/* Vertical Action Bar Styles */\n\n.monaco-menu .monaco-action-bar.vertical {\n\tpadding: 4px 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\theight: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator),\n.monaco-menu .monaco-action-bar.vertical .keybinding {\n\tfont-size: inherit;\n\tpadding: 0 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tfont-size: inherit;\n\twidth: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tfont-size: inherit;\n\tmargin: 5px 0 !important;\n\tpadding: 0;\n\tborder-radius: 0;\n}\n\n.linux .monaco-menu .monaco-action-bar.vertical .action-label.separator,\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tfont-size: 60%;\n\tpadding: 0 1.8em;\n}\n\n.linux .monaco-menu .monaco-action-bar.vertical .submenu-indicator,\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n\tmask-size: 10px 10px;\n\t-webkit-mask-size: 10px 10px;\n}\n\n.monaco-menu .action-item {\n\tcursor: default;\n}`;if(i){e+="\n\t\t\t/* Arrows */\n\t\t\t.monaco-scrollable-element > .scrollbar > .scra {\n\t\t\t\tcursor: pointer;\n\t\t\t\tfont-size: 11px !important;\n\t\t\t}\n\n\t\t\t.monaco-scrollable-element > .visible {\n\t\t\t\topacity: 1;\n\n\t\t\t\t/* Background rule added for IE9 - to allow clicks on dom node */\n\t\t\t\tbackground:rgba(0,0,0,0);\n\n\t\t\t\ttransition: opacity 100ms linear;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .invisible {\n\t\t\t\topacity: 0;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .invisible.fade {\n\t\t\t\ttransition: opacity 800ms linear;\n\t\t\t}\n\n\t\t\t/* Scrollable Content Inset Shadow */\n\t\t\t.monaco-scrollable-element > .shadow {\n\t\t\t\tposition: absolute;\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .shadow.top {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 3px;\n\t\t\t\theight: 3px;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .shadow.left {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 3px;\n\t\t\t\tleft: 0;\n\t\t\t\theight: 100%;\n\t\t\t\twidth: 3px;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .shadow.top-left-corner {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\theight: 3px;\n\t\t\t\twidth: 3px;\n\t\t\t}\n\t\t";const i=t.scrollbarShadow;i&&(e+=`\n\t\t\t\t.monaco-scrollable-element > .shadow.top {\n\t\t\t\t\tbox-shadow: ${i} 0 6px 6px -6px inset;\n\t\t\t\t}\n\n\t\t\t\t.monaco-scrollable-element > .shadow.left {\n\t\t\t\t\tbox-shadow: ${i} 6px 0 6px -6px inset;\n\t\t\t\t}\n\n\t\t\t\t.monaco-scrollable-element > .shadow.top.left {\n\t\t\t\t\tbox-shadow: ${i} 6px 6px 6px -6px inset;\n\t\t\t\t}\n\t\t\t`);const s=t.scrollbarSliderBackground;s&&(e+=`\n\t\t\t\t.monaco-scrollable-element > .scrollbar > .slider {\n\t\t\t\t\tbackground: ${s};\n\t\t\t\t}\n\t\t\t`);const n=t.scrollbarSliderHoverBackground;n&&(e+=`\n\t\t\t\t.monaco-scrollable-element > .scrollbar > .slider:hover {\n\t\t\t\t\tbackground: ${n};\n\t\t\t\t}\n\t\t\t`);const o=t.scrollbarSliderActiveBackground;o&&(e+=`\n\t\t\t\t.monaco-scrollable-element > .scrollbar > .slider.active {\n\t\t\t\t\tbackground: ${o};\n\t\t\t\t}\n\t\t\t`)}return e}(i,dl(t))}styleScrollElement(t,i){var e,s;const n=null!==(e=i.foregroundColor)&&void 0!==e?e:"",o=null!==(s=i.backgroundColor)&&void 0!==s?s:"",r=i.shadowColor?`0 2px 8px ${i.shadowColor}`:"";t.style.outline=i.borderColor?`1px solid ${i.borderColor}`:"",t.style.borderRadius="5px",t.style.color=n,t.style.backgroundColor=o,t.style.boxShadow=r}getContainer(){return this.scrollableElement.getDomNode()}get onScroll(){return this.scrollableElement.onScroll}focusItemByElement(t){const i=this.focusedItem;this.setFocusedItem(t),i!==this.focusedItem&&this.updateFocus()}setFocusedItem(t){for(let i=0;i{this.element&&(this._register(Va(this.element,Ll.MOUSE_UP,(t=>{if(Fl(t,!0),Uo){if(new tc(Na(this.element),t).rightButton)return;this.onClick(t)}else setTimeout((()=>{this.onClick(t)}),0)}))),this._register(Va(this.element,Ll.CONTEXT_MENU,(t=>{Fl(t,!0)}))))}),100),this._register(this.runOnceToEnableMouseUp)}render(t){super.render(t),this.element&&(this.container=t,this.item=Ol(this.element,$l("a.action-menu-item")),this._action.id===vr.ID?this.item.setAttribute("role","presentation"):(this.item.setAttribute("role","menuitem"),this.mnemonic&&this.item.setAttribute("aria-keyshortcuts",`${this.mnemonic}`)),this.check=Ol(this.item,$l("span.menu-item-check"+Cr.asCSSSelector(Os.menuSelection))),this.check.setAttribute("role","none"),this.label=Ol(this.item,$l("span.action-label")),this.options.label&&this.options.keybinding&&(Ol(this.item,$l("span.keybinding")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked(),this.applyStyle())}blur(){super.blur(),this.applyStyle()}focus(){var t;super.focus(),null===(t=this.item)||void 0===t||t.focus(),this.applyStyle()}updatePositionInSet(t,i){this.item&&(this.item.setAttribute("aria-posinset",`${t}`),this.item.setAttribute("aria-setsize",`${i}`))}updateLabel(){var t;if(this.label&&this.options.label){za(this.label);let i=R_(this.action.label);if(i){const e=function(t){const i=XB,e=i.exec(t);if(!e)return t;return t.replace(i,!e[1]?"$2$3":"").trim()}(i);this.options.enableMnemonics||(i=e),this.label.setAttribute("aria-label",e.replace(/&&/g,"&"));const s=XB.exec(i);if(s){i=Kn(i),tP.lastIndex=0;let e=tP.exec(i);for(;e&&e[1];)e=tP.exec(i);const n=t=>t.replace(/&&/g,"&");e?this.label.append(Qn(n(i.substr(0,e.index))," "),$l("u",{"aria-hidden":"true"},e[3]),Jn(n(i.substr(e.index+e[0].length))," ")):this.label.innerText=n(i).trim(),null===(t=this.item)||void 0===t||t.setAttribute("aria-keyshortcuts",(s[1]?s[1]:s[3]).toLocaleLowerCase())}else this.label.innerText=i.replace(/&&/g,"&").trim()}}}updateTooltip(){}updateClass(){this.cssClass&&this.item&&this.item.classList.remove(...this.cssClass.split(" ")),this.options.icon&&this.label?(this.cssClass=this.action.class||"",this.label.classList.add("icon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" ")),this.updateEnabled()):this.label&&this.label.classList.remove("icon")}updateEnabled(){this.action.enabled?(this.element&&(this.element.classList.remove("disabled"),this.element.removeAttribute("aria-disabled")),this.item&&(this.item.classList.remove("disabled"),this.item.removeAttribute("aria-disabled"),this.item.tabIndex=0)):(this.element&&(this.element.classList.add("disabled"),this.element.setAttribute("aria-disabled","true")),this.item&&(this.item.classList.add("disabled"),this.item.setAttribute("aria-disabled","true")))}updateChecked(){if(!this.item)return;const t=this.action.checked;this.item.classList.toggle("checked",!!t),void 0!==t?(this.item.setAttribute("role","menuitemcheckbox"),this.item.setAttribute("aria-checked",t?"true":"false")):(this.item.setAttribute("role","menuitem"),this.item.setAttribute("aria-checked",""))}getMnemonic(){return this.mnemonic}applyStyle(){const t=this.element&&this.element.classList.contains("focused"),i=t&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor,e=t&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,s=t&&this.menuStyle.selectionBorderColor?`1px solid ${this.menuStyle.selectionBorderColor}`:"",n=t&&this.menuStyle.selectionBorderColor?"-1px":"";this.item&&(this.item.style.color=null!=i?i:"",this.item.style.backgroundColor=null!=e?e:"",this.item.style.outline=s,this.item.style.outlineOffset=n),this.check&&(this.check.style.color=null!=i?i:"")}}class nP extends sP{constructor(t,i,e,s,n){super(t,t,s,n),this.submenuActions=i,this.parentData=e,this.submenuOptions=s,this.mysubmenu=null,this.submenuDisposables=this._register(new Xi),this.mouseOver=!1,this.expandDirection=s&&void 0!==s.expandDirection?s.expandDirection:iP.Right,this.showScheduler=new pc((()=>{this.mouseOver&&(this.cleanupExistingSubmenu(!1),this.createSubmenu(!1))}),250),this.hideScheduler=new pc((()=>{this.element&&!al(pl(),this.element)&&this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))}),750)}render(t){super.render(t),this.element&&(this.item&&(this.item.classList.add("monaco-submenu-item"),this.item.tabIndex=0,this.item.setAttribute("aria-haspopup","true"),this.updateAriaExpanded("false"),this.submenuIndicator=Ol(this.item,$l("span.submenu-indicator"+Cr.asCSSSelector(Os.menuSubmenu))),this.submenuIndicator.setAttribute("aria-hidden","true")),this._register(Va(this.element,Ll.KEY_UP,(t=>{const i=new Qh(t);(i.equals(17)||i.equals(3))&&(Fl(t,!0),this.createSubmenu(!0))}))),this._register(Va(this.element,Ll.KEY_DOWN,(t=>{const i=new Qh(t);pl()===this.item&&(i.equals(17)||i.equals(3))&&Fl(t,!0)}))),this._register(Va(this.element,Ll.MOUSE_OVER,(()=>{this.mouseOver||(this.mouseOver=!0,this.showScheduler.schedule())}))),this._register(Va(this.element,Ll.MOUSE_LEAVE,(()=>{this.mouseOver=!1}))),this._register(Va(this.element,Ll.FOCUS_OUT,(()=>{this.element&&!al(pl(),this.element)&&this.hideScheduler.schedule()}))),this._register(this.parentData.parent.onScroll((()=>{this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))}))))}updateEnabled(){}onClick(t){Fl(t,!0),this.cleanupExistingSubmenu(!1),this.createSubmenu(!0)}cleanupExistingSubmenu(t){if(this.parentData.submenu&&(t||this.parentData.submenu!==this.mysubmenu)){try{this.parentData.submenu.dispose()}catch(t){}this.parentData.submenu=void 0,this.updateAriaExpanded("false"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0)}}calculateSubmenuMenuLayout(t,i,e,s){const n={top:0,left:0};return n.left=fI(t.width,i.width,{position:s===iP.Right?0:1,offset:e.left,size:e.width}),n.left>=e.left&&n.left{new Qh(t).equals(15)&&(Fl(t,!0),this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0))}))),this.submenuDisposables.add(Va(this.submenuContainer,Ll.KEY_DOWN,(t=>{new Qh(t).equals(15)&&Fl(t,!0)}))),this.submenuDisposables.add(this.parentData.submenu.onDidCancel((()=>{this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0)}))),this.parentData.submenu.focus(t),this.mysubmenu=this.parentData.submenu}}updateAriaExpanded(t){var i;this.item&&(null===(i=this.item)||void 0===i||i.setAttribute("aria-expanded",t))}applyStyle(){super.applyStyle();const t=this.element&&this.element.classList.contains("focused")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=null!=t?t:"")}dispose(){super.dispose(),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)}}class oP extends wB{constructor(t,i,e,s){super(t,i,e),this.menuStyles=s}render(t){super.render(t),this.label&&(this.label.style.borderBottomColor=this.menuStyles.separatorColor?`${this.menuStyles.separatorColor}`:"")}}function rP(t){const i=Rs()[t.id];return`.codicon-${t.id}:before { content: '\\${i.toString(16)}'; }`}class hP{constructor(t,i,e,s){this.contextViewService=t,this.telemetryService=i,this.notificationService=e,this.keybindingService=s,this.focusToReturn=null,this.lastContainer=null,this.block=null,this.blockDisposable=null,this.options={blockMouse:!0}}configure(t){this.options=t}showContextMenu(t){const i=t.getActions();if(!i.length)return;let e;this.focusToReturn=pl();const s=t.domForShadowRoot instanceof HTMLElement?t.domForShadowRoot:void 0;this.contextViewService.showContextView({getAnchor:()=>t.getAnchor(),canRelayout:!1,anchorAlignment:t.anchorAlignment,anchorAxisAlignment:t.anchorAxisAlignment,render:s=>{var n;this.lastContainer=s;const o=t.getMenuClassName?t.getMenuClassName():"";o&&(s.className+=" "+o),this.options.blockMouse&&(this.block=s.appendChild($l(".context-view-block")),this.block.style.position="fixed",this.block.style.cursor="initial",this.block.style.left="0",this.block.style.top="0",this.block.style.width="100%",this.block.style.height="100%",this.block.style.zIndex="-1",null===(n=this.blockDisposable)||void 0===n||n.dispose(),this.blockDisposable=Va(this.block,Ll.MOUSE_DOWN,(t=>t.stopPropagation())));const r=new Xi,h=t.actionRunner||new wr;h.onWillRun((i=>this.onActionRun(i,!t.skipTelemetry)),this,r),h.onDidRun(this.onDidActionRun,this,r),e=new eP(s,i,{actionViewItemProvider:t.getActionViewItem,context:t.getActionsContext?t.getActionsContext():null,actionRunner:h,getKeyBinding:t.getKeyBinding?t.getKeyBinding:t=>this.keybindingService.lookupKeybinding(t.id)},zB),e.onDidCancel((()=>this.contextViewService.hideContextView(!0)),null,r),e.onDidBlur((()=>this.contextViewService.hideContextView(!0)),null,r);const c=Na(s);return r.add(Va(c,Ll.BLUR,(()=>this.contextViewService.hideContextView(!0)))),r.add(Va(c,Ll.MOUSE_DOWN,(t=>{if(t.defaultPrevented)return;const i=new tc(c,t);let e=i.target;if(!i.rightButton){for(;e;){if(e===s)return;e=e.parentElement}this.contextViewService.hideContextView(!0)}}))),Ji(r,e)},focus:()=>{null==e||e.focus(!!t.autoSelectFirstItem)},onHide:i=>{var e,s,n;null===(e=t.onHide)||void 0===e||e.call(t,!!i),this.block&&(this.block.remove(),this.block=null),null===(s=this.blockDisposable)||void 0===s||s.dispose(),this.blockDisposable=null,this.lastContainer&&(pl()===this.lastContainer||al(pl(),this.lastContainer))&&(null===(n=this.focusToReturn)||void 0===n||n.focus()),this.lastContainer=null}},s,!!s)}onActionRun(t,i){i&&this.telemetryService.publicLog2("workbenchActionExecuted",{id:t.action.id,from:"contextMenu"}),this.contextViewService.hideContextView(!1)}onDidActionRun(t){t.error&&!ji(t.error)&&this.notificationService.error(t.error)}}var cP=function(t,i){return function(e,s){i(e,s,t)}};let aP=class extends te{get contextMenuHandler(){return this._contextMenuHandler||(this._contextMenuHandler=new hP(this.contextViewService,this.telemetryService,this.notificationService,this.keybindingService)),this._contextMenuHandler}constructor(t,i,e,s,n,o){super(),this.telemetryService=t,this.notificationService=i,this.contextViewService=e,this.keybindingService=s,this.menuService=n,this.contextKeyService=o,this._contextMenuHandler=void 0,this._onDidShowContextMenu=this._store.add(new de),this._onDidHideContextMenu=this._store.add(new de)}configure(t){this.contextMenuHandler.configure(t)}showContextMenu(t){t=lP.transform(t,this.menuService,this.contextKeyService),this.contextMenuHandler.showContextMenu({...t,onHide:i=>{var e;null===(e=t.onHide)||void 0===e||e.call(t,i),this._onDidHideContextMenu.fire()}}),Gl.getInstance().resetKeyStatus(),this._onDidShowContextMenu.fire()}};var lP,uP;aP=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([cP(0,Wh),cP(1,oT),cP(2,aI),cP(3,oC),cP(4,Oh),cP(5,ah)],aP),function(t){t.transform=function(t,i,e){if(!((s=t)&&s.menuId instanceof Rh))return t;var s;const{menuId:n,menuActionOptions:o,contextKeyService:r}=t;return{...t,getActions:()=>{const s=[];if(n){const t=i.createMenu(n,null!=r?r:e);!function(t,i,e){const s=t.getActions(i),n=Gl.getInstance();qB(s,e,n.keyStatus.altKey||(xt||St)&&n.keyStatus.shiftKey,(t=>"navigation"===t))}(t,o,s),t.dispose()}return t.getActions?vr.join(t.getActions(),s):s}}}}(lP||(lP={})),function(t){t[t.API=0]="API",t[t.USER=1]="USER"}(uP||(uP={}));const dP=dr("openerService");var fP=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},pP=function(t,i){return function(e,s){i(e,s,t)}};let gP=class{constructor(t){this._commandService=t}async open(t,i){if(!xa(t,ka.command))return!1;if(!(null==i?void 0:i.allowCommands))return!0;if("string"==typeof t&&(t=ms.parse(t)),Array.isArray(i.allowCommands)&&!i.allowCommands.includes(t.path))return!0;let e=[];try{e=iN(decodeURIComponent(t.query))}catch(i){try{e=iN(t.query)}catch(t){}}return Array.isArray(e)||(e=[e]),await this._commandService.executeCommand(t.path,...e),!0}};gP=fP([pP(0,Sr)],gP);let mP=class{constructor(t){this._editorService=t}async open(t,i){"string"==typeof t&&(t=ms.parse(t));const{selection:e,uri:s}=function(t){let i;const e=/^L?(\d+)(?:,(\d+))?(-L?(\d+)(?:,(\d+))?)?/.exec(t.fragment);return e&&(i={startLineNumber:parseInt(e[1]),startColumn:e[2]?parseInt(e[2]):1,endLineNumber:e[4]?parseInt(e[4]):void 0,endColumn:e[4]?e[5]?parseInt(e[5]):1:void 0},t=t.with({fragment:""})),{selection:i,uri:t}}(t);return(t=s).scheme===ka.file&&(t=CA(t)),await this._editorService.openCodeEditor({resource:t,options:{selection:e,source:(null==i?void 0:i.fromUserGesture)?uP.USER:uP.API,...null==i?void 0:i.editorOptions}},this._editorService.getFocusedCodeEditor(),null==i?void 0:i.openToSide),!0}};mP=fP([pP(0,fr)],mP);let wP=class{constructor(t,i){this._openers=new Ut,this._validators=new Ut,this._resolvers=new Ut,this._resolvedUriTargets=new zp((t=>t.with({path:null,fragment:null,query:null}).toString())),this._externalOpeners=new Ut,this._defaultExternalOpener={openExternal:async t=>(Ca(t,ka.http,ka.https)?Hl(t):$n.location.href=t,!0)},this._openers.push({open:async(t,i)=>!(!(null==i?void 0:i.openExternal)&&!Ca(t,ka.mailto,ka.http,ka.https,ka.vsls)||(await this._doOpenExternal(t,i),0))}),this._openers.push(new gP(i)),this._openers.push(new mP(t))}registerOpener(t){return{dispose:this._openers.unshift(t)}}async open(t,i){var e;const s="string"==typeof t?ms.parse(t):t,n=null!==(e=this._resolvedUriTargets.get(s))&&void 0!==e?e:t;for(const t of this._validators)if(!await t.shouldOpen(n,i))return!1;for(const e of this._openers)if(await e.open(t,i))return!0;return!1}async resolveExternalUri(t,i){for(const e of this._resolvers)try{const s=await e.resolveExternalUri(t,i);if(s)return this._resolvedUriTargets.has(s.resolved)||this._resolvedUriTargets.set(s.resolved,t),s}catch(t){}throw new Error("Could not resolve external URI: "+t.toString())}async _doOpenExternal(t,i){const e="string"==typeof t?ms.parse(t):t;let s,n;try{s=(await this.resolveExternalUri(e,i)).resolved}catch(t){s=e}if(n="string"==typeof t&&e.toString()===s.toString()?t:encodeURI(s.toString(!0)),null==i?void 0:i.allowContributedOpeners){const t="string"==typeof(null==i?void 0:i.allowContributedOpeners)?null==i?void 0:i.allowContributedOpeners:void 0;for(const i of this._externalOpeners)if(await i.openExternal(n,{sourceUri:e,preferredOpenerId:t},ke.None))return!0}return this._defaultExternalOpener.openExternal(n,{sourceUri:e},ke.None)}dispose(){this._validators.clear()}};wP=fP([pP(0,fr),pP(1,Sr)],wP);const vP=dr("editorWorkerService");var bP,yP;!function(t){t[t.Hint=1]="Hint",t[t.Info=2]="Info",t[t.Warning=4]="Warning",t[t.Error=8]="Error"}(bP||(bP={})),function(t){t.compare=function(t,i){return i-t};const i=Object.create(null);i[t.Error]=ot(0,"Error"),i[t.Warning]=ot(0,"Warning"),i[t.Info]=ot(0,"Info"),t.toString=function(t){return i[t]||""},t.fromSeverity=function(i){switch(i){case sT.Error:return t.Error;case sT.Warning:return t.Warning;case sT.Info:return t.Info;case sT.Ignore:return t.Hint}},t.toSeverity=function(i){switch(i){case t.Error:return sT.Error;case t.Warning:return sT.Warning;case t.Info:return sT.Info;case t.Hint:return sT.Ignore}}}(bP||(bP={})),function(t){const i="";function e(t,e){const s=[i];return s.push(t.source?t.source.replace("¦","\\¦"):i),s.push(t.code?"string"==typeof t.code?t.code.replace("¦","\\¦"):t.code.value.replace("¦","\\¦"):i),s.push(null!=t.severity?bP.toString(t.severity):i),s.push(t.message&&e?t.message.replace("¦","\\¦"):i),s.push(null!=t.startLineNumber?t.startLineNumber.toString():i),s.push(null!=t.startColumn?t.startColumn.toString():i),s.push(null!=t.endLineNumber?t.endLineNumber.toString():i),s.push(null!=t.endColumn?t.endColumn.toString():i),s.push(i),s.join("¦")}t.makeKey=function(t){return e(t,!0)},t.makeKeyOptionalMessage=e}(yP||(yP={}));const kP=dr("markerService");var xP=function(t,i){return function(e,s){i(e,s,t)}};let CP=class extends te{constructor(t,i){super(),this._markerService=i,this._onDidChangeMarker=this._register(new de),this._markerDecorations=new zp,t.getModels().forEach((t=>this._onModelAdded(t))),this._register(t.onModelAdded(this._onModelAdded,this)),this._register(t.onModelRemoved(this._onModelRemoved,this)),this._register(this._markerService.onMarkerChanged(this._handleMarkerChange,this))}dispose(){super.dispose(),this._markerDecorations.forEach((t=>t.dispose())),this._markerDecorations.clear()}getMarker(t,i){const e=this._markerDecorations.get(t);return e&&e.getMarker(i)||null}_handleMarkerChange(t){t.forEach((t=>{const i=this._markerDecorations.get(t);i&&this._updateDecorations(i)}))}_onModelAdded(t){const i=new SP(t);this._markerDecorations.set(t.uri,i),this._updateDecorations(i)}_onModelRemoved(t){var i;const e=this._markerDecorations.get(t.uri);e&&(e.dispose(),this._markerDecorations.delete(t.uri)),t.uri.scheme!==ka.inMemory&&t.uri.scheme!==ka.internal&&t.uri.scheme!==ka.vscode||null===(i=this._markerService)||void 0===i||i.read({resource:t.uri}).map((t=>t.owner)).forEach((i=>this._markerService.remove(i,[t.uri])))}_updateDecorations(t){const i=this._markerService.read({resource:t.model.uri,take:500});t.update(i)&&this._onDidChangeMarker.fire(t.model)}};CP=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([xP(0,pr),xP(1,kP)],CP);class SP extends te{constructor(t){super(),this.model=t,this._map=new Up,this._register(Yi((()=>{this.model.deltaDecorations([...this._map.values()],[]),this._map.clear()})))}update(t){const{added:i,removed:e}=function(t,i){const e=[],s=[];for(const s of t)i.has(s)||e.push(s);for(const e of i)t.has(e)||s.push(e);return{removed:e,added:s}}(new Set(this._map.keys()),new Set(t));if(0===i.length&&0===e.length)return!1;const s=e.map((t=>this._map.get(t))),n=i.map((t=>({range:this._createDecorationRange(this.model,t),options:this._createDecorationOption(t)}))),o=this.model.deltaDecorations(s,n);for(const t of e)this._map.delete(t);for(let t=0;t=i)return e;const s=t.getWordAtPosition(e.getStartPosition());s&&(e=new Ms(e.startLineNumber,s.startColumn,e.endLineNumber,s.endColumn))}else if(i.endColumn===Number.MAX_VALUE&&1===i.startColumn&&e.startLineNumber===e.endLineNumber){const s=t.getLineFirstNonWhitespaceColumn(i.startLineNumber);s=0}}var DP,EP=function(t,i){return function(e,s){i(e,s,t)}};function AP(t){return t.toString()}class MP{constructor(t,i,e){this.model=t,this._modelEventListeners=new Xi,this.model=t,this._modelEventListeners.add(t.onWillDispose((()=>i(t)))),this._modelEventListeners.add(t.onDidChangeLanguage((i=>e(t,i))))}dispose(){this._modelEventListeners.dispose()}}const LP=St||Ct?1:2;class FP{constructor(t,i,e,s,n,o,r,h){this.uri=t,this.initialUndoRedoSnapshot=i,this.time=e,this.sharesUndoRedoStack=s,this.heapSize=n,this.sha1=o,this.versionId=r,this.alternativeVersionId=h}}let TP=DP=class extends te{constructor(t,i,e,s,n){super(),this._configurationService=t,this._resourcePropertiesService=i,this._undoRedoService=e,this._languageService=s,this._languageConfigurationService=n,this._onModelAdded=this._register(new de),this.onModelAdded=this._onModelAdded.event,this._onModelRemoved=this._register(new de),this.onModelRemoved=this._onModelRemoved.event,this._onModelModeChanged=this._register(new de),this.onModelLanguageChanged=this._onModelModeChanged.event,this._modelCreationOptionsByLanguageAndResource=Object.create(null),this._models={},this._disposedModels=new Map,this._disposedModelsHeapSize=0,this._register(this._configurationService.onDidChangeConfiguration((t=>this._updateModelOptions(t)))),this._updateModelOptions(void 0)}static _readModelOptions(t,i){var e;let s=zt.tabSize;if(t.editor&&void 0!==t.editor.tabSize){const i=parseInt(t.editor.tabSize,10);isNaN(i)||(s=i),s<1&&(s=1)}let n="tabSize";if(t.editor&&void 0!==t.editor.indentSize&&"tabSize"!==t.editor.indentSize){const i=parseInt(t.editor.indentSize,10);isNaN(i)||(n=Math.max(i,1))}let o=zt.insertSpaces;t.editor&&void 0!==t.editor.insertSpaces&&(o="false"!==t.editor.insertSpaces&&Boolean(t.editor.insertSpaces));let r=LP;const h=t.eol;"\r\n"===h?r=2:"\n"===h&&(r=1);let c=zt.trimAutoWhitespace;t.editor&&void 0!==t.editor.trimAutoWhitespace&&(c="false"!==t.editor.trimAutoWhitespace&&Boolean(t.editor.trimAutoWhitespace));let a=zt.detectIndentation;t.editor&&void 0!==t.editor.detectIndentation&&(a="false"!==t.editor.detectIndentation&&Boolean(t.editor.detectIndentation));let l=zt.largeFileOptimizations;t.editor&&void 0!==t.editor.largeFileOptimizations&&(l="false"!==t.editor.largeFileOptimizations&&Boolean(t.editor.largeFileOptimizations));let u=zt.bracketPairColorizationOptions;return(null===(e=t.editor)||void 0===e?void 0:e.bracketPairColorization)&&"object"==typeof t.editor.bracketPairColorization&&(u={enabled:!!t.editor.bracketPairColorization.enabled,independentColorPoolPerBracketType:!!t.editor.bracketPairColorization.independentColorPoolPerBracketType}),{isForSimpleWidget:i,tabSize:s,indentSize:n,insertSpaces:o,detectIndentation:a,defaultEOL:r,trimAutoWhitespace:c,largeFileOptimizations:l,bracketPairColorizationOptions:u}}_getEOL(t,i){if(t)return this._resourcePropertiesService.getEOL(t,i);const e=this._configurationService.getValue("files.eol",{overrideIdentifier:i});return e&&"string"==typeof e&&"auto"!==e?e:3===It||2===It?"\n":"\r\n"}_shouldRestoreUndoStack(){const t=this._configurationService.getValue("files.restoreUndoStack");return"boolean"!=typeof t||t}getCreationOptions(t,i,e){const s="string"==typeof t?t:t.languageId;let n=this._modelCreationOptionsByLanguageAndResource[s+i];if(!n){const t=this._configurationService.getValue("editor",{overrideIdentifier:s,resource:i}),o=this._getEOL(i,s);n=DP._readModelOptions({editor:t,eol:o},e),this._modelCreationOptionsByLanguageAndResource[s+i]=n}return n}_updateModelOptions(t){const i=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);const e=Object.keys(this._models);for(let s=0,n=e.length;st){const i=[];for(this._disposedModels.forEach((t=>{t.sharesUndoRedoStack||i.push(t)})),i.sort(((t,i)=>t.time-i.time));i.length>0&&this._disposedModelsHeapSize>t;){const t=i.shift();this._removeDisposedModel(t.uri),null!==t.initialUndoRedoSnapshot&&this._undoRedoService.restoreSnapshot(t.initialUndoRedoSnapshot)}}}_createModelData(t,i,e,s){const n=this.getCreationOptions(i,e,s),o=new wL(t,i,n,e,this._undoRedoService,this._languageService,this._languageConfigurationService);if(e&&this._disposedModels.has(AP(e))){const t=this._removeDisposedModel(e),i=this._undoRedoService.getElements(e),s=this._getSHA1Computer(),n=!!s.canComputeSHA1(o)&&s.computeSHA1(o)===t.sha1;if(n||t.sharesUndoRedoStack){for(const t of i.past)IA(t)&&t.matchesResource(e)&&t.setModel(o);for(const t of i.future)IA(t)&&t.matchesResource(e)&&t.setModel(o);this._undoRedoService.setElementsValidFlag(e,!0,(t=>IA(t)&&t.matchesResource(e))),n&&(o._overwriteVersionId(t.versionId),o._overwriteAlternativeVersionId(t.alternativeVersionId),o._overwriteInitialUndoRedoSnapshot(t.initialUndoRedoSnapshot))}else null!==t.initialUndoRedoSnapshot&&this._undoRedoService.restoreSnapshot(t.initialUndoRedoSnapshot)}const r=AP(o.uri);if(this._models[r])throw new Error("ModelService: Cannot add model because it already exists!");const h=new MP(o,(t=>this._onWillDispose(t)),((t,i)=>this._onDidChangeLanguage(t,i)));return this._models[r]=h,h}createModel(t,i,e,s=!1){let n;return n=this._createModelData(t,i||Ud,e,s),this._onModelAdded.fire(n.model),n.model}getModels(){const t=[],i=Object.keys(this._models);for(let e=0,s=i.length;e0||i.future.length>0){for(const e of i.past)IA(e)&&e.matchesResource(t.uri)&&(n=!0,o+=e.heapSize(t.uri),e.setModel(t.uri));for(const e of i.future)IA(e)&&e.matchesResource(t.uri)&&(n=!0,o+=e.heapSize(t.uri),e.setModel(t.uri))}}const r=DP.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK,h=this._getSHA1Computer();if(n)if(s||!(o>r)&&h.canComputeSHA1(t))this._ensureDisposedModelsHeapSize(r-o),this._undoRedoService.setElementsValidFlag(t.uri,!1,(i=>IA(i)&&i.matchesResource(t.uri))),this._insertDisposedModel(new FP(t.uri,e.model.getInitialUndoRedoSnapshot(),Date.now(),s,o,h.computeSHA1(t),t.getVersionId(),t.getAlternativeVersionId()));else{const t=e.model.getInitialUndoRedoSnapshot();null!==t&&this._undoRedoService.restoreSnapshot(t)}else if(!s){const t=e.model.getInitialUndoRedoSnapshot();null!==t&&this._undoRedoService.restoreSnapshot(t)}delete this._models[i],e.dispose(),delete this._modelCreationOptionsByLanguageAndResource[t.getLanguageId()+t.uri],this._onModelRemoved.fire(t)}_onDidChangeLanguage(t,i){const e=i.oldLanguage,s=t.getLanguageId(),n=this.getCreationOptions(e,t.uri,t.isForSimpleWidget),o=this.getCreationOptions(s,t.uri,t.isForSimpleWidget);DP._setModelOptionsForModel(t,o,n),this._onModelModeChanged.fire({model:t,oldLanguageId:e})}_getSHA1Computer(){return new RP}};TP.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20971520,TP=DP=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([EP(0,pd),EP(1,kg),EP(2,hL),EP(3,yd),EP(4,Xd)],TP);class RP{canComputeSHA1(t){return t.getValueLength()<=RP.MAX_MODEL_SIZE}computeSHA1(t){const i=new _a,e=t.createSnapshot();let s;for(;s=e.read();)i.update(s);return i.digest()}}RP.MAX_MODEL_SIZE=10485760;class OP{get templateId(){return this.renderer.templateId}constructor(t,i){this.renderer=t,this.modelProvider=i}renderTemplate(t){return{data:this.renderer.renderTemplate(t),disposable:te.None}}renderElement(t,i,e,s){var n;if(null===(n=e.disposable)||void 0===n||n.dispose(),!e.data)return;const o=this.modelProvider();if(o.isResolved(t))return this.renderer.renderElement(o.get(t),t,e.data,s);const r=new Ce,h=o.resolve(t,r.token);e.disposable={dispose:()=>r.cancel()},this.renderer.renderPlaceholder(t,e.data),h.then((i=>this.renderer.renderElement(i,t,e.data,s)))}disposeTemplate(t){t.disposable&&(t.disposable.dispose(),t.disposable=void 0),t.data&&(this.renderer.disposeTemplate(t.data),t.data=void 0)}}class IP{constructor(t,i){this.modelProvider=t,this.accessibilityProvider=i}getWidgetAriaLabel(){return this.accessibilityProvider.getWidgetAriaLabel()}getAriaLabel(t){const i=this.modelProvider();return i.isResolved(t)?this.accessibilityProvider.getAriaLabel(i.get(t)):null}}class _P{constructor(t,i,e,s,n={}){const o=()=>this.model,r=s.map((t=>new OP(t,o)));this.list=new aB(t,i,e,r,function(t,i){return{...i,accessibilityProvider:i.accessibilityProvider&&new IP(t,i.accessibilityProvider)}}(o,n))}updateOptions(t){this.list.updateOptions(t)}getHTMLElement(){return this.list.getHTMLElement()}get onDidFocus(){return this.list.onDidFocus}get widget(){return this.list}get onDidDispose(){return this.list.onDidDispose}get onMouseDblClick(){return he.map(this.list.onMouseDblClick,(({element:t,index:i,browserEvent:e})=>({element:void 0===t?void 0:this._model.get(t),index:i,browserEvent:e})))}get onPointer(){return he.map(this.list.onPointer,(({element:t,index:i,browserEvent:e})=>({element:void 0===t?void 0:this._model.get(t),index:i,browserEvent:e})))}get onDidChangeSelection(){return he.map(this.list.onDidChangeSelection,(({elements:t,indexes:i,browserEvent:e})=>({elements:t.map((t=>this._model.get(t))),indexes:i,browserEvent:e})))}get model(){return this._model}set model(t){this._model=t,this.list.splice(0,this.list.length,x(t.length))}getFocus(){return this.list.getFocus()}getSelection(){return this.list.getSelection()}getSelectedElements(){return this.getSelection().map((t=>this.model.get(t)))}style(t){this.list.style(t)}dispose(){this.list.dispose()}}var NP,BP=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r};!function(t){t.North="north",t.South="south",t.East="east",t.West="west"}(NP||(NP={}));const PP=new de,$P=new de;class WP{constructor(t){this.el=t,this.disposables=new Xi}get onPointerMove(){return this.disposables.add(new Bk(Na(this.el),"mousemove")).event}get onPointerUp(){return this.disposables.add(new Bk(Na(this.el),"mouseup")).event}dispose(){this.disposables.dispose()}}BP([nw],WP.prototype,"onPointerMove",null),BP([nw],WP.prototype,"onPointerUp",null);class jP{get onPointerMove(){return this.disposables.add(new Bk(this.el,ow.Change)).event}get onPointerUp(){return this.disposables.add(new Bk(this.el,ow.End)).event}constructor(t){this.el=t,this.disposables=new Xi}dispose(){this.disposables.dispose()}}BP([nw],jP.prototype,"onPointerMove",null),BP([nw],jP.prototype,"onPointerUp",null);class zP{get onPointerMove(){return this.factory.onPointerMove}get onPointerUp(){return this.factory.onPointerUp}constructor(t){this.factory=t}dispose(){}}BP([nw],zP.prototype,"onPointerMove",null),BP([nw],zP.prototype,"onPointerUp",null);const HP="pointer-events-disabled";class VP extends te{get state(){return this._state}get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}set state(t){this._state!==t&&(this.el.classList.toggle("disabled",0===t),this.el.classList.toggle("minimum",1===t),this.el.classList.toggle("maximum",2===t),this._state=t,this.onDidEnablementChange.fire(t))}set orthogonalStartSash(t){if(this._orthogonalStartSash!==t){if(this.orthogonalStartDragHandleDisposables.clear(),this.orthogonalStartSashDisposables.clear(),t){const i=i=>{this.orthogonalStartDragHandleDisposables.clear(),0!==i&&(this._orthogonalStartDragHandle=Ol(this.el,$l(".orthogonal-drag-handle.start")),this.orthogonalStartDragHandleDisposables.add(Yi((()=>this._orthogonalStartDragHandle.remove()))),this.orthogonalStartDragHandleDisposables.add(new Bk(this._orthogonalStartDragHandle,"mouseenter")).event((()=>VP.onMouseEnter(t)),void 0,this.orthogonalStartDragHandleDisposables),this.orthogonalStartDragHandleDisposables.add(new Bk(this._orthogonalStartDragHandle,"mouseleave")).event((()=>VP.onMouseLeave(t)),void 0,this.orthogonalStartDragHandleDisposables))};this.orthogonalStartSashDisposables.add(t.onDidEnablementChange.event(i,this)),i(t.state)}this._orthogonalStartSash=t}}set orthogonalEndSash(t){if(this._orthogonalEndSash!==t){if(this.orthogonalEndDragHandleDisposables.clear(),this.orthogonalEndSashDisposables.clear(),t){const i=i=>{this.orthogonalEndDragHandleDisposables.clear(),0!==i&&(this._orthogonalEndDragHandle=Ol(this.el,$l(".orthogonal-drag-handle.end")),this.orthogonalEndDragHandleDisposables.add(Yi((()=>this._orthogonalEndDragHandle.remove()))),this.orthogonalEndDragHandleDisposables.add(new Bk(this._orthogonalEndDragHandle,"mouseenter")).event((()=>VP.onMouseEnter(t)),void 0,this.orthogonalEndDragHandleDisposables),this.orthogonalEndDragHandleDisposables.add(new Bk(this._orthogonalEndDragHandle,"mouseleave")).event((()=>VP.onMouseLeave(t)),void 0,this.orthogonalEndDragHandleDisposables))};this.orthogonalEndSashDisposables.add(t.onDidEnablementChange.event(i,this)),i(t.state)}this._orthogonalEndSash=t}}constructor(t,i,e){super(),this.hoverDelay=300,this.hoverDelayer=this._register(new hc(this.hoverDelay)),this._state=3,this.onDidEnablementChange=this._register(new de),this._onDidStart=this._register(new de),this._onDidChange=this._register(new de),this._onDidReset=this._register(new de),this._onDidEnd=this._register(new de),this.orthogonalStartSashDisposables=this._register(new Xi),this.orthogonalStartDragHandleDisposables=this._register(new Xi),this.orthogonalEndSashDisposables=this._register(new Xi),this.orthogonalEndDragHandleDisposables=this._register(new Xi),this.onDidStart=this._onDidStart.event,this.onDidChange=this._onDidChange.event,this.onDidReset=this._onDidReset.event,this.onDidEnd=this._onDidEnd.event,this.linkedSash=void 0,this.el=Ol(t,$l(".monaco-sash")),e.orthogonalEdge&&this.el.classList.add(`orthogonal-edge-${e.orthogonalEdge}`),Ct&&this.el.classList.add("mac");const s=this._register(new Bk(this.el,"mousedown")).event;this._register(s((i=>this.onPointerStart(i,new WP(t))),this));const n=this._register(new Bk(this.el,"dblclick")).event;this._register(n(this.onPointerDoublePress,this));const o=this._register(new Bk(this.el,"mouseenter")).event;this._register(o((()=>VP.onMouseEnter(this))));const r=this._register(new Bk(this.el,"mouseleave")).event;this._register(r((()=>VP.onMouseLeave(this)))),this._register(rw.addTarget(this.el));const h=this._register(new Bk(this.el,ow.Start)).event;this._register(h((t=>this.onPointerStart(t,new jP(this.el))),this));const c=this._register(new Bk(this.el,ow.Tap)).event;let a;this._register(c((t=>{if(a)return clearTimeout(a),a=void 0,void this.onPointerDoublePress(t);clearTimeout(a),a=setTimeout((()=>a=void 0),250)}),this)),"number"==typeof e.size?(this.size=e.size,0===e.orientation?this.el.style.width=`${this.size}px`:this.el.style.height=`${this.size}px`):(this.size=4,this._register(PP.event((t=>{this.size=t,this.layout()})))),this._register($P.event((t=>this.hoverDelay=t))),this.layoutProvider=i,this.orthogonalStartSash=e.orthogonalStartSash,this.orthogonalEndSash=e.orthogonalEndSash,this.orientation=e.orientation||0,1===this.orientation?(this.el.classList.add("horizontal"),this.el.classList.remove("vertical")):(this.el.classList.remove("horizontal"),this.el.classList.add("vertical")),this.el.classList.toggle("debug",!1),this.layout()}onPointerStart(t,i){Fl(t);let e=!1;if(!t.__orthogonalSashEvent){const s=this.getOrthogonalSash(t);s&&(e=!0,t.__orthogonalSashEvent=!0,s.onPointerStart(t,new zP(i)))}if(this.linkedSash&&!t.__linkedSashEvent&&(t.__linkedSashEvent=!0,this.linkedSash.onPointerStart(t,new zP(i))),!this.state)return;const s=this.el.ownerDocument.getElementsByTagName("iframe");for(const t of s)t.classList.add(HP);const n=t.pageX,o=t.pageY,r=t.altKey,h={startX:n,currentX:n,startY:o,currentY:o,altKey:r};this.el.classList.add("active"),this._onDidStart.fire(h);const c=vl(this.el),a=()=>{let t="";t=e?"all-scroll":1===this.orientation?1===this.state?"s-resize":2===this.state?"n-resize":Ct?"row-resize":"ns-resize":1===this.state?"e-resize":2===this.state?"w-resize":Ct?"col-resize":"ew-resize",c.textContent=`* { cursor: ${t} !important; }`},l=new Xi;a(),e||this.onDidEnablementChange.event(a,null,l),i.onPointerMove((t=>{Fl(t,!1),this._onDidChange.fire({startX:n,currentX:t.pageX,startY:o,currentY:t.pageY,altKey:r})}),null,l),i.onPointerUp((t=>{Fl(t,!1),this.el.removeChild(c),this.el.classList.remove("active"),this._onDidEnd.fire(),l.dispose();for(const t of s)t.classList.remove(HP)}),null,l),l.add(i)}onPointerDoublePress(t){const i=this.getOrthogonalSash(t);i&&i._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()}static onMouseEnter(t,i=!1){t.el.classList.contains("active")?(t.hoverDelayer.cancel(),t.el.classList.add("hover")):t.hoverDelayer.trigger((()=>t.el.classList.add("hover")),t.hoverDelay).then(void 0,(()=>{})),!i&&t.linkedSash&&VP.onMouseEnter(t.linkedSash,!0)}static onMouseLeave(t,i=!1){t.hoverDelayer.cancel(),t.el.classList.remove("hover"),!i&&t.linkedSash&&VP.onMouseLeave(t.linkedSash,!0)}clearSashHoverState(){VP.onMouseLeave(this)}layout(){if(0===this.orientation){const t=this.layoutProvider;this.el.style.left=t.getVerticalSashLeft(this)-this.size/2+"px",t.getVerticalSashTop&&(this.el.style.top=t.getVerticalSashTop(this)+"px"),t.getVerticalSashHeight&&(this.el.style.height=t.getVerticalSashHeight(this)+"px")}else{const t=this.layoutProvider;this.el.style.top=t.getHorizontalSashTop(this)-this.size/2+"px",t.getHorizontalSashLeft&&(this.el.style.left=t.getHorizontalSashLeft(this)+"px"),t.getHorizontalSashWidth&&(this.el.style.width=t.getHorizontalSashWidth(this)+"px")}}getOrthogonalSash(t){var i;const e=null!==(i=t.initialTarget)&&void 0!==i?i:t.target;if(e&&e instanceof HTMLElement)return e.classList.contains("orthogonal-drag-handle")?e.classList.contains("start")?this.orthogonalStartSash:this.orthogonalEndSash:void 0}dispose(){super.dispose(),this.el.remove()}}const UP={separatorBorder:lg.transparent};class qP{set size(t){this._size=t}get size(){return this._size}get visible(){return void 0===this._cachedVisibleSize}setVisible(t,i){var e,s;if(t!==this.visible){t?(this.size=lR(this._cachedVisibleSize,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize="number"==typeof i?i:this.size,this.size=0),this.container.classList.toggle("visible",t);try{null===(s=(e=this.view).setVisible)||void 0===s||s.call(e,t)}catch(t){console.error("Splitview: Failed to set visible view"),console.error(t)}}}get minimumSize(){return this.visible?this.view.minimumSize:0}get viewMinimumSize(){return this.view.minimumSize}get maximumSize(){return this.visible?this.view.maximumSize:0}get viewMaximumSize(){return this.view.maximumSize}get priority(){return this.view.priority}get proportionalLayout(){var t;return null===(t=this.view.proportionalLayout)||void 0===t||t}get snap(){return!!this.view.snap}set enabled(t){this.container.style.pointerEvents=t?"":"none"}constructor(t,i,e,s){this.container=t,this.view=i,this.disposable=s,this._cachedVisibleSize=void 0,"number"==typeof e?(this._size=e,this._cachedVisibleSize=void 0,t.classList.add("visible")):(this._size=0,this._cachedVisibleSize=e.cachedVisibleSize)}layout(t,i){this.layoutContainer(t);try{this.view.layout(this.size,t,i)}catch(t){console.error("Splitview: Failed to layout view"),console.error(t)}}dispose(){this.disposable.dispose()}}class KP extends qP{layoutContainer(t){this.container.style.top=`${t}px`,this.container.style.height=`${this.size}px`}}class GP extends qP{layoutContainer(t){this.container.style.left=`${t}px`,this.container.style.width=`${this.size}px`}}var ZP,QP;!function(t){t[t.Idle=0]="Idle",t[t.Busy=1]="Busy"}(ZP||(ZP={})),function(t){t.Distribute={type:"distribute"},t.Split=function(t){return{type:"split",index:t}},t.Auto=function(t){return{type:"auto",index:t}},t.Invisible=function(t){return{type:"invisible",cachedVisibleSize:t}}}(QP||(QP={}));class JP extends te{get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}get startSnappingEnabled(){return this._startSnappingEnabled}get endSnappingEnabled(){return this._endSnappingEnabled}set orthogonalStartSash(t){for(const i of this.sashItems)i.sash.orthogonalStartSash=t;this._orthogonalStartSash=t}set orthogonalEndSash(t){for(const i of this.sashItems)i.sash.orthogonalEndSash=t;this._orthogonalEndSash=t}set startSnappingEnabled(t){this._startSnappingEnabled!==t&&(this._startSnappingEnabled=t,this.updateSashEnablement())}set endSnappingEnabled(t){this._endSnappingEnabled!==t&&(this._endSnappingEnabled=t,this.updateSashEnablement())}constructor(t,i={}){var e,s,n,o,r;super(),this.size=0,this._contentSize=0,this.proportions=void 0,this.viewItems=[],this.sashItems=[],this.state=ZP.Idle,this._onDidSashChange=this._register(new de),this._onDidSashReset=this._register(new de),this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this.onDidSashChange=this._onDidSashChange.event,this.onDidSashReset=this._onDidSashReset.event,this.orientation=null!==(e=i.orientation)&&void 0!==e?e:0,this.inverseAltBehavior=null!==(s=i.inverseAltBehavior)&&void 0!==s&&s,this.proportionalLayout=null===(n=i.proportionalLayout)||void 0===n||n,this.getSashOrthogonalSize=i.getSashOrthogonalSize,this.el=document.createElement("div"),this.el.classList.add("monaco-split-view2"),this.el.classList.add(0===this.orientation?"vertical":"horizontal"),t.appendChild(this.el),this.sashContainer=Ol(this.el,$l(".sash-container")),this.viewContainer=$l(".split-view-container"),this.scrollable=this._register(new xk({forceIntegerValues:!0,smoothScrollDuration:125,scheduleAtNextAnimationFrame:t=>Qa(Na(this.el),t)})),this.scrollableElement=this._register(new Fk(this.viewContainer,{vertical:0===this.orientation?null!==(o=i.scrollbarVisibility)&&void 0!==o?o:1:2,horizontal:1===this.orientation?null!==(r=i.scrollbarVisibility)&&void 0!==r?r:1:2},this.scrollable));const h=this._register(new Bk(this.viewContainer,"scroll")).event;this._register(h((()=>{const t=this.scrollableElement.getScrollPosition(),i=Math.abs(this.viewContainer.scrollLeft-t.scrollLeft)<=1?void 0:this.viewContainer.scrollLeft,e=Math.abs(this.viewContainer.scrollTop-t.scrollTop)<=1?void 0:this.viewContainer.scrollTop;void 0===i&&void 0===e||this.scrollableElement.setScrollPosition({scrollLeft:i,scrollTop:e})}))),this.onDidScroll=this.scrollableElement.onScroll,this._register(this.onDidScroll((t=>{t.scrollTopChanged&&(this.viewContainer.scrollTop=t.scrollTop),t.scrollLeftChanged&&(this.viewContainer.scrollLeft=t.scrollLeft)}))),Ol(this.el,this.scrollableElement.getDomNode()),this.style(i.styles||UP),i.descriptor&&(this.size=i.descriptor.size,i.descriptor.views.forEach(((t,i)=>{const e=H(t.visible)||t.visible?t.size:{type:"invisible",cachedVisibleSize:t.size};this.doAddView(t.view,e,i,!0)})),this._contentSize=this.viewItems.reduce(((t,i)=>t+i.size),0),this.saveProportions())}style(t){t.separatorBorder.isTransparent()?(this.el.classList.remove("separator-border"),this.el.style.removeProperty("--separator-border")):(this.el.classList.add("separator-border"),this.el.style.setProperty("--separator-border",t.separatorBorder.toString()))}addView(t,i,e=this.viewItems.length,s){this.doAddView(t,i,e,s)}layout(t,i){const e=Math.max(this.size,this._contentSize);if(this.size=t,this.layoutContext=i,this.proportions){let i=0;for(let e=0;e0&&(s.size=lR(Math.round(n*t/i),s.minimumSize,s.maximumSize))}}else{const i=x(this.viewItems.length),s=i.filter((t=>1===this.viewItems[t].priority)),n=i.filter((t=>2===this.viewItems[t].priority));this.resize(this.viewItems.length-1,t-e,void 0,s,n)}this.distributeEmptySpace(),this.layoutViews()}saveProportions(){this.proportionalLayout&&this._contentSize>0&&(this.proportions=this.viewItems.map((t=>t.proportionalLayout&&t.visible?t.size/this._contentSize:void 0)))}onSashStart({sash:t,start:i,alt:e}){for(const t of this.viewItems)t.enabled=!1;const s=this.sashItems.findIndex((i=>i.sash===t)),n=Ji(Va(this.el.ownerDocument.body,"keydown",(t=>o(this.sashDragState.current,t.altKey))),Va(this.el.ownerDocument.body,"keyup",(()=>o(this.sashDragState.current,!1)))),o=(t,i)=>{const e=this.viewItems.map((t=>t.size));let o,r,h=Number.NEGATIVE_INFINITY,c=Number.POSITIVE_INFINITY;if(this.inverseAltBehavior&&(i=!i),i)if(s===this.sashItems.length-1){const t=this.viewItems[s];h=(t.minimumSize-t.size)/2,c=(t.maximumSize-t.size)/2}else{const t=this.viewItems[s+1];h=(t.size-t.maximumSize)/2,c=(t.size-t.minimumSize)/2}if(!i){const t=x(s,-1),i=x(s+1,this.viewItems.length),n=t.reduce(((t,i)=>t+(this.viewItems[i].minimumSize-e[i])),0),h=t.reduce(((t,i)=>t+(this.viewItems[i].viewMaximumSize-e[i])),0),c=0===i.length?Number.POSITIVE_INFINITY:i.reduce(((t,i)=>t+(e[i]-this.viewItems[i].minimumSize)),0),a=0===i.length?Number.NEGATIVE_INFINITY:i.reduce(((t,i)=>t+(e[i]-this.viewItems[i].viewMaximumSize)),0),l=Math.max(n,a),u=Math.min(c,h),d=this.findFirstSnapIndex(t),f=this.findFirstSnapIndex(i);if("number"==typeof d){const t=this.viewItems[d],i=Math.floor(t.viewMinimumSize/2);o={index:d,limitDelta:t.visible?l-i:l+i,size:t.size}}if("number"==typeof f){const t=this.viewItems[f],i=Math.floor(t.viewMinimumSize/2);r={index:f,limitDelta:t.visible?u+i:u-i,size:t.size}}}this.sashDragState={start:t,current:t,index:s,sizes:e,minDelta:h,maxDelta:c,alt:i,snapBefore:o,snapAfter:r,disposable:n}};o(i,e)}onSashChange({current:t}){const{index:i,start:e,sizes:s,alt:n,minDelta:o,maxDelta:r,snapBefore:h,snapAfter:c}=this.sashDragState;this.sashDragState.current=t;const a=this.resize(i,t-e,s,void 0,void 0,o,r,h,c);if(n){const t=i===this.sashItems.length-1,e=this.viewItems.map((t=>t.size)),s=this.viewItems[t?i:i+1];this.resize(t?i-1:i+1,-a,e,void 0,void 0,s.size-s.maximumSize,s.size-s.minimumSize)}this.distributeEmptySpace(),this.layoutViews()}onSashEnd(t){this._onDidSashChange.fire(t),this.sashDragState.disposable.dispose(),this.saveProportions();for(const t of this.viewItems)t.enabled=!0}onViewChange(t,i){const e=this.viewItems.indexOf(t);e<0||e>=this.viewItems.length||(i=lR(i="number"==typeof i?i:t.size,t.minimumSize,t.maximumSize),this.inverseAltBehavior&&e>0?(this.resize(e-1,Math.floor((t.size-i)/2)),this.distributeEmptySpace(),this.layoutViews()):(t.size=i,this.relayout([e],void 0)))}resizeView(t,i){if(!(t<0||t>=this.viewItems.length)){if(this.state!==ZP.Idle)throw new Error("Cant modify splitview");this.state=ZP.Busy;try{const e=x(this.viewItems.length).filter((i=>i!==t)),s=[...e.filter((t=>1===this.viewItems[t].priority)),t],n=e.filter((t=>2===this.viewItems[t].priority)),o=this.viewItems[t];i=lR(i=Math.round(i),o.minimumSize,Math.min(o.maximumSize,this.size)),o.size=i,this.relayout(s,n)}finally{this.state=ZP.Idle}}}distributeViewSizes(){const t=[];let i=0;for(const e of this.viewItems)e.maximumSize-e.minimumSize>0&&(t.push(e),i+=e.size);const e=Math.floor(i/t.length);for(const i of t)i.size=lR(e,i.minimumSize,i.maximumSize);const s=x(this.viewItems.length),n=s.filter((t=>1===this.viewItems[t].priority)),o=s.filter((t=>2===this.viewItems[t].priority));this.relayout(n,o)}getViewSize(t){return t<0||t>=this.viewItems.length?-1:this.viewItems[t].size}doAddView(t,i,e=this.viewItems.length,s){if(this.state!==ZP.Idle)throw new Error("Cant modify splitview");this.state=ZP.Busy;try{const n=$l(".split-view-view");e===this.viewItems.length?this.viewContainer.appendChild(n):this.viewContainer.insertBefore(n,this.viewContainer.children.item(e));const o=t.onDidChange((t=>this.onViewChange(c,t))),r=Ji(o,Yi((()=>this.viewContainer.removeChild(n))));let h;"number"==typeof i?h=i:("auto"===i.type&&(i=this.areViewsDistributed()?{type:"distribute"}:{type:"split",index:i.index}),h="split"===i.type?this.getViewSize(i.index)/2:"invisible"===i.type?{cachedVisibleSize:i.cachedVisibleSize}:t.minimumSize);const c=0===this.orientation?new KP(n,t,h,r):new GP(n,t,h,r);if(this.viewItems.splice(e,0,c),this.viewItems.length>1){const t={orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash},i=0===this.orientation?new VP(this.sashContainer,{getHorizontalSashTop:t=>this.getSashPosition(t),getHorizontalSashWidth:this.getSashOrthogonalSize},{...t,orientation:1}):new VP(this.sashContainer,{getVerticalSashLeft:t=>this.getSashPosition(t),getVerticalSashHeight:this.getSashOrthogonalSize},{...t,orientation:0}),s=0===this.orientation?t=>({sash:i,start:t.startY,current:t.currentY,alt:t.altKey}):t=>({sash:i,start:t.startX,current:t.currentX,alt:t.altKey}),n=he.map(i.onDidStart,s)(this.onSashStart,this),o=he.map(i.onDidChange,s)(this.onSashChange,this),r=he.map(i.onDidEnd,(()=>this.sashItems.findIndex((t=>t.sash===i)))),h=r(this.onSashEnd,this),c=i.onDidReset((()=>{const t=this.sashItems.findIndex((t=>t.sash===i)),e=x(t,-1),s=x(t+1,this.viewItems.length),n=this.findFirstSnapIndex(e),o=this.findFirstSnapIndex(s);("number"!=typeof n||this.viewItems[n].visible)&&("number"!=typeof o||this.viewItems[o].visible)&&this._onDidSashReset.fire(t)})),a=Ji(n,o,h,c,i);this.sashItems.splice(e-1,0,{sash:i,disposable:a})}let a;n.appendChild(t.element),"number"!=typeof i&&"split"===i.type&&(a=[i.index]),s||this.relayout([e],a),s||"number"==typeof i||"distribute"!==i.type||this.distributeViewSizes()}finally{this.state=ZP.Idle}}relayout(t,i){const e=this.viewItems.reduce(((t,i)=>t+i.size),0);this.resize(this.viewItems.length-1,this.size-e,void 0,t,i),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}resize(t,i,e=this.viewItems.map((t=>t.size)),s,n,o=Number.NEGATIVE_INFINITY,r=Number.POSITIVE_INFINITY,h,c){if(t<0||t>=this.viewItems.length)return 0;const a=x(t,-1),l=x(t+1,this.viewItems.length);if(n)for(const t of n)S(a,t),S(l,t);if(s)for(const t of s)D(a,t),D(l,t);const u=a.map((t=>this.viewItems[t])),d=a.map((t=>e[t])),f=l.map((t=>this.viewItems[t])),p=l.map((t=>e[t])),g=a.reduce(((t,i)=>t+(this.viewItems[i].minimumSize-e[i])),0),m=a.reduce(((t,i)=>t+(this.viewItems[i].maximumSize-e[i])),0),w=0===l.length?Number.POSITIVE_INFINITY:l.reduce(((t,i)=>t+(e[i]-this.viewItems[i].minimumSize)),0),v=0===l.length?Number.NEGATIVE_INFINITY:l.reduce(((t,i)=>t+(e[i]-this.viewItems[i].maximumSize)),0),b=Math.max(g,v,o),y=Math.min(w,m,r);let k=!1;if(h){const t=this.viewItems[h.index],e=i>=h.limitDelta;k=e!==t.visible,t.setVisible(e,h.size)}if(!k&&c){const t=this.viewItems[c.index],e=it+i.size),0);let e=this.size-i;const s=x(this.viewItems.length-1,-1),n=s.filter((t=>1===this.viewItems[t].priority)),o=s.filter((t=>2===this.viewItems[t].priority));for(const t of o)S(s,t);for(const t of n)D(s,t);"number"==typeof t&&D(s,t);for(let t=0;0!==e&&tt+i.size),0);let t=0;for(const i of this.viewItems)i.layout(t,this.layoutContext),t+=i.size;this.sashItems.forEach((t=>t.sash.layout())),this.updateSashEnablement(),this.updateScrollableElement()}updateScrollableElement(){this.scrollableElement.setScrollDimensions(0===this.orientation?{height:this.size,scrollHeight:this._contentSize}:{width:this.size,scrollWidth:this._contentSize})}updateSashEnablement(){let t=!1;const i=this.viewItems.map((i=>t=i.size-i.minimumSize>0||t));t=!1;const e=this.viewItems.map((i=>t=i.maximumSize-i.size>0||t)),s=[...this.viewItems].reverse();t=!1;const n=s.map((i=>t=i.size-i.minimumSize>0||t)).reverse();t=!1;const o=s.map((i=>t=i.maximumSize-i.size>0||t)).reverse();let r=0;for(let t=0;t0||this.startSnappingEnabled)?1:"number"==typeof c&&!this.viewItems[c].visible&&i[t]&&(r0)return;if(!t.visible&&t.snap)return i}}areViewsDistributed(){let t,i;for(const e of this.viewItems)if(t=void 0===t?e.size:Math.min(t,e.size),i=void 0===i?e.size:Math.max(i,e.size),i-t>2)return!1;return!0}dispose(){var t;null===(t=this.sashDragState)||void 0===t||t.disposable.dispose(),Qi(this.viewItems),this.viewItems=[],this.sashItems.forEach((t=>t.disposable.dispose())),this.sashItems=[],super.dispose()}}class YP{constructor(t,i,e){this.columns=t,this.getColumnSize=e,this.templateId=YP.TemplateId,this.renderedTemplates=new Set;const s=new Map(i.map((t=>[t.templateId,t])));this.renderers=[];for(const i of t){const t=s.get(i.templateId);if(!t)throw new Error(`Table cell renderer for template id ${i.templateId} not found.`);this.renderers.push(t)}}renderTemplate(t){const i=Ol(t,$l(".monaco-table-tr")),e=[],s=[];for(let t=0;tnew XP(t,i))),h={size:r.reduce(((t,i)=>t+i.column.weight),0),views:r.map((t=>({size:t.column.weight,view:t})))};this.splitview=this.disposables.add(new JP(this.domNode,{orientation:1,scrollbarVisibility:2,getSashOrthogonalSize:()=>this.cachedHeight,descriptor:h})),this.splitview.el.style.height=`${e.headerRowHeight}px`,this.splitview.el.style.lineHeight=`${e.headerRowHeight}px`;const c=new YP(s,n,(t=>this.splitview.getViewSize(t)));var a;this.list=this.disposables.add(new aB(t,this.domNode,(a=e,{getHeight:t=>a.getHeight(t),getTemplateId:()=>YP.TemplateId}),[c],o)),he.any(...r.map((t=>t.onDidLayout)))((([t,i])=>c.layoutColumn(t,i)),null,this.disposables),this.splitview.onDidSashReset((t=>{const i=s.reduce(((t,i)=>t+i.weight),0);this.splitview.resizeView(t,s[t].weight/i*this.cachedWidth)}),null,this.disposables),this.styleElement=vl(this.domNode),this.style(eB)}updateOptions(t){this.list.updateOptions(t)}splice(t,i,e=[]){this.list.splice(t,i,e)}getHTMLElement(){return this.domNode}style(t){const i=[];i.push(`.monaco-table.${this.domId} > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\ttop: ${this.virtualDelegate.headerRowHeight+1}px;\n\t\t\theight: calc(100% - ${this.virtualDelegate.headerRowHeight}px);\n\t\t}`),this.styleElement.textContent=i.join("\n"),this.list.style(t)}getSelectedElements(){return this.list.getSelectedElements()}getSelection(){return this.list.getSelection()}getFocus(){return this.list.getFocus()}dispose(){this.disposables.dispose()}}t$.InstanceCount=0;class i$ extends pk{constructor(t){super(),this._onChange=this._register(new de),this.onChange=this._onChange.event,this._onKeyDown=this._register(new de),this.onKeyDown=this._onKeyDown.event,this._opts=t,this._checked=this._opts.isChecked;const i=["monaco-custom-toggle"];this._opts.icon&&(this._icon=this._opts.icon,i.push(...Cr.asClassNameArray(this._icon))),this._opts.actionClassName&&i.push(...this._opts.actionClassName.split(" ")),this._checked&&i.push("checked"),this.domNode=document.createElement("div"),this.domNode.title=this._opts.title,this.domNode.classList.add(...i),this._opts.notFocusable||(this.domNode.tabIndex=0),this.domNode.setAttribute("role","checkbox"),this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.setAttribute("aria-label",this._opts.title),this.applyStyles(),this.onclick(this.domNode,(t=>{this.enabled&&(this.checked=!this._checked,this._onChange.fire(!1),t.preventDefault())})),this._register(this.ignoreGesture(this.domNode)),this.onkeydown(this.domNode,(t=>{if(10===t.keyCode||3===t.keyCode)return this.checked=!this._checked,this._onChange.fire(!0),t.preventDefault(),void t.stopPropagation();this._onKeyDown.fire(t)}))}get enabled(){return"true"!==this.domNode.getAttribute("aria-disabled")}focus(){this.domNode.focus()}get checked(){return this._checked}set checked(t){this._checked=t,this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked),this.applyStyles()}width(){return 22}applyStyles(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder||"",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground||"inherit",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground||"")}enable(){this.domNode.setAttribute("aria-disabled",String(!1))}disable(){this.domNode.setAttribute("aria-disabled",String(!0))}}const e$=ot(0,"Match Case"),s$=ot(0,"Match Whole Word"),n$=ot(0,"Use Regular Expression");class o$ extends i${constructor(t){super({icon:Os.caseSensitive,title:e$+t.appendTitle,isChecked:t.isChecked,inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionForeground:t.inputActiveOptionForeground,inputActiveOptionBackground:t.inputActiveOptionBackground})}}class r$ extends i${constructor(t){super({icon:Os.wholeWord,title:s$+t.appendTitle,isChecked:t.isChecked,inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionForeground:t.inputActiveOptionForeground,inputActiveOptionBackground:t.inputActiveOptionBackground})}}class h$ extends i${constructor(t){super({icon:Os.regex,title:n$+t.appendTitle,isChecked:t.isChecked,inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionForeground:t.inputActiveOptionForeground,inputActiveOptionBackground:t.inputActiveOptionBackground})}}class c${constructor(t,i=0,e=t.length,s=i-1){this.items=t,this.start=i,this.end=e,this.index=s}current(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]}next(){return this.index=Math.min(this.index+1,this.end),this.current()}previous(){return this.index=Math.max(this.index-1,this.start-1),this.current()}first(){return this.index=this.start,this.current()}last(){return this.index=this.end-1,this.current()}}class a${constructor(t=[],i=10){this._initialize(t),this._limit=i,this._onChange()}getHistory(){return this._elements}add(t){this._history.delete(t),this._history.add(t),this._onChange()}next(){return this._navigator.next()}previous(){return 0!==this._currentPosition()?this._navigator.previous():null}current(){return this._navigator.current()}first(){return this._navigator.first()}last(){return this._navigator.last()}isLast(){return this._currentPosition()>=this._elements.length-1}isNowhere(){return null===this._navigator.current()}has(t){return this._history.has(t)}_onChange(){this._reduceToLimit();const t=this._elements;this._navigator=new c$(t,0,t.length,t.length)}_reduceToLimit(){const t=this._elements;t.length>this._limit&&this._initialize(t.slice(t.length-this._limit))}_currentPosition(){const t=this._navigator.current();return t?this._elements.indexOf(t):-1}_initialize(t){this._history=new Set;for(const i of t)this._history.add(i)}get _elements(){const t=[];return this._history.forEach((i=>t.push(i))),t}}const l$=$l;class u$ extends pk{constructor(t,i,e){var s;super(),this.state="idle",this.maxHeight=Number.POSITIVE_INFINITY,this._onDidChange=this._register(new de),this.onDidChange=this._onDidChange.event,this._onDidHeightChange=this._register(new de),this.onDidHeightChange=this._onDidHeightChange.event,this.contextViewProvider=i,this.options=e,this.message=null,this.placeholder=this.options.placeholder||"",this.tooltip=null!==(s=this.options.tooltip)&&void 0!==s?s:this.placeholder||"",this.ariaLabel=this.options.ariaLabel||"",this.options.validationOptions&&(this.validation=this.options.validationOptions.validation),this.element=Ol(t,l$(".monaco-inputbox.idle"));const n=this.options.flexibleHeight?"textarea":"input",o=Ol(this.element,l$(".ibwrapper"));if(this.input=Ol(o,l$(n+".input.empty")),this.input.setAttribute("autocorrect","off"),this.input.setAttribute("autocapitalize","off"),this.input.setAttribute("spellcheck","false"),this.onfocus(this.input,(()=>this.element.classList.add("synthetic-focus"))),this.onblur(this.input,(()=>this.element.classList.remove("synthetic-focus"))),this.options.flexibleHeight){this.maxHeight="number"==typeof this.options.flexibleMaxHeight?this.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,this.mirror=Ol(o,l$("div.mirror")),this.mirror.innerText=" ",this.scrollableElement=new Lk(this.element,{vertical:1}),this.options.flexibleWidth&&(this.input.setAttribute("wrap","off"),this.mirror.style.whiteSpace="pre",this.mirror.style.wordWrap="initial"),Ol(t,this.scrollableElement.getDomNode()),this._register(this.scrollableElement),this._register(this.scrollableElement.onScroll((t=>this.input.scrollTop=t.scrollTop)));const i=this._register(new Bk(t.ownerDocument,"selectionchange")),e=he.filter(i.event,(()=>{const i=t.ownerDocument.getSelection();return(null==i?void 0:i.anchorNode)===o}));this._register(e(this.updateScrollDimensions,this)),this._register(this.onDidHeightChange(this.updateScrollDimensions,this))}else this.input.type=this.options.type||"text",this.input.setAttribute("wrap","off");this.ariaLabel&&this.input.setAttribute("aria-label",this.ariaLabel),this.placeholder&&!this.options.showPlaceholderOnFocus&&this.setPlaceHolder(this.placeholder),this.tooltip&&this.setTooltip(this.tooltip),this.oninput(this.input,(()=>this.onValueChange())),this.onblur(this.input,(()=>this.onBlur())),this.onfocus(this.input,(()=>this.onFocus())),this._register(this.ignoreGesture(this.input)),setTimeout((()=>this.updateMirror()),0),this.options.actions&&(this.actionbar=this._register(new YB(this.element)),this.actionbar.push(this.options.actions,{icon:!0,label:!1})),this.applyStyles()}onBlur(){this._hideMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder","")}onFocus(){this._showMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder",this.placeholder||"")}setPlaceHolder(t){this.placeholder=t,this.input.setAttribute("placeholder",t)}setTooltip(t){this.tooltip=t,this.input.title=t}get inputElement(){return this.input}get value(){return this.input.value}set value(t){this.input.value!==t&&(this.input.value=t,this.onValueChange())}get height(){return"number"==typeof this.cachedHeight?this.cachedHeight:cl(this.element)}focus(){this.input.focus()}blur(){this.input.blur()}hasFocus(){return gl(this.input)}select(t=null){this.input.select(),t&&(this.input.setSelectionRange(t.start,t.end),t.end===this.input.value.length&&(this.input.scrollLeft=this.input.scrollWidth))}isSelectionAtEnd(){return this.input.selectionEnd===this.input.value.length&&this.input.selectionStart===this.input.selectionEnd}enable(){this.input.removeAttribute("disabled")}disable(){this.blur(),this.input.disabled=!0,this._hideMessage()}set paddingRight(t){this.input.style.width=`calc(100% - ${t}px)`,this.mirror&&(this.mirror.style.paddingRight=t+"px")}updateScrollDimensions(){if("number"!=typeof this.cachedContentHeight||"number"!=typeof this.cachedHeight||!this.scrollableElement)return;const t=this.input.scrollTop;this.scrollableElement.setScrollDimensions({scrollHeight:this.cachedContentHeight,height:this.cachedHeight}),this.scrollableElement.setScrollPosition({scrollTop:t})}showMessage(t,i){if("open"===this.state&&it(this.message,t))return;this.message=t,this.element.classList.remove("idle"),this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add(this.classForType(t.type));const e=this.stylesForType(this.message.type);this.element.style.border=`1px solid ${ql(e.border,"transparent")}`,this.message.content&&(this.hasFocus()||i)&&this._showMessage()}hideMessage(){this.message=null,this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add("idle"),this._hideMessage(),this.applyStyles()}validate(){let t=null;return this.validation&&(t=this.validation(this.value),t?(this.inputElement.setAttribute("aria-invalid","true"),this.showMessage(t)):this.inputElement.hasAttribute("aria-invalid")&&(this.inputElement.removeAttribute("aria-invalid"),this.hideMessage())),null==t?void 0:t.type}stylesForType(t){const i=this.options.inputBoxStyles;switch(t){case 1:return{border:i.inputValidationInfoBorder,background:i.inputValidationInfoBackground,foreground:i.inputValidationInfoForeground};case 2:return{border:i.inputValidationWarningBorder,background:i.inputValidationWarningBackground,foreground:i.inputValidationWarningForeground};default:return{border:i.inputValidationErrorBorder,background:i.inputValidationErrorBackground,foreground:i.inputValidationErrorForeground}}}classForType(t){switch(t){case 1:return"info";case 2:return"warning";default:return"error"}}_showMessage(){if(!this.contextViewProvider||!this.message)return;let t;const i=()=>t.style.width=ol(this.element)+"px";let e;this.contextViewProvider.showContextView({getAnchor:()=>this.element,anchorAlignment:1,render:e=>{var s,n;if(!this.message)return null;t=Ol(e,l$(".monaco-inputbox-container")),i();const o={inline:!0,className:"monaco-inputbox-message"},r=this.message.formatContent?H_(this.message.content,o):function(t,i={}){const e=V_(i);return e.textContent=t,e}(this.message.content,o);r.classList.add(this.classForType(this.message.type));const h=this.stylesForType(this.message.type);return r.style.backgroundColor=null!==(s=h.background)&&void 0!==s?s:"",r.style.color=null!==(n=h.foreground)&&void 0!==n?n:"",r.style.border=h.border?`1px solid ${h.border}`:"",Ol(t,r),null},onHide:()=>{this.state="closed"},layout:i}),e=ot(0,3===this.message.type?"Error: {0}":2===this.message.type?"Warning: {0}":"Info: {0}",this.message.content),Pm(e),this.state="open"}_hideMessage(){this.contextViewProvider&&("open"===this.state&&this.contextViewProvider.hideContextView(),this.state="idle")}onValueChange(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),this.input.classList.toggle("empty",!this.value),"open"===this.state&&this.contextViewProvider&&this.contextViewProvider.layout()}updateMirror(){if(!this.mirror)return;const t=this.value,i=10===t.charCodeAt(t.length-1)?" ":"";(t+i).replace(/\u000c/g,"")?this.mirror.textContent=t+i:this.mirror.innerText=" ",this.layout()}applyStyles(){var t,i,e;const s=this.options.inputBoxStyles,n=null!==(t=s.inputBackground)&&void 0!==t?t:"",o=null!==(i=s.inputForeground)&&void 0!==i?i:"",r=null!==(e=s.inputBorder)&&void 0!==e?e:"";this.element.style.backgroundColor=n,this.element.style.color=o,this.input.style.backgroundColor="inherit",this.input.style.color=o,this.element.style.border=`1px solid ${ql(r,"transparent")}`}layout(){if(!this.mirror)return;const t=this.cachedContentHeight;this.cachedContentHeight=cl(this.mirror),t!==this.cachedContentHeight&&(this.cachedHeight=Math.min(this.cachedContentHeight,this.maxHeight),this.input.style.height=this.cachedHeight+"px",this._onDidHeightChange.fire(this.cachedContentHeight))}insertAtCursor(t){const i=this.inputElement,e=i.selectionStart,s=i.selectionEnd,n=i.value;null!==e&&null!==s&&(this.value=n.substr(0,e)+t+n.substr(s),i.setSelectionRange(e+1,e+1),this.layout())}dispose(){var t;this._hideMessage(),this.message=null,null===(t=this.actionbar)||void 0===t||t.dispose(),super.dispose()}}class d$ extends u${constructor(t,i,e){const s=ot(0," or {0} for history","⇅"),n=ot(0," ({0} for history)","⇅");super(t,i,e),this._onDidFocus=this._register(new de),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new de),this.onDidBlur=this._onDidBlur.event,this.history=new a$(e.history,100);const o=()=>{if(e.showHistoryHint&&e.showHistoryHint()&&!this.placeholder.endsWith(s)&&!this.placeholder.endsWith(n)&&this.history.getHistory().length){const t=this.placeholder.endsWith(")")?s:n,i=this.placeholder+t;e.showPlaceholderOnFocus&&!gl(this.input)?this.placeholder=i:this.setPlaceHolder(i)}};this.observer=new MutationObserver((t=>{t.forEach((t=>{t.target.textContent||o()}))})),this.observer.observe(this.input,{attributeFilter:["class"]}),this.onfocus(this.input,(()=>o())),this.onblur(this.input,(()=>{const t=t=>{if(this.placeholder.endsWith(t)){const i=this.placeholder.slice(0,this.placeholder.length-t.length);return e.showPlaceholderOnFocus?this.placeholder=i:this.setPlaceHolder(i),!0}return!1};t(n)||t(s)}))}dispose(){super.dispose(),this.observer&&(this.observer.disconnect(),this.observer=void 0)}addToHistory(t){this.value&&(t||this.value!==this.getCurrentValue())&&this.history.add(this.value)}isAtLastInHistory(){return this.history.isLast()}isNowhereInHistory(){return this.history.isNowhere()}showNextValue(){this.history.has(this.value)||this.addToHistory();let t=this.getNextValue();t&&(t=t===this.value?this.getNextValue():t),this.value=null!=t?t:"",$m(this.value?this.value:ot(0,"Cleared Input"))}showPreviousValue(){this.history.has(this.value)||this.addToHistory();let t=this.getPreviousValue();t&&(t=t===this.value?this.getPreviousValue():t),t&&(this.value=t,$m(this.value))}setPlaceHolder(t){super.setPlaceHolder(t),this.setTooltip(t)}onBlur(){super.onBlur(),this._onDidBlur.fire()}onFocus(){super.onFocus(),this._onDidFocus.fire()}getCurrentValue(){let t=this.history.current();return t||(t=this.history.last(),this.history.next()),t}getPreviousValue(){return this.history.previous()||this.history.first()}getNextValue(){return this.history.next()}}const f$=ot(0,"input");class p$ extends pk{constructor(t,i,e){super(),this.fixFocusOnOptionClickEnabled=!0,this.imeSessionInProgress=!1,this.additionalTogglesDisposables=this._register(new ie),this.additionalToggles=[],this._onDidOptionChange=this._register(new de),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new de),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new de),this.onMouseDown=this._onMouseDown.event,this._onInput=this._register(new de),this._onKeyUp=this._register(new de),this._onCaseSensitiveKeyDown=this._register(new de),this.onCaseSensitiveKeyDown=this._onCaseSensitiveKeyDown.event,this._onRegexKeyDown=this._register(new de),this.onRegexKeyDown=this._onRegexKeyDown.event,this._lastHighlightFindOptions=0,this.placeholder=e.placeholder||"",this.validation=e.validation,this.label=e.label||f$,this.showCommonFindToggles=!!e.showCommonFindToggles;const s=e.appendCaseSensitiveLabel||"",n=e.appendWholeWordsLabel||"",o=e.appendRegexLabel||"",r=e.history||[],h=!!e.flexibleHeight,c=!!e.flexibleWidth,a=e.flexibleMaxHeight;if(this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new d$(this.domNode,i,{placeholder:this.placeholder||"",ariaLabel:this.label||"",validationOptions:{validation:this.validation},history:r,showHistoryHint:e.showHistoryHint,flexibleHeight:h,flexibleWidth:c,flexibleMaxHeight:a,inputBoxStyles:e.inputBoxStyles})),this.showCommonFindToggles){this.regex=this._register(new h$({appendTitle:o,isChecked:!1,...e.toggleStyles})),this._register(this.regex.onChange((t=>{this._onDidOptionChange.fire(t),!t&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()}))),this._register(this.regex.onKeyDown((t=>{this._onRegexKeyDown.fire(t)}))),this.wholeWords=this._register(new r$({appendTitle:n,isChecked:!1,...e.toggleStyles})),this._register(this.wholeWords.onChange((t=>{this._onDidOptionChange.fire(t),!t&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()}))),this.caseSensitive=this._register(new o$({appendTitle:s,isChecked:!1,...e.toggleStyles})),this._register(this.caseSensitive.onChange((t=>{this._onDidOptionChange.fire(t),!t&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()}))),this._register(this.caseSensitive.onKeyDown((t=>{this._onCaseSensitiveKeyDown.fire(t)})));const t=[this.caseSensitive.domNode,this.wholeWords.domNode,this.regex.domNode];this.onkeydown(this.domNode,(i=>{if(i.equals(15)||i.equals(17)||i.equals(9)){const e=t.indexOf(this.domNode.ownerDocument.activeElement);if(e>=0){let s=-1;i.equals(17)?s=(e+1)%t.length:i.equals(15)&&(s=0===e?t.length-1:e-1),i.equals(9)?(t[e].blur(),this.inputBox.focus()):s>=0&&t[s].focus(),Fl(i,!0)}}}))}this.controls=document.createElement("div"),this.controls.className="controls",this.controls.style.display=this.showCommonFindToggles?"":"none",this.caseSensitive&&this.controls.append(this.caseSensitive.domNode),this.wholeWords&&this.controls.appendChild(this.wholeWords.domNode),this.regex&&this.controls.appendChild(this.regex.domNode),this.setAdditionalToggles(null==e?void 0:e.additionalToggles),this.controls&&this.domNode.appendChild(this.controls),null==t||t.appendChild(this.domNode),this._register(Va(this.inputBox.inputElement,"compositionstart",(()=>{this.imeSessionInProgress=!0}))),this._register(Va(this.inputBox.inputElement,"compositionend",(()=>{this.imeSessionInProgress=!1,this._onInput.fire()}))),this.onkeydown(this.inputBox.inputElement,(t=>this._onKeyDown.fire(t))),this.onkeyup(this.inputBox.inputElement,(t=>this._onKeyUp.fire(t))),this.oninput(this.inputBox.inputElement,(()=>this._onInput.fire())),this.onmousedown(this.inputBox.inputElement,(t=>this._onMouseDown.fire(t)))}get onDidChange(){return this.inputBox.onDidChange}layout(t){this.inputBox.layout(),this.updateInputBoxPadding(t.collapsedFindWidget)}enable(){var t,i,e;this.domNode.classList.remove("disabled"),this.inputBox.enable(),null===(t=this.regex)||void 0===t||t.enable(),null===(i=this.wholeWords)||void 0===i||i.enable(),null===(e=this.caseSensitive)||void 0===e||e.enable();for(const t of this.additionalToggles)t.enable()}disable(){var t,i,e;this.domNode.classList.add("disabled"),this.inputBox.disable(),null===(t=this.regex)||void 0===t||t.disable(),null===(i=this.wholeWords)||void 0===i||i.disable(),null===(e=this.caseSensitive)||void 0===e||e.disable();for(const t of this.additionalToggles)t.disable()}setFocusInputOnOptionClick(t){this.fixFocusOnOptionClickEnabled=t}setEnabled(t){t?this.enable():this.disable()}setAdditionalToggles(t){for(const t of this.additionalToggles)t.domNode.remove();this.additionalToggles=[],this.additionalTogglesDisposables.value=new Xi;for(const i of null!=t?t:[])this.additionalTogglesDisposables.value.add(i),this.controls.appendChild(i.domNode),this.additionalTogglesDisposables.value.add(i.onChange((t=>{this._onDidOptionChange.fire(t),!t&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus()}))),this.additionalToggles.push(i);this.additionalToggles.length>0&&(this.controls.style.display=""),this.updateInputBoxPadding()}updateInputBoxPadding(t=!1){var i,e,s,n,o,r;this.inputBox.paddingRight=t?0:(null!==(e=null===(i=this.caseSensitive)||void 0===i?void 0:i.width())&&void 0!==e?e:0)+(null!==(n=null===(s=this.wholeWords)||void 0===s?void 0:s.width())&&void 0!==n?n:0)+(null!==(r=null===(o=this.regex)||void 0===o?void 0:o.width())&&void 0!==r?r:0)+this.additionalToggles.reduce(((t,i)=>t+i.width()),0)}getValue(){return this.inputBox.value}setValue(t){this.inputBox.value!==t&&(this.inputBox.value=t)}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getCaseSensitive(){var t,i;return null!==(i=null===(t=this.caseSensitive)||void 0===t?void 0:t.checked)&&void 0!==i&&i}setCaseSensitive(t){this.caseSensitive&&(this.caseSensitive.checked=t)}getWholeWords(){var t,i;return null!==(i=null===(t=this.wholeWords)||void 0===t?void 0:t.checked)&&void 0!==i&&i}setWholeWords(t){this.wholeWords&&(this.wholeWords.checked=t)}getRegex(){var t,i;return null!==(i=null===(t=this.regex)||void 0===t?void 0:t.checked)&&void 0!==i&&i}setRegex(t){this.regex&&(this.regex.checked=t,this.validate())}focusOnCaseSensitive(){var t;null===(t=this.caseSensitive)||void 0===t||t.focus()}highlightFindOptions(){this.domNode.classList.remove("highlight-"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,this.domNode.classList.add("highlight-"+this._lastHighlightFindOptions)}validate(){this.inputBox.validate()}showMessage(t){this.inputBox.showMessage(t)}clearMessage(){this.inputBox.hideMessage()}}var g$,m$,w$,v$,b$;!function(t){t[t.Expanded=0]="Expanded",t[t.Collapsed=1]="Collapsed",t[t.PreserveOrExpanded=2]="PreserveOrExpanded",t[t.PreserveOrCollapsed=3]="PreserveOrCollapsed"}(g$||(g$={})),function(t){t[t.Unknown=0]="Unknown",t[t.Twistie=1]="Twistie",t[t.Element=2]="Element",t[t.Filter=3]="Filter"}(m$||(m$={}));class y$ extends Error{constructor(t,i){super(`TreeError [${t}] ${i}`)}}class k${constructor(t){this.fn=t,this._map=new WeakMap}map(t){let i=this._map.get(t);return i||(i=this.fn(t),this._map.set(t,i)),i}}function x$(t){return"object"==typeof t&&"visibility"in t&&"data"in t}function C$(t){switch(t){case!0:return 1;case!1:return 0;default:return t}}function S$(t){return"boolean"==typeof t.collapsible}class D${constructor(t,i,e,s={}){this.user=t,this.list=i,this.rootRef=[],this.eventBufferer=new ve,this._onDidChangeCollapseState=new de,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new de,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new de,this.onDidSplice=this._onDidSplice.event,this.refilterDelayer=new hc(ec),this.collapseByDefault=void 0!==s.collapseByDefault&&s.collapseByDefault,this.filter=s.filter,this.autoExpandSingleChildren=void 0!==s.autoExpandSingleChildren&&s.autoExpandSingleChildren,this.root={parent:void 0,element:e,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visibility:1,visible:!0,filterData:void 0}}splice(t,i,e=Ht.empty(),s={}){if(0===t.length)throw new y$(this.user,"Invalid tree location");s.diffIdentityProvider?this.spliceSmart(s.diffIdentityProvider,t,i,e,s):this.spliceSimple(t,i,e,s)}spliceSmart(t,i,e,s,n,o){var r;void 0===s&&(s=Ht.empty()),void 0===o&&(o=null!==(r=n.diffDepth)&&void 0!==r?r:0);const{parentNode:h}=this.getParentNodeWithListIndex(i);if(!h.lastDiffIds)return this.spliceSimple(i,e,s,n);const c=[...s],a=i[i.length-1],l=new vf({getElements:()=>h.lastDiffIds},{getElements:()=>[...h.children.slice(0,a),...c,...h.children.slice(a+e)].map((i=>t.getId(i.element).toString()))}).ComputeDiff(!1);if(l.quitEarly)return h.lastDiffIds=void 0,this.spliceSimple(i,e,c,n);const u=i.slice(0,-1),d=(i,e,s)=>{if(o>0)for(let r=0;ri.originalStart-t.originalStart)))d(f,p,f-(t.originalStart+t.originalLength)),f=t.originalStart,p=t.modifiedStart-a,this.spliceSimple([...u,f],t.originalLength,Ht.slice(c,p,p+t.modifiedLength),n);d(f,p,f)}spliceSimple(t,i,e=Ht.empty(),{onDidCreateNode:s,onDidDeleteNode:n,diffIdentityProvider:o}){const{parentNode:r,listIndex:h,revealed:c,visible:a}=this.getParentNodeWithListIndex(t),l=[],u=Ht.map(e,(t=>this.createTreeNode(t,r,r.visible?1:0,c,l,s))),d=t[t.length-1],f=r.children.length>0;let p=0;for(let t=d;t>=0&&to.getId(t.element).toString()))):r.lastDiffIds=r.children.map((t=>o.getId(t.element).toString())):r.lastDiffIds=void 0;let b=0;for(const t of v)t.visible&&b++;if(0!==b)for(let t=d+g.length;tt+(i.visible?i.renderNodeCount:0)),0);this._updateAncestorsRenderNodeCount(r,w-t),this.list.splice(h,t,l)}if(v.length>0&&n){const t=i=>{n(i),i.children.forEach(t)};v.forEach(t)}this._onDidSplice.fire({insertedNodes:g,deletedNodes:v});const y=r.children.length>0;f!==y&&this.setCollapsible(t.slice(0,-1),y);let k=r;for(;k;){if(2===k.visibility){this.refilterDelayer.trigger((()=>this.refilter()));break}k=k.parent}}rerender(t){if(0===t.length)throw new y$(this.user,"Invalid tree location");const{node:i,listIndex:e,revealed:s}=this.getTreeNodeWithListIndex(t);i.visible&&s&&this.list.splice(e,1,[i])}has(t){return this.hasTreeNode(t)}getListIndex(t){const{listIndex:i,visible:e,revealed:s}=this.getTreeNodeWithListIndex(t);return e&&s?i:-1}getListRenderCount(t){return this.getTreeNode(t).renderNodeCount}isCollapsible(t){return this.getTreeNode(t).collapsible}setCollapsible(t,i){const e=this.getTreeNode(t);void 0===i&&(i=!e.collapsible);const s={collapsible:i};return this.eventBufferer.bufferEvents((()=>this._setCollapseState(t,s)))}isCollapsed(t){return this.getTreeNode(t).collapsed}setCollapsed(t,i,e){const s=this.getTreeNode(t);void 0===i&&(i=!s.collapsed);const n={collapsed:i,recursive:e||!1};return this.eventBufferer.bufferEvents((()=>this._setCollapseState(t,n)))}_setCollapseState(t,i){const{node:e,listIndex:s,revealed:n}=this.getTreeNodeWithListIndex(t),o=this._setListNodeCollapseState(e,s,n,i);if(e!==this.root&&this.autoExpandSingleChildren&&o&&!S$(i)&&e.collapsible&&!e.collapsed&&!i.recursive){let s=-1;for(let t=0;t-1){s=-1;break}s=t}s>-1&&this._setCollapseState([...t,s],i)}return o}_setListNodeCollapseState(t,i,e,s){const n=this._setNodeCollapseState(t,s,!1);if(!e||!t.visible||!n)return n;const o=t.renderNodeCount,r=this.updateNodeAfterCollapseChange(t);return this.list.splice(i+1,o-(-1===i?0:1),r.slice(1)),n}_setNodeCollapseState(t,i,e){let s;if(t===this.root?s=!1:(S$(i)?(s=t.collapsible!==i.collapsible,t.collapsible=i.collapsible):t.collapsible?(s=t.collapsed!==i.collapsed,t.collapsed=i.collapsed):s=!1,s&&this._onDidChangeCollapseState.fire({node:t,deep:e})),!S$(i)&&i.recursive)for(const e of t.children)s=this._setNodeCollapseState(e,i,!0)||s;return s}expandTo(t){this.eventBufferer.bufferEvents((()=>{let i=this.getTreeNode(t);for(;i.parent;)i=i.parent,t=t.slice(0,t.length-1),i.collapsed&&this._setCollapseState(t,{collapsed:!1,recursive:!1})}))}refilter(){const t=this.root.renderNodeCount,i=this.updateNodeAfterFilterChange(this.root);this.list.splice(0,t,i),this.refilterDelayer.cancel()}createTreeNode(t,i,e,s,n,o){const r={parent:i,element:t.element,children:[],depth:i.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:"boolean"==typeof t.collapsible?t.collapsible:void 0!==t.collapsed,collapsed:void 0===t.collapsed?this.collapseByDefault:t.collapsed,renderNodeCount:1,visibility:1,visible:!0,filterData:void 0},h=this._filterNode(r,e);r.visibility=h,s&&n.push(r);const c=t.children||Ht.empty(),a=s&&0!==h&&!r.collapsed;let l=0,u=1;for(const t of c){const i=this.createTreeNode(t,r,h,a,n,o);r.children.push(i),u+=i.renderNodeCount,i.visible&&(i.visibleChildIndex=l++)}return r.collapsible=r.collapsible||r.children.length>0,r.visibleChildrenCount=l,r.visible=2===h?l>0:1===h,r.visible?r.collapsed||(r.renderNodeCount=u):(r.renderNodeCount=0,s&&n.pop()),null==o||o(r),r}updateNodeAfterCollapseChange(t){const i=t.renderNodeCount,e=[];return this._updateNodeAfterCollapseChange(t,e),this._updateAncestorsRenderNodeCount(t.parent,e.length-i),e}_updateNodeAfterCollapseChange(t,i){if(!1===t.visible)return 0;if(i.push(t),t.renderNodeCount=1,!t.collapsed)for(const e of t.children)t.renderNodeCount+=this._updateNodeAfterCollapseChange(e,i);return this._onDidChangeRenderNodeCount.fire(t),t.renderNodeCount}updateNodeAfterFilterChange(t){const i=t.renderNodeCount,e=[];return this._updateNodeAfterFilterChange(t,t.visible?1:0,e),this._updateAncestorsRenderNodeCount(t.parent,e.length-i),e}_updateNodeAfterFilterChange(t,i,e,s=!0){let n;if(t!==this.root){if(n=this._filterNode(t,i),0===n)return t.visible=!1,t.renderNodeCount=0,!1;s&&e.push(t)}const o=e.length;t.renderNodeCount=t===this.root?0:1;let r=!1;if(t.collapsed&&0===n)t.visibleChildrenCount=0;else{let i=0;for(const o of t.children)r=this._updateNodeAfterFilterChange(o,n,e,s&&!t.collapsed)||r,o.visible&&(o.visibleChildIndex=i++);t.visibleChildrenCount=i}return t!==this.root&&(t.visible=2===n?r:1===n,t.visibility=n),t.visible?t.collapsed||(t.renderNodeCount+=e.length-o):(t.renderNodeCount=0,s&&e.pop()),this._onDidChangeRenderNodeCount.fire(t),t.visible}_updateAncestorsRenderNodeCount(t,i){if(0!==i)for(;t;)t.renderNodeCount+=i,this._onDidChangeRenderNodeCount.fire(t),t=t.parent}_filterNode(t,i){const e=this.filter?this.filter.filter(t.element,i):1;return"boolean"==typeof e?(t.filterData=void 0,e?1:0):x$(e)?(t.filterData=e.data,C$(e.visibility)):(t.filterData=void 0,C$(e))}hasTreeNode(t,i=this.root){if(!t||0===t.length)return!0;const[e,...s]=t;return!(e<0||e>i.children.length)&&this.hasTreeNode(s,i.children[e])}getTreeNode(t,i=this.root){if(!t||0===t.length)return i;const[e,...s]=t;if(e<0||e>i.children.length)throw new y$(this.user,"Invalid tree location");return this.getTreeNode(s,i.children[e])}getTreeNodeWithListIndex(t){if(0===t.length)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};const{parentNode:i,listIndex:e,revealed:s,visible:n}=this.getParentNodeWithListIndex(t),o=t[t.length-1];if(o<0||o>i.children.length)throw new y$(this.user,"Invalid tree location");const r=i.children[o];return{node:r,listIndex:e,revealed:s,visible:n&&r.visible}}getParentNodeWithListIndex(t,i=this.root,e=0,s=!0,n=!0){const[o,...r]=t;if(o<0||o>i.children.length)throw new y$(this.user,"Invalid tree location");for(let t=0;tt.element))),this.data=t}}function A$(t){return t instanceof TN?new E$(t):t}class M${constructor(t,i){this.modelProvider=t,this.dnd=i,this.autoExpandDisposable=te.None,this.disposables=new Xi}getDragURI(t){return this.dnd.getDragURI(t.element)}getDragLabel(t,i){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(t.map((t=>t.element)),i)}onDragStart(t,i){var e,s;null===(s=(e=this.dnd).onDragStart)||void 0===s||s.call(e,A$(t),i)}onDragOver(t,i,e,s,n=!0){const o=this.dnd.onDragOver(A$(t),i&&i.element,e,s),r=this.autoExpandNode!==i;if(r&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=i),void 0===i)return o;if(r&&"boolean"!=typeof o&&o.autoExpand&&(this.autoExpandDisposable=lc((()=>{const t=this.modelProvider(),e=t.getNodeLocation(i);t.isCollapsed(e)&&t.setCollapsed(e,!1),this.autoExpandNode=void 0}),500,this.disposables)),"boolean"==typeof o||!o.accept||void 0===o.bubble||o.feedback)return n?o:{accept:"boolean"==typeof o?o:o.accept,effect:"boolean"==typeof o?void 0:o.effect,feedback:[e]};if(1===o.bubble){const e=this.modelProvider(),n=e.getNodeLocation(i),o=e.getParentNodeLocation(n),r=e.getNode(o),h=o&&e.getListIndex(o);return this.onDragOver(t,r,h,s,!1)}const h=this.modelProvider(),c=h.getNodeLocation(i),a=h.getListIndex(c),l=h.getListRenderCount(c);return{...o,feedback:x(a,a+l)}}drop(t,i,e,s){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(A$(t),i&&i.element,e,s)}onDragEnd(t){var i,e;null===(e=(i=this.dnd).onDragEnd)||void 0===e||e.call(i,t)}dispose(){this.disposables.dispose(),this.dnd.dispose()}}class L${constructor(t){this.delegate=t}getHeight(t){return this.delegate.getHeight(t.element)}getTemplateId(t){return this.delegate.getTemplateId(t.element)}hasDynamicHeight(t){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(t.element)}setDynamicHeight(t,i){var e,s;null===(s=(e=this.delegate).setDynamicHeight)||void 0===s||s.call(e,t.element,i)}}!function(t){t.None="none",t.OnHover="onHover",t.Always="always"}(w$||(w$={}));class F${get elements(){return this._elements}constructor(t,i=[]){this._elements=i,this.disposables=new Xi,this.onDidChange=he.forEach(t,(t=>this._elements=t),this.disposables)}dispose(){this.disposables.dispose()}}class T${constructor(t,i,e,s,n,o={}){var r;this.renderer=t,this.modelProvider=i,this.activeNodes=s,this.renderedIndentGuides=n,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=T$.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.activeIndentNodes=new Set,this.indentGuidesDisposable=te.None,this.disposables=new Xi,this.templateId=t.templateId,this.updateOptions(o),he.map(e,(t=>t.node))(this.onDidChangeNodeTwistieState,this,this.disposables),null===(r=t.onDidChangeTwistieState)||void 0===r||r.call(t,this.onDidChangeTwistieState,this,this.disposables)}updateOptions(t={}){if(void 0!==t.indent){const i=lR(t.indent,0,40);if(i!==this.indent){this.indent=i;for(const[t,i]of this.renderedNodes)this.renderTreeElement(t,i)}}if(void 0!==t.renderIndentGuides){const i=t.renderIndentGuides!==w$.None;if(i!==this.shouldRenderIndentGuides){this.shouldRenderIndentGuides=i;for(const[t,i]of this.renderedNodes)this._renderIndentGuides(t,i);if(this.indentGuidesDisposable.dispose(),i){const t=new Xi;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,t),this.indentGuidesDisposable=t,this._onDidChangeActiveNodes(this.activeNodes.elements)}}}void 0!==t.hideTwistiesOfChildlessElements&&(this.hideTwistiesOfChildlessElements=t.hideTwistiesOfChildlessElements)}renderTemplate(t){const i=Ol(t,$l(".monaco-tl-row")),e=Ol(i,$l(".monaco-tl-indent")),s=Ol(i,$l(".monaco-tl-twistie")),n=Ol(i,$l(".monaco-tl-contents")),o=this.renderer.renderTemplate(n);return{container:t,indent:e,twistie:s,indentGuidesDisposable:te.None,templateData:o}}renderElement(t,i,e,s){this.renderedNodes.set(t,e),this.renderedElements.set(t.element,t),this.renderTreeElement(t,e),this.renderer.renderElement(t,i,e.templateData,s)}disposeElement(t,i,e,s){var n,o;e.indentGuidesDisposable.dispose(),null===(o=(n=this.renderer).disposeElement)||void 0===o||o.call(n,t,i,e.templateData,s),"number"==typeof s&&(this.renderedNodes.delete(t),this.renderedElements.delete(t.element))}disposeTemplate(t){this.renderer.disposeTemplate(t.templateData)}onDidChangeTwistieState(t){const i=this.renderedElements.get(t);i&&this.onDidChangeNodeTwistieState(i)}onDidChangeNodeTwistieState(t){const i=this.renderedNodes.get(t);i&&(this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderTreeElement(t,i))}renderTreeElement(t,i){const e=T$.DefaultIndent+(t.depth-1)*this.indent;i.twistie.style.paddingLeft=`${e}px`,i.indent.style.width=e+this.indent-16+"px",t.collapsible?i.container.setAttribute("aria-expanded",String(!t.collapsed)):i.container.removeAttribute("aria-expanded"),i.twistie.classList.remove(...Cr.asClassNameArray(Os.treeItemExpanded));let s=!1;this.renderer.renderTwistie&&(s=this.renderer.renderTwistie(t.element,i.twistie)),t.collapsible&&(!this.hideTwistiesOfChildlessElements||t.visibleChildrenCount>0)?(s||i.twistie.classList.add(...Cr.asClassNameArray(Os.treeItemExpanded)),i.twistie.classList.add("collapsible"),i.twistie.classList.toggle("collapsed",t.collapsed)):i.twistie.classList.remove("collapsible","collapsed"),this._renderIndentGuides(t,i)}_renderIndentGuides(t,i){if(za(i.indent),i.indentGuidesDisposable.dispose(),!this.shouldRenderIndentGuides)return;const e=new Xi,s=this.modelProvider();for(;;){const n=s.getNodeLocation(t),o=s.getParentNodeLocation(n);if(!o)break;const r=s.getNode(o),h=$l(".indent-guide",{style:`width: ${this.indent}px`});this.activeIndentNodes.has(r)&&h.classList.add("active"),0===i.indent.childElementCount?i.indent.appendChild(h):i.indent.insertBefore(h,i.indent.firstElementChild),this.renderedIndentGuides.add(r,h),e.add(Yi((()=>this.renderedIndentGuides.delete(r,h)))),t=r}i.indentGuidesDisposable=e}_onDidChangeActiveNodes(t){if(!this.shouldRenderIndentGuides)return;const i=new Set,e=this.modelProvider();t.forEach((t=>{const s=e.getNodeLocation(t);try{const n=e.getParentNodeLocation(s);t.collapsible&&t.children.length>0&&!t.collapsed?i.add(t):n&&i.add(e.getNode(n))}catch(t){}})),this.activeIndentNodes.forEach((t=>{i.has(t)||this.renderedIndentGuides.forEach(t,(t=>t.classList.remove("active")))})),i.forEach((t=>{this.activeIndentNodes.has(t)||this.renderedIndentGuides.forEach(t,(t=>t.classList.add("active")))})),this.activeIndentNodes=i}dispose(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),Qi(this.disposables)}}T$.DefaultIndent=8;class R${get totalCount(){return this._totalCount}get matchCount(){return this._matchCount}constructor(t,i,e){this.tree=t,this.keyboardNavigationLabelProvider=i,this._filter=e,this._totalCount=0,this._matchCount=0,this._pattern="",this._lowercasePattern="",this.disposables=new Xi,t.onWillRefilter(this.reset,this,this.disposables)}filter(t,i){let e=1;if(this._filter){const s=this._filter.filter(t,i);if(e="boolean"==typeof s?s?1:0:x$(s)?C$(s.visibility):s,0===e)return!1}if(this._totalCount++,!this._pattern)return this._matchCount++,{data:x_.Default,visibility:e};const s=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t),n=Array.isArray(s)?s:[s];for(const t of n){const i=t&&t.toString();if(void 0===i)return{data:x_.Default,visibility:e};let s;if(this.tree.findMatchType===b$.Contiguous){const t=i.toLowerCase().indexOf(this._lowercasePattern);if(t>-1){s=[Number.MAX_SAFE_INTEGER,0];for(let i=this._lowercasePattern.length;i>0;i--)s.push(t+i-1)}}else s=S_(this._pattern,this._lowercasePattern,0,i,i.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});if(s)return this._matchCount++,1===n.length?{data:s,visibility:e}:{data:{label:i,score:s},visibility:e}}return this.tree.findMode===v$.Filter?"number"==typeof this.tree.options.defaultFindVisibility?this.tree.options.defaultFindVisibility:this.tree.options.defaultFindVisibility?this.tree.options.defaultFindVisibility(t):2:{data:x_.Default,visibility:e}}reset(){this._totalCount=0,this._matchCount=0}dispose(){Qi(this.disposables)}}!function(t){t[t.Highlight=0]="Highlight",t[t.Filter=1]="Filter"}(v$||(v$={})),function(t){t[t.Fuzzy=0]="Fuzzy",t[t.Contiguous=1]="Contiguous"}(b$||(b$={}));class O${get pattern(){return this._pattern}get mode(){return this._mode}set mode(t){t!==this._mode&&(this._mode=t,this.widget&&(this.widget.mode=this._mode),this.tree.refilter(),this.render(),this._onDidChangeMode.fire(t))}get matchType(){return this._matchType}set matchType(t){t!==this._matchType&&(this._matchType=t,this.widget&&(this.widget.matchType=this._matchType),this.tree.refilter(),this.render(),this._onDidChangeMatchType.fire(t))}constructor(t,i,e,s,n,o={}){var r,h;this.tree=t,this.view=e,this.filter=s,this.contextViewProvider=n,this.options=o,this._pattern="",this.width=0,this._onDidChangeMode=new de,this.onDidChangeMode=this._onDidChangeMode.event,this._onDidChangeMatchType=new de,this.onDidChangeMatchType=this._onDidChangeMatchType.event,this._onDidChangePattern=new de,this._onDidChangeOpenState=new de,this.onDidChangeOpenState=this._onDidChangeOpenState.event,this.enabledDisposables=new Xi,this.disposables=new Xi,this._mode=null!==(r=t.options.defaultFindMode)&&void 0!==r?r:v$.Highlight,this._matchType=null!==(h=t.options.defaultFindMatchType)&&void 0!==h?h:b$.Fuzzy,i.onDidSplice(this.onDidSpliceModel,this,this.disposables)}updateOptions(t={}){void 0!==t.defaultFindMode&&(this.mode=t.defaultFindMode),void 0!==t.defaultFindMatchType&&(this.matchType=t.defaultFindMatchType)}onDidSpliceModel(){this.widget&&0!==this.pattern.length&&(this.tree.refilter(),this.render())}render(){var t,i,e,s;this.pattern&&this.filter.totalCount>0&&0===this.filter.matchCount?null===(t=this.tree.options.showNotFoundMessage)||void 0===t||t?null===(i=this.widget)||void 0===i||i.showMessage({type:2,content:ot(0,"No elements found.")}):null===(e=this.widget)||void 0===e||e.showMessage({type:2}):null===(s=this.widget)||void 0===s||s.clearMessage()}shouldAllowFocus(t){return!this.widget||!this.pattern||this._mode===v$.Filter||this.filter.totalCount>0&&this.filter.matchCount<=1||!x_.isDefault(t.filterData)}layout(t){var i;this.width=t,null===(i=this.widget)||void 0===i||i.layout(t)}dispose(){this._history=void 0,this._onDidChangePattern.dispose(),this.enabledDisposables.dispose(),this.disposables.dispose()}}function I$(t,i){return t.position===i.position&&t.node.element===i.node.element&&t.startIndex===i.startIndex&&t.height===i.height&&t.endIndex===i.endIndex}class _$ extends te{constructor(t=[]){super(),this.stickyNodes=t}get count(){return this.stickyNodes.length}equal(t){return l(this.stickyNodes,t.stickyNodes,I$)}addDisposable(t){this._register(t)}}class N$ extends te{get firstVisibleNode(){const t=this.view.firstVisibleIndex;if(!(t<0||t>=this.view.length))return this.view.element(t)}constructor(t,i,e,s,n,o={}){super(),this.tree=t,this.model=i,this.view=e,this.treeDelegate=n,this.maxWidgetViewRatio=.4;const r=this.validateStickySettings(o);this.stickyScrollMaxItemCount=r.stickyScrollMaxItemCount,this._widget=this._register(new B$(e.getScrollableElement(),e,i,s,n)),this._register(e.onDidScroll((()=>this.update()))),this._register(e.onDidChangeContentHeight((()=>this.update()))),this._register(t.onDidChangeCollapseState((()=>this.update()))),this.update()}update(){const t=this.firstVisibleNode;if(!t||0===this.tree.scrollTop)return void this._widget.setState(void 0);const i=this.findStickyState(t);this._widget.setState(i)}findStickyState(t){const i=[],e=this.view.renderHeight*this.maxWidgetViewRatio;let s=t,n=0,o=this.getNextStickyNode(s,void 0,n);for(;o&&n+o.height=this.stickyScrollMaxItemCount))&&(s=this.getNextVisibleNode(s),s);)o=this.getNextStickyNode(s,o.node,n);return i.length?new _$(i):void 0}getNextVisibleNode(t){const i=this.getNodeIndex(t);if(-1!==i&&i!==this.view.length-1)return this.view.element(i+1)}getNextStickyNode(t,i,e){const s=this.getAncestorUnderPrevious(t,i);if(s){if(s===t){if(!this.nodeIsUncollapsedParent(t))return;if(this.nodeTopAlignsWithStickyNodesBottom(t,e))return}return this.createStickyScrollNode(s,e)}}nodeTopAlignsWithStickyNodesBottom(t,i){const e=this.getNodeIndex(t),s=this.view.getElementTop(e);return this.view.scrollTop===s-i}createStickyScrollNode(t,i){const e=this.treeDelegate.getHeight(t),{startIndex:s,endIndex:n}=this.getNodeRange(t);return{node:t,position:this.calculateStickyNodePosition(n,i),height:e,startIndex:s,endIndex:n}}getAncestorUnderPrevious(t,i){let e=t,s=this.getParentNode(e);for(;s;){if(s===i)return e;e=s,s=this.getParentNode(e)}if(void 0===i)return e}calculateStickyNodePosition(t,i){let e=this.view.getRelativeTop(t);if(null===e&&this.view.firstVisibleIndex===t&&t+1o&&i<=o+n?o:i}getParentNode(t){const i=this.model.getNodeLocation(t),e=this.model.getParentNodeLocation(i);return e?this.model.getNode(e):void 0}nodeIsUncollapsedParent(t){const i=this.model.getNodeLocation(t);return this.model.getListRenderCount(i)>1}getNodeIndex(t,i){return void 0===i&&(i=this.model.getNodeLocation(t)),this.model.getListIndex(i)}getNodeRange(t){const i=this.model.getNodeLocation(t),e=this.model.getListIndex(i);if(e<0)throw new Error("Node not found in tree");return{startIndex:e,endIndex:e+this.model.getListRenderCount(i)-1}}nodePositionTopBelowWidget(t){const i=[];let e=this.getParentNode(t);for(;e;)i.push(e),e=this.getParentNode(e);let s=0;for(let t=0;t0,s=!!t&&t.count>0;if(!e&&!s||e&&s&&this._previousState.equal(t))return;if(e!==s&&this.setVisible(s),null===(i=this._previousState)||void 0===i||i.dispose(),this._previousState=t,!s)return;for(let i=t.count-1;i>=0;i--){const e=t.stickyNodes[i],s=i?t.stickyNodes[i-1]:void 0,n=s?s.position+s.height:0,{element:o,disposable:r}=this.createElement(e,n);this._rootDomNode.appendChild(o),t.addDisposable(r)}const n=$l(".monaco-tree-sticky-container-shadow");this._rootDomNode.appendChild(n),t.addDisposable(Yi((()=>n.remove())));const o=t.stickyNodes[t.count-1];this._rootDomNode.style.height=`${o.position+o.height}px`}createElement(t,i){const e=this.model.getNodeLocation(t.node),s=this.model.getListIndex(e),n=document.createElement("div");n.style.top=`${t.position}px`,n.style.height=`${t.height}px`,n.style.lineHeight=`${t.height}px`,n.classList.add("monaco-tree-sticky-row"),n.classList.add("monaco-list-row"),n.setAttribute("data-index",`${s}`),n.setAttribute("data-parity",s%2==0?"even":"odd"),n.setAttribute("id",this.view.getElementID(s));const o=this.treeDelegate.getTemplateId(t.node),r=this.treeRenderers.find((t=>t.templateId===o));if(!r)throw new Error(`No renderer found for template id ${o}`);const h=new Proxy(t.node,{}),c=r.renderTemplate(n);r.renderElement(h,t.startIndex,c,t.height);const a=Yi((()=>{r.disposeElement(h,t.startIndex,c,t.height),r.disposeTemplate(c),n.remove()}));return{element:n,disposable:a}}setVisible(t){this._rootDomNode.style.display=t?"block":"none"}dispose(){var t;null===(t=this._previousState)||void 0===t||t.dispose(),this._rootDomNode.remove()}}function P$(t){let i=m$.Unknown;return ll(t.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?i=m$.Twistie:ll(t.browserEvent.target,"monaco-tl-contents","monaco-tl-row")?i=m$.Element:ll(t.browserEvent.target,"monaco-tree-type-filter","monaco-list")&&(i=m$.Filter),{browserEvent:t.browserEvent,element:t.element?t.element.element:null,target:i}}function $$(t,i){i(t),t.children.forEach((t=>$$(t,i)))}class W${get nodeSet(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}constructor(t,i){this.getFirstViewElementWithTrait=t,this.identityProvider=i,this.nodes=[],this._onDidChange=new de,this.onDidChange=this._onDidChange.event}set(t,i){!(null==i?void 0:i.__forceEvent)&&l(this.nodes,t)||this._set(t,!1,i)}_set(t,i,e){if(this.nodes=[...t],this.elements=void 0,this._nodeSet=void 0,!i){const t=this;this._onDidChange.fire({get elements(){return t.get()},browserEvent:e})}}get(){return this.elements||(this.elements=this.nodes.map((t=>t.element))),[...this.elements]}getNodes(){return this.nodes}has(t){return this.nodeSet.has(t)}onDidModelSplice({insertedNodes:t,deletedNodes:i}){if(!this.identityProvider){const t=this.createNodeSet(),e=i=>t.delete(i);return i.forEach((t=>$$(t,e))),void this.set([...t.values()])}const e=new Set,s=t=>e.add(this.identityProvider.getId(t.element).toString());i.forEach((t=>$$(t,s)));const n=new Map,o=t=>n.set(this.identityProvider.getId(t.element).toString(),t);t.forEach((t=>$$(t,o)));const r=[];for(const t of this.nodes){const i=this.identityProvider.getId(t.element).toString();if(e.has(i)){const t=n.get(i);t&&t.visible&&r.push(t)}else r.push(t)}if(this.nodes.length>0&&0===r.length){const t=this.getFirstViewElementWithTrait();t&&r.push(t)}this._set(r,!0)}createNodeSet(){const t=new Set;for(const i of this.nodes)t.add(i);return t}}class j$ extends tB{constructor(t,i,e){super(t),this.tree=i,this.stickyScrollProvider=e}onViewPointer(t){if(qN(t.browserEvent.target)||HN(t.browserEvent.target)||UN(t.browserEvent.target))return;if(t.browserEvent.isHandledByList)return;const i=t.element;if(!i)return super.onViewPointer(t);if(this.isSelectionRangeChangeEvent(t)||this.isSelectionSingleChangeEvent(t))return super.onViewPointer(t);const e=t.browserEvent.target,s=e.classList.contains("monaco-tl-twistie")||e.classList.contains("monaco-icon-label")&&e.classList.contains("folder-icon")&&t.browserEvent.offsetX<16,n=function(t){return VN(t,"monaco-tree-sticky-row")}(t.browserEvent.target);let o=!1;if(o=!!n||("function"==typeof this.tree.expandOnlyOnTwistieClick?this.tree.expandOnlyOnTwistieClick(i.element):!!this.tree.expandOnlyOnTwistieClick),n)this.handleStickyScrollMouseEvent(t,i);else{if(o&&!s&&2!==t.browserEvent.detail)return super.onViewPointer(t);if(!this.tree.expandOnDoubleClick&&2===t.browserEvent.detail)return super.onViewPointer(t)}if(i.collapsible&&(!n||s)){const e=this.tree.getNodeLocation(i),n=t.browserEvent.altKey;if(this.tree.setFocus([e]),this.tree.toggleCollapsed(e,n),o&&s)return void(t.browserEvent.isHandledByList=!0)}n||super.onViewPointer(t)}handleStickyScrollMouseEvent(t,i){if(function(t){return VN(t,"monaco-custom-toggle")}(t.browserEvent.target)||function(t){return VN(t,"action-item")}(t.browserEvent.target))return;const e=this.stickyScrollProvider();if(!e)throw new Error("Sticky scroll controller not found");const s=this.list.indexOf(i),n=this.list.getElementTop(s),o=e.nodePositionTopBelowWidget(i);this.tree.scrollTop=n-o,this.list.setFocus([s]),this.list.setSelection([s])}onDoubleClick(t){!t.browserEvent.target.classList.contains("monaco-tl-twistie")&&this.tree.expandOnDoubleClick&&(t.browserEvent.isHandledByList||super.onDoubleClick(t))}}class z$ extends aB{constructor(t,i,e,s,n,o,r,h){super(t,i,e,s,h),this.focusTrait=n,this.selectionTrait=o,this.anchorTrait=r}createMouseController(t){return new j$(this,t.tree,t.stickyScrollProvider)}splice(t,i,e=[]){if(super.splice(t,i,e),0===e.length)return;const s=[],n=[];let o;e.forEach(((i,e)=>{this.focusTrait.has(i)&&s.push(t+e),this.selectionTrait.has(i)&&n.push(t+e),this.anchorTrait.has(i)&&(o=t+e)})),s.length>0&&super.setFocus(y([...super.getFocus(),...s])),n.length>0&&super.setSelection(y([...super.getSelection(),...n])),"number"==typeof o&&super.setAnchor(o)}setFocus(t,i,e=!1){super.setFocus(t,i),e||this.focusTrait.set(t.map((t=>this.element(t))),i)}setSelection(t,i,e=!1){super.setSelection(t,i),e||this.selectionTrait.set(t.map((t=>this.element(t))),i)}setAnchor(t,i=!1){super.setAnchor(t),i||this.anchorTrait.set(void 0===t?[]:[this.element(t)])}}class H${get onDidScroll(){return this.view.onDidScroll}get onDidChangeFocus(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}get onDidChangeSelection(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}get onMouseDblClick(){return he.filter(he.map(this.view.onMouseDblClick,P$),(t=>t.target!==m$.Filter))}get onPointer(){return he.map(this.view.onPointer,P$)}get onDidFocus(){return this.view.onDidFocus}get onDidChangeModel(){return he.signal(this.model.onDidSplice)}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get findMode(){var t,i;return null!==(i=null===(t=this.findController)||void 0===t?void 0:t.mode)&&void 0!==i?i:v$.Highlight}set findMode(t){this.findController&&(this.findController.mode=t)}get findMatchType(){var t,i;return null!==(i=null===(t=this.findController)||void 0===t?void 0:t.matchType)&&void 0!==i?i:b$.Fuzzy}set findMatchType(t){this.findController&&(this.findController.matchType=t)}get expandOnDoubleClick(){return void 0===this._options.expandOnDoubleClick||this._options.expandOnDoubleClick}get expandOnlyOnTwistieClick(){return void 0===this._options.expandOnlyOnTwistieClick||this._options.expandOnlyOnTwistieClick}get onDidDispose(){return this.view.onDidDispose}constructor(t,i,e,s,n={}){var o;this._user=t,this._options=n,this.eventBufferer=new ve,this.onDidChangeFindOpenState=he.None,this.disposables=new Xi,this._onWillRefilter=new de,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new de,this.treeDelegate=new L$(e);const r=new be,h=new be,c=this.disposables.add(new F$(h.event)),a=new qp;this.renderers=s.map((t=>new T$(t,(()=>this.model),r.event,c,a,n)));for(const t of this.renderers)this.disposables.add(t);let l;var u,d;n.keyboardNavigationLabelProvider&&(l=new R$(this,n.keyboardNavigationLabelProvider,n.filter),n={...n,filter:l},this.disposables.add(l)),this.focus=new W$((()=>this.view.getFocusedElements()[0]),n.identityProvider),this.selection=new W$((()=>this.view.getSelectedElements()[0]),n.identityProvider),this.anchor=new W$((()=>this.view.getAnchorElement()),n.identityProvider),this.view=new z$(t,i,this.treeDelegate,this.renderers,this.focus,this.selection,this.anchor,{...(u=()=>this.model,d=n,d&&{...d,identityProvider:d.identityProvider&&{getId:t=>d.identityProvider.getId(t.element)},dnd:d.dnd&&new M$(u,d.dnd),multipleSelectionController:d.multipleSelectionController&&{isSelectionSingleChangeEvent:t=>d.multipleSelectionController.isSelectionSingleChangeEvent({...t,element:t.element}),isSelectionRangeChangeEvent:t=>d.multipleSelectionController.isSelectionRangeChangeEvent({...t,element:t.element})},accessibilityProvider:d.accessibilityProvider&&{...d.accessibilityProvider,getSetSize(t){const i=u(),e=i.getNodeLocation(t),s=i.getParentNodeLocation(e);return i.getNode(s).visibleChildrenCount},getPosInSet:t=>t.visibleChildIndex+1,isChecked:d.accessibilityProvider&&d.accessibilityProvider.isChecked?t=>d.accessibilityProvider.isChecked(t.element):void 0,getRole:d.accessibilityProvider&&d.accessibilityProvider.getRole?t=>d.accessibilityProvider.getRole(t.element):()=>"treeitem",getAriaLabel:t=>d.accessibilityProvider.getAriaLabel(t.element),getWidgetAriaLabel:()=>d.accessibilityProvider.getWidgetAriaLabel(),getWidgetRole:d.accessibilityProvider&&d.accessibilityProvider.getWidgetRole?()=>d.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:d.accessibilityProvider&&d.accessibilityProvider.getAriaLevel?t=>d.accessibilityProvider.getAriaLevel(t.element):t=>t.depth,getActiveDescendantId:d.accessibilityProvider.getActiveDescendantId&&(t=>d.accessibilityProvider.getActiveDescendantId(t.element))},keyboardNavigationLabelProvider:d.keyboardNavigationLabelProvider&&{...d.keyboardNavigationLabelProvider,getKeyboardNavigationLabel:t=>d.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)}}),tree:this,stickyScrollProvider:()=>this.stickyScrollController}),this.model=this.createModel(t,this.view,n),r.input=this.model.onDidChangeCollapseState;const f=he.forEach(this.model.onDidSplice,(t=>{this.eventBufferer.bufferEvents((()=>{this.focus.onDidModelSplice(t),this.selection.onDidModelSplice(t)}))}),this.disposables);f((()=>null),null,this.disposables);const p=this.disposables.add(new de),g=this.disposables.add(new hc(0));if(this.disposables.add(he.any(f,this.focus.onDidChange,this.selection.onDidChange)((()=>{g.trigger((()=>{const t=new Set;for(const i of this.focus.getNodes())t.add(i);for(const i of this.selection.getNodes())t.add(i);p.fire([...t.values()])}))}))),h.input=p.event,!1!==n.keyboardSupport){const t=he.chain(this.view.onKeyDown,(t=>t.filter((t=>!HN(t.target))).map((t=>new Qh(t)))));he.chain(t,(t=>t.filter((t=>15===t.keyCode))))(this.onLeftArrow,this,this.disposables),he.chain(t,(t=>t.filter((t=>17===t.keyCode))))(this.onRightArrow,this,this.disposables),he.chain(t,(t=>t.filter((t=>10===t.keyCode))))(this.onSpace,this,this.disposables)}(null===(o=n.findWidgetEnabled)||void 0===o||o)&&n.keyboardNavigationLabelProvider&&n.contextViewProvider?(this.findController=new O$(this,this.model,this.view,l,n.contextViewProvider,this.options.findWidgetStyles?{styles:this.options.findWidgetStyles}:void 0),this.focusNavigationFilter=t=>this.findController.shouldAllowFocus(t),this.onDidChangeFindOpenState=this.findController.onDidChangeOpenState,this.disposables.add(this.findController),this.onDidChangeFindMode=this.findController.onDidChangeMode,this.onDidChangeFindMatchType=this.findController.onDidChangeMatchType):(this.onDidChangeFindMode=he.None,this.onDidChangeFindMatchType=he.None),n.enableStickyScroll&&(this.stickyScrollController=new N$(this,this.model,this.view,this.renderers,this.treeDelegate,n)),this.styleElement=vl(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===w$.Always)}updateOptions(t={}){var i;this._options={...this._options,...t};for(const i of this.renderers)i.updateOptions(t);this.view.updateOptions(this._options),null===(i=this.findController)||void 0===i||i.updateOptions(t),this.updateStickyScroll(t),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===w$.Always)}get options(){return this._options}updateStickyScroll(t){var i;!this.stickyScrollController&&this._options.enableStickyScroll?this.stickyScrollController=new N$(this,this.model,this.view,this.renderers,this.treeDelegate,this._options):this.stickyScrollController&&!this._options.enableStickyScroll&&(this.stickyScrollController.dispose(),this.stickyScrollController=void 0),null===(i=this.stickyScrollController)||void 0===i||i.updateOptions(t)}getHTMLElement(){return this.view.getHTMLElement()}get scrollTop(){return this.view.scrollTop}set scrollTop(t){this.view.scrollTop=t}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}domFocus(){this.view.domFocus()}layout(t,i){var e;this.view.layout(t,i),W(i)&&(null===(e=this.findController)||void 0===e||e.layout(i))}style(t){const i=`.${this.view.domId}`,e=[];t.treeIndentGuidesStroke&&(e.push(`.monaco-list${i}:hover .monaco-tl-indent > .indent-guide, .monaco-list${i}.always .monaco-tl-indent > .indent-guide { border-color: ${t.treeInactiveIndentGuidesStroke}; }`),e.push(`.monaco-list${i} .monaco-tl-indent > .indent-guide.active { border-color: ${t.treeIndentGuidesStroke}; }`)),t.listBackground&&(e.push(`.monaco-list${i} .monaco-scrollable-element .monaco-tree-sticky-container { background-color: ${t.listBackground}; }`),e.push(`.monaco-list${i} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row { background-color: ${t.listBackground}; }`)),this.styleElement.textContent=e.join("\n"),this.view.style(t)}getParentElement(t){const i=this.model.getParentNodeLocation(t);return this.model.getNode(i).element}getFirstElementChild(t){return this.model.getFirstElementChild(t)}getNode(t){return this.model.getNode(t)}getNodeLocation(t){return this.model.getNodeLocation(t)}collapse(t,i=!1){return this.model.setCollapsed(t,!0,i)}expand(t,i=!1){return this.model.setCollapsed(t,!1,i)}toggleCollapsed(t,i=!1){return this.model.setCollapsed(t,void 0,i)}isCollapsible(t){return this.model.isCollapsible(t)}setCollapsible(t,i){return this.model.setCollapsible(t,i)}isCollapsed(t){return this.model.isCollapsed(t)}refilter(){this._onWillRefilter.fire(void 0),this.model.refilter()}setSelection(t,i){const e=t.map((t=>this.model.getNode(t)));this.selection.set(e,i);const s=t.map((t=>this.model.getListIndex(t))).filter((t=>t>-1));this.view.setSelection(s,i,!0)}getSelection(){return this.selection.get()}setFocus(t,i){const e=t.map((t=>this.model.getNode(t)));this.focus.set(e,i);const s=t.map((t=>this.model.getListIndex(t))).filter((t=>t>-1));this.view.setFocus(s,i,!0)}getFocus(){return this.focus.get()}reveal(t,i){this.model.expandTo(t);const e=this.model.getListIndex(t);if(-1!==e)if(this.stickyScrollController){const s=this.stickyScrollController.nodePositionTopBelowWidget(this.getNode(t));this.view.reveal(e,i,s)}else this.view.reveal(e,i)}onLeftArrow(t){t.preventDefault(),t.stopPropagation();const i=this.view.getFocusedElements();if(0===i.length)return;const e=this.model.getNodeLocation(i[0]);if(!this.model.setCollapsed(e,!0)){const t=this.model.getParentNodeLocation(e);if(!t)return;const i=this.model.getListIndex(t);this.view.reveal(i),this.view.setFocus([i])}}onRightArrow(t){t.preventDefault(),t.stopPropagation();const i=this.view.getFocusedElements();if(0===i.length)return;const e=i[0],s=this.model.getNodeLocation(e);if(!this.model.setCollapsed(s,!1)){if(!e.children.some((t=>t.visible)))return;const[t]=this.view.getFocus(),i=t+1;this.view.reveal(i),this.view.setFocus([i])}}onSpace(t){t.preventDefault(),t.stopPropagation();const i=this.view.getFocusedElements();if(0===i.length)return;const e=this.model.getNodeLocation(i[0]);this.model.setCollapsed(e,void 0,t.browserEvent.altKey)}dispose(){var t;Qi(this.disposables),null===(t=this.stickyScrollController)||void 0===t||t.dispose(),this.view.dispose()}}class V${constructor(t,i,e={}){this.user=t,this.rootRef=null,this.nodes=new Map,this.nodesByIdentity=new Map,this.model=new D$(t,i,null,e),this.onDidSplice=this.model.onDidSplice,this.onDidChangeCollapseState=this.model.onDidChangeCollapseState,this.onDidChangeRenderNodeCount=this.model.onDidChangeRenderNodeCount,e.sorter&&(this.sorter={compare:(t,i)=>e.sorter.compare(t.element,i.element)}),this.identityProvider=e.identityProvider}setChildren(t,i=Ht.empty(),e={}){const s=this.getElementLocation(t);this._setChildren(s,this.preserveCollapseState(i),e)}_setChildren(t,i=Ht.empty(),e){const s=new Set,n=new Set;this.model.splice([...t,0],Number.MAX_VALUE,i,{...e,onDidCreateNode:t=>{var i;if(null===t.element)return;const o=t;if(s.add(o.element),this.nodes.set(o.element,o),this.identityProvider){const t=this.identityProvider.getId(o.element).toString();n.add(t),this.nodesByIdentity.set(t,o)}null===(i=e.onDidCreateNode)||void 0===i||i.call(e,o)},onDidDeleteNode:t=>{var i;if(null===t.element)return;const o=t;if(s.has(o.element)||this.nodes.delete(o.element),this.identityProvider){const t=this.identityProvider.getId(o.element).toString();n.has(t)||this.nodesByIdentity.delete(t)}null===(i=e.onDidDeleteNode)||void 0===i||i.call(e,o)}})}preserveCollapseState(t=Ht.empty()){return this.sorter&&(t=[...t].sort(this.sorter.compare.bind(this.sorter))),Ht.map(t,(t=>{let i=this.nodes.get(t.element);if(!i&&this.identityProvider){const e=this.identityProvider.getId(t.element).toString();i=this.nodesByIdentity.get(e)}if(!i){let i;return i=void 0===t.collapsed?void 0:t.collapsed===g$.Collapsed||t.collapsed===g$.PreserveOrCollapsed||t.collapsed!==g$.Expanded&&t.collapsed!==g$.PreserveOrExpanded&&Boolean(t.collapsed),{...t,children:this.preserveCollapseState(t.children),collapsed:i}}const e="boolean"==typeof t.collapsible?t.collapsible:i.collapsible;let s;return s=void 0===t.collapsed||t.collapsed===g$.PreserveOrCollapsed||t.collapsed===g$.PreserveOrExpanded?i.collapsed:t.collapsed===g$.Collapsed||t.collapsed!==g$.Expanded&&Boolean(t.collapsed),{...t,collapsible:e,collapsed:s,children:this.preserveCollapseState(t.children)}}))}rerender(t){const i=this.getElementLocation(t);this.model.rerender(i)}getFirstElementChild(t=null){const i=this.getElementLocation(t);return this.model.getFirstElementChild(i)}has(t){return this.nodes.has(t)}getListIndex(t){const i=this.getElementLocation(t);return this.model.getListIndex(i)}getListRenderCount(t){const i=this.getElementLocation(t);return this.model.getListRenderCount(i)}isCollapsible(t){const i=this.getElementLocation(t);return this.model.isCollapsible(i)}setCollapsible(t,i){const e=this.getElementLocation(t);return this.model.setCollapsible(e,i)}isCollapsed(t){const i=this.getElementLocation(t);return this.model.isCollapsed(i)}setCollapsed(t,i,e){const s=this.getElementLocation(t);return this.model.setCollapsed(s,i,e)}expandTo(t){const i=this.getElementLocation(t);this.model.expandTo(i)}refilter(){this.model.refilter()}getNode(t=null){if(null===t)return this.model.getNode(this.model.rootRef);const i=this.nodes.get(t);if(!i)throw new y$(this.user,`Tree element not found: ${t}`);return i}getNodeLocation(t){return t.element}getParentNodeLocation(t){if(null===t)throw new y$(this.user,"Invalid getParentNodeLocation call");const i=this.nodes.get(t);if(!i)throw new y$(this.user,`Tree element not found: ${t}`);const e=this.model.getNodeLocation(i),s=this.model.getParentNodeLocation(e);return this.model.getNode(s).element}getElementLocation(t){if(null===t)return[];const i=this.nodes.get(t);if(!i)throw new y$(this.user,`Tree element not found: ${t}`);return this.model.getNodeLocation(i)}}function U$(t){return{element:{elements:[t.element],incompressible:t.incompressible||!1},children:Ht.map(Ht.from(t.children),U$),collapsible:t.collapsible,collapsed:t.collapsed}}function q$(t){const i=[t.element],e=t.incompressible||!1;let s,n;for(;[n,s]=Ht.consume(Ht.from(t.children),2),1===n.length&&!n[0].incompressible;)i.push((t=n[0]).element);return{element:{elements:i,incompressible:e},children:Ht.map(Ht.concat(n,s),q$),collapsible:t.collapsible,collapsed:t.collapsed}}function K$(t,i=0){let e;return e=iK$(t,0))),0===i&&t.element.incompressible?{element:t.element.elements[i],children:e,incompressible:!0,collapsible:t.collapsible,collapsed:t.collapsed}:{element:t.element.elements[i],children:e,collapsible:t.collapsible,collapsed:t.collapsed}}function G$(t){return K$(t,0)}function Z$(t,i,e){return t.element===i?{...t,children:e}:{...t,children:Ht.map(Ht.from(t.children),(t=>Z$(t,i,e)))}}class Q${get onDidSplice(){return this.model.onDidSplice}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get onDidChangeRenderNodeCount(){return this.model.onDidChangeRenderNodeCount}constructor(t,i,e={}){this.user=t,this.rootRef=null,this.nodes=new Map,this.model=new V$(t,i,e),this.enabled=void 0===e.compressionEnabled||e.compressionEnabled,this.identityProvider=e.identityProvider}setChildren(t,i=Ht.empty(),e){const s=e.diffIdentityProvider&&(n=e.diffIdentityProvider,{getId:t=>t.elements.map((t=>n.getId(t).toString())).join("\0")});var n;if(null===t){const t=Ht.map(i,this.enabled?q$:U$);return void this._setChildren(null,t,{diffIdentityProvider:s,diffDepth:1/0})}const o=this.nodes.get(t);if(!o)throw new y$(this.user,"Unknown compressed tree node");const r=this.model.getNode(o),h=this.model.getParentNodeLocation(o),c=this.model.getNode(h),a=Z$(G$(r),t,i),u=(this.enabled?q$:U$)(a);if(l(u.element.elements,r.element.elements,e.diffIdentityProvider?(t,i)=>e.diffIdentityProvider.getId(t)===e.diffIdentityProvider.getId(i):void 0))return void this._setChildren(o,u.children||Ht.empty(),{diffIdentityProvider:s,diffDepth:1});const d=c.children.map((t=>t===r?u:t));this._setChildren(c.element,d,{diffIdentityProvider:s,diffDepth:r.depth-c.depth})}setCompressionEnabled(t){if(t===this.enabled)return;this.enabled=t;const i=this.model.getNode(),e=Ht.map(i.children,G$),s=Ht.map(e,t?q$:U$);this._setChildren(null,s,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}_setChildren(t,i,e){const s=new Set;this.model.setChildren(t,i,{...e,onDidCreateNode:t=>{for(const i of t.element.elements)s.add(i),this.nodes.set(i,t.element)},onDidDeleteNode:t=>{for(const i of t.element.elements)s.has(i)||this.nodes.delete(i)}})}has(t){return this.nodes.has(t)}getListIndex(t){const i=this.getCompressedNode(t);return this.model.getListIndex(i)}getListRenderCount(t){const i=this.getCompressedNode(t);return this.model.getListRenderCount(i)}getNode(t){if(void 0===t)return this.model.getNode();const i=this.getCompressedNode(t);return this.model.getNode(i)}getNodeLocation(t){const i=this.model.getNodeLocation(t);return null===i?null:i.elements[i.elements.length-1]}getParentNodeLocation(t){const i=this.getCompressedNode(t),e=this.model.getParentNodeLocation(i);return null===e?null:e.elements[e.elements.length-1]}getFirstElementChild(t){const i=this.getCompressedNode(t);return this.model.getFirstElementChild(i)}isCollapsible(t){const i=this.getCompressedNode(t);return this.model.isCollapsible(i)}setCollapsible(t,i){const e=this.getCompressedNode(t);return this.model.setCollapsible(e,i)}isCollapsed(t){const i=this.getCompressedNode(t);return this.model.isCollapsed(i)}setCollapsed(t,i,e){const s=this.getCompressedNode(t);return this.model.setCollapsed(s,i,e)}expandTo(t){const i=this.getCompressedNode(t);this.model.expandTo(i)}rerender(t){const i=this.getCompressedNode(t);this.model.rerender(i)}refilter(){this.model.refilter()}getCompressedNode(t){if(null===t)return null;const i=this.nodes.get(t);if(!i)throw new y$(this.user,`Tree element not found: ${t}`);return i}}const J$=t=>t[t.length-1];class Y${get element(){return null===this.node.element?null:this.unwrapper(this.node.element)}get children(){return this.node.children.map((t=>new Y$(this.unwrapper,t)))}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}constructor(t,i){this.unwrapper=t,this.node=i}}class X${get onDidSplice(){return he.map(this.model.onDidSplice,(({insertedNodes:t,deletedNodes:i})=>({insertedNodes:t.map((t=>this.nodeMapper.map(t))),deletedNodes:i.map((t=>this.nodeMapper.map(t)))})))}get onDidChangeCollapseState(){return he.map(this.model.onDidChangeCollapseState,(({node:t,deep:i})=>({node:this.nodeMapper.map(t),deep:i})))}get onDidChangeRenderNodeCount(){return he.map(this.model.onDidChangeRenderNodeCount,(t=>this.nodeMapper.map(t)))}constructor(t,i,e={}){this.rootRef=null,this.elementMapper=e.elementMapper||J$;const s=t=>this.elementMapper(t.elements);this.nodeMapper=new k$((t=>new Y$(s,t))),this.model=new Q$(t,function(t,i){return{splice(e,s,n){i.splice(e,s,n.map((i=>t.map(i))))},updateElementHeight(t,e){i.updateElementHeight(t,e)}}}(this.nodeMapper,i),function(t,i){return{...i,identityProvider:i.identityProvider&&{getId:e=>i.identityProvider.getId(t(e))},sorter:i.sorter&&{compare:(t,e)=>i.sorter.compare(t.elements[0],e.elements[0])},filter:i.filter&&{filter:(e,s)=>i.filter.filter(t(e),s)}}}(s,e))}setChildren(t,i=Ht.empty(),e={}){this.model.setChildren(t,i,e)}setCompressionEnabled(t){this.model.setCompressionEnabled(t)}has(t){return this.model.has(t)}getListIndex(t){return this.model.getListIndex(t)}getListRenderCount(t){return this.model.getListRenderCount(t)}getNode(t){return this.nodeMapper.map(this.model.getNode(t))}getNodeLocation(t){return t.element}getParentNodeLocation(t){return this.model.getParentNodeLocation(t)}getFirstElementChild(t){const i=this.model.getFirstElementChild(t);return null==i?i:this.elementMapper(i.elements)}isCollapsible(t){return this.model.isCollapsible(t)}setCollapsible(t,i){return this.model.setCollapsible(t,i)}isCollapsed(t){return this.model.isCollapsed(t)}setCollapsed(t,i,e){return this.model.setCollapsed(t,i,e)}expandTo(t){return this.model.expandTo(t)}rerender(t){return this.model.rerender(t)}refilter(){return this.model.refilter()}getCompressedTreeNode(t=null){return this.model.getNode(t)}}class tW extends H${get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}constructor(t,i,e,s,n={}){super(t,i,e,s,n),this.user=t}setChildren(t,i=Ht.empty(),e){this.model.setChildren(t,i,e)}rerender(t){void 0!==t?this.model.rerender(t):this.view.rerender()}hasElement(t){return this.model.has(t)}createModel(t,i,e){return new V$(t,i,e)}}class iW{get compressedTreeNodeProvider(){return this._compressedTreeNodeProvider()}constructor(t,i){this._compressedTreeNodeProvider=t,this.renderer=i,this.templateId=i.templateId,i.onDidChangeTwistieState&&(this.onDidChangeTwistieState=i.onDidChangeTwistieState)}renderTemplate(t){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(t)}}renderElement(t,i,e,s){const n=this.compressedTreeNodeProvider.getCompressedTreeNode(t.element);1===n.element.elements.length?(e.compressedTreeNode=void 0,this.renderer.renderElement(t,i,e.data,s)):(e.compressedTreeNode=n,this.renderer.renderCompressedElements(n,i,e.data,s))}disposeElement(t,i,e,s){var n,o,r,h;e.compressedTreeNode?null===(o=(n=this.renderer).disposeCompressedElements)||void 0===o||o.call(n,e.compressedTreeNode,i,e.data,s):null===(h=(r=this.renderer).disposeElement)||void 0===h||h.call(r,t,i,e.data,s)}disposeTemplate(t){this.renderer.disposeTemplate(t.data)}renderTwistie(t,i){return!!this.renderer.renderTwistie&&this.renderer.renderTwistie(t,i)}}!function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);o>3&&r&&Object.defineProperty(i,e,r)}([nw],iW.prototype,"compressedTreeNodeProvider",null);class eW extends tW{constructor(t,i,e,s,n={}){const o=()=>this;super(t,i,e,s.map((t=>new iW(o,t))),function(t,i){return i&&{...i,keyboardNavigationLabelProvider:i.keyboardNavigationLabelProvider&&{getKeyboardNavigationLabel(e){let s;try{s=t().getCompressedTreeNode(e)}catch(t){return i.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e)}return 1===s.element.elements.length?i.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e):i.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(s.element.elements)}}}}(o,n))}setChildren(t,i=Ht.empty(),e){this.model.setChildren(t,i,e)}createModel(t,i,e){return new X$(t,i,e)}updateOptions(t={}){super.updateOptions(t),void 0!==t.compressionEnabled&&this.model.setCompressionEnabled(t.compressionEnabled)}getCompressedTreeNode(t=null){return this.model.getCompressedTreeNode(t)}}function sW(t){return{...t,children:[],refreshPromise:void 0,stale:!0,slow:!1,forceExpanded:!1}}function nW(t,i){return!!i.parent&&(i.parent===t||nW(t,i.parent))}class oW{get element(){return this.node.element.element}get children(){return this.node.children.map((t=>new oW(t)))}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}constructor(t){this.node=t}}class rW{constructor(t,i,e){this.renderer=t,this.nodeMapper=i,this.onDidChangeTwistieState=e,this.renderedNodes=new Map,this.templateId=t.templateId}renderTemplate(t){return{templateData:this.renderer.renderTemplate(t)}}renderElement(t,i,e,s){this.renderer.renderElement(this.nodeMapper.map(t),i,e.templateData,s)}renderTwistie(t,i){return t.slow?(i.classList.add(...Cr.asClassNameArray(Os.treeItemLoading)),!0):(i.classList.remove(...Cr.asClassNameArray(Os.treeItemLoading)),!1)}disposeElement(t,i,e,s){var n,o;null===(o=(n=this.renderer).disposeElement)||void 0===o||o.call(n,this.nodeMapper.map(t),i,e.templateData,s)}disposeTemplate(t){this.renderer.disposeTemplate(t.templateData)}dispose(){this.renderedNodes.clear()}}function hW(t){return{browserEvent:t.browserEvent,elements:t.elements.map((t=>t.element))}}function cW(t){return{browserEvent:t.browserEvent,element:t.element&&t.element.element,target:t.target}}class aW extends TN{constructor(t){super(t.elements.map((t=>t.element))),this.data=t}}function lW(t){return t instanceof TN?new aW(t):t}class uW{constructor(t){this.dnd=t}getDragURI(t){return this.dnd.getDragURI(t.element)}getDragLabel(t,i){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(t.map((t=>t.element)),i)}onDragStart(t,i){var e,s;null===(s=(e=this.dnd).onDragStart)||void 0===s||s.call(e,lW(t),i)}onDragOver(t,i,e,s,n=!0){return this.dnd.onDragOver(lW(t),i&&i.element,e,s)}drop(t,i,e,s){this.dnd.drop(lW(t),i&&i.element,e,s)}onDragEnd(t){var i,e;null===(e=(i=this.dnd).onDragEnd)||void 0===e||e.call(i,t)}dispose(){this.dnd.dispose()}}function dW(t){return t&&{...t,collapseByDefault:!0,identityProvider:t.identityProvider&&{getId:i=>t.identityProvider.getId(i.element)},dnd:t.dnd&&new uW(t.dnd),multipleSelectionController:t.multipleSelectionController&&{isSelectionSingleChangeEvent:i=>t.multipleSelectionController.isSelectionSingleChangeEvent({...i,element:i.element}),isSelectionRangeChangeEvent:i=>t.multipleSelectionController.isSelectionRangeChangeEvent({...i,element:i.element})},accessibilityProvider:t.accessibilityProvider&&{...t.accessibilityProvider,getPosInSet:void 0,getSetSize:void 0,getRole:t.accessibilityProvider.getRole?i=>t.accessibilityProvider.getRole(i.element):()=>"treeitem",isChecked:t.accessibilityProvider.isChecked?i=>{var e;return!!(null===(e=t.accessibilityProvider)||void 0===e?void 0:e.isChecked(i.element))}:void 0,getAriaLabel:i=>t.accessibilityProvider.getAriaLabel(i.element),getWidgetAriaLabel:()=>t.accessibilityProvider.getWidgetAriaLabel(),getWidgetRole:t.accessibilityProvider.getWidgetRole?()=>t.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:t.accessibilityProvider.getAriaLevel&&(i=>t.accessibilityProvider.getAriaLevel(i.element)),getActiveDescendantId:t.accessibilityProvider.getActiveDescendantId&&(i=>t.accessibilityProvider.getActiveDescendantId(i.element))},filter:t.filter&&{filter:(i,e)=>t.filter.filter(i.element,e)},keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&{...t.keyboardNavigationLabelProvider,getKeyboardNavigationLabel:i=>t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(i.element)},sorter:void 0,expandOnlyOnTwistieClick:void 0===t.expandOnlyOnTwistieClick?void 0:"function"!=typeof t.expandOnlyOnTwistieClick?t.expandOnlyOnTwistieClick:i=>t.expandOnlyOnTwistieClick(i.element),defaultFindVisibility:i=>i.hasChildren&&i.stale?1:"number"==typeof t.defaultFindVisibility?t.defaultFindVisibility:void 0===t.defaultFindVisibility?2:t.defaultFindVisibility(i.element)}}function fW(t,i){i(t),t.children.forEach((t=>fW(t,i)))}class pW{get onDidScroll(){return this.tree.onDidScroll}get onDidChangeFocus(){return he.map(this.tree.onDidChangeFocus,hW)}get onDidChangeSelection(){return he.map(this.tree.onDidChangeSelection,hW)}get onMouseDblClick(){return he.map(this.tree.onMouseDblClick,cW)}get onPointer(){return he.map(this.tree.onPointer,cW)}get onDidFocus(){return this.tree.onDidFocus}get onDidChangeModel(){return this.tree.onDidChangeModel}get onDidChangeCollapseState(){return this.tree.onDidChangeCollapseState}get onDidChangeFindOpenState(){return this.tree.onDidChangeFindOpenState}get onDidDispose(){return this.tree.onDidDispose}constructor(t,i,e,s,n,o={}){this.user=t,this.dataSource=n,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new de,this._onDidChangeNodeSlowState=new de,this.nodeMapper=new k$((t=>new oW(t))),this.disposables=new Xi,this.identityProvider=o.identityProvider,this.autoExpandSingleChildren=void 0!==o.autoExpandSingleChildren&&o.autoExpandSingleChildren,this.sorter=o.sorter,this.getDefaultCollapseState=t=>o.collapseByDefault?o.collapseByDefault(t)?g$.PreserveOrCollapsed:g$.PreserveOrExpanded:void 0,this.tree=this.createTree(t,i,e,s,o),this.onDidChangeFindMode=this.tree.onDidChangeFindMode,this.root=sW({element:void 0,parent:null,hasChildren:!0,defaultCollapseState:void 0}),this.identityProvider&&(this.root={...this.root,id:null}),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}createTree(t,i,e,s,n){const o=new L$(e),r=s.map((t=>new rW(t,this.nodeMapper,this._onDidChangeNodeSlowState.event))),h=dW(n)||{};return new tW(t,i,o,r,h)}updateOptions(t={}){this.tree.updateOptions(t)}getHTMLElement(){return this.tree.getHTMLElement()}get scrollTop(){return this.tree.scrollTop}set scrollTop(t){this.tree.scrollTop=t}get scrollHeight(){return this.tree.scrollHeight}get renderHeight(){return this.tree.renderHeight}domFocus(){this.tree.domFocus()}layout(t,i){this.tree.layout(t,i)}style(t){this.tree.style(t)}getInput(){return this.root.element}async setInput(t,i){this.refreshPromises.forEach((t=>t.cancel())),this.refreshPromises.clear(),this.root.element=t;const e=i&&{viewState:i,focus:[],selection:[]};await this._updateChildren(t,!0,!1,e),e&&(this.tree.setFocus(e.focus),this.tree.setSelection(e.selection)),i&&"number"==typeof i.scrollTop&&(this.scrollTop=i.scrollTop)}async _updateChildren(t=this.root.element,i=!0,e=!1,s,n){if(void 0===this.root.element)throw new y$(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await he.toPromise(this._onDidRender.event));const o=this.getDataNode(t);if(await this.refreshAndRenderNode(o,i,s,n),e)try{this.tree.rerender(o)}catch(t){}}rerender(t){if(void 0===t||t===this.root.element)return void this.tree.rerender();const i=this.getDataNode(t);this.tree.rerender(i)}getNode(t=this.root.element){const i=this.getDataNode(t),e=this.tree.getNode(i===this.root?null:i);return this.nodeMapper.map(e)}collapse(t,i=!1){const e=this.getDataNode(t);return this.tree.collapse(e===this.root?null:e,i)}async expand(t,i=!1){if(void 0===this.root.element)throw new y$(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await he.toPromise(this._onDidRender.event));const e=this.getDataNode(t);if(this.tree.hasElement(e)&&!this.tree.isCollapsible(e))return!1;if(e.refreshPromise&&(await this.root.refreshPromise,await he.toPromise(this._onDidRender.event)),e!==this.root&&!e.refreshPromise&&!this.tree.isCollapsed(e))return!1;const s=this.tree.expand(e===this.root?null:e,i);return e.refreshPromise&&(await this.root.refreshPromise,await he.toPromise(this._onDidRender.event)),s}setSelection(t,i){const e=t.map((t=>this.getDataNode(t)));this.tree.setSelection(e,i)}getSelection(){return this.tree.getSelection().map((t=>t.element))}setFocus(t,i){const e=t.map((t=>this.getDataNode(t)));this.tree.setFocus(e,i)}getFocus(){return this.tree.getFocus().map((t=>t.element))}reveal(t,i){this.tree.reveal(this.getDataNode(t),i)}getParentElement(t){const i=this.tree.getParentElement(this.getDataNode(t));return i&&i.element}getFirstElementChild(t=this.root.element){const i=this.getDataNode(t),e=this.tree.getFirstElementChild(i===this.root?null:i);return e&&e.element}getDataNode(t){const i=this.nodes.get(t===this.root.element?null:t);if(!i)throw new y$(this.user,`Data tree node not found: ${t}`);return i}async refreshAndRenderNode(t,i,e,s){await this.refreshNode(t,i,e),this.render(t,e,s)}async refreshNode(t,i,e){let s;return this.subTreeRefreshPromises.forEach(((n,o)=>{!s&&function(t,i){return t===i||nW(t,i)||nW(i,t)}(o,t)&&(s=n.then((()=>this.refreshNode(t,i,e))))})),s||(t!==this.root&&this.tree.getNode(t).collapsed?(t.hasChildren=!!this.dataSource.hasChildren(t.element),void(t.stale=!0)):this.doRefreshSubTree(t,i,e))}async doRefreshSubTree(t,i,e){let s;t.refreshPromise=new Promise((t=>s=t)),this.subTreeRefreshPromises.set(t,t.refreshPromise),t.refreshPromise.finally((()=>{t.refreshPromise=void 0,this.subTreeRefreshPromises.delete(t)}));try{const s=await this.doRefreshNode(t,i,e);t.stale=!1,await yc.settled(s.map((t=>this.doRefreshSubTree(t,i,e))))}finally{s()}}async doRefreshNode(t,i,e){let s;if(t.hasChildren=!!this.dataSource.hasChildren(t.element),t.hasChildren){const i=this.doGetChildren(t);if(j(i))s=Promise.resolve(i);else{const e=ac(800);e.then((()=>{t.slow=!0,this._onDidChangeNodeSlowState.fire(t)}),(()=>null)),s=i.finally((()=>e.cancel()))}}else s=Promise.resolve(Ht.empty());try{const n=await s;return this.setChildren(t,n,i,e)}catch(i){if(t!==this.root&&this.tree.hasElement(t)&&this.tree.collapse(t),ji(i))return[];throw i}finally{t.slow&&(t.slow=!1,this._onDidChangeNodeSlowState.fire(t))}}doGetChildren(t){let i=this.refreshPromises.get(t);if(i)return i;const e=this.dataSource.getChildren(t.element);return j(e)?this.processChildren(e):(i=nc((async()=>this.processChildren(await e))),this.refreshPromises.set(t,i),i.finally((()=>{this.refreshPromises.delete(t)})))}_onDidChangeCollapseState({node:t,deep:i}){null!==t.element&&!t.collapsed&&t.element.stale&&(i?this.collapse(t.element.element):this.refreshAndRenderNode(t.element,!1).catch(Bi))}setChildren(t,i,e,s){const n=[...i];if(0===t.children.length&&0===n.length)return[];const o=new Map,r=new Map;for(const i of t.children)o.set(i.element,i),this.identityProvider&&r.set(i.id,{node:i,collapsed:this.tree.hasElement(i)&&this.tree.isCollapsed(i)});const h=[],c=n.map((i=>{const n=!!this.dataSource.hasChildren(i);if(!this.identityProvider){const e=sW({element:i,parent:t,hasChildren:n,defaultCollapseState:this.getDefaultCollapseState(i)});return n&&e.defaultCollapseState===g$.PreserveOrExpanded&&h.push(e),e}const c=this.identityProvider.getId(i).toString(),a=r.get(c);if(a){const t=a.node;return o.delete(t.element),this.nodes.delete(t.element),this.nodes.set(i,t),t.element=i,t.hasChildren=n,e?a.collapsed?(t.children.forEach((t=>fW(t,(t=>this.nodes.delete(t.element))))),t.children.splice(0,t.children.length),t.stale=!0):h.push(t):n&&!a.collapsed&&h.push(t),t}const l=sW({element:i,parent:t,id:c,hasChildren:n,defaultCollapseState:this.getDefaultCollapseState(i)});return s&&s.viewState.focus&&s.viewState.focus.indexOf(c)>-1&&s.focus.push(l),s&&s.viewState.selection&&s.viewState.selection.indexOf(c)>-1&&s.selection.push(l),(s&&s.viewState.expanded&&s.viewState.expanded.indexOf(c)>-1||n&&l.defaultCollapseState===g$.PreserveOrExpanded)&&h.push(l),l}));for(const t of o.values())fW(t,(t=>this.nodes.delete(t.element)));for(const t of c)this.nodes.set(t.element,t);return t.children.splice(0,t.children.length,...c),t!==this.root&&this.autoExpandSingleChildren&&1===c.length&&0===h.length&&(c[0].forceExpanded=!0,h.push(c[0])),h}render(t,i,e){const s=t.children.map((t=>this.asTreeElement(t,i))),n=e&&{...e,diffIdentityProvider:e.diffIdentityProvider&&{getId:t=>e.diffIdentityProvider.getId(t.element)}};this.tree.setChildren(t===this.root?null:t,s,n),t!==this.root&&this.tree.setCollapsible(t,t.hasChildren),this._onDidRender.fire()}asTreeElement(t,i){if(t.stale)return{element:t,collapsible:t.hasChildren,collapsed:!0};let e;return i&&i.viewState.expanded&&t.id&&i.viewState.expanded.indexOf(t.id)>-1?e=!1:t.forceExpanded?(e=!1,t.forceExpanded=!1):e=t.defaultCollapseState,{element:t,children:t.hasChildren?Ht.map(t.children,(t=>this.asTreeElement(t,i))):[],collapsible:t.hasChildren,collapsed:e}}processChildren(t){return this.sorter&&(t=[...t].sort(this.sorter.compare.bind(this.sorter))),t}dispose(){this.disposables.dispose(),this.tree.dispose()}}class gW{get element(){return{elements:this.node.element.elements.map((t=>t.element)),incompressible:this.node.element.incompressible}}get children(){return this.node.children.map((t=>new gW(t)))}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}constructor(t){this.node=t}}class mW{constructor(t,i,e,s){this.renderer=t,this.nodeMapper=i,this.compressibleNodeMapperProvider=e,this.onDidChangeTwistieState=s,this.renderedNodes=new Map,this.disposables=[],this.templateId=t.templateId}renderTemplate(t){return{templateData:this.renderer.renderTemplate(t)}}renderElement(t,i,e,s){this.renderer.renderElement(this.nodeMapper.map(t),i,e.templateData,s)}renderCompressedElements(t,i,e,s){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(t),i,e.templateData,s)}renderTwistie(t,i){return t.slow?(i.classList.add(...Cr.asClassNameArray(Os.treeItemLoading)),!0):(i.classList.remove(...Cr.asClassNameArray(Os.treeItemLoading)),!1)}disposeElement(t,i,e,s){var n,o;null===(o=(n=this.renderer).disposeElement)||void 0===o||o.call(n,this.nodeMapper.map(t),i,e.templateData,s)}disposeCompressedElements(t,i,e,s){var n,o;null===(o=(n=this.renderer).disposeCompressedElements)||void 0===o||o.call(n,this.compressibleNodeMapperProvider().map(t),i,e.templateData,s)}disposeTemplate(t){this.renderer.disposeTemplate(t.templateData)}dispose(){this.renderedNodes.clear(),this.disposables=Qi(this.disposables)}}class wW extends pW{constructor(t,i,e,s,n,o,r={}){super(t,i,e,n,o,r),this.compressionDelegate=s,this.compressibleNodeMapper=new k$((t=>new gW(t))),this.filter=r.filter}createTree(t,i,e,s,n){const o=new L$(e),r=s.map((t=>new mW(t,this.nodeMapper,(()=>this.compressibleNodeMapper),this._onDidChangeNodeSlowState.event))),h=function(t){const i=t&&dW(t);return i&&{...i,keyboardNavigationLabelProvider:i.keyboardNavigationLabelProvider&&{...i.keyboardNavigationLabelProvider,getCompressedNodeKeyboardNavigationLabel:i=>t.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(i.map((t=>t.element)))}}}(n)||{};return new eW(t,i,o,r,h)}asTreeElement(t,i){return{incompressible:this.compressionDelegate.isIncompressible(t.element),...super.asTreeElement(t,i)}}updateOptions(t={}){this.tree.updateOptions(t)}render(t,i){if(!this.identityProvider)return super.render(t,i);const e=t=>this.identityProvider.getId(t).toString(),s=t=>{const i=new Set;for(const s of t){const t=this.tree.getCompressedTreeNode(s===this.root?null:s);if(t.element)for(const s of t.element.elements)i.add(e(s.element))}return i},n=s(this.tree.getSelection()),o=s(this.tree.getFocus());super.render(t,i);const r=this.getSelection();let h=!1;const c=this.getFocus();let a=!1;const l=t=>{const i=t.element;if(i)for(let t=0;t{const i="boolean"==typeof(e=this.filter.filter(t,1))?e?1:0:x$(e)?C$(e.visibility):C$(e);var e;if(2===i)throw new Error("Recursive tree visibility not supported in async data compressed trees");return 1===i}))),super.processChildren(t)}}class vW extends H${constructor(t,i,e,s,n,o={}){super(t,i,e,s,o),this.user=t,this.dataSource=n,this.identityProvider=o.identityProvider}createModel(t,i,e){return new V$(t,i,e)}}new ch("isMac",Ct,ot(0,"Whether the operating system is macOS")),new ch("isLinux",St,ot(0,"Whether the operating system is Linux"));const bW=new ch("isWindows",xt,ot(0,"Whether the operating system is Windows")),yW=new ch("isWeb",Et,ot(0,"Whether the platform is a web browser"));new ch("isMacNative",Ct&&!Et,ot(0,"Whether the operating system is macOS on a non-browser platform")),new ch("isIOS",Mt,ot(0,"Whether the operating system is iOS")),new ch("isMobile",Lt,ot(0,"Whether the platform is a mobile web browser")),new ch("isDevelopment",!1,!0),new ch("productQualityType","",ot(0,"Quality type of VS Code"));const kW="inputFocus";let xW;new ch(kW,!1,ot(0,"Whether keyboard focus is inside an input box"));const CW=globalThis.vscode;if(void 0!==CW&&void 0!==CW.context){const t=CW.context.configuration();if(!t)throw new Error("Sandbox: unable to resolve product configuration from preload script.");xW=t.product}else if(globalThis._VSCODE_PRODUCT_JSON&&globalThis._VSCODE_PACKAGE_JSON){if(xW=globalThis._VSCODE_PRODUCT_JSON,We.VSCODE_DEV&&Object.assign(xW,{nameShort:`${xW.nameShort} Dev`,nameLong:`${xW.nameLong} Dev`,dataFolderName:`${xW.dataFolderName}-dev`,serverDataFolderName:xW.serverDataFolderName?`${xW.serverDataFolderName}-dev`:void 0}),!xW.version){const t=globalThis._VSCODE_PACKAGE_JSON;Object.assign(xW,{version:t.version})}}else xW={},0===Object.keys(xW).length&&Object.assign(xW,{version:"1.82.0-dev",nameShort:"Code - OSS Dev",nameLong:"Code - OSS Dev",applicationName:"code-oss",dataFolderName:".vscode-oss",urlProtocol:"code-oss",reportIssueUrl:"https://github.com/microsoft/vscode/issues/new",licenseName:"MIT",licenseUrl:"https://github.com/microsoft/vscode/blob/main/LICENSE.txt",serverLicenseUrl:"https://github.com/microsoft/vscode/blob/main/LICENSE.txt"});const SW=xW;var DW=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},EW=function(t,i){return function(e,s){i(e,s,t)}};const AW=dr("listService"),MW=new ch("listScrollAtBoundary","none");zr.or(MW.isEqualTo("top"),MW.isEqualTo("both")),zr.or(MW.isEqualTo("bottom"),MW.isEqualTo("both"));const LW=new ch("listFocus",!0),FW=new ch("listSupportsMultiselect",!0),TW=zr.and(LW,zr.not(kW)),RW=new ch("listHasSelectionOrFocus",!1),OW=new ch("listDoubleSelection",!1),IW=new ch("listMultiSelection",!1),_W=new ch("listSelectionNavigation",!1),NW=new ch("listSupportsFind",!0),BW=new ch("treeElementCanCollapse",!1),PW=new ch("treeElementHasParent",!1),$W=new ch("treeElementCanExpand",!1),WW=new ch("treeElementHasChild",!1),jW=new ch("treeFindOpen",!1),zW="listTypeNavigationMode",HW="listAutomaticKeyboardNavigation";function VW(t,i){const e=t.createScoped(i.getHTMLElement());return LW.bindTo(e),e}function UW(t,i){const e=MW.bindTo(t),s=()=>{const t=0===i.scrollTop,s=i.scrollHeight-i.renderHeight-i.scrollTop<1;e.set(t&&s?"both":t?"top":s?"bottom":"none")};return s(),i.onDidScroll(s)}const qW="workbench.list.multiSelectModifier",KW="workbench.list.openMode",GW="workbench.list.horizontalScrolling",ZW="workbench.list.defaultFindMode",QW="workbench.list.typeNavigationMode",JW="workbench.list.keyboardNavigation",YW="workbench.list.scrollByPage",XW="workbench.list.defaultFindMatchType",tj="workbench.tree.indent",ij="workbench.tree.renderIndentGuides",ej="workbench.list.smoothScrolling",sj="workbench.list.mouseWheelScrollSensitivity",nj="workbench.list.fastScrollSensitivity",oj="workbench.tree.expandMode",rj="workbench.tree.enableStickyScroll",hj="workbench.tree.stickyScrollMaxItemCount";function cj(t){return"alt"===t.getValue(qW)}class aj extends te{constructor(t){super(),this.configurationService=t,this.useAltAsMultipleSelectionModifier=cj(t),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration((t=>{t.affectsConfiguration(qW)&&(this.useAltAsMultipleSelectionModifier=cj(this.configurationService))})))}isSelectionSingleChangeEvent(t){return this.useAltAsMultipleSelectionModifier?t.browserEvent.altKey:JN(t)}isSelectionRangeChangeEvent(t){return YN(t)}}function lj(t,i){var e;const s=t.get(pd),n=t.get(oC),o=new Xi;return[{...i,keyboardNavigationDelegate:{mightProducePrintableCharacter:t=>n.mightProducePrintableCharacter(t)},smoothScrolling:Boolean(s.getValue(ej)),mouseWheelScrollSensitivity:s.getValue(sj),fastScrollSensitivity:s.getValue(nj),multipleSelectionController:null!==(e=i.multipleSelectionController)&&void 0!==e?e:o.add(new aj(s)),keyboardNavigationEventFilter:vj(n),scrollByPage:Boolean(s.getValue(YW))},o]}let uj=class extends aB{constructor(t,i,e,s,n,o,r,h,c){const a=void 0!==n.horizontalScrolling?n.horizontalScrolling:Boolean(h.getValue(GW)),[l,u]=c.invokeFunction(lj,n);super(t,i,e,s,{keyboardSupport:!1,...l,horizontalScrolling:a}),this.disposables.add(u),this.contextKeyService=VW(o,this),this.disposables.add(UW(this.contextKeyService,this)),this.listSupportsMultiSelect=FW.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(!1!==n.multipleSelectionSupport),_W.bindTo(this.contextKeyService).set(Boolean(n.selectionNavigation)),this.listHasSelectionOrFocus=RW.bindTo(this.contextKeyService),this.listDoubleSelection=OW.bindTo(this.contextKeyService),this.listMultiSelection=IW.bindTo(this.contextKeyService),this.horizontalScrolling=n.horizontalScrolling,this._useAltAsMultipleSelectionModifier=cj(h),this.disposables.add(this.contextKeyService),this.disposables.add(r.register(this)),this.updateStyles(n.overrideStyles),this.disposables.add(this.onDidChangeSelection((()=>{const t=this.getSelection(),i=this.getFocus();this.contextKeyService.bufferChangeEvents((()=>{this.listHasSelectionOrFocus.set(t.length>0||i.length>0),this.listMultiSelection.set(t.length>1),this.listDoubleSelection.set(2===t.length)}))}))),this.disposables.add(this.onDidChangeFocus((()=>{const t=this.getSelection(),i=this.getFocus();this.listHasSelectionOrFocus.set(t.length>0||i.length>0)}))),this.disposables.add(h.onDidChangeConfiguration((t=>{t.affectsConfiguration(qW)&&(this._useAltAsMultipleSelectionModifier=cj(h));let i={};if(t.affectsConfiguration(GW)&&void 0===this.horizontalScrolling){const t=Boolean(h.getValue(GW));i={...i,horizontalScrolling:t}}if(t.affectsConfiguration(YW)){const t=Boolean(h.getValue(YW));i={...i,scrollByPage:t}}if(t.affectsConfiguration(ej)){const t=Boolean(h.getValue(ej));i={...i,smoothScrolling:t}}if(t.affectsConfiguration(sj)){const t=h.getValue(sj);i={...i,mouseWheelScrollSensitivity:t}}if(t.affectsConfiguration(nj)){const t=h.getValue(nj);i={...i,fastScrollSensitivity:t}}Object.keys(i).length>0&&this.updateOptions(i)}))),this.navigator=new gj(this,{configurationService:h,...n}),this.disposables.add(this.navigator)}updateOptions(t){super.updateOptions(t),void 0!==t.overrideStyles&&this.updateStyles(t.overrideStyles),void 0!==t.multipleSelectionSupport&&this.listSupportsMultiSelect.set(!!t.multipleSelectionSupport)}updateStyles(t){this.style(t?PB(t):BB)}};uj=DW([EW(5,ah),EW(6,AW),EW(7,pd),EW(8,ur)],uj);let dj=class extends _P{constructor(t,i,e,s,n,o,r,h,c){const a=void 0!==n.horizontalScrolling?n.horizontalScrolling:Boolean(h.getValue(GW)),[l,u]=c.invokeFunction(lj,n);super(t,i,e,s,{keyboardSupport:!1,...l,horizontalScrolling:a}),this.disposables=new Xi,this.disposables.add(u),this.contextKeyService=VW(o,this),this.disposables.add(UW(this.contextKeyService,this.widget)),this.horizontalScrolling=n.horizontalScrolling,this.listSupportsMultiSelect=FW.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(!1!==n.multipleSelectionSupport),_W.bindTo(this.contextKeyService).set(Boolean(n.selectionNavigation)),this._useAltAsMultipleSelectionModifier=cj(h),this.disposables.add(this.contextKeyService),this.disposables.add(r.register(this)),this.updateStyles(n.overrideStyles),this.disposables.add(h.onDidChangeConfiguration((t=>{t.affectsConfiguration(qW)&&(this._useAltAsMultipleSelectionModifier=cj(h));let i={};if(t.affectsConfiguration(GW)&&void 0===this.horizontalScrolling){const t=Boolean(h.getValue(GW));i={...i,horizontalScrolling:t}}if(t.affectsConfiguration(YW)){const t=Boolean(h.getValue(YW));i={...i,scrollByPage:t}}if(t.affectsConfiguration(ej)){const t=Boolean(h.getValue(ej));i={...i,smoothScrolling:t}}if(t.affectsConfiguration(sj)){const t=h.getValue(sj);i={...i,mouseWheelScrollSensitivity:t}}if(t.affectsConfiguration(nj)){const t=h.getValue(nj);i={...i,fastScrollSensitivity:t}}Object.keys(i).length>0&&this.updateOptions(i)}))),this.navigator=new gj(this,{configurationService:h,...n}),this.disposables.add(this.navigator)}updateOptions(t){super.updateOptions(t),void 0!==t.overrideStyles&&this.updateStyles(t.overrideStyles),void 0!==t.multipleSelectionSupport&&this.listSupportsMultiSelect.set(!!t.multipleSelectionSupport)}updateStyles(t){this.style(t?PB(t):BB)}dispose(){this.disposables.dispose(),super.dispose()}};dj=DW([EW(5,ah),EW(6,AW),EW(7,pd),EW(8,ur)],dj);let fj=class extends t${constructor(t,i,e,s,n,o,r,h,c,a){const l=void 0!==o.horizontalScrolling?o.horizontalScrolling:Boolean(c.getValue(GW)),[u,d]=a.invokeFunction(lj,o);super(t,i,e,s,n,{keyboardSupport:!1,...u,horizontalScrolling:l}),this.disposables.add(d),this.contextKeyService=VW(r,this),this.disposables.add(UW(this.contextKeyService,this)),this.listSupportsMultiSelect=FW.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(!1!==o.multipleSelectionSupport),_W.bindTo(this.contextKeyService).set(Boolean(o.selectionNavigation)),this.listHasSelectionOrFocus=RW.bindTo(this.contextKeyService),this.listDoubleSelection=OW.bindTo(this.contextKeyService),this.listMultiSelection=IW.bindTo(this.contextKeyService),this.horizontalScrolling=o.horizontalScrolling,this._useAltAsMultipleSelectionModifier=cj(c),this.disposables.add(this.contextKeyService),this.disposables.add(h.register(this)),this.updateStyles(o.overrideStyles),this.disposables.add(this.onDidChangeSelection((()=>{const t=this.getSelection(),i=this.getFocus();this.contextKeyService.bufferChangeEvents((()=>{this.listHasSelectionOrFocus.set(t.length>0||i.length>0),this.listMultiSelection.set(t.length>1),this.listDoubleSelection.set(2===t.length)}))}))),this.disposables.add(this.onDidChangeFocus((()=>{const t=this.getSelection(),i=this.getFocus();this.listHasSelectionOrFocus.set(t.length>0||i.length>0)}))),this.disposables.add(c.onDidChangeConfiguration((t=>{t.affectsConfiguration(qW)&&(this._useAltAsMultipleSelectionModifier=cj(c));let i={};if(t.affectsConfiguration(GW)&&void 0===this.horizontalScrolling){const t=Boolean(c.getValue(GW));i={...i,horizontalScrolling:t}}if(t.affectsConfiguration(YW)){const t=Boolean(c.getValue(YW));i={...i,scrollByPage:t}}if(t.affectsConfiguration(ej)){const t=Boolean(c.getValue(ej));i={...i,smoothScrolling:t}}if(t.affectsConfiguration(sj)){const t=c.getValue(sj);i={...i,mouseWheelScrollSensitivity:t}}if(t.affectsConfiguration(nj)){const t=c.getValue(nj);i={...i,fastScrollSensitivity:t}}Object.keys(i).length>0&&this.updateOptions(i)}))),this.navigator=new mj(this,{configurationService:c,...o}),this.disposables.add(this.navigator)}updateOptions(t){super.updateOptions(t),void 0!==t.overrideStyles&&this.updateStyles(t.overrideStyles),void 0!==t.multipleSelectionSupport&&this.listSupportsMultiSelect.set(!!t.multipleSelectionSupport)}updateStyles(t){this.style(t?PB(t):BB)}dispose(){this.disposables.dispose(),super.dispose()}};fj=DW([EW(6,ah),EW(7,AW),EW(8,pd),EW(9,ur)],fj);class pj extends te{constructor(t,i){var e;super(),this.widget=t,this._onDidOpen=this._register(new de),this.onDidOpen=this._onDidOpen.event,this._register(he.filter(this.widget.onDidChangeSelection,(t=>Ml(t.browserEvent)))((t=>this.onSelectionFromKeyboard(t)))),this._register(this.widget.onPointer((t=>this.onPointer(t.element,t.browserEvent)))),this._register(this.widget.onMouseDblClick((t=>this.onMouseDblClick(t.element,t.browserEvent)))),"boolean"!=typeof(null==i?void 0:i.openOnSingleClick)&&(null==i?void 0:i.configurationService)?(this.openOnSingleClick="doubleClick"!==(null==i?void 0:i.configurationService.getValue(KW)),this._register(null==i?void 0:i.configurationService.onDidChangeConfiguration((t=>{t.affectsConfiguration(KW)&&(this.openOnSingleClick="doubleClick"!==(null==i?void 0:i.configurationService.getValue(KW)))})))):this.openOnSingleClick=null===(e=null==i?void 0:i.openOnSingleClick)||void 0===e||e}onSelectionFromKeyboard(t){if(1!==t.elements.length)return;const i=t.browserEvent,e="boolean"!=typeof i.preserveFocus||i.preserveFocus,s="boolean"==typeof i.pinned?i.pinned:!e;this._open(this.getSelectedElement(),e,s,!1,t.browserEvent)}onPointer(t,i){this.openOnSingleClick&&2!==i.detail&&this._open(t,!0,1===i.button,i.ctrlKey||i.metaKey||i.altKey,i)}onMouseDblClick(t,i){if(!i)return;const e=i.target;e.classList.contains("monaco-tl-twistie")||e.classList.contains("monaco-icon-label")&&e.classList.contains("folder-icon")&&i.offsetX<16||this._open(t,!1,!0,i.ctrlKey||i.metaKey||i.altKey,i)}_open(t,i,e,s,n){t&&this._onDidOpen.fire({editorOptions:{preserveFocus:i,pinned:e,revealIfVisible:!0},sideBySide:s,element:t,browserEvent:n})}}class gj extends pj{constructor(t,i){super(t,i),this.widget=t}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class mj extends pj{constructor(t,i){super(t,i)}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class wj extends pj{constructor(t,i){super(t,i)}getSelectedElement(){var t;return null!==(t=this.widget.getSelection()[0])&&void 0!==t?t:void 0}}function vj(t){let i=!1;return e=>{if(e.toKeyCodeChord().isModifierKey())return!1;if(i)return i=!1,!1;const s=t.softDispatch(e,e.target);return 1===s.kind?(i=!0,!1):(i=!1,0===s.kind)}}let bj=class extends tW{constructor(t,i,e,s,n,o,r,h,c){const{options:a,getTypeNavigationMode:l,disposable:u}=o.invokeFunction(Ej,n);super(t,i,e,s,a),this.disposables.add(u),this.internals=new Aj(this,n,l,n.overrideStyles,r,h,c),this.disposables.add(this.internals)}updateOptions(t){super.updateOptions(t),this.internals.updateOptions(t)}};bj=DW([EW(5,ur),EW(6,ah),EW(7,AW),EW(8,pd)],bj);let yj=class extends eW{constructor(t,i,e,s,n,o,r,h,c){const{options:a,getTypeNavigationMode:l,disposable:u}=o.invokeFunction(Ej,n);super(t,i,e,s,a),this.disposables.add(u),this.internals=new Aj(this,n,l,n.overrideStyles,r,h,c),this.disposables.add(this.internals)}updateOptions(t={}){super.updateOptions(t),t.overrideStyles&&this.internals.updateStyleOverrides(t.overrideStyles),this.internals.updateOptions(t)}};yj=DW([EW(5,ur),EW(6,ah),EW(7,AW),EW(8,pd)],yj);let kj=class extends vW{constructor(t,i,e,s,n,o,r,h,c,a){const{options:l,getTypeNavigationMode:u,disposable:d}=r.invokeFunction(Ej,o);super(t,i,e,s,n,l),this.disposables.add(d),this.internals=new Aj(this,o,u,o.overrideStyles,h,c,a),this.disposables.add(this.internals)}updateOptions(t={}){super.updateOptions(t),void 0!==t.overrideStyles&&this.internals.updateStyleOverrides(t.overrideStyles),this.internals.updateOptions(t)}};kj=DW([EW(6,ur),EW(7,ah),EW(8,AW),EW(9,pd)],kj);let xj=class extends pW{get onDidOpen(){return this.internals.onDidOpen}constructor(t,i,e,s,n,o,r,h,c,a){const{options:l,getTypeNavigationMode:u,disposable:d}=r.invokeFunction(Ej,o);super(t,i,e,s,n,l),this.disposables.add(d),this.internals=new Aj(this,o,u,o.overrideStyles,h,c,a),this.disposables.add(this.internals)}updateOptions(t={}){super.updateOptions(t),t.overrideStyles&&this.internals.updateStyleOverrides(t.overrideStyles),this.internals.updateOptions(t)}};xj=DW([EW(6,ur),EW(7,ah),EW(8,AW),EW(9,pd)],xj);let Cj=class extends wW{constructor(t,i,e,s,n,o,r,h,c,a,l){const{options:u,getTypeNavigationMode:d,disposable:f}=h.invokeFunction(Ej,r);super(t,i,e,s,n,o,u),this.disposables.add(f),this.internals=new Aj(this,r,d,r.overrideStyles,c,a,l),this.disposables.add(this.internals)}updateOptions(t){super.updateOptions(t),this.internals.updateOptions(t)}};function Sj(t){const i=t.getValue(ZW);if("highlight"===i)return v$.Highlight;if("filter"===i)return v$.Filter;const e=t.getValue(JW);return"simple"===e||"highlight"===e?v$.Highlight:"filter"===e?v$.Filter:void 0}function Dj(t){const i=t.getValue(XW);return"fuzzy"===i?b$.Fuzzy:"contiguous"===i?b$.Contiguous:void 0}function Ej(t,i){var e;const s=t.get(pd),n=t.get(aI),o=t.get(ah),r=t.get(ur),h=void 0!==i.horizontalScrolling?i.horizontalScrolling:Boolean(s.getValue(GW)),[c,a]=r.invokeFunction(lj,i),l=i.paddingBottom,u=void 0!==i.renderIndentGuides?i.renderIndentGuides:s.getValue(ij);return{getTypeNavigationMode:()=>{const t=o.getContextKeyValue(zW);if("automatic"===t)return NN.Automatic;if("trigger"===t)return NN.Trigger;if(!1===o.getContextKeyValue(HW))return NN.Trigger;const i=s.getValue(QW);return"automatic"===i?NN.Automatic:"trigger"===i?NN.Trigger:void 0},disposable:a,options:{keyboardSupport:!1,...c,indent:"number"==typeof s.getValue(tj)?s.getValue(tj):void 0,renderIndentGuides:u,smoothScrolling:Boolean(s.getValue(ej)),defaultFindMode:Sj(s),defaultFindMatchType:Dj(s),horizontalScrolling:h,scrollByPage:Boolean(s.getValue(YW)),paddingBottom:l,hideTwistiesOfChildlessElements:i.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:null!==(e=i.expandOnlyOnTwistieClick)&&void 0!==e?e:"doubleClick"===s.getValue(oj),contextViewProvider:n,findWidgetStyles:_B,enableStickyScroll:Boolean(s.getValue(rj)),stickyScrollMaxItemCount:Number(s.getValue(hj))}}}Cj=DW([EW(7,ur),EW(8,ah),EW(9,AW),EW(10,pd)],Cj);let Aj=class{get onDidOpen(){return this.navigator.onDidOpen}constructor(t,i,e,s,n,o,r){var h;this.tree=t,this.disposables=[],this.contextKeyService=VW(n,t),this.disposables.push(UW(this.contextKeyService,t)),this.listSupportsMultiSelect=FW.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(!1!==i.multipleSelectionSupport),_W.bindTo(this.contextKeyService).set(Boolean(i.selectionNavigation)),this.listSupportFindWidget=NW.bindTo(this.contextKeyService),this.listSupportFindWidget.set(null===(h=i.findWidgetEnabled)||void 0===h||h),this.hasSelectionOrFocus=RW.bindTo(this.contextKeyService),this.hasDoubleSelection=OW.bindTo(this.contextKeyService),this.hasMultiSelection=IW.bindTo(this.contextKeyService),this.treeElementCanCollapse=BW.bindTo(this.contextKeyService),this.treeElementHasParent=PW.bindTo(this.contextKeyService),this.treeElementCanExpand=$W.bindTo(this.contextKeyService),this.treeElementHasChild=WW.bindTo(this.contextKeyService),this.treeFindOpen=jW.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=cj(r),this.updateStyleOverrides(s);const c=()=>{const i=t.getFocus()[0];if(!i)return;const e=t.getNode(i);this.treeElementCanCollapse.set(e.collapsible&&!e.collapsed),this.treeElementHasParent.set(!!t.getParentElement(i)),this.treeElementCanExpand.set(e.collapsible&&e.collapsed),this.treeElementHasChild.set(!!t.getFirstElementChild(i))},a=new Set;a.add(zW),a.add(HW),this.disposables.push(this.contextKeyService,o.register(t),t.onDidChangeSelection((()=>{const i=t.getSelection(),e=t.getFocus();this.contextKeyService.bufferChangeEvents((()=>{this.hasSelectionOrFocus.set(i.length>0||e.length>0),this.hasMultiSelection.set(i.length>1),this.hasDoubleSelection.set(2===i.length)}))})),t.onDidChangeFocus((()=>{const i=t.getSelection(),e=t.getFocus();this.hasSelectionOrFocus.set(i.length>0||e.length>0),c()})),t.onDidChangeCollapseState(c),t.onDidChangeModel(c),t.onDidChangeFindOpenState((t=>this.treeFindOpen.set(t))),r.onDidChangeConfiguration((s=>{let n={};if(s.affectsConfiguration(qW)&&(this._useAltAsMultipleSelectionModifier=cj(r)),s.affectsConfiguration(tj)){const t=r.getValue(tj);n={...n,indent:t}}if(s.affectsConfiguration(ij)&&void 0===i.renderIndentGuides){const t=r.getValue(ij);n={...n,renderIndentGuides:t}}if(s.affectsConfiguration(ej)){const t=Boolean(r.getValue(ej));n={...n,smoothScrolling:t}}if(s.affectsConfiguration(ZW)||s.affectsConfiguration(JW)){const t=Sj(r);n={...n,defaultFindMode:t}}if(s.affectsConfiguration(QW)||s.affectsConfiguration(JW)){const t=e();n={...n,typeNavigationMode:t}}if(s.affectsConfiguration(XW)){const t=Dj(r);n={...n,defaultFindMatchType:t}}if(s.affectsConfiguration(GW)&&void 0===i.horizontalScrolling){const t=Boolean(r.getValue(GW));n={...n,horizontalScrolling:t}}if(s.affectsConfiguration(YW)){const t=Boolean(r.getValue(YW));n={...n,scrollByPage:t}}if(s.affectsConfiguration(oj)&&void 0===i.expandOnlyOnTwistieClick&&(n={...n,expandOnlyOnTwistieClick:"doubleClick"===r.getValue(oj)}),s.affectsConfiguration(rj)){const t=r.getValue(rj);n={...n,enableStickyScroll:t}}if(s.affectsConfiguration(hj)){const t=Math.max(1,r.getValue(hj));n={...n,stickyScrollMaxItemCount:t}}if(s.affectsConfiguration(sj)){const t=r.getValue(sj);n={...n,mouseWheelScrollSensitivity:t}}if(s.affectsConfiguration(nj)){const t=r.getValue(nj);n={...n,fastScrollSensitivity:t}}Object.keys(n).length>0&&t.updateOptions(n)})),this.contextKeyService.onDidChangeContext((i=>{i.affectsSome(a)&&t.updateOptions({typeNavigationMode:e()})}))),this.navigator=new wj(t,{configurationService:r,...i}),this.disposables.push(this.navigator)}updateOptions(t){void 0!==t.multipleSelectionSupport&&this.listSupportsMultiSelect.set(!!t.multipleSelectionSupport)}updateStyleOverrides(t){this.tree.style(t?PB(t):BB)}dispose(){this.disposables=Qi(this.disposables)}};var Mj;Aj=DW([EW(4,ah),EW(5,AW),EW(6,pd)],Aj),Dh.as(Md).registerConfiguration({id:"workbench",order:7,title:ot(0,"Workbench"),type:"object",properties:{[qW]:{type:"string",enum:["ctrlCmd","alt"],markdownEnumDescriptions:[ot(0,"Maps to `Control` on Windows and Linux and to `Command` on macOS."),ot(0,"Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],default:"ctrlCmd",description:ot(0,"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.")},[KW]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:ot(0,"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[GW]:{type:"boolean",default:!1,description:ot(0,"Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.")},[YW]:{type:"boolean",default:!1,description:ot(0,"Controls whether clicks in the scrollbar scroll page by page.")},[tj]:{type:"number",default:8,minimum:4,maximum:40,description:ot(0,"Controls tree indentation in pixels.")},[ij]:{type:"string",enum:["none","onHover","always"],default:"onHover",description:ot(0,"Controls whether the tree should render indent guides.")},[ej]:{type:"boolean",default:!1,description:ot(0,"Controls whether lists and trees have smooth scrolling.")},[sj]:{type:"number",default:1,markdownDescription:ot(0,"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")},[nj]:{type:"number",default:5,markdownDescription:ot(0,"Scrolling speed multiplier when pressing `Alt`.")},[ZW]:{type:"string",enum:["highlight","filter"],enumDescriptions:[ot(0,"Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements."),ot(0,"Filter elements when searching.")],default:"highlight",description:ot(0,"Controls the default find mode for lists and trees in the workbench.")},[JW]:{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[ot(0,"Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes."),ot(0,"Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements."),ot(0,"Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.")],default:"highlight",description:ot(0,"Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter."),deprecated:!0,deprecationMessage:ot(0,"Please use 'workbench.list.defaultFindMode' and\t'workbench.list.typeNavigationMode' instead.")},[XW]:{type:"string",enum:["fuzzy","contiguous"],enumDescriptions:[ot(0,"Use fuzzy matching when searching."),ot(0,"Use contiguous matching when searching.")],default:"fuzzy",description:ot(0,"Controls the type of matching used when searching lists and trees in the workbench.")},[oj]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:ot(0,"Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[rj]:{type:"boolean",default:"string"==typeof SW.quality&&"stable"!==SW.quality,description:ot(0,"Controls whether sticky scrolling is enabled in trees.")},[hj]:{type:"number",minimum:1,default:7,markdownDescription:ot(0,"Controls the number of sticky elements displayed in the tree when `#workbench.tree.enableStickyScroll#` is enabled.")},[QW]:{type:"string",enum:["automatic","trigger"],default:"automatic",markdownDescription:ot(0,"Controls how type navigation works in lists and trees in the workbench. When set to `trigger`, type navigation begins once the `list.triggerTypeNavigation` command is run.")}}}),function(t){t[t.PRESERVE=0]="PRESERVE",t[t.LAST=1]="LAST"}(Mj||(Mj={}));const Lj="workbench.contributions.quickaccess";Dh.add(Lj,new class{constructor(){this.providers=[],this.defaultProvider=void 0}registerQuickAccessProvider(t){return 0===t.prefix.length?this.defaultProvider=t:this.providers.push(t),this.providers.sort(((t,i)=>i.prefix.length-t.prefix.length)),Yi((()=>{this.providers.splice(this.providers.indexOf(t),1),this.defaultProvider===t&&(this.defaultProvider=void 0)}))}getQuickAccessProviders(){return m([this.defaultProvider,...this.providers])}getQuickAccessProvider(t){return t&&this.providers.find((i=>t.startsWith(i.prefix)))||this.defaultProvider}});const Fj={ctrlCmd:!1,alt:!1};var Tj,Rj;!function(t){t[t.Blur=1]="Blur",t[t.Gesture=2]="Gesture",t[t.Other=3]="Other"}(Tj||(Tj={})),function(t){t[t.NONE=0]="NONE",t[t.FIRST=1]="FIRST",t[t.SECOND=2]="SECOND",t[t.LAST=3]="LAST"}(Rj||(Rj={}));const Oj=dr("quickInputService");var Ij=function(t,i){return function(e,s){i(e,s,t)}};let _j=class extends te{constructor(t,i){super(),this.quickInputService=t,this.instantiationService=i,this.registry=Dh.as(Lj),this.mapProviderToDescriptor=new Map,this.lastAcceptedPickerValues=new Map,this.visibleQuickAccess=void 0}show(t="",i){this.doShowOrPick(t,!1,i)}doShowOrPick(t,i,e){var s;const[n,o]=this.getOrInstantiateProvider(t),r=this.visibleQuickAccess,h=null==r?void 0:r.descriptor;if(r&&o&&h===o)return t===o.prefix||(null==e?void 0:e.preserveValue)||(r.picker.value=t),void this.adjustValueSelection(r.picker,o,e);if(o&&!(null==e?void 0:e.preserveValue)){let i;if(r&&h&&h!==o){const t=r.value.substr(h.prefix.length);t&&(i=`${o.prefix}${t}`)}if(!i){const t=null==n?void 0:n.defaultFilterValue;t===Mj.LAST?i=this.lastAcceptedPickerValues.get(o):"string"==typeof t&&(i=`${o.prefix}${t}`)}"string"==typeof i&&(t=i)}const c=new Xi,a=c.add(this.quickInputService.createQuickPick());let l;a.value=t,this.adjustValueSelection(a,o,e),a.placeholder=null==o?void 0:o.placeholder,a.quickNavigate=null==e?void 0:e.quickNavigateConfiguration,a.hideInput=!!a.quickNavigate&&!r,("number"==typeof(null==e?void 0:e.itemActivation)||(null==e?void 0:e.quickNavigateConfiguration))&&(a.itemActivation=null!==(s=null==e?void 0:e.itemActivation)&&void 0!==s?s:Rj.SECOND),a.contextKey=null==o?void 0:o.contextKey,a.filterValue=t=>t.substring(o?o.prefix.length:0),i&&(l=new bc,c.add(he.once(a.onWillAccept)((t=>{t.veto(),a.hide()})))),c.add(this.registerPickerListeners(a,n,o,t,null==e?void 0:e.providerOptions));const u=c.add(new Ce);return n&&c.add(n.provide(a,u.token,null==e?void 0:e.providerOptions)),he.once(a.onDidHide)((()=>{0===a.selectedItems.length&&u.cancel(),c.dispose(),null==l||l.complete(a.selectedItems.slice(0))})),a.show(),i?null==l?void 0:l.p:void 0}adjustValueSelection(t,i,e){var s;let n;n=(null==e?void 0:e.preserveValue)?[t.value.length,t.value.length]:[null!==(s=null==i?void 0:i.prefix.length)&&void 0!==s?s:0,t.value.length],t.valueSelection=n}registerPickerListeners(t,i,e,s,n){const o=new Xi,r=this.visibleQuickAccess={picker:t,descriptor:e,value:s};return o.add(Yi((()=>{r===this.visibleQuickAccess&&(this.visibleQuickAccess=void 0)}))),o.add(t.onDidChangeValue((t=>{const[e]=this.getOrInstantiateProvider(t);e!==i?this.show(t,{preserveValue:!0,providerOptions:n}):r.value=t}))),e&&o.add(t.onDidAccept((()=>{this.lastAcceptedPickerValues.set(e,t.value)}))),o}getOrInstantiateProvider(t){const i=this.registry.getQuickAccessProvider(t);if(!i)return[void 0,void 0];let e=this.mapProviderToDescriptor.get(i);return e||(e=this.instantiationService.createInstance(i.ctor),this.mapProviderToDescriptor.set(i,e)),[e,i]}};_j=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Ij(0,Oj),Ij(1,ur)],_j),lg.white.toString(),lg.white.toString();class Nj extends te{get onDidClick(){return this._onDidClick.event}constructor(t,i){super(),this._label="",this._onDidClick=this._register(new de),this.options=i,this._element=document.createElement("a"),this._element.classList.add("monaco-button"),this._element.tabIndex=0,this._element.setAttribute("role","button"),this._element.classList.toggle("secondary",!!i.secondary);const e=i.secondary?i.buttonSecondaryBackground:i.buttonBackground;this._element.style.color=(i.secondary?i.buttonSecondaryForeground:i.buttonForeground)||"",this._element.style.backgroundColor=e||"",i.supportShortLabel&&(this._labelShortElement=document.createElement("div"),this._labelShortElement.classList.add("monaco-button-label-short"),this._element.appendChild(this._labelShortElement),this._labelElement=document.createElement("div"),this._labelElement.classList.add("monaco-button-label"),this._element.appendChild(this._labelElement),this._element.classList.add("monaco-text-button-with-short-label")),t.appendChild(this._element),this._register(rw.addTarget(this._element)),[Ll.CLICK,ow.Tap].forEach((t=>{this._register(Va(this._element,t,(t=>{this.enabled?this._onDidClick.fire(t):Fl(t)})))})),this._register(Va(this._element,Ll.KEY_DOWN,(t=>{const i=new Qh(t);let e=!1;this.enabled&&(i.equals(3)||i.equals(10))?(this._onDidClick.fire(t),e=!0):i.equals(9)&&(this._element.blur(),e=!0),e&&Fl(i,!0)}))),this._register(Va(this._element,Ll.MOUSE_OVER,(()=>{this._element.classList.contains("disabled")||this.updateBackground(!0)}))),this._register(Va(this._element,Ll.MOUSE_OUT,(()=>{this.updateBackground(!1)}))),this.focusTracker=this._register(Rl(this._element)),this._register(this.focusTracker.onDidFocus((()=>{this.enabled&&this.updateBackground(!0)}))),this._register(this.focusTracker.onDidBlur((()=>{this.enabled&&this.updateBackground(!1)})))}dispose(){super.dispose(),this._element.remove()}getContentElements(t){const i=[];for(let e of Z_(t))if("string"==typeof e){if(e=e.trim(),""===e)continue;const t=document.createElement("span");t.textContent=e,i.push(t)}else i.push(e);return i}updateBackground(t){let i;i=this.options.secondary?t?this.options.buttonSecondaryHoverBackground:this.options.buttonSecondaryBackground:t?this.options.buttonHoverBackground:this.options.buttonBackground,i&&(this._element.style.backgroundColor=i)}get element(){return this._element}set label(t){var i,e,s;if(this._label===t)return;if(P_(this._label)&&P_(t)&&((e=this._label)===(s=t)||e&&s&&e.value===s.value&&e.isTrusted===s.isTrusted&&e.supportThemeIcons===s.supportThemeIcons&&e.supportHtml===s.supportHtml&&(e.baseUri===s.baseUri||e.baseUri&&s.baseUri&&wA(ms.from(e.baseUri),ms.from(s.baseUri)))))return;this._element.classList.add("monaco-text-button");const n=this.options.supportShortLabel?this._labelElement:this._element;if(P_(t)){const e=oN(t,{inline:!0});e.dispose();const s=null===(i=e.element.querySelector("p"))||void 0===i?void 0:i.innerHTML;if(s){const t=va(s,{ADD_TAGS:["b","i","u","code","span"],ALLOWED_ATTR:["class"],RETURN_TRUSTED_TYPE:!0});n.innerHTML=t}else _l(n)}else this.options.supportIcons?_l(n,...this.getContentElements(t)):n.textContent=t;"string"==typeof this.options.title?this._element.title=this.options.title:this.options.title&&(this._element.title=function(t){return"string"==typeof t?t:function(t){var i;let e=null!==(i=t.value)&&void 0!==i?i:"";e.length>1e5&&(e=`${e.substr(0,1e5)}…`);const s=tN.parse(e,{renderer:uN.value}).replace(/&(#\d+|[a-zA-Z]+);/g,(t=>{var i;return null!==(i=lN.get(t))&&void 0!==i?i:t}));return cN({isTrusted:!1},s).toString()}(t)}(t)),this._label=t}get label(){return this._label}set icon(t){this._element.classList.add(...Cr.asClassNameArray(t))}set enabled(t){t?(this._element.classList.remove("disabled"),this._element.setAttribute("aria-disabled",String(!1)),this._element.tabIndex=0):(this._element.classList.add("disabled"),this._element.setAttribute("aria-disabled",String(!0)))}get enabled(){return!this._element.classList.contains("disabled")}}class Bj{constructor(t,i,e){this.options=i,this.styles=e,this.count=0,this.element=Ol(t,$l(".monaco-count-badge")),this.countFormat=this.options.countFormat||"{0}",this.titleFormat=this.options.titleFormat||"",this.setCount(this.options.count||0)}setCount(t){this.count=t,this.render()}setTitleFormat(t){this.titleFormat=t,this.render()}render(){var t,i;this.element.textContent=qn(this.countFormat,this.count),this.element.title=qn(this.titleFormat,this.count),this.element.style.backgroundColor=null!==(t=this.styles.badgeBackground)&&void 0!==t?t:"",this.element.style.color=null!==(i=this.styles.badgeForeground)&&void 0!==i?i:"",this.styles.badgeBorder&&(this.element.style.border=`1px solid ${this.styles.badgeBorder}`)}}const Pj="done",$j="active",Wj="infinite",jj="infinite-long-running",zj="discrete";class Hj extends te{constructor(t,i){super(),this.workedVal=0,this.showDelayedScheduler=this._register(new pc((()=>Wl(this.element)),0)),this.longRunningScheduler=this._register(new pc((()=>this.infiniteLongRunning()),Hj.LONG_RUNNING_INFINITE_THRESHOLD)),this.create(t,i)}create(t,i){this.element=document.createElement("div"),this.element.classList.add("monaco-progress-container"),this.element.setAttribute("role","progressbar"),this.element.setAttribute("aria-valuemin","0"),t.appendChild(this.element),this.bit=document.createElement("div"),this.bit.classList.add("progress-bit"),this.bit.style.backgroundColor=(null==i?void 0:i.progressBarBackground)||"#0E70C0",this.element.appendChild(this.bit)}off(){this.bit.style.width="inherit",this.bit.style.opacity="1",this.element.classList.remove($j,Wj,jj,zj),this.workedVal=0,this.totalWork=void 0,this.longRunningScheduler.cancel()}stop(){return this.doDone(!1)}doDone(t){return this.element.classList.add(Pj),this.element.classList.contains(Wj)?(this.bit.style.opacity="0",t?setTimeout((()=>this.off()),200):this.off()):(this.bit.style.width="inherit",t?setTimeout((()=>this.off()),200):this.off()),this}infinite(){return this.bit.style.width="2%",this.bit.style.opacity="1",this.element.classList.remove(zj,Pj,jj),this.element.classList.add($j,Wj),this.longRunningScheduler.schedule(),this}infiniteLongRunning(){this.element.classList.add(jj)}getContainer(){return this.element}}Hj.LONG_RUNNING_INFINITE_THRESHOLD=1e4;const Vj=$l;class Uj extends te{constructor(t,i,e){super(),this.parent=t,this.onKeyDown=t=>qa(this.findInput.inputBox.inputElement,Ll.KEY_DOWN,t),this.onMouseDown=t=>qa(this.findInput.inputBox.inputElement,Ll.MOUSE_DOWN,t),this.onDidChange=t=>this.findInput.onDidChange(t),this.container=Ol(this.parent,Vj(".quick-input-box")),this.findInput=this._register(new p$(this.container,void 0,{label:"",inputBoxStyles:i,toggleStyles:e}));const s=this.findInput.inputBox.inputElement;s.role="combobox",s.ariaHasPopup="menu",s.ariaAutoComplete="list",s.ariaExpanded="true"}get value(){return this.findInput.getValue()}set value(t){this.findInput.setValue(t)}select(t=null){this.findInput.inputBox.select(t)}isSelectionAtEnd(){return this.findInput.inputBox.isSelectionAtEnd()}get placeholder(){return this.findInput.inputBox.inputElement.getAttribute("placeholder")||""}set placeholder(t){this.findInput.inputBox.setPlaceHolder(t)}get password(){return"password"===this.findInput.inputBox.inputElement.type}set password(t){this.findInput.inputBox.inputElement.type=t?"password":"text"}set enabled(t){this.findInput.inputBox.inputElement.toggleAttribute("readonly",!t)}set toggles(t){this.findInput.setAdditionalToggles(t)}setAttribute(t,i){this.findInput.inputBox.inputElement.setAttribute(t,i)}showDecoration(t){t===sT.Ignore?this.findInput.clearMessage():this.findInput.showMessage({type:t===sT.Info?1:t===sT.Warning?2:3,content:""})}stylesForType(t){return this.findInput.inputBox.stylesForType(t===sT.Info?1:t===sT.Warning?2:3)}setFocus(){this.findInput.focus()}layout(){this.findInput.inputBox.layout()}}class qj{constructor(t,i){var e;this.text="",this.title="",this.highlights=[],this.didEverRender=!1,this.supportIcons=null!==(e=null==i?void 0:i.supportIcons)&&void 0!==e&&e,this.domNode=Ol(t,$l("span.monaco-highlighted-label"))}get element(){return this.domNode}set(t,i=[],e="",s){t||(t=""),s&&(t=qj.escapeNewLines(t,i)),this.didEverRender&&this.text===t&&this.title===e&&it(this.highlights,i)||(this.text=t,this.title=e,this.highlights=i,this.render())}render(){const t=[];let i=0;for(const e of this.highlights){if(e.end===e.start)continue;if(i{s="\r\n"===t?-1:0,n+=e;for(const t of i)t.end<=n||(t.start>=n&&(t.start+=s),t.end>=n&&(t.end+=s));return e+=s,"⏎"}))}}class Kj{constructor(t){this._element=t}get element(){return this._element}set textContent(t){this.disposed||t===this._textContent||(this._textContent=t,this._element.textContent=t)}set className(t){this.disposed||t===this._className||(this._className=t,this._element.className=t)}set empty(t){this.disposed||t===this._empty||(this._empty=t,this._element.style.marginLeft=t?"0":"")}dispose(){this.disposed=!0}}class Gj extends te{constructor(t,i){super(),this.customHovers=new Map,this.creationOptions=i,this.domNode=this._register(new Kj(Ol(t,$l(".monaco-icon-label")))),this.labelContainer=Ol(this.domNode.element,$l(".monaco-icon-label-container")),this.nameContainer=Ol(this.labelContainer,$l("span.monaco-icon-name-container")),this.nameNode=(null==i?void 0:i.supportHighlights)||(null==i?void 0:i.supportIcons)?new Qj(this.nameContainer,!!i.supportIcons):new Zj(this.nameContainer),this.hoverDelegate=null==i?void 0:i.hoverDelegate}get element(){return this.domNode.element}setLabel(t,i,e){var s;const n=["monaco-icon-label"],o=["monaco-icon-label-container"];let r="";if(e&&(e.extraClasses&&n.push(...e.extraClasses),e.italic&&n.push("italic"),e.strikethrough&&n.push("strikethrough"),e.disabledCommand&&o.push("disabled"),e.title&&(r+="string"==typeof e.title?e.title:t)),this.domNode.className=n.join(" "),this.domNode.element.setAttribute("aria-label",r),this.labelContainer.className=o.join(" "),this.setupHover((null==e?void 0:e.descriptionTitle)?this.labelContainer:this.element,null==e?void 0:e.title),this.nameNode.setLabel(t,e),i||this.descriptionNode){const t=this.getOrCreateDescriptionNode();t instanceof qj?(t.set(i||"",e?e.descriptionMatches:void 0,void 0,null==e?void 0:e.labelEscapeNewLines),this.setupHover(t.element,null==e?void 0:e.descriptionTitle)):(t.textContent=i&&(null==e?void 0:e.labelEscapeNewLines)?qj.escapeNewLines(i,[]):i||"",this.setupHover(t.element,(null==e?void 0:e.descriptionTitle)||""),t.empty=!i)}((null==e?void 0:e.suffix)||this.suffixNode)&&(this.getOrCreateSuffixNode().textContent=null!==(s=null==e?void 0:e.suffix)&&void 0!==s?s:"")}setupHover(t,i){const e=this.customHovers.get(t);if(e&&(e.dispose(),this.customHovers.delete(t)),i)if(this.hoverDelegate){const e=z_(this.hoverDelegate,t,i);e&&this.customHovers.set(t,e)}else!function(t,i){B(i)?t.title=R_(i):(null==i?void 0:i.markdownNotSupportedFallback)?t.title=i.markdownNotSupportedFallback:t.removeAttribute("title")}(t,i);else t.removeAttribute("title")}dispose(){super.dispose();for(const t of this.customHovers.values())t.dispose();this.customHovers.clear()}getOrCreateSuffixNode(){if(!this.suffixNode){const e=this._register(new Kj((t=this.nameContainer,i=$l("span.monaco-icon-suffix-container"),t.after(i),i)));this.suffixNode=this._register(new Kj(Ol(e.element,$l("span.label-suffix"))))}var t,i;return this.suffixNode}getOrCreateDescriptionNode(){var t;if(!this.descriptionNode){const i=this._register(new Kj(Ol(this.labelContainer,$l("span.monaco-icon-description-container"))));this.descriptionNode=(null===(t=this.creationOptions)||void 0===t?void 0:t.supportDescriptionHighlights)?new qj(Ol(i.element,$l("span.label-description")),{supportIcons:!!this.creationOptions.supportIcons}):this._register(new Kj(Ol(i.element,$l("span.label-description"))))}return this.descriptionNode}}class Zj{constructor(t){this.container=t,this.label=void 0,this.singleLabel=void 0}setLabel(t,i){if(this.label!==t||!it(this.options,i))if(this.label=t,this.options=i,"string"==typeof t)this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=Ol(this.container,$l("a.label-name",{id:null==i?void 0:i.domId}))),this.singleLabel.textContent=t;else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;for(let e=0;e{const n={start:s,end:s+t.length},o=e.map((t=>uI.intersect(n,t))).filter((t=>!uI.isEmpty(t))).map((({start:t,end:i})=>({start:t-s,end:i-s})));return s=n.end+i.length,o}))}(t,e,null==i?void 0:i.matches);for(let n=0;n{const t=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});return{collator:t,collatorIsNumeric:t.resolvedOptions().numeric}}));new zn((()=>({collator:new Intl.Collator(void 0,{numeric:!0})}))),new zn((()=>({collator:new Intl.Collator(void 0,{numeric:!0,sensitivity:"accent"})})));class iz{constructor(t){this.nodes=t}toString(){return this.nodes.map((t=>"string"==typeof t?t:t.label)).join("")}}!function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);o>3&&r&&Object.defineProperty(i,e,r)}([nw],iz.prototype,"toString",null);const ez=/\[([^\]]+)\]\(((?:https?:\/\/|command:|file:)[^\)\s]+)(?: (["'])(.+?)(\3))?\)/gi,sz={},nz=new J_("quick-input-button-icon-");function oz(t){if(!t)return;let i;const e=t.dark.toString();return sz[e]?i=sz[e]:(i=nz.nextId(),Sl(`.${i}, .hc-light .${i}`,`background-image: ${Vl(t.light||t.dark)}`),Sl(`.vs-dark .${i}, .hc-black .${i}`,`background-image: ${Vl(t.dark)}`),sz[e]=i),i}var rz=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r};const hz=$l;class cz{constructor(t,i,e,s,n,o,r){var h,c,a;this._checked=!1,this._hidden=!1,this.hasCheckbox=s,this.index=e,this.fireButtonTriggered=n,this.fireSeparatorButtonTriggered=o,this._onChecked=r,this.onChecked=s?he.map(he.filter(this._onChecked.event,(t=>t.listElement===this)),(t=>t.checked)):he.None,"separator"===t.type?this._separator=t:(this.item=t,i&&"separator"===i.type&&!i.buttons&&(this._separator=i),this.saneDescription=this.item.description,this.saneDetail=this.item.detail,this._labelHighlights=null===(h=this.item.highlights)||void 0===h?void 0:h.label,this._descriptionHighlights=null===(c=this.item.highlights)||void 0===c?void 0:c.description,this._detailHighlights=null===(a=this.item.highlights)||void 0===a?void 0:a.detail,this.saneTooltip=this.item.tooltip),this._init=new zn((()=>{var i;const e=null!==(i=t.label)&&void 0!==i?i:"",s=I_(e).text.trim(),n=t.ariaLabel||[e,this.saneDescription,this.saneDetail].map((t=>function(t){return t?t.replace(/\$\((.*?)\)/g,((t,i)=>` ${i} `)).trim():""}(t))).filter((t=>!!t)).join(", ");return{saneLabel:e,saneSortLabel:s,saneAriaLabel:n}}))}get saneLabel(){return this._init.value.saneLabel}get saneSortLabel(){return this._init.value.saneSortLabel}get saneAriaLabel(){return this._init.value.saneAriaLabel}get element(){return this._element}set element(t){this._element=t}get hidden(){return this._hidden}set hidden(t){this._hidden=t}get checked(){return this._checked}set checked(t){t!==this._checked&&(this._checked=t,this._onChecked.fire({listElement:this,checked:t}))}get separator(){return this._separator}set separator(t){this._separator=t}get labelHighlights(){return this._labelHighlights}set labelHighlights(t){this._labelHighlights=t}get descriptionHighlights(){return this._descriptionHighlights}set descriptionHighlights(t){this._descriptionHighlights=t}get detailHighlights(){return this._detailHighlights}set detailHighlights(t){this._detailHighlights=t}}class az{constructor(t){this.themeService=t}get templateId(){return az.ID}renderTemplate(t){const i=Object.create(null);i.toDisposeElement=[],i.toDisposeTemplate=[],i.entry=Ol(t,hz(".quick-input-list-entry"));const e=Ol(i.entry,hz("label.quick-input-list-label"));i.toDisposeTemplate.push(qa(e,Ll.CLICK,(t=>{i.checkbox.offsetParent||t.preventDefault()}))),i.checkbox=Ol(e,hz("input.quick-input-list-checkbox")),i.checkbox.type="checkbox",i.toDisposeTemplate.push(qa(i.checkbox,Ll.CHANGE,(()=>{i.element.checked=i.checkbox.checked})));const s=Ol(e,hz(".quick-input-list-rows")),n=Ol(s,hz(".quick-input-list-row")),o=Ol(s,hz(".quick-input-list-row"));i.label=new Gj(n,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0}),i.toDisposeTemplate.push(i.label),i.icon=Il(i.label.element,hz(".quick-input-list-icon"));const r=Ol(n,hz(".quick-input-list-entry-keybinding"));i.keybinding=new Xj(r,It);const h=Ol(o,hz(".quick-input-list-label-meta"));return i.detail=new Gj(h,{supportHighlights:!0,supportIcons:!0}),i.toDisposeTemplate.push(i.detail),i.separator=Ol(i.entry,hz(".quick-input-list-separator")),i.actionBar=new YB(i.entry),i.actionBar.domNode.classList.add("quick-input-list-entry-action-bar"),i.toDisposeTemplate.push(i.actionBar),i}renderElement(t,i,e){var s,n,o,r;e.element=t,t.element=null!==(s=e.entry)&&void 0!==s?s:void 0;const h=t.item?t.item:t.separator;e.checkbox.checked=t.checked,e.toDisposeElement.push(t.onChecked((t=>e.checkbox.checked=t)));const{labelHighlights:c,descriptionHighlights:a,detailHighlights:l}=t;if(null===(n=t.item)||void 0===n?void 0:n.iconPath){const i=Hy(this.themeService.getColorTheme().type)?t.item.iconPath.dark:null!==(o=t.item.iconPath.light)&&void 0!==o?o:t.item.iconPath.dark,s=ms.revive(i);e.icon.className="quick-input-list-icon",e.icon.style.backgroundImage=Vl(s)}else e.icon.style.backgroundImage="",e.icon.className=(null===(r=t.item)||void 0===r?void 0:r.iconClass)?`quick-input-list-icon ${t.item.iconClass}`:"";const u={matches:c||[],descriptionTitle:t.saneDescription,descriptionMatches:a||[],labelEscapeNewLines:!0};"separator"!==h.type?(u.extraClasses=h.iconClasses,u.italic=h.italic,u.strikethrough=h.strikethrough,e.entry.classList.remove("quick-input-list-separator-as-item")):e.entry.classList.add("quick-input-list-separator-as-item"),e.label.setLabel(t.saneLabel,t.saneDescription,u),e.keybinding.set("separator"===h.type?void 0:h.keybinding),t.saneDetail?(e.detail.element.style.display="",e.detail.setLabel(t.saneDetail,void 0,{matches:l,title:t.saneDetail,labelEscapeNewLines:!0})):e.detail.element.style.display="none",t.item&&t.separator&&t.separator.label?(e.separator.textContent=t.separator.label,e.separator.style.display=""):e.separator.style.display="none",e.entry.classList.toggle("quick-input-list-separator-border",!!t.separator);const d=h.buttons;d&&d.length?(e.actionBar.push(d.map(((i,e)=>{let s=i.iconClass||(i.iconPath?oz(i.iconPath):void 0);return i.alwaysVisible&&(s=s?`${s} always-visible`:"always-visible"),{id:`id-${e}`,class:s,enabled:!0,label:"",tooltip:i.tooltip||"",run:()=>{"separator"!==h.type?t.fireButtonTriggered({button:i,item:h}):t.fireSeparatorButtonTriggered({button:i,separator:h})}}})),{icon:!0,label:!1}),e.entry.classList.add("has-actions")):e.entry.classList.remove("has-actions")}disposeElement(t,i,e){e.toDisposeElement=Qi(e.toDisposeElement),e.actionBar.clear()}disposeTemplate(t){t.toDisposeElement=Qi(t.toDisposeElement),t.toDisposeTemplate=Qi(t.toDisposeTemplate)}}az.ID="listelement";class lz{getHeight(t){return t.item?t.saneDetail?44:22:24}getTemplateId(t){return az.ID}}var uz;!function(t){t[t.First=1]="First",t[t.Second=2]="Second",t[t.Last=3]="Last",t[t.Next=4]="Next",t[t.Previous=5]="Previous",t[t.NextPage=6]="NextPage",t[t.PreviousPage=7]="PreviousPage"}(uz||(uz={}));class dz{constructor(t,i,e,s){this.parent=t,this.options=e,this.inputElements=[],this.elements=[],this.elementsToIndexes=new Map,this.matchOnDescription=!1,this.matchOnDetail=!1,this.matchOnLabel=!0,this.matchOnLabelMode="fuzzy",this.sortByLabel=!0,this._onChangedAllVisibleChecked=new de,this.onChangedAllVisibleChecked=this._onChangedAllVisibleChecked.event,this._onChangedCheckedCount=new de,this.onChangedCheckedCount=this._onChangedCheckedCount.event,this._onChangedVisibleCount=new de,this.onChangedVisibleCount=this._onChangedVisibleCount.event,this._onChangedCheckedElements=new de,this.onChangedCheckedElements=this._onChangedCheckedElements.event,this._onButtonTriggered=new de,this.onButtonTriggered=this._onButtonTriggered.event,this._onSeparatorButtonTriggered=new de,this.onSeparatorButtonTriggered=this._onSeparatorButtonTriggered.event,this._onKeyDown=new de,this.onKeyDown=this._onKeyDown.event,this._onLeave=new de,this.onLeave=this._onLeave.event,this._listElementChecked=new de,this._fireCheckedEvents=!0,this.elementDisposables=[],this.disposables=[],this.id=i,this.container=Ol(this.parent,hz(".quick-input-list"));const n=new lz,o=new pz;if(this.list=e.createList("QuickInput",this.container,n,[new az(s)],{identityProvider:{getId:t=>{var i,e,s,n,o,r,h,c;return null!==(c=null!==(r=null!==(n=null!==(e=null===(i=t.item)||void 0===i?void 0:i.id)&&void 0!==e?e:null===(s=t.item)||void 0===s?void 0:s.label)&&void 0!==n?n:null===(o=t.separator)||void 0===o?void 0:o.id)&&void 0!==r?r:null===(h=t.separator)||void 0===h?void 0:h.label)&&void 0!==c?c:""}},setRowLineHeight:!1,multipleSelectionSupport:!1,horizontalScrolling:!1,accessibilityProvider:o}),this.list.getHTMLElement().id=i,this.disposables.push(this.list),this.disposables.push(this.list.onKeyDown((t=>{const i=new Qh(t);switch(i.keyCode){case 10:this.toggleCheckbox();break;case 31:(Ct?t.metaKey:t.ctrlKey)&&this.list.setFocus(x(this.list.length));break;case 16:{const t=this.list.getFocus();1===t.length&&0===t[0]&&this._onLeave.fire();break}case 18:{const t=this.list.getFocus();1===t.length&&t[0]===this.list.length-1&&this._onLeave.fire();break}}this._onKeyDown.fire(i)}))),this.disposables.push(this.list.onMouseDown((t=>{2!==t.browserEvent.button&&t.browserEvent.preventDefault()}))),this.disposables.push(Va(this.container,Ll.CLICK,(t=>{(t.x||t.y)&&this._onLeave.fire()}))),this.disposables.push(this.list.onMouseMiddleClick((()=>{this._onLeave.fire()}))),this.disposables.push(this.list.onContextMenu((t=>{"number"==typeof t.index&&(t.browserEvent.preventDefault(),this.list.setSelection([t.index]))}))),e.hoverDelegate){const t=new cc(e.hoverDelegate.delay);this.disposables.push(this.list.onMouseOver((async i=>{var e;if(i.browserEvent.target instanceof HTMLAnchorElement)t.cancel();else if(i.browserEvent.relatedTarget instanceof HTMLAnchorElement||!al(i.browserEvent.relatedTarget,null===(e=i.element)||void 0===e?void 0:e.element))try{await t.trigger((async()=>{i.element&&this.showHover(i.element)}))}catch(i){if(!ji(i))throw i}}))),this.disposables.push(this.list.onMouseOut((i=>{var e;al(i.browserEvent.relatedTarget,null===(e=i.element)||void 0===e?void 0:e.element)||t.cancel()}))),this.disposables.push(t)}this.disposables.push(this._listElementChecked.event((()=>this.fireCheckedEvents()))),this.disposables.push(this._onChangedAllVisibleChecked,this._onChangedCheckedCount,this._onChangedVisibleCount,this._onChangedCheckedElements,this._onButtonTriggered,this._onSeparatorButtonTriggered,this._onLeave,this._onKeyDown)}get onDidChangeFocus(){return he.map(this.list.onDidChangeFocus,(t=>t.elements.map((t=>t.item))))}get onDidChangeSelection(){return he.map(this.list.onDidChangeSelection,(t=>({items:t.elements.map((t=>t.item)),event:t.browserEvent})))}get scrollTop(){return this.list.scrollTop}set scrollTop(t){this.list.scrollTop=t}get ariaLabel(){return this.list.getHTMLElement().ariaLabel}set ariaLabel(t){this.list.getHTMLElement().ariaLabel=t}getAllVisibleChecked(){return this.allVisibleChecked(this.elements,!1)}allVisibleChecked(t,i=!0){for(let e=0,s=t.length;e{i.hidden||(i.checked=t)}))}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}setElements(t){this.elementDisposables=Qi(this.elementDisposables);const i=t=>this.fireButtonTriggered(t),e=t=>this.fireSeparatorButtonTriggered(t);this.inputElements=t;const s=new Map,n=this.parent.classList.contains("show-checkboxes");this.elements=t.reduce(((o,r,h)=>{var c;if("separator"===r.type&&!r.buttons)return o;const a=new cz(r,h>0?t[h-1]:void 0,h,n,i,e,this._listElementChecked),l=o.length;return o.push(a),s.set(null!==(c=a.item)&&void 0!==c?c:a.separator,l),o}),[]),this.elementsToIndexes=s,this.list.splice(0,this.list.length),this.list.splice(0,this.list.length,this.elements),this._onChangedVisibleCount.fire(this.elements.length)}getFocusedElements(){return this.list.getFocusedElements().map((t=>t.item))}setFocusedElements(t){if(this.list.setFocus(t.filter((t=>this.elementsToIndexes.has(t))).map((t=>this.elementsToIndexes.get(t)))),t.length>0){const t=this.list.getFocus()[0];"number"==typeof t&&this.list.reveal(t)}}getActiveDescendant(){return this.list.getHTMLElement().getAttribute("aria-activedescendant")}setSelectedElements(t){this.list.setSelection(t.filter((t=>this.elementsToIndexes.has(t))).map((t=>this.elementsToIndexes.get(t))))}getCheckedElements(){return this.elements.filter((t=>t.checked)).map((t=>t.item)).filter((t=>!!t))}setCheckedElements(t){try{this._fireCheckedEvents=!1;const i=new Set;for(const e of t)i.add(e);for(const t of this.elements)t.checked=i.has(t.item)}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}set enabled(t){this.list.getHTMLElement().style.pointerEvents=t?"":"none"}focus(t){if(!this.list.length)return;switch(t===uz.Second&&this.list.length<2&&(t=uz.First),t){case uz.First:this.list.scrollTop=0,this.list.focusFirst(void 0,(t=>!!t.item));break;case uz.Second:this.list.scrollTop=0,this.list.focusNth(1,void 0,(t=>!!t.item));break;case uz.Last:this.list.scrollTop=this.list.scrollHeight,this.list.focusLast(void 0,(t=>!!t.item));break;case uz.Next:{this.list.focusNext(void 0,!0,void 0,(t=>!!t.item));const t=this.list.getFocus()[0];0!==t&&!this.elements[t-1].item&&this.list.firstVisibleIndex>t-1&&this.list.reveal(t-1);break}case uz.Previous:{this.list.focusPrevious(void 0,!0,void 0,(t=>!!t.item));const t=this.list.getFocus()[0];0!==t&&!this.elements[t-1].item&&this.list.firstVisibleIndex>t-1&&this.list.reveal(t-1);break}case uz.NextPage:this.list.focusNextPage(void 0,(t=>!!t.item));break;case uz.PreviousPage:this.list.focusPreviousPage(void 0,(t=>!!t.item))}const i=this.list.getFocus()[0];"number"==typeof i&&this.list.reveal(i)}clearFocus(){this.list.setFocus([])}domFocus(){this.list.domFocus()}showHover(t){var i,e,s;void 0!==this.options.hoverDelegate&&(this._lastHover&&!this._lastHover.isDisposed&&(null===(e=(i=this.options.hoverDelegate).onDidHideHover)||void 0===e||e.call(i),null===(s=this._lastHover)||void 0===s||s.dispose()),t.element&&t.saneTooltip&&(this._lastHover=this.options.hoverDelegate.showHover({content:t.saneTooltip,target:t.element,linkHandler:t=>{this.options.linkOpenerDelegate(t)},appearance:{showPointer:!0},container:this.container,position:{hoverPosition:1}},!1)))}layout(t){this.list.getHTMLElement().style.maxHeight=t?44*Math.floor(t/44)+6+"px":"",this.list.layout()}filter(t){if(!(this.sortByLabel||this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))return this.list.layout(),!1;const i=t;if((t=t.trim())&&(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail)){let e;this.elements.forEach((s=>{var n,o,r,h;let c;c="fuzzy"===this.matchOnLabelMode?this.matchOnLabel&&null!==(n=__(t,I_(s.saneLabel)))&&void 0!==n?n:void 0:this.matchOnLabel&&null!==(o=function(t,i){const{text:e,iconOffsets:s}=i;if(!s||0===s.length)return fz(t,e);const n=Qn(e," "),o=e.length-n.length,r=fz(t,n);if(r)for(const t of r){const i=s[t.start+o]+o;t.start+=i,t.end+=i}return r}(i,I_(s.saneLabel)))&&void 0!==o?o:void 0;const a=this.matchOnDescription&&null!==(r=__(t,I_(s.saneDescription||"")))&&void 0!==r?r:void 0,l=this.matchOnDetail&&null!==(h=__(t,I_(s.saneDetail||"")))&&void 0!==h?h:void 0;if(c||a||l?(s.labelHighlights=c,s.descriptionHighlights=a,s.detailHighlights=l,s.hidden=!1):(s.labelHighlights=void 0,s.descriptionHighlights=void 0,s.detailHighlights=void 0,s.hidden=!s.item||!s.item.alwaysShow),s.item?s.separator=void 0:s.separator&&(s.hidden=!0),!this.sortByLabel){const t=s.index&&this.inputElements[s.index-1];e=t&&"separator"===t.type?t:e,e&&!s.hidden&&(s.separator=e,e=void 0)}}))}else this.elements.forEach((t=>{t.labelHighlights=void 0,t.descriptionHighlights=void 0,t.detailHighlights=void 0,t.hidden=!1;const i=t.index&&this.inputElements[t.index-1];t.item&&(t.separator=i&&"separator"===i.type&&!i.buttons?i:void 0)}));const e=this.elements.filter((t=>!t.hidden));if(this.sortByLabel&&t){const i=t.toLowerCase();e.sort(((t,e)=>function(t,i,e){const s=t.labelHighlights||[],n=i.labelHighlights||[];return s.length&&!n.length?-1:!s.length&&n.length?1:0===s.length&&0===n.length?0:function(t,i,e){const s=t.toLowerCase(),n=i.toLowerCase(),o=function(t,i,e){const s=t.toLowerCase(),n=i.toLowerCase(),o=s.startsWith(e),r=n.startsWith(e);if(o!==r)return o?-1:1;if(o&&r){if(s.lengthn.length)return 1}return 0}(t,i,e);if(o)return o;const r=s.endsWith(e);if(r!==n.endsWith(e))return r?-1:1;const h=function(t,i){const e=t||"",s=i||"",n=tz.value.collator.compare(e,s);return tz.value.collatorIsNumeric&&0===n&&e!==s?e{var s;return t.set(null!==(s=i.item)&&void 0!==s?s:i.separator,e),t}),new Map),this.list.splice(0,this.list.length,e),this.list.setFocus([]),this.list.layout(),this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedVisibleCount.fire(e.length),!0}toggleCheckbox(){try{this._fireCheckedEvents=!1;const t=this.list.getFocusedElements(),i=this.allVisibleChecked(t);for(const e of t)e.checked=!i}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}display(t){this.container.style.display=t?"":"none"}isDisplayed(){return"none"!==this.container.style.display}dispose(){this.elementDisposables=Qi(this.elementDisposables),this.disposables=Qi(this.disposables)}fireCheckedEvents(){this._fireCheckedEvents&&(this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedCheckedCount.fire(this.getCheckedCount()),this._onChangedCheckedElements.fire(this.getCheckedElements()))}fireButtonTriggered(t){this._onButtonTriggered.fire(t)}fireSeparatorButtonTriggered(t){this._onSeparatorButtonTriggered.fire(t)}style(t){this.list.style(t)}toggleHover(){const t=this.list.getFocusedElements()[0];if(!(null==t?void 0:t.saneTooltip))return;if(this._lastHover&&!this._lastHover.isDisposed)return void this._lastHover.dispose();const i=this.list.getFocusedElements()[0];if(!i)return;this.showHover(i);const e=new Xi;e.add(this.list.onDidChangeFocus((t=>{t.indexes.length&&this.showHover(t.elements[0])}))),this._lastHover&&e.add(this._lastHover),this._toggleHover=e,this.elementDisposables.push(this._toggleHover)}}function fz(t,i){const e=i.toLowerCase().indexOf(t.toLowerCase());return-1!==e?[{start:e,end:e+t.length}]:null}rz([nw],dz.prototype,"onDidChangeFocus",null),rz([nw],dz.prototype,"onDidChangeSelection",null);class pz{getWidgetAriaLabel(){return ot(0,"Quick Input")}getAriaLabel(t){var i;return(null===(i=t.separator)||void 0===i?void 0:i.label)?`${t.saneAriaLabel}, ${t.separator.label}`:t.saneAriaLabel}getWidgetRole(){return"listbox"}getRole(t){return t.hasCheckbox?"checkbox":"option"}isChecked(t){if(t.hasCheckbox)return{value:t.checked,onDidChange:t.onChecked}}}const gz={iconClass:Cr.asClassName(Os.quickInputBack),tooltip:ot(0,"Back"),handle:-1};class mz extends te{constructor(t){super(),this.ui=t,this._widgetUpdated=!1,this.visible=!1,this._enabled=!0,this._busy=!1,this._ignoreFocusOut=!1,this._buttons=[],this.buttonsUpdated=!1,this._toggles=[],this.togglesUpdated=!1,this.noValidationMessage=mz.noPromptMessage,this._severity=sT.Ignore,this.onDidTriggerButtonEmitter=this._register(new de),this.onDidHideEmitter=this._register(new de),this.onDisposeEmitter=this._register(new de),this.visibleDisposables=this._register(new Xi),this.onDidHide=this.onDidHideEmitter.event}get title(){return this._title}set title(t){this._title=t,this.update()}get description(){return this._description}set description(t){this._description=t,this.update()}get step(){return this._steps}set step(t){this._steps=t,this.update()}get totalSteps(){return this._totalSteps}set totalSteps(t){this._totalSteps=t,this.update()}get enabled(){return this._enabled}set enabled(t){this._enabled=t,this.update()}get contextKey(){return this._contextKey}set contextKey(t){this._contextKey=t,this.update()}get busy(){return this._busy}set busy(t){this._busy=t,this.update()}get ignoreFocusOut(){return this._ignoreFocusOut}set ignoreFocusOut(t){const i=this._ignoreFocusOut!==t&&!Mt;this._ignoreFocusOut=t&&!Mt,i&&this.update()}get buttons(){return this._buttons}set buttons(t){this._buttons=t,this.buttonsUpdated=!0,this.update()}get toggles(){return this._toggles}set toggles(t){this._toggles=null!=t?t:[],this.togglesUpdated=!0,this.update()}get validationMessage(){return this._validationMessage}set validationMessage(t){this._validationMessage=t,this.update()}get severity(){return this._severity}set severity(t){this._severity=t,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.onDidTriggerButton((t=>{-1!==this.buttons.indexOf(t)&&this.onDidTriggerButtonEmitter.fire(t)}))),this.ui.show(this),this.visible=!0,this._lastValidationMessage=void 0,this._lastSeverity=void 0,this.buttons.length&&(this.buttonsUpdated=!0),this.toggles.length&&(this.togglesUpdated=!0),this.update())}hide(){this.visible&&this.ui.hide()}didHide(t=Tj.Other){this.visible=!1,this.visibleDisposables.clear(),this.onDidHideEmitter.fire({reason:t})}update(){var t,i;if(!this.visible)return;const e=this.getTitle();e&&this.ui.title.textContent!==e?this.ui.title.textContent=e:e||" "===this.ui.title.innerHTML||(this.ui.title.innerText=" ");const s=this.getDescription();if(this.ui.description1.textContent!==s&&(this.ui.description1.textContent=s),this.ui.description2.textContent!==s&&(this.ui.description2.textContent=s),this._widgetUpdated&&(this._widgetUpdated=!1,this._widget?_l(this.ui.widget,this._widget):_l(this.ui.widget)),this.busy&&!this.busyDelay&&(this.busyDelay=new dc,this.busyDelay.setIfNotSet((()=>{this.visible&&this.ui.progressBar.infinite()}),800)),!this.busy&&this.busyDelay&&(this.ui.progressBar.stop(),this.busyDelay.cancel(),this.busyDelay=void 0),this.buttonsUpdated){this.buttonsUpdated=!1,this.ui.leftActionBar.clear();const t=this.buttons.filter((t=>t===gz));this.ui.leftActionBar.push(t.map(((t,i)=>{const e=new mr(`id-${i}`,"",t.iconClass||oz(t.iconPath),!0,(async()=>{this.onDidTriggerButtonEmitter.fire(t)}));return e.tooltip=t.tooltip||"",e})),{icon:!0,label:!1}),this.ui.rightActionBar.clear();const i=this.buttons.filter((t=>t!==gz));this.ui.rightActionBar.push(i.map(((t,i)=>{const e=new mr(`id-${i}`,"",t.iconClass||oz(t.iconPath),!0,(async()=>{this.onDidTriggerButtonEmitter.fire(t)}));return e.tooltip=t.tooltip||"",e})),{icon:!0,label:!1})}if(this.togglesUpdated){this.togglesUpdated=!1;const e=null!==(i=null===(t=this.toggles)||void 0===t?void 0:t.filter((t=>t instanceof i$)))&&void 0!==i?i:[];this.ui.inputBox.toggles=e}this.ui.ignoreFocusOut=this.ignoreFocusOut,this.ui.setEnabled(this.enabled),this.ui.setContextKey(this.contextKey);const n=this.validationMessage||this.noValidationMessage;this._lastValidationMessage!==n&&(this._lastValidationMessage=n,_l(this.ui.message),function(t,i,e){_l(i);const s=function(t){const i=[];let e,s=0;for(;e=ez.exec(t);){e.index-s>0&&i.push(t.substring(s,e.index));const[,n,o,,r]=e;i.push(r?{label:n,href:o,title:r}:{label:n,href:o}),s=e.index+e[0].length}return s{var s;(s=i)&&"function"==typeof s.preventDefault&&"function"==typeof s.stopPropagation&&Fl(i,!0),e.callback(t.href)},h=e.disposables.add(new Bk(o,Ll.CLICK)).event,c=e.disposables.add(new Bk(o,Ll.KEY_DOWN)).event,a=he.chain(c,(t=>t.filter((t=>{const i=new Qh(t);return i.equals(10)||i.equals(3)}))));e.disposables.add(rw.addTarget(o));const l=e.disposables.add(new Bk(o,ow.Tap)).event;he.any(h,l,a)(r,null,e.disposables),i.appendChild(o)}}(n,this.ui.message,{callback:t=>{this.ui.linkOpenerDelegate(t)},disposables:this.visibleDisposables})),this._lastSeverity!==this.severity&&(this._lastSeverity=this.severity,this.showMessageDecoration(this.severity))}getTitle(){return this.title&&this.step?`${this.title} (${this.getSteps()})`:this.title?this.title:this.step?this.getSteps():""}getDescription(){return this.description||""}getSteps(){return this.step&&this.totalSteps?ot(0,"{0}/{1}",this.step,this.totalSteps):this.step?String(this.step):""}showMessageDecoration(t){if(this.ui.inputBox.showDecoration(t),t!==sT.Ignore){const i=this.ui.inputBox.stylesForType(t);this.ui.message.style.color=i.foreground?`${i.foreground}`:"",this.ui.message.style.backgroundColor=i.background?`${i.background}`:"",this.ui.message.style.border=i.border?`1px solid ${i.border}`:"",this.ui.message.style.marginBottom="-2px"}else this.ui.message.style.color="",this.ui.message.style.backgroundColor="",this.ui.message.style.border="",this.ui.message.style.marginBottom=""}dispose(){this.hide(),this.onDisposeEmitter.fire(),super.dispose()}}mz.noPromptMessage=ot(0,"Press 'Enter' to confirm your input or 'Escape' to cancel");class wz extends mz{constructor(){super(...arguments),this._value="",this.onDidChangeValueEmitter=this._register(new de),this.onWillAcceptEmitter=this._register(new de),this.onDidAcceptEmitter=this._register(new de),this.onDidCustomEmitter=this._register(new de),this._items=[],this.itemsUpdated=!1,this._canSelectMany=!1,this._canAcceptInBackground=!1,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._autoFocusOnList=!0,this._keepScrollPosition=!1,this._itemActivation=Rj.FIRST,this._activeItems=[],this.activeItemsUpdated=!1,this.activeItemsToConfirm=[],this.onDidChangeActiveEmitter=this._register(new de),this._selectedItems=[],this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=[],this.onDidChangeSelectionEmitter=this._register(new de),this.onDidTriggerItemButtonEmitter=this._register(new de),this.onDidTriggerSeparatorButtonEmitter=this._register(new de),this.valueSelectionUpdated=!0,this._ok="default",this._customButton=!1,this.filterValue=t=>t,this.onDidChangeValue=this.onDidChangeValueEmitter.event,this.onWillAccept=this.onWillAcceptEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event,this.onDidChangeActive=this.onDidChangeActiveEmitter.event,this.onDidChangeSelection=this.onDidChangeSelectionEmitter.event,this.onDidTriggerItemButton=this.onDidTriggerItemButtonEmitter.event,this.onDidTriggerSeparatorButton=this.onDidTriggerSeparatorButtonEmitter.event}get quickNavigate(){return this._quickNavigate}set quickNavigate(t){this._quickNavigate=t,this.update()}get value(){return this._value}set value(t){this.doSetValue(t)}doSetValue(t,i){this._value!==t&&(this._value=t,i||this.update(),this.visible&&this.ui.list.filter(this.filterValue(this._value))&&this.trySelectFirst(),this.onDidChangeValueEmitter.fire(this._value))}set ariaLabel(t){this._ariaLabel=t,this.update()}get ariaLabel(){return this._ariaLabel}get placeholder(){return this._placeholder}set placeholder(t){this._placeholder=t,this.update()}get items(){return this._items}get scrollTop(){return this.ui.list.scrollTop}set scrollTop(t){this.ui.list.scrollTop=t}set items(t){this._items=t,this.itemsUpdated=!0,this.update()}get canSelectMany(){return this._canSelectMany}set canSelectMany(t){this._canSelectMany=t,this.update()}get canAcceptInBackground(){return this._canAcceptInBackground}set canAcceptInBackground(t){this._canAcceptInBackground=t}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(t){this._matchOnDescription=t,this.update()}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(t){this._matchOnDetail=t,this.update()}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(t){this._matchOnLabel=t,this.update()}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(t){this._matchOnLabelMode=t,this.update()}get sortByLabel(){return this._sortByLabel}set sortByLabel(t){this._sortByLabel=t,this.update()}get autoFocusOnList(){return this._autoFocusOnList}set autoFocusOnList(t){this._autoFocusOnList=t,this.update()}get keepScrollPosition(){return this._keepScrollPosition}set keepScrollPosition(t){this._keepScrollPosition=t}get itemActivation(){return this._itemActivation}set itemActivation(t){this._itemActivation=t}get activeItems(){return this._activeItems}set activeItems(t){this._activeItems=t,this.activeItemsUpdated=!0,this.update()}get selectedItems(){return this._selectedItems}set selectedItems(t){this._selectedItems=t,this.selectedItemsUpdated=!0,this.update()}get keyMods(){return this._quickNavigate?Fj:this.ui.keyMods}set valueSelection(t){this._valueSelection=t,this.valueSelectionUpdated=!0,this.update()}get customButton(){return this._customButton}set customButton(t){this._customButton=t,this.update()}get customLabel(){return this._customButtonLabel}set customLabel(t){this._customButtonLabel=t,this.update()}get customHover(){return this._customButtonHover}set customHover(t){this._customButtonHover=t,this.update()}get ok(){return this._ok}set ok(t){this._ok=t,this.update()}get hideInput(){return!!this._hideInput}set hideInput(t){this._hideInput=t,this.update()}trySelectFirst(){this.autoFocusOnList&&(this.canSelectMany||this.ui.list.focus(uz.First))}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange((t=>{this.doSetValue(t,!0)}))),this.visibleDisposables.add(this.ui.inputBox.onMouseDown((()=>{this.autoFocusOnList||this.ui.list.clearFocus()}))),this.visibleDisposables.add((this._hideInput?this.ui.list:this.ui.inputBox).onKeyDown((t=>{switch(t.keyCode){case 18:this.ui.list.focus(uz.Next),this.canSelectMany&&this.ui.list.domFocus(),Fl(t,!0);break;case 16:this.ui.list.getFocusedElements().length?this.ui.list.focus(uz.Previous):this.ui.list.focus(uz.Last),this.canSelectMany&&this.ui.list.domFocus(),Fl(t,!0);break;case 12:this.ui.list.focus(uz.NextPage),this.canSelectMany&&this.ui.list.domFocus(),Fl(t,!0);break;case 11:this.ui.list.focus(uz.PreviousPage),this.canSelectMany&&this.ui.list.domFocus(),Fl(t,!0);break;case 17:if(!this._canAcceptInBackground)return;if(!this.ui.inputBox.isSelectionAtEnd())return;this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!0));break;case 14:!t.ctrlKey&&!t.metaKey||t.shiftKey||t.altKey||(this.ui.list.focus(uz.First),Fl(t,!0));break;case 13:!t.ctrlKey&&!t.metaKey||t.shiftKey||t.altKey||(this.ui.list.focus(uz.Last),Fl(t,!0))}}))),this.visibleDisposables.add(this.ui.onDidAccept((()=>{this.canSelectMany?this.ui.list.getCheckedElements().length||(this._selectedItems=[],this.onDidChangeSelectionEmitter.fire(this.selectedItems)):this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.handleAccept(!1)}))),this.visibleDisposables.add(this.ui.onDidCustom((()=>{this.onDidCustomEmitter.fire()}))),this.visibleDisposables.add(this.ui.list.onDidChangeFocus((t=>{this.activeItemsUpdated||this.activeItemsToConfirm!==this._activeItems&&l(t,this._activeItems,((t,i)=>t===i))||(this._activeItems=t,this.onDidChangeActiveEmitter.fire(t))}))),this.visibleDisposables.add(this.ui.list.onDidChangeSelection((({items:t,event:i})=>{this.canSelectMany?t.length&&this.ui.list.setSelectedElements([]):this.selectedItemsToConfirm!==this._selectedItems&&l(t,this._selectedItems,((t,i)=>t===i))||(this._selectedItems=t,this.onDidChangeSelectionEmitter.fire(t),t.length&&this.handleAccept(Al(i)&&1===i.button))}))),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements((t=>{this.canSelectMany&&(this.selectedItemsToConfirm!==this._selectedItems&&l(t,this._selectedItems,((t,i)=>t===i))||(this._selectedItems=t,this.onDidChangeSelectionEmitter.fire(t)))}))),this.visibleDisposables.add(this.ui.list.onButtonTriggered((t=>this.onDidTriggerItemButtonEmitter.fire(t)))),this.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered((t=>this.onDidTriggerSeparatorButtonEmitter.fire(t)))),this.visibleDisposables.add(this.registerQuickNavigation()),this.valueSelectionUpdated=!0),super.show()}handleAccept(t){let i=!1;this.onWillAcceptEmitter.fire({veto:()=>i=!0}),i||this.onDidAcceptEmitter.fire({inBackground:t})}registerQuickNavigation(){return Va(this.ui.container,Ll.KEY_UP,(t=>{if(this.canSelectMany||!this._quickNavigate)return;const i=new Qh(t),e=i.keyCode;this._quickNavigate.keybindings.some((t=>{const s=t.getChords();return!(s.length>1||(s[0].shiftKey&&4===e?i.ctrlKey||i.altKey||i.metaKey:!(s[0].altKey&&6===e||s[0].ctrlKey&&5===e||s[0].metaKey&&57===e)))}))&&(this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!1)),this._quickNavigate=void 0)}))}update(){if(!this.visible)return;const t=this.keepScrollPosition?this.scrollTop:0,i=!!this.description,e={title:!!this.title||!!this.step||!!this.buttons.length,description:i,checkAll:this.canSelectMany&&!this._hideCheckAll,checkBox:this.canSelectMany,inputBox:!this._hideInput,progressBar:!this._hideInput||i,visibleCount:!0,count:this.canSelectMany&&!this._hideCountBadge,ok:"default"===this.ok?this.canSelectMany:this.ok,list:!0,message:!!this.validationMessage,customButton:this.customButton};this.ui.setVisibilities(e),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||"");let s=this.ariaLabel;if(!s&&e.inputBox&&(s=this.placeholder||wz.DEFAULT_ARIA_LABEL,this.title&&(s+=` - ${this.title}`)),this.ui.list.ariaLabel!==s&&(this.ui.list.ariaLabel=null!=s?s:null),this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.matchOnLabelMode=this.matchOnLabelMode,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated)switch(this.itemsUpdated=!1,this.ui.list.setElements(this.items),this.ui.list.filter(this.filterValue(this.ui.inputBox.value)),this.ui.checkAll.checked=this.ui.list.getAllVisibleChecked(),this.ui.visibleCount.setCount(this.ui.list.getVisibleCount()),this.ui.count.setCount(this.ui.list.getCheckedCount()),this._itemActivation){case Rj.NONE:this._itemActivation=Rj.FIRST;break;case Rj.SECOND:this.ui.list.focus(uz.Second),this._itemActivation=Rj.FIRST;break;case Rj.LAST:this.ui.list.focus(uz.Last),this._itemActivation=Rj.FIRST;break;default:this.trySelectFirst()}this.ui.container.classList.contains("show-checkboxes")!==!!this.canSelectMany&&(this.canSelectMany?this.ui.list.clearFocus():this.trySelectFirst()),this.activeItemsUpdated&&(this.activeItemsUpdated=!1,this.activeItemsToConfirm=this._activeItems,this.ui.list.setFocusedElements(this.activeItems),this.activeItemsToConfirm===this._activeItems&&(this.activeItemsToConfirm=null)),this.selectedItemsUpdated&&(this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=this._selectedItems,this.canSelectMany?this.ui.list.setCheckedElements(this.selectedItems):this.ui.list.setSelectedElements(this.selectedItems),this.selectedItemsToConfirm===this._selectedItems&&(this.selectedItemsToConfirm=null)),this.ui.customButton.label=this.customLabel||"",this.ui.customButton.element.title=this.customHover||"",e.inputBox||(this.ui.list.domFocus(),this.canSelectMany&&this.ui.list.focus(uz.First)),this.keepScrollPosition&&(this.scrollTop=t)}}wz.DEFAULT_ARIA_LABEL=ot(0,"Type to narrow down results.");class vz extends mz{constructor(){super(...arguments),this._value="",this.valueSelectionUpdated=!0,this._password=!1,this.onDidValueChangeEmitter=this._register(new de),this.onDidAcceptEmitter=this._register(new de),this.onDidChangeValue=this.onDidValueChangeEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event}get value(){return this._value}set value(t){this._value=t||"",this.update()}get placeholder(){return this._placeholder}set placeholder(t){this._placeholder=t,this.update()}get password(){return this._password}set password(t){this._password=t,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange((t=>{t!==this.value&&(this._value=t,this.onDidValueChangeEmitter.fire(t))}))),this.visibleDisposables.add(this.ui.onDidAccept((()=>this.onDidAcceptEmitter.fire()))),this.valueSelectionUpdated=!0),super.show()}update(){this.visible&&(this.ui.container.classList.remove("hidden-input"),this.ui.setVisibilities({title:!!this.title||!!this.step||!!this.buttons.length,description:!!this.description||!!this.step,inputBox:!0,message:!0,progressBar:!0}),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||""),this.ui.inputBox.password!==this.password&&(this.ui.inputBox.password=this.password))}}const bz=$l;class yz extends te{constructor(t,i,e){super(),this.options=t,this.themeService=i,this.layoutService=e,this.enabled=!0,this.onDidAcceptEmitter=this._register(new de),this.onDidCustomEmitter=this._register(new de),this.onDidTriggerButtonEmitter=this._register(new de),this.keyMods={ctrlCmd:!1,alt:!1},this.controller=null,this.onShowEmitter=this._register(new de),this.onShow=this.onShowEmitter.event,this.onHideEmitter=this._register(new de),this.onHide=this.onHideEmitter.event,this.idPrefix=t.idPrefix,this.parentElement=t.container,this.styles=t.styles,this._register(he.runAndSubscribe(Wa,(({window:t,disposables:i})=>this.registerKeyModsListeners(t,i)),{window:$n,disposables:this._store})),this._register(ja((t=>{this.ui&&Na(this.ui.container)===t&&this.reparentUI(this.layoutService.mainContainer)})))}registerKeyModsListeners(t,i){const e=t=>{this.keyMods.ctrlCmd=t.ctrlKey||t.metaKey,this.keyMods.alt=t.altKey};for(const s of[Ll.KEY_DOWN,Ll.KEY_UP,Ll.MOUSE_DOWN])i.add(Va(t,s,e,!0))}getUI(t){if(this.ui)return t&&this.parentElement.ownerDocument!==this.layoutService.activeContainer.ownerDocument&&this.reparentUI(this.layoutService.activeContainer),this.ui;const i=Ol(this.parentElement,bz(".quick-input-widget.show-file-icons"));i.tabIndex=-1,i.style.display="none";const e=vl(i),s=Ol(i,bz(".quick-input-titlebar")),n=this.options.hoverDelegate?{hoverDelegate:this.options.hoverDelegate}:void 0,o=this._register(new YB(s,n));o.domNode.classList.add("quick-input-left-action-bar");const r=Ol(s,bz(".quick-input-title")),h=this._register(new YB(s,n));h.domNode.classList.add("quick-input-right-action-bar");const c=Ol(i,bz(".quick-input-header")),a=Ol(c,bz("input.quick-input-check-all"));a.type="checkbox",a.setAttribute("aria-label",ot(0,"Toggle all checkboxes")),this._register(qa(a,Ll.CHANGE,(()=>{A.setAllVisibleChecked(a.checked)}))),this._register(Va(a,Ll.CLICK,(t=>{(t.x||t.y)&&f.setFocus()})));const l=Ol(c,bz(".quick-input-description")),u=Ol(c,bz(".quick-input-and-message")),d=Ol(u,bz(".quick-input-filter")),f=this._register(new Uj(d,this.styles.inputBox,this.styles.toggle));f.setAttribute("aria-describedby",`${this.idPrefix}message`);const p=Ol(d,bz(".quick-input-visible-count"));p.setAttribute("aria-live","polite"),p.setAttribute("aria-atomic","true");const g=new Bj(p,{countFormat:ot(0,"{0} Results")},this.styles.countBadge),m=Ol(d,bz(".quick-input-count"));m.setAttribute("aria-live","polite");const w=new Bj(m,{countFormat:ot(0,"{0} Selected")},this.styles.countBadge),v=Ol(c,bz(".quick-input-action")),b=this._register(new Nj(v,this.styles.button));b.label=ot(0,"OK"),this._register(b.onDidClick((()=>{this.onDidAcceptEmitter.fire()})));const y=Ol(c,bz(".quick-input-action")),k=this._register(new Nj(y,this.styles.button));k.label=ot(0,"Custom"),this._register(k.onDidClick((()=>{this.onDidCustomEmitter.fire()})));const x=Ol(u,bz(`#${this.idPrefix}message.quick-input-message`)),C=this._register(new Hj(i,this.styles.progressBar));C.getContainer().classList.add("quick-input-progress");const S=Ol(i,bz(".quick-input-html-widget"));S.tabIndex=-1;const D=Ol(i,bz(".quick-input-description")),E=this.idPrefix+"list",A=this._register(new dz(i,E,this.options,this.themeService));f.setAttribute("aria-controls",E),this._register(A.onDidChangeFocus((()=>{var t;f.setAttribute("aria-activedescendant",null!==(t=A.getActiveDescendant())&&void 0!==t?t:"")}))),this._register(A.onChangedAllVisibleChecked((t=>{a.checked=t}))),this._register(A.onChangedVisibleCount((t=>{g.setCount(t)}))),this._register(A.onChangedCheckedCount((t=>{w.setCount(t)}))),this._register(A.onLeave((()=>{setTimeout((()=>{f.setFocus(),this.controller instanceof wz&&this.controller.canSelectMany&&A.clearFocus()}),0)})));const M=Rl(i);return this._register(M),this._register(Va(i,Ll.FOCUS,(t=>{al(t.relatedTarget,i)||(this.previousFocusElement=t.relatedTarget instanceof HTMLElement?t.relatedTarget:void 0)}),!0)),this._register(M.onDidBlur((()=>{this.getUI().ignoreFocusOut||this.options.ignoreFocusOut()||this.hide(Tj.Blur),this.previousFocusElement=void 0}))),this._register(Va(i,Ll.FOCUS,(()=>{f.setFocus()}))),this._register(qa(i,Ll.KEY_DOWN,(t=>{if(!al(t.target,S))switch(t.keyCode){case 3:Fl(t,!0),this.enabled&&this.onDidAcceptEmitter.fire();break;case 9:Fl(t,!0),this.hide(Tj.Gesture);break;case 2:if(!t.altKey&&!t.ctrlKey&&!t.metaKey){const e=[".quick-input-list .monaco-action-bar .always-visible",".quick-input-list-entry:hover .monaco-action-bar",".monaco-list-row.focused .monaco-action-bar"];if(i.classList.contains("show-checkboxes")?e.push("input"):e.push("input[type=text]"),this.getUI().list.isDisplayed()&&e.push(".monaco-list"),this.getUI().message&&e.push(".quick-input-message a"),this.getUI().widget){if(al(t.target,this.getUI().widget))break;e.push(".quick-input-html-widget")}const s=i.querySelectorAll(e.join(", "));t.shiftKey&&t.target===s[0]?(Fl(t,!0),A.clearFocus()):!t.shiftKey&&al(t.target,s[s.length-1])&&(Fl(t,!0),s[0].focus())}break;case 10:t.ctrlKey&&(Fl(t,!0),this.getUI().list.toggleHover())}}))),this.ui={container:i,styleSheet:e,leftActionBar:o,titleBar:s,title:r,description1:D,description2:l,widget:S,rightActionBar:h,checkAll:a,inputContainer:u,filterContainer:d,inputBox:f,visibleCountContainer:p,visibleCount:g,countContainer:m,count:w,okContainer:v,ok:b,message:x,customButtonContainer:y,customButton:k,list:A,progressBar:C,onDidAccept:this.onDidAcceptEmitter.event,onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,show:t=>this.show(t),hide:()=>this.hide(),setVisibilities:t=>this.setVisibilities(t),setEnabled:t=>this.setEnabled(t),setContextKey:t=>this.options.setContextKey(t),linkOpenerDelegate:t=>this.options.linkOpenerDelegate(t)},this.updateStyles(),this.ui}reparentUI(t){this.ui&&(this.parentElement=t,Ol(this.parentElement,this.ui.container))}pick(t,i={},e=ke.None){return new Promise(((s,n)=>{let o=t=>{var e;o=s,null===(e=i.onKeyMods)||void 0===e||e.call(i,r.keyMods),s(t)};if(e.isCancellationRequested)return void o(void 0);const r=this.createQuickPick();let h;const c=[r,r.onDidAccept((()=>{if(r.canSelectMany)o(r.selectedItems.slice()),r.hide();else{const t=r.activeItems[0];t&&(o(t),r.hide())}})),r.onDidChangeActive((t=>{const e=t[0];e&&i.onDidFocus&&i.onDidFocus(e)})),r.onDidChangeSelection((t=>{if(!r.canSelectMany){const i=t[0];i&&(o(i),r.hide())}})),r.onDidTriggerItemButton((t=>i.onDidTriggerItemButton&&i.onDidTriggerItemButton({...t,removeItem:()=>{const i=r.items.indexOf(t.item);if(-1!==i){const t=r.items.slice(),e=t.splice(i,1),s=r.activeItems.filter((t=>t!==e[0])),n=r.keepScrollPosition;r.keepScrollPosition=!0,r.items=t,s&&(r.activeItems=s),r.keepScrollPosition=n}}}))),r.onDidTriggerSeparatorButton((t=>{var e;return null===(e=i.onDidTriggerSeparatorButton)||void 0===e?void 0:e.call(i,t)})),r.onDidChangeValue((t=>{!h||t||1===r.activeItems.length&&r.activeItems[0]===h||(r.activeItems=[h])})),e.onCancellationRequested((()=>{r.hide()})),r.onDidHide((()=>{Qi(c),o(void 0)}))];r.title=i.title,r.canSelectMany=!!i.canPickMany,r.placeholder=i.placeHolder,r.ignoreFocusOut=!!i.ignoreFocusLost,r.matchOnDescription=!!i.matchOnDescription,r.matchOnDetail=!!i.matchOnDetail,r.matchOnLabel=void 0===i.matchOnLabel||i.matchOnLabel,r.autoFocusOnList=void 0===i.autoFocusOnList||i.autoFocusOnList,r.quickNavigate=i.quickNavigate,r.hideInput=!!i.hideInput,r.contextKey=i.contextKey,r.busy=!0,Promise.all([t,i.activeItem]).then((([t,i])=>{h=i,r.busy=!1,r.items=t,r.canSelectMany&&(r.selectedItems=t.filter((t=>"separator"!==t.type&&t.picked))),h&&(r.activeItems=[h])})),r.show(),Promise.resolve(t).then(void 0,(t=>{n(t),r.hide()}))}))}createQuickPick(){const t=this.getUI(!0);return new wz(t)}createInputBox(){const t=this.getUI(!0);return new vz(t)}show(t){const i=this.getUI(!0);this.onShowEmitter.fire();const e=this.controller;this.controller=t,null==e||e.didHide(),this.setEnabled(!0),i.leftActionBar.clear(),i.title.textContent="",i.description1.textContent="",i.description2.textContent="",_l(i.widget),i.rightActionBar.clear(),i.checkAll.checked=!1,i.inputBox.placeholder="",i.inputBox.password=!1,i.inputBox.showDecoration(sT.Ignore),i.visibleCount.setCount(0),i.count.setCount(0),_l(i.message),i.progressBar.stop(),i.list.setElements([]),i.list.matchOnDescription=!1,i.list.matchOnDetail=!1,i.list.matchOnLabel=!0,i.list.sortByLabel=!0,i.ignoreFocusOut=!1,i.inputBox.toggles=void 0;const s=this.options.backKeybindingLabel();gz.tooltip=s?ot(0,"Back ({0})",s):ot(0,"Back"),i.container.style.display="",this.updateLayout(),i.inputBox.setFocus()}isVisible(){return!!this.ui&&"none"!==this.ui.container.style.display}setVisibilities(t){const i=this.getUI();i.title.style.display=t.title?"":"none",i.description1.style.display=t.description&&(t.inputBox||t.checkAll)?"":"none",i.description2.style.display=!t.description||t.inputBox||t.checkAll?"none":"",i.checkAll.style.display=t.checkAll?"":"none",i.inputContainer.style.display=t.inputBox?"":"none",i.filterContainer.style.display=t.inputBox?"":"none",i.visibleCountContainer.style.display=t.visibleCount?"":"none",i.countContainer.style.display=t.count?"":"none",i.okContainer.style.display=t.ok?"":"none",i.customButtonContainer.style.display=t.customButton?"":"none",i.message.style.display=t.message?"":"none",i.progressBar.getContainer().style.display=t.progressBar?"":"none",i.list.display(!!t.list),i.container.classList.toggle("show-checkboxes",!!t.checkBox),i.container.classList.toggle("hidden-input",!t.inputBox&&!t.description),this.updateLayout()}setEnabled(t){if(t!==this.enabled){this.enabled=t;for(const i of this.getUI().leftActionBar.viewItems)i.action.enabled=t;for(const i of this.getUI().rightActionBar.viewItems)i.action.enabled=t;this.getUI().checkAll.disabled=!t,this.getUI().inputBox.enabled=t,this.getUI().ok.enabled=t,this.getUI().list.enabled=t}}hide(t){var i,e;const s=this.controller;if(!s)return;const n=null===(i=this.ui)||void 0===i?void 0:i.container,o=n&&!al((r=n).ownerDocument.activeElement,r);var r;if(this.controller=null,this.onHideEmitter.fire(),n&&(n.style.display="none"),!o){let t=this.previousFocusElement;for(;t&&!t.offsetParent;)t=null!==(e=t.parentElement)&&void 0!==e?e:void 0;(null==t?void 0:t.offsetParent)?(t.focus(),this.previousFocusElement=void 0):this.options.returnFocus()}s.didHide(t)}layout(t,i){this.dimension=t,this.titleBarOffset=i,this.updateLayout()}updateLayout(){if(this.ui&&this.isVisible()){this.ui.container.style.top=`${this.titleBarOffset}px`;const t=this.ui.container.style,i=Math.min(.62*this.dimension.width,yz.MAX_WIDTH);t.width=i+"px",t.marginLeft="-"+i/2+"px",this.ui.inputBox.layout(),this.ui.list.layout(this.dimension&&.4*this.dimension.height)}}applyStyles(t){this.styles=t,this.updateStyles()}updateStyles(){if(this.ui){const{quickInputTitleBackground:t,quickInputBackground:i,quickInputForeground:e,widgetBorder:s,widgetShadow:n}=this.styles.widget;this.ui.titleBar.style.backgroundColor=null!=t?t:"",this.ui.container.style.backgroundColor=null!=i?i:"",this.ui.container.style.color=null!=e?e:"",this.ui.container.style.border=s?`1px solid ${s}`:"",this.ui.container.style.boxShadow=n?`0 0 8px 2px ${n}`:"",this.ui.list.style(this.styles.list);const o=[];this.styles.pickerGroup.pickerGroupBorder&&o.push(`.quick-input-list .quick-input-list-entry { border-top-color: ${this.styles.pickerGroup.pickerGroupBorder}; }`),this.styles.pickerGroup.pickerGroupForeground&&o.push(`.quick-input-list .quick-input-list-separator { color: ${this.styles.pickerGroup.pickerGroupForeground}; }`),this.styles.pickerGroup.pickerGroupForeground&&o.push(".quick-input-list .quick-input-list-separator-as-item { color: var(--vscode-descriptionForeground); }"),(this.styles.keybindingLabel.keybindingLabelBackground||this.styles.keybindingLabel.keybindingLabelBorder||this.styles.keybindingLabel.keybindingLabelBottomBorder||this.styles.keybindingLabel.keybindingLabelShadow||this.styles.keybindingLabel.keybindingLabelForeground)&&(o.push(".quick-input-list .monaco-keybinding > .monaco-keybinding-key {"),this.styles.keybindingLabel.keybindingLabelBackground&&o.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`),this.styles.keybindingLabel.keybindingLabelBorder&&o.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`),this.styles.keybindingLabel.keybindingLabelBottomBorder&&o.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`),this.styles.keybindingLabel.keybindingLabelShadow&&o.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`),this.styles.keybindingLabel.keybindingLabelForeground&&o.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`),o.push("}"));const r=o.join("\n");r!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=r)}}}yz.MAX_WIDTH=600;var kz=function(t,i){return function(e,s){i(e,s,t)}};let xz=class extends ox{get controller(){return this._controller||(this._controller=this._register(this.createController())),this._controller}get hasController(){return!!this._controller}get quickAccess(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(_j))),this._quickAccess}constructor(t,i,e,s){super(e),this.instantiationService=t,this.contextKeyService=i,this.layoutService=s,this._onShow=this._register(new de),this._onHide=this._register(new de),this.contexts=new Map}createController(t=this.layoutService,i){const e={idPrefix:"quickInput_",container:t.activeContainer,ignoreFocusOut:()=>!1,backKeybindingLabel:()=>{},setContextKey:t=>this.setContextKey(t),linkOpenerDelegate:t=>{this.instantiationService.invokeFunction((i=>{i.get(dP).open(t,{allowCommands:!0,fromUserGesture:!0})}))},returnFocus:()=>t.focus(),createList:(t,i,e,s,n)=>this.instantiationService.createInstance(uj,t,i,e,s,n),styles:this.computeStyles()},s=this._register(new yz({...e,...i},this.themeService,this.layoutService));return s.layout(t.activeContainerDimension,t.activeContainerOffset.quickPickTop),this._register(t.onDidLayoutActiveContainer((i=>s.layout(i,t.activeContainerOffset.quickPickTop)))),this._register(t.onDidChangeActiveContainer((()=>{s.isVisible()||s.layout(t.activeContainerDimension,t.activeContainerOffset.quickPickTop)}))),this._register(s.onShow((()=>{this.resetContextKeys(),this._onShow.fire()}))),this._register(s.onHide((()=>{this.resetContextKeys(),this._onHide.fire()}))),s}setContextKey(t){let i;t&&(i=this.contexts.get(t),i||(i=new ch(t,!1).bindTo(this.contextKeyService),this.contexts.set(t,i))),i&&i.get()||(this.resetContextKeys(),null==i||i.set(!0))}resetContextKeys(){this.contexts.forEach((t=>{t.get()&&t.reset()}))}pick(t,i={},e=ke.None){return this.controller.pick(t,i,e)}createQuickPick(){return this.controller.createQuickPick()}createInputBox(){return this.controller.createInputBox()}updateStyles(){this.hasController&&this.controller.applyStyles(this.computeStyles())}computeStyles(){return{widget:{quickInputBackground:aw(gv),quickInputForeground:aw(mv),quickInputTitleBackground:aw(wv),widgetBorder:aw(kw),widgetShadow:aw(yw)},inputBox:IB,toggle:OB,countBadge:NB,button:TB,progressBar:RB,keybindingLabel:FB,list:PB({listBackground:gv,listFocusBackground:Mb,listFocusForeground:Eb,listInactiveFocusForeground:Eb,listInactiveSelectionIconForeground:Ab,listInactiveFocusBackground:Mb,listFocusOutline:vw,listInactiveFocusOutline:vw}),pickerGroup:{pickerGroupBorder:aw(bv),pickerGroupForeground:aw(vv)}}}};xz=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([kz(0,ur),kz(1,ah),kz(2,Xk),kz(3,qT)],xz);var Cz=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},Sz=function(t,i){return function(e,s){i(e,s,t)}};let Dz=class extends xz{constructor(t,i,e,s,n){super(i,e,s,new QT(t.getContainerDomNode(),n)),this.host=void 0;const o=Az.get(t);if(o){const i=o.widget;this.host={_serviceBrand:void 0,get mainContainer(){return i.getDomNode()},getContainer:()=>i.getDomNode(),get containers(){return[i.getDomNode()]},get activeContainer(){return i.getDomNode()},get mainContainerDimension(){return t.getLayoutInfo()},get activeContainerDimension(){return t.getLayoutInfo()},get onDidLayoutMainContainer(){return t.onDidLayoutChange},get onDidLayoutActiveContainer(){return t.onDidLayoutChange},get onDidLayoutContainer(){return he.map(t.onDidLayoutChange,(t=>({container:i.getDomNode(),dimension:t})))},get onDidChangeActiveContainer(){return he.None},get onDidAddContainer(){return he.None},get mainContainerOffset(){return{top:0,quickPickTop:0}},get activeContainerOffset(){return{top:0,quickPickTop:0}},focus:()=>t.focus()}}else this.host=void 0}createController(){return super.createController(this.host)}};Dz=Cz([Sz(1,ur),Sz(2,ah),Sz(3,Xk),Sz(4,fr)],Dz);let Ez=class{get activeService(){const t=this.codeEditorService.getFocusedCodeEditor();if(!t)throw new Error("Quick input service needs a focused editor to work.");let i=this.mapEditorToService.get(t);if(!i){const e=i=this.instantiationService.createInstance(Dz,t);this.mapEditorToService.set(t,i),Gi(t.onDidDispose)((()=>{e.dispose(),this.mapEditorToService.delete(t)}))}return i}get quickAccess(){return this.activeService.quickAccess}constructor(t,i){this.instantiationService=t,this.codeEditorService=i,this.mapEditorToService=new Map}pick(t,i={},e=ke.None){return this.activeService.pick(t,i,e)}createQuickPick(){return this.activeService.createQuickPick()}createInputBox(){return this.activeService.createInputBox()}};Ez=Cz([Sz(0,ur),Sz(1,fr)],Ez);class Az{static get(t){return t.getContribution(Az.ID)}constructor(t){this.editor=t,this.widget=new Mz(this.editor)}dispose(){this.widget.dispose()}}Az.ID="editor.controller.quickInput";class Mz{constructor(t){this.codeEditor=t,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}getId(){return Mz.ID}getDomNode(){return this.domNode}getPosition(){return{preference:2}}dispose(){this.codeEditor.removeOverlayWidget(this)}}Mz.ID="editor.contrib.quickInputWidget",lu(Az.ID,Az,4);class Lz{constructor(t,i,e,s,n){this._parsedThemeRuleBrand=void 0,this.token=t,this.index=i,this.fontStyle=e,this.foreground=s,this.background=n}}const Fz=/^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;class Tz{constructor(){this._lastColorId=0,this._id2color=[],this._color2id=new Map}getId(t){if(null===t)return 0;const i=t.match(Fz);if(!i)throw new Error("Illegal value for token color: "+t);t=i[1].toUpperCase();let e=this._color2id.get(t);return e||(e=++this._lastColorId,this._color2id.set(t,e),this._id2color[e]=lg.fromHex("#"+t),e)}getColorMap(){return this._id2color.slice(0)}}class Rz{static createFromRawTokenTheme(t,i){return this.createFromParsedTokenTheme(function(t){if(!t||!Array.isArray(t))return[];const i=[];let e=0;for(let s=0,n=t.length;s{const e=function(t,i){return ti?1:0}(t.token,i.token);return 0!==e?e:t.index-i.index}));let e=0,s="000000",n="ffffff";for(;t.length>=1&&""===t[0].token;){const i=t.shift();-1!==i.fontStyle&&(e=i.fontStyle),null!==i.foreground&&(s=i.foreground),null!==i.background&&(n=i.background)}const o=new Tz;for(const t of i)o.getId(t);const r=o.getId(s),h=o.getId(n),c=new Iz(e,r,h),a=new _z(c);for(let i=0,e=t.length;i>>0,this._cache.set(i,e)}return(e|t)>>>0}}const Oz=/\b(comment|string|regex|regexp)\b/;class Iz{constructor(t,i,e){this._themeTrieElementRuleBrand=void 0,this._fontStyle=t,this._foreground=i,this._background=e,this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}clone(){return new Iz(this._fontStyle,this._foreground,this._background)}acceptOverwrite(t,i,e){-1!==t&&(this._fontStyle=t),0!==i&&(this._foreground=i),0!==e&&(this._background=e),this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}}class _z{constructor(t){this._themeTrieElementBrand=void 0,this._mainRule=t,this._children=new Map}match(t){if(""===t)return this._mainRule;const i=t.indexOf(".");let e,s;-1===i?(e=t,s=""):(e=t.substring(0,i),s=t.substring(i+1));const n=this._children.get(e);return void 0!==n?n.match(s):this._mainRule}insert(t,i,e,s){if(""===t)return void this._mainRule.acceptOverwrite(i,e,s);const n=t.indexOf(".");let o,r;-1===n?(o=t,r=""):(o=t.substring(0,n),r=t.substring(n+1));let h=this._children.get(o);void 0===h&&(h=new _z(this._mainRule.clone()),this._children.set(o,h)),h.insert(r,i,e,s)}}const Nz={base:"vs",inherit:!1,rules:[{token:"",foreground:"000000",background:"fffffe"},{token:"invalid",foreground:"cd3131"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"001188"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"delimiter.xml",foreground:"0000FF"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"FF0000"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"FF0000"},{token:"attribute.value",foreground:"0451A5"},{token:"attribute.value.number",foreground:"098658"},{token:"attribute.value.unit",foreground:"098658"},{token:"attribute.value.html",foreground:"0000FF"},{token:"attribute.value.xml",foreground:"0000FF"},{token:"string",foreground:"A31515"},{token:"string.html",foreground:"0000FF"},{token:"string.sql",foreground:"FF0000"},{token:"string.yaml",foreground:"0451A5"},{token:"keyword",foreground:"0000FF"},{token:"keyword.json",foreground:"0451A5"},{token:"keyword.flow",foreground:"AF00DB"},{token:"keyword.flow.scss",foreground:"0000FF"},{token:"operator.scss",foreground:"666666"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[av]:"#FFFFFE",[lv]:"#000000",[Ev]:"#E5EBF1",[px]:"#D3D3D3",[yx]:"#939393",[Av]:"#ADD6FF4D"}},Bz={base:"vs-dark",inherit:!1,rules:[{token:"",foreground:"D4D4D4",background:"1E1E1E"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"74B0DF"},{token:"variable.predefined",foreground:"4864AA"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"B5CEA8"},{token:"number.hex",foreground:"5BB498"},{token:"regexp",foreground:"B46695"},{token:"annotation",foreground:"cc6666"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"DCDCDC"},{token:"delimiter.html",foreground:"808080"},{token:"delimiter.xml",foreground:"808080"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"A79873"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"DD6A6F"},{token:"metatag.content.html",foreground:"9CDCFE"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key.json",foreground:"9CDCFE"},{token:"string.value.json",foreground:"CE9178"},{token:"attribute.name",foreground:"9CDCFE"},{token:"attribute.value",foreground:"CE9178"},{token:"attribute.value.number.css",foreground:"B5CEA8"},{token:"attribute.value.unit.css",foreground:"B5CEA8"},{token:"attribute.value.hex.css",foreground:"D4D4D4"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"keyword.json",foreground:"CE9178"},{token:"keyword.flow.scss",foreground:"569CD6"},{token:"operator.scss",foreground:"909090"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[av]:"#1E1E1E",[lv]:"#D4D4D4",[Ev]:"#3A3D41",[px]:"#404040",[yx]:"#707070",[Av]:"#ADD6FF26"}},Pz={base:"hc-black",inherit:!1,rules:[{token:"",foreground:"FFFFFF",background:"000000"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"1AEBFF"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"FFFFFF"},{token:"regexp",foreground:"C0C0C0"},{token:"annotation",foreground:"569CD6"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"FFFF00"},{token:"delimiter.html",foreground:"FFFF00"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta",foreground:"D4D4D4"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"569CD6"},{token:"metatag.content.html",foreground:"1AEBFF"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key",foreground:"9CDCFE"},{token:"string.value",foreground:"CE9178"},{token:"attribute.name",foreground:"569CD6"},{token:"attribute.value",foreground:"3FF23F"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[av]:"#000000",[lv]:"#FFFFFF",[px]:"#FFFFFF",[yx]:"#FFFFFF"}},$z={base:"hc-light",inherit:!1,rules:[{token:"",foreground:"292929",background:"FFFFFF"},{token:"invalid",foreground:"B5200D"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"264F70"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"B5200D"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"264F78"},{token:"attribute.value",foreground:"0451A5"},{token:"string",foreground:"A31515"},{token:"string.sql",foreground:"B5200D"},{token:"keyword",foreground:"0000FF"},{token:"keyword.flow",foreground:"AF00DB"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[av]:"#FFFFFF",[lv]:"#292929",[px]:"#292929",[yx]:"#292929"}};var Wz,jz;!function(t){t.getDefinition=function(t){let i=t.defaults;for(;Cr.isThemeIcon(i);){const t=zz.getIcon(i.id);if(!t)return;i=t.defaults}return i}}(Wz||(Wz={})),function(t){t.toJSONObject=function(t){return{weight:t.weight,style:t.style,src:t.src.map((t=>({format:t.format,location:t.location.toString()})))}},t.fromJSONObject=function(t){const i=t=>B(t)?t:void 0;if(t&&Array.isArray(t.src)&&t.src.every((t=>B(t.format)&&B(t.location))))return{weight:i(t.weight),style:i(t.style),src:t.src.map((t=>({format:t.format,location:ms.parse(t.location)})))}}}(jz||(jz={}));const zz=new class{constructor(){this._onDidChange=new de,this.onDidChange=this._onDidChange.event,this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:ot(0,"The id of the font to use. If not set, the font that is defined first is used.")},fontCharacter:{type:"string",description:ot(0,"The font character associated with the icon definition.")}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}},this.iconReferenceSchema={type:"string",pattern:`^${Cr.iconNameExpression}$`,enum:[],enumDescriptions:[]},this.iconsById={},this.iconFontsById={}}registerIcon(t,i,e,s){const n=this.iconsById[t];if(n){if(e&&!n.description){n.description=e,this.iconSchema.properties[t].markdownDescription=`${e} $(${t})`;const i=this.iconReferenceSchema.enum.indexOf(t);-1!==i&&(this.iconReferenceSchema.enumDescriptions[i]=e),this._onDidChange.fire()}return n}this.iconsById[t]={id:t,description:e,defaults:i,deprecationMessage:s};const o={$ref:"#/definitions/icons"};return s&&(o.deprecationMessage=s),e&&(o.markdownDescription=`${e}: $(${t})`),this.iconSchema.properties[t]=o,this.iconReferenceSchema.enum.push(t),this.iconReferenceSchema.enumDescriptions.push(e||""),this._onDidChange.fire(),{id:t}}getIcons(){return Object.keys(this.iconsById).map((t=>this.iconsById[t]))}getIcon(t){return this.iconsById[t]}getIconSchema(){return this.iconSchema}toString(){const t=(t,i)=>t.id.localeCompare(i.id),i=t=>{for(;Cr.isThemeIcon(t.defaults);)t=this.iconsById[t.defaults.id];return`codicon codicon-${t?t.id:""}`},e=[];e.push("| preview | identifier | default codicon ID | description"),e.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");const s=Object.keys(this.iconsById).map((t=>this.iconsById[t]));for(const n of s.filter((t=>!!t.description)).sort(t))e.push(`||${n.id}|${Cr.isThemeIcon(n.defaults)?n.defaults.id:n.id}|${n.description||""}|`);e.push("| preview | identifier "),e.push("| ----------- | --------------------------------- |");for(const n of s.filter((t=>!Cr.isThemeIcon(t.defaults))).sort(t))e.push(`||${n.id}|`);return e.join("\n")}};function Hz(t,i,e,s){return zz.registerIcon(t,i,e,s)}function Vz(){return zz}Dh.add("base.contributions.icons",zz),function(){const t=Rs();for(const i in t){const e="\\"+t[i].toString(16);zz.registerIcon(i,{fontCharacter:e})}}();const Uz="vscode://schemas/icons",qz=Dh.as(Ed);qz.registerSchema(Uz,zz.getIconSchema());const Kz=new pc((()=>qz.notifySchemaChanged(Uz)),200);zz.onDidChange((()=>{Kz.isScheduled()||Kz.schedule()}));const Gz=Hz("widget-close",Os.close,ot(0,"Icon for the close action in widgets."));Hz("goto-previous-location",Os.arrowUp,ot(0,"Icon for goto previous editor location.")),Hz("goto-next-location",Os.arrowDown,ot(0,"Icon for goto next editor location.")),Cr.modify(Os.sync,"spin"),Cr.modify(Os.loading,"spin");class Zz{getIcon(t){const i=Vz();let e=t.defaults;for(;Cr.isThemeIcon(e);){const t=i.getIcon(e.id);if(!t)return;e=t.defaults}return e}}const Qz="vs",Jz="vs-dark",Yz="hc-black",Xz="hc-light",tH=Dh.as(lw),iH=Dh.as(ex);class eH{constructor(t,i){this.semanticHighlighting=!1,this.themeData=i;const e=i.base;t.length>0?(this.id=sH(t)?t:e+" "+t,this.themeName=t):(this.id=e,this.themeName=e),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}get base(){return this.themeData.base}notifyBaseUpdated(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)}getColors(){if(!this.colors){const t=new Map;for(const i in this.themeData.colors)t.set(i,lg.fromHex(this.themeData.colors[i]));if(this.themeData.inherit){const i=nH(this.themeData.base);for(const e in i.colors)t.has(e)||t.set(e,lg.fromHex(i.colors[e]))}this.colors=t}return this.colors}getColor(t,i){return this.getColors().get(t)||(!1!==i?this.getDefault(t):void 0)}getDefault(t){let i=this.defaultColors[t];return i||(i=tH.resolveDefaultColor(t,this),this.defaultColors[t]=i,i)}defines(t){return this.getColors().has(t)}get type(){switch(this.base){case Qz:return jy.LIGHT;case Yz:return jy.HIGH_CONTRAST_DARK;case Xz:return jy.HIGH_CONTRAST_LIGHT;default:return jy.DARK}}get tokenTheme(){if(!this._tokenTheme){let t=[],i=[];if(this.themeData.inherit){const e=nH(this.themeData.base);t=e.rules,e.encodedTokensColors&&(i=e.encodedTokensColors)}const e=this.themeData.colors["editor.foreground"],s=this.themeData.colors["editor.background"];if(e||s){const i={token:""};e&&(i.foreground=e),s&&(i.background=s),t.push(i)}t=t.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(i=this.themeData.encodedTokensColors),this._tokenTheme=Rz.createFromRawTokenTheme(t,i)}return this._tokenTheme}getTokenStyleMetadata(t,i,e){const s=this.tokenTheme._match([t].concat(i).join(".")).metadata,n=Bg.getForeground(s),o=Bg.getFontStyle(s);return{foreground:n,italic:Boolean(1&o),bold:Boolean(2&o),underline:Boolean(4&o),strikethrough:Boolean(8&o)}}}function sH(t){return t===Qz||t===Jz||t===Yz||t===Xz}function nH(t){switch(t){case Qz:return Nz;case Jz:return Bz;case Yz:return Pz;case Xz:return $z}}function oH(t){const i=nH(t);return new eH(t,i)}const rH=dr("themeService");var hH=function(t,i){return function(e,s){i(e,s,t)}};let cH=class extends te{constructor(t,i,e){super(),this._contextKeyService=t,this._layoutService=i,this._configurationService=e,this._accessibilitySupport=0,this._onDidChangeScreenReaderOptimized=new de,this._onDidChangeReducedMotion=new de,this._accessibilityModeEnabledContext=Qm.bindTo(this._contextKeyService);const s=()=>this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());this._register(this._configurationService.onDidChangeConfiguration((t=>{t.affectsConfiguration("editor.accessibilitySupport")&&(s(),this._onDidChangeScreenReaderOptimized.fire()),t.affectsConfiguration("workbench.reduceMotion")&&(this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._onDidChangeReducedMotion.fire())}))),s(),this._register(this.onDidChangeScreenReaderOptimized((()=>s())));const n=$n.matchMedia("(prefers-reduced-motion: reduce)");this._systemMotionReduced=n.matches,this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this.initReducedMotionListeners(n)}initReducedMotionListeners(t){this._register(Va(t,"change",(()=>{this._systemMotionReduced=t.matches,"auto"===this._configMotionReduced&&this._onDidChangeReducedMotion.fire()})));const i=()=>{const t=this.isMotionReduced();this._layoutService.mainContainer.classList.toggle("reduce-motion",t),this._layoutService.mainContainer.classList.toggle("enable-motion",!t)};i(),this._register(this.onDidChangeReducedMotion((()=>i())))}get onDidChangeScreenReaderOptimized(){return this._onDidChangeScreenReaderOptimized.event}isScreenReaderOptimized(){const t=this._configurationService.getValue("editor.accessibilitySupport");return"on"===t||"auto"===t&&2===this._accessibilitySupport}get onDidChangeReducedMotion(){return this._onDidChangeReducedMotion.event}isMotionReduced(){const t=this._configMotionReduced;return"on"===t||"auto"===t&&this._systemMotionReduced}getAccessibilitySupport(){return this._accessibilitySupport}};cH=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([hH(0,ah),hH(1,qT),hH(2,pd)],cH);var aH,lH,uH=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},dH=function(t,i){return function(e,s){i(e,s,t)}};let fH=class{constructor(t,i){this._commandService=t,this._hiddenStates=new pH(i)}createMenu(t,i,e){return new mH(t,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...e},this._commandService,i)}resetHiddenStates(t){this._hiddenStates.reset(t)}};fH=uH([dH(0,Sr),dH(1,AB)],fH);let pH=aH=class{constructor(t){this._storageService=t,this._disposables=new Xi,this._onDidChange=new de,this.onDidChange=this._onDidChange.event,this._ignoreChangeEvent=!1,this._hiddenByDefaultCache=new Map;try{const i=t.get(aH._key,0,"{}");this._data=JSON.parse(i)}catch(t){this._data=Object.create(null)}this._disposables.add(t.onDidChangeValue(0,aH._key,this._disposables)((()=>{if(!this._ignoreChangeEvent)try{const i=t.get(aH._key,0,"{}");this._data=JSON.parse(i)}catch(t){console.log("FAILED to read storage after UPDATE",t)}this._onDidChange.fire()})))}dispose(){this._onDidChange.dispose(),this._disposables.dispose()}_isHiddenByDefault(t,i){var e;return null!==(e=this._hiddenByDefaultCache.get(`${t.id}/${i}`))&&void 0!==e&&e}setDefaultState(t,i,e){this._hiddenByDefaultCache.set(`${t.id}/${i}`,e)}isHidden(t,i){var e,s;const n=this._isHiddenByDefault(t,i),o=null!==(s=null===(e=this._data[t.id])||void 0===e?void 0:e.includes(i))&&void 0!==s&&s;return n?!o:o}updateHidden(t,i,e){this._isHiddenByDefault(t,i)&&(e=!e);const s=this._data[t.id];if(e)s?s.indexOf(i)<0&&s.push(i):this._data[t.id]=[i];else if(s){const e=s.indexOf(i);e>=0&&function(t,i){const e=t.length-1;it[1])));n.length>0&&o.push(new Nh(i,s,n))}}o.length>0&&i.push([s,o])}return i}static _fillInKbExprKeys(t,i){if(t)for(const e of t.keys())i.add(e)}static _compareMenuItems(t,i){const e=t.group,s=i.group;if(e!==s){if(!e)return 1;if(!s)return-1;if("navigation"===e)return-1;if("navigation"===s)return 1;const t=e.localeCompare(s);if(0!==t)return t}const n=t.order||0,o=i.order||0;return no?1:lH._compareTitles(Th(t)?t.command.title:t.title,Th(i)?i.command.title:i.title)}static _compareTitles(t,i){return("string"==typeof t?t:t.original).localeCompare("string"==typeof i?i:i.original)}};gH=lH=uH([dH(3,Sr),dH(4,ah)],gH);let mH=class{constructor(t,i,e,s,n){this._disposables=new Xi,this._menuInfo=new gH(t,i,e.emitEventsForSubmenuChanges,s,n);const o=new pc((()=>{this._menuInfo.refresh(),this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!0,isToggleChange:!0})}),e.eventDebounceDelay);this._disposables.add(o),this._disposables.add(_h.onDidChangeMenu((i=>{i.has(t)&&o.schedule()})));const r=this._disposables.add(new Xi);this._onDidChange=new ge({onWillAddFirstListener:()=>{r.add(n.onDidChangeContext((t=>{const i=t.affectsSome(this._menuInfo.structureContextKeys),e=t.affectsSome(this._menuInfo.preconditionContextKeys),s=t.affectsSome(this._menuInfo.toggledContextKeys);(i||e||s)&&this._onDidChange.fire({menu:this,isStructuralChange:i,isEnablementChange:e,isToggleChange:s})}))),r.add(i.onDidChange((()=>{this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!1,isToggleChange:!1})})))},onDidRemoveLastListener:r.clear.bind(r),delay:e.eventDebounceDelay,merge:t=>{let i=!1,e=!1,s=!1;for(const n of t)if(i=i||n.isStructuralChange,e=e||n.isEnablementChange,s=s||n.isToggleChange,i&&e&&s)break;return{menu:this,isStructuralChange:i,isEnablementChange:e,isToggleChange:s}}}),this.onDidChange=this._onDidChange.event}getActions(t){return this._menuInfo.createActionGroups(t)}dispose(){this._disposables.dispose(),this._onDidChange.dispose()}};function wH(t,i,e){const s=void 0!==i.submenu?i.submenu.id:i.id,n="string"==typeof i.title?i.title:i.title.value,o=kr({id:`hide/${t.id}/${s}`,label:ot(0,"Hide '{0}'",n),run(){e.updateHidden(t,s,!0)}}),r=kr({id:`toggle/${t.id}/${s}`,label:n,get checked(){return!e.isHidden(t,s)},run(){e.updateHidden(t,s,!!this.checked)}});return{hide:o,toggle:r,get isHidden(){return!r.checked}}}mH=uH([dH(3,Sr),dH(4,ah)],mH);var vH=function(t,i){return function(e,s){i(e,s,t)}};let bH=class extends te{constructor(t,i){super(),this.layoutService=t,this.logService=i,this.mapTextToType=new Map,this.findText="",this.resources=[],(Go||Zo)&&this.installWebKitWriteTextWorkaround()}installWebKitWriteTextWorkaround(){const t=()=>{const t=new bc;this.webKitPendingClipboardWritePromise&&!this.webKitPendingClipboardWritePromise.isSettled&&this.webKitPendingClipboardWritePromise.cancel(),this.webKitPendingClipboardWritePromise=t,navigator.clipboard.write([new ClipboardItem({"text/plain":t.p})]).catch((async i=>{i instanceof Error&&"NotAllowedError"===i.name&&t.isRejected||this.logService.error(i)}))};this._register(he.runAndSubscribe(this.layoutService.onDidAddContainer,(({container:i,disposables:e})=>{e.add(Va(i,"click",t)),e.add(Va(i,"keydown",t))}),{container:this.layoutService.mainContainer,disposables:this._store}))}async writeText(t,i){if(i)return void this.mapTextToType.set(i,t);if(this.webKitPendingClipboardWritePromise)return this.webKitPendingClipboardWritePromise.complete(t);try{return await navigator.clipboard.writeText(t)}catch(t){console.error(t)}const e=ml(),s=e.activeElement,n=e.body.appendChild($l("textarea",{"aria-hidden":!0}));n.style.height="1px",n.style.width="1px",n.style.position="absolute",n.value=t,n.focus(),n.select(),e.execCommand("copy"),s instanceof HTMLElement&&s.focus(),e.body.removeChild(n)}async readText(t){if(t)return this.mapTextToType.get(t)||"";try{return await navigator.clipboard.readText()}catch(t){return console.error(t),""}}async readFindText(){return this.findText}async writeFindText(t){this.findText=t}async writeResources(t){this.resources=t}async readResources(){return this.resources}};bH=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([vH(0,qT),vH(1,jh)],bH);const yH=dr("clipboardService");const kH="data-keybinding-context";class xH{constructor(t,i){this._id=t,this._parent=i,this._value=Object.create(null),this._value._contextId=t}get value(){return{...this._value}}setValue(t,i){return this._value[t]!==i&&(this._value[t]=i,!0)}removeValue(t){return t in this._value&&(delete this._value[t],!0)}getValue(t){const i=this._value[t];return void 0===i&&this._parent?this._parent.getValue(t):i}}class CH extends xH{constructor(){super(-1,null)}setValue(t,i){return!1}removeValue(t){return!1}getValue(t){}}CH.INSTANCE=new CH;class SH extends xH{constructor(t,i,e){super(t,null),this._configurationService=i,this._values=GO.forConfigKeys(),this._listener=this._configurationService.onDidChangeConfiguration((t=>{if(7===t.source){const t=Array.from(this._values,(([t])=>t));this._values.clear(),e.fire(new AH(t))}else{const i=[];for(const e of t.affectedKeys){const t=`config.${e}`,s=this._values.findSuperstr(t);void 0!==s&&(i.push(...Ht.map(s,(([t])=>t))),this._values.deleteSuperstr(t)),this._values.has(t)&&(i.push(t),this._values.delete(t))}e.fire(new AH(i))}}))}dispose(){this._listener.dispose()}getValue(t){if(0!==t.indexOf(SH._keyPrefix))return super.getValue(t);if(this._values.has(t))return this._values.get(t);const i=t.substr(SH._keyPrefix.length),e=this._configurationService.getValue(i);let s;switch(typeof e){case"number":case"boolean":case"string":s=e;break;default:s=Array.isArray(e)?JSON.stringify(e):e}return this._values.set(t,s),s}setValue(t,i){return super.setValue(t,i)}removeValue(t){return super.removeValue(t)}}SH._keyPrefix="config.";class DH{constructor(t,i,e){this._service=t,this._key=i,this._defaultValue=e,this.reset()}set(t){this._service.setContext(this._key,t)}reset(){void 0===this._defaultValue?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}get(){return this._service.getContextKeyValue(this._key)}}class EH{constructor(t){this.key=t}affectsSome(t){return t.has(this.key)}allKeysContainedIn(t){return this.affectsSome(t)}}class AH{constructor(t){this.keys=t}affectsSome(t){for(const i of this.keys)if(t.has(i))return!0;return!1}allKeysContainedIn(t){return this.keys.every((i=>t.has(i)))}}class MH{constructor(t){this.events=t}affectsSome(t){for(const i of this.events)if(i.affectsSome(t))return!0;return!1}allKeysContainedIn(t){return this.events.every((i=>i.allKeysContainedIn(t)))}}class LH extends te{constructor(t){super(),this._onDidChangeContext=this._register(new pe({merge:t=>new MH(t)})),this.onDidChangeContext=this._onDidChangeContext.event,this._isDisposed=!1,this._myContextId=t}createKey(t,i){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new DH(this,t,i)}bufferChangeEvents(t){this._onDidChangeContext.pause();try{t()}finally{this._onDidChangeContext.resume()}}createScoped(t){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new TH(this,t)}contextMatchesRules(t){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");const i=this.getContextValuesContainer(this._myContextId);return!t||t.evaluate(i)}getContextKeyValue(t){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(t)}setContext(t,i){if(this._isDisposed)return;const e=this.getContextValuesContainer(this._myContextId);e&&e.setValue(t,i)&&this._onDidChangeContext.fire(new EH(t))}removeContext(t){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(t)&&this._onDidChangeContext.fire(new EH(t))}getContext(t){return this._isDisposed?CH.INSTANCE:this.getContextValuesContainer(function(t){for(;t;){if(t.hasAttribute(kH)){const i=t.getAttribute(kH);return i?parseInt(i,10):NaN}t=t.parentElement}return 0}(t))}dispose(){super.dispose(),this._isDisposed=!0}}let FH=class extends LH{constructor(t){super(0),this._contexts=new Map,this._lastContextId=0;const i=this._register(new SH(this._myContextId,t,this._onDidChangeContext));this._contexts.set(this._myContextId,i)}getContextValuesContainer(t){return this._isDisposed?CH.INSTANCE:this._contexts.get(t)||CH.INSTANCE}createChildContext(t=this._myContextId){if(this._isDisposed)throw new Error("ContextKeyService has been disposed");const i=++this._lastContextId;return this._contexts.set(i,new xH(i,this.getContextValuesContainer(t))),i}disposeContext(t){this._isDisposed||this._contexts.delete(t)}};FH=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(0,pd)],FH);class TH extends LH{constructor(t,i){if(super(t.createChildContext()),this._parentChangeListener=this._register(new ie),this._parent=t,this._updateParentChangeListener(),this._domNode=i,this._domNode.hasAttribute(kH)){let t="";this._domNode.classList&&(t=Array.from(this._domNode.classList.values()).join(", ")),console.error("Element already has context attribute"+(t?": "+t:""))}this._domNode.setAttribute(kH,String(this._myContextId))}_updateParentChangeListener(){this._parentChangeListener.value=this._parent.onDidChangeContext((t=>{const i=this._parent.getContextValuesContainer(this._myContextId);t.allKeysContainedIn(new Set(Object.keys(i.value)))||this._onDidChangeContext.fire(t)}))}dispose(){this._isDisposed||(this._parent.disposeContext(this._myContextId),this._domNode.removeAttribute(kH),super.dispose())}getContextValuesContainer(t){return this._isDisposed?CH.INSTANCE:this._parent.getContextValuesContainer(t)}createChildContext(t=this._myContextId){if(this._isDisposed)throw new Error("ScopedContextKeyService has been disposed");return this._parent.createChildContext(t)}disposeContext(t){this._isDisposed||this._parent.disposeContext(t)}}Dr.registerCommand("_setContext",(function(t,i,e){t.get(ah).createKey(String(i),function(t){return Y(t,(t=>"object"==typeof t&&1===t.$mid?ms.revive(t).toString():t instanceof ms?t.toString():void 0))}(e))})),Dr.registerCommand({id:"getContextKeyInfo",handler:()=>[...ch.all()].sort(((t,i)=>t.key.localeCompare(i.key))),metadata:{description:ot(0,"A command that returns information about context keys"),args:[]}}),Dr.registerCommand("_generateContextKeyInfo",(function(){const t=[],i=new Set;for(const e of ch.all())i.has(e.key)||(i.add(e.key),t.push(e));t.sort(((t,i)=>t.key.localeCompare(i.key))),console.log(JSON.stringify(t,void 0,2))}));class RH{constructor(t,i){this.key=t,this.data=i,this.incoming=new Map,this.outgoing=new Map}}class OH{constructor(t){this._hashFn=t,this._nodes=new Map}roots(){const t=[];for(const i of this._nodes.values())0===i.outgoing.size&&t.push(i);return t}insertEdge(t,i){const e=this.lookupOrInsertNode(t),s=this.lookupOrInsertNode(i);e.outgoing.set(s.key,s),s.incoming.set(e.key,e)}removeNode(t){const i=this._hashFn(t);this._nodes.delete(i);for(const t of this._nodes.values())t.outgoing.delete(i),t.incoming.delete(i)}lookupOrInsertNode(t){const i=this._hashFn(t);let e=this._nodes.get(i);return e||(e=new RH(i,t),this._nodes.set(i,e)),e}isEmpty(){return 0===this._nodes.size}toString(){const t=[];for(const[i,e]of this._nodes)t.push(`${i}\n\t(-> incoming)[${[...e.incoming.keys()].join(", ")}]\n\t(outgoing ->)[${[...e.outgoing.keys()].join(",")}]\n`);return t.join("\n")}findCycleSlow(){for(const[t,i]of this._nodes){const e=new Set([t]),s=this._findCycle(i,e);if(s)return s}}_findCycle(t,i){for(const[e,s]of t.outgoing){if(i.has(e))return[...i,e].join(" -> ");i.add(e);const t=this._findCycle(s,i);if(t)return t;i.delete(e)}}}class IH extends Error{constructor(t){var i;super("cyclic dependency between services"),this.message=null!==(i=t.findCycleSlow())&&void 0!==i?i:`UNABLE to detect cycle, dumping graph: \n${t.toString()}`}}class _H{constructor(t=new iT,i=!1,e,s=!1){var n;this._services=t,this._strict=i,this._parent=e,this._enableTracing=s,this._activeInstantiations=new Set,this._services.set(ur,this),this._globalGraph=s?null!==(n=null==e?void 0:e._globalGraph)&&void 0!==n?n:new OH((t=>t)):void 0}createChild(t){return new _H(t,this._strict,this,this._enableTracing)}invokeFunction(t,...i){const e=NH.traceInvocation(this._enableTracing,t);let s=!1;try{return t({get:t=>{if(s)throw Vi("service accessor is only valid during the invocation of its target method");const i=this._getOrCreateServiceInstance(t,e);if(!i)throw new Error(`[invokeFunction] unknown service '${t}'`);return i}},...i)}finally{s=!0,e.stop()}}createInstance(t,...i){let e,s;return t instanceof kd?(e=NH.traceCreation(this._enableTracing,t.ctor),s=this._createInstance(t.ctor,t.staticArguments.concat(i),e)):(e=NH.traceCreation(this._enableTracing,t),s=this._createInstance(t,i,e)),e.stop(),s}_createInstance(t,i=[],e){const s=lr.getServiceDependencies(t).sort(((t,i)=>t.index-i.index)),n=[];for(const i of s){const s=this._getOrCreateServiceInstance(i.id,e);s||this._throwIfStrict(`[createInstance] ${t.name} depends on UNKNOWN service ${i.id}.`,!1),n.push(s)}const o=s.length>0?s[0].index:i.length;if(i.length!==o){console.trace(`[createInstance] First service dependency of ${t.name} at position ${o+1} conflicts with ${i.length} static arguments`);const e=o-i.length;i=e>0?i.concat(new Array(e)):i.slice(0,o)}return Reflect.construct(t,i.concat(n))}_setServiceInstance(t,i){if(this._services.get(t)instanceof kd)this._services.set(t,i);else{if(!this._parent)throw new Error("illegalState - setting UNKNOWN service instance");this._parent._setServiceInstance(t,i)}}_getServiceInstanceOrDescriptor(t){const i=this._services.get(t);return!i&&this._parent?this._parent._getServiceInstanceOrDescriptor(t):i}_getOrCreateServiceInstance(t,i){this._globalGraph&&this._globalGraphImplicitDependency&&this._globalGraph.insertEdge(this._globalGraphImplicitDependency,String(t));const e=this._getServiceInstanceOrDescriptor(t);return e instanceof kd?this._safeCreateAndCacheServiceInstance(t,e,i.branch(t,!0)):(i.branch(t,!1),e)}_safeCreateAndCacheServiceInstance(t,i,e){if(this._activeInstantiations.has(t))throw new Error(`illegal state - RECURSIVELY instantiating service '${t}'`);this._activeInstantiations.add(t);try{return this._createAndCacheServiceInstance(t,i,e)}finally{this._activeInstantiations.delete(t)}}_createAndCacheServiceInstance(t,i,e){var s;const n=new OH((t=>t.id.toString()));let o=0;const r=[{id:t,desc:i,_trace:e}];for(;r.length;){const i=r.pop();if(n.lookupOrInsertNode(i),o++>1e3)throw new IH(n);for(const e of lr.getServiceDependencies(i.desc.ctor)){const o=this._getServiceInstanceOrDescriptor(e.id);if(o||this._throwIfStrict(`[createInstance] ${t} depends on ${e.id} which is NOT registered.`,!0),null===(s=this._globalGraph)||void 0===s||s.insertEdge(String(i.id),String(e.id)),o instanceof kd){const t={id:e.id,desc:o,_trace:i._trace.branch(e.id,!0)};n.insertEdge(i,t),r.push(t)}}}for(;;){const t=n.roots();if(0===t.length){if(!n.isEmpty())throw new IH(n);break}for(const{data:i}of t){if(this._getServiceInstanceOrDescriptor(i.id)instanceof kd){const t=this._createServiceInstanceWithOwner(i.id,i.desc.ctor,i.desc.staticArguments,i.desc.supportsDelayedInstantiation,i._trace);this._setServiceInstance(i.id,t)}n.removeNode(i)}}return this._getServiceInstanceOrDescriptor(t)}_createServiceInstanceWithOwner(t,i,e=[],s,n){if(this._services.get(t)instanceof kd)return this._createServiceInstance(t,i,e,s,n);if(this._parent)return this._parent._createServiceInstanceWithOwner(t,i,e,s,n);throw new Error(`illegalState - creating UNKNOWN service instance ${i.name}`)}_createServiceInstance(t,i,e=[],s,n){if(s){const s=new _H(void 0,this._strict,this,this._enableTracing);s._globalGraphImplicitDependency=String(t);const o=new Map,r=new vc((()=>{const t=s._createInstance(i,e,n);for(const[i,e]of o){const s=t[i];if("function"==typeof s)for(const i of e)s.apply(t,i)}return o.clear(),t}));return new Proxy(Object.create(null),{get(t,i){if(!r.isInitialized&&"string"==typeof i&&(i.startsWith("onDid")||i.startsWith("onWill"))){let t=o.get(i);return t||(t=new Ut,o.set(i,t)),(i,e,s)=>Yi(t.push([i,e,s]))}if(i in t)return t[i];const e=r.value;let s=e[i];return"function"!=typeof s||(s=s.bind(e),t[i]=s),s},set:(t,i,e)=>(r.value[i]=e,!0),getPrototypeOf:()=>i.prototype})}return this._createInstance(i,e,n)}_throwIfStrict(t,i){if(i&&console.warn(t),this._strict)throw new Error(t)}}class NH{static traceInvocation(t,i){return t?new NH(2,i.name||(new Error).stack.split("\n").slice(3,4).join("\n")):NH._None}static traceCreation(t,i){return t?new NH(1,i.name):NH._None}constructor(t,i){this.type=t,this.name=i,this._start=Date.now(),this._dep=[]}branch(t,i){const e=new NH(3,t.toString());return this._dep.push([t,i,e]),e}stop(){const t=Date.now()-this._start;NH._totals+=t;let i=!1;const e=[`${1===this.type?"CREATE":"CALL"} ${this.name}`,`${function t(e,s){const n=[],o=new Array(e+1).join("\t");for(const[r,h,c]of s._dep)if(h&&c){i=!0,n.push(`${o}CREATES -> ${r}`);const s=t(e+1,c);s&&n.push(s)}else n.push(`${o}uses -> ${r}`);return n.join("\n")}(1,this)}`,`DONE, took ${t.toFixed(2)}ms (grand total ${NH._totals.toFixed(2)}ms)`];(t>2||i)&&NH.all.add(e.join("\n"))}}NH.all=new Set,NH._None=new class extends NH{constructor(){super(0,null)}stop(){}branch(){return this}},NH._totals=0;const BH=new Set([ka.inMemory,ka.vscodeSourceControl,ka.walkThrough,ka.walkThroughSnippet]);class PH{constructor(){this._byResource=new zp,this._byOwner=new Map}set(t,i,e){let s=this._byResource.get(t);s||(s=new Map,this._byResource.set(t,s)),s.set(i,e);let n=this._byOwner.get(i);n||(n=new zp,this._byOwner.set(i,n)),n.set(t,e)}get(t,i){const e=this._byResource.get(t);return null==e?void 0:e.get(i)}delete(t,i){let e=!1,s=!1;const n=this._byResource.get(t);n&&(e=n.delete(i));const o=this._byOwner.get(i);if(o&&(s=o.delete(t)),e!==s)throw new Error("illegal state");return e&&s}values(t){var i,e,s,n;return"string"==typeof t?null!==(e=null===(i=this._byOwner.get(t))||void 0===i?void 0:i.values())&&void 0!==e?e:Ht.empty():ms.isUri(t)?null!==(n=null===(s=this._byResource.get(t))||void 0===s?void 0:s.values())&&void 0!==n?n:Ht.empty():Ht.map(Ht.concat(...this._byOwner.values()),(t=>t[1]))}}class $H{constructor(t){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=new zp,this._service=t,this._subscription=t.onMarkerChanged(this._update,this)}dispose(){this._subscription.dispose()}_update(t){for(const i of t){const t=this._data.get(i);t&&this._substract(t);const e=this._resourceStats(i);this._add(e),this._data.set(i,e)}}_resourceStats(t){const i={errors:0,warnings:0,infos:0,unknowns:0};if(BH.has(t.scheme))return i;for(const{severity:e}of this._service.read({resource:t}))e===bP.Error?i.errors+=1:e===bP.Warning?i.warnings+=1:e===bP.Info?i.infos+=1:i.unknowns+=1;return i}_substract(t){this.errors-=t.errors,this.warnings-=t.warnings,this.infos-=t.infos,this.unknowns-=t.unknowns}_add(t){this.errors+=t.errors,this.warnings+=t.warnings,this.infos+=t.infos,this.unknowns+=t.unknowns}}class WH{constructor(){this._onMarkerChanged=new ge({delay:0,merge:WH._merge}),this.onMarkerChanged=this._onMarkerChanged.event,this._data=new PH,this._stats=new $H(this)}dispose(){this._stats.dispose(),this._onMarkerChanged.dispose()}remove(t,i){for(const e of i||[])this.changeOne(t,e,[])}changeOne(t,i,e){if(v(e))this._data.delete(i,t)&&this._onMarkerChanged.fire([i]);else{const s=[];for(const n of e){const e=WH._toMarker(t,i,n);e&&s.push(e)}this._data.set(i,t,s),this._onMarkerChanged.fire([i])}}static _toMarker(t,i,e){let{code:s,severity:n,message:o,source:r,startLineNumber:h,startColumn:c,endLineNumber:a,endColumn:l,relatedInformation:u,tags:d}=e;if(o)return h=h>0?h:1,c=c>0?c:1,a=a>=h?a:h,l=l>0?l:c,{resource:i,owner:t,code:s,severity:n,message:o,source:r,startLineNumber:h,startColumn:c,endLineNumber:a,endColumn:l,relatedInformation:u,tags:d}}changeAll(t,i){const e=[],s=this._data.values(t);if(s)for(const i of s){const s=Ht.first(i);s&&(e.push(s.resource),this._data.delete(s.resource,t))}if(b(i)){const s=new zp;for(const{resource:n,marker:o}of i){const i=WH._toMarker(t,n,o);if(!i)continue;const r=s.get(n);r?r.push(i):(s.set(n,[i]),e.push(n))}for(const[i,e]of s)this._data.set(i,t,e)}e.length>0&&this._onMarkerChanged.fire(e)}read(t=Object.create(null)){let{owner:i,resource:e,severities:s,take:n}=t;if((!n||n<0)&&(n=-1),i&&e){const t=this._data.get(e,i);if(t){const i=[];for(const e of t)if(WH._accept(e,s)){const t=i.push(e);if(n>0&&t===n)break}return i}return[]}if(i||e){const t=this._data.values(null!=e?e:i),o=[];for(const i of t)for(const t of i)if(WH._accept(t,s)){const i=o.push(t);if(n>0&&i===n)return o}return o}{const t=[];for(const i of this._data.values())for(const e of i)if(WH._accept(e,s)){const i=t.push(e);if(n>0&&i===n)return t}return t}}static _accept(t,i){return void 0===i||(i&t.severity)===t.severity}static _merge(t){const i=new zp;for(const e of t)for(const t of e)i.set(t,!0);return Array.from(i.keys())}}class jH extends te{constructor(){super(...arguments),this._configurationModel=new mO}get configurationModel(){return this._configurationModel}reload(){return this.resetConfigurationModel(),this.configurationModel}getConfigurationDefaultOverrides(){return{}}resetConfigurationModel(){this._configurationModel=new mO;const t=Dh.as(Md).getConfigurationProperties();this.updateConfigurationModel(Object.keys(t),t)}updateConfigurationModel(t,i){const e=this.getConfigurationDefaultOverrides();for(const s of t){const t=e[s],n=i[s];void 0!==t?this._configurationModel.addValue(s,t):n?this._configurationModel.addValue(s,n.default):this._configurationModel.removeValue(s)}}}const zH=dr("audioCue");class HH{static register(t){return new HH(t.fileName)}constructor(t){this.fileName=t}}HH.error=HH.register({fileName:"error.mp3"}),HH.warning=HH.register({fileName:"warning.mp3"}),HH.foldedArea=HH.register({fileName:"foldedAreas.mp3"}),HH.break=HH.register({fileName:"break.mp3"}),HH.quickFixes=HH.register({fileName:"quickFixes.mp3"}),HH.taskCompleted=HH.register({fileName:"taskCompleted.mp3"}),HH.taskFailed=HH.register({fileName:"taskFailed.mp3"}),HH.terminalBell=HH.register({fileName:"terminalBell.mp3"}),HH.diffLineInserted=HH.register({fileName:"diffLineInserted.mp3"}),HH.diffLineDeleted=HH.register({fileName:"diffLineDeleted.mp3"}),HH.diffLineModified=HH.register({fileName:"diffLineModified.mp3"}),HH.chatRequestSent=HH.register({fileName:"chatRequestSent.mp3"}),HH.chatResponsePending=HH.register({fileName:"chatResponsePending.mp3"}),HH.chatResponseReceived1=HH.register({fileName:"chatResponseReceived1.mp3"}),HH.chatResponseReceived2=HH.register({fileName:"chatResponseReceived2.mp3"}),HH.chatResponseReceived3=HH.register({fileName:"chatResponseReceived3.mp3"}),HH.chatResponseReceived4=HH.register({fileName:"chatResponseReceived4.mp3"}),HH.clear=HH.register({fileName:"clear.mp3"}),HH.save=HH.register({fileName:"save.mp3"}),HH.format=HH.register({fileName:"format.mp3"});class VH{constructor(t){this.randomOneOf=t}}class UH{static register(t){const i=new VH("randomOneOf"in t.sound?t.sound.randomOneOf:[t.sound]),e=new UH(i,t.name,t.settingsKey);return UH._audioCues.add(e),e}constructor(t,i,e){this.sound=t,this.name=i,this.settingsKey=e}}UH._audioCues=new Set,UH.error=UH.register({name:ot(0,"Error on Line"),sound:HH.error,settingsKey:"audioCues.lineHasError"}),UH.warning=UH.register({name:ot(0,"Warning on Line"),sound:HH.warning,settingsKey:"audioCues.lineHasWarning"}),UH.foldedArea=UH.register({name:ot(0,"Folded Area on Line"),sound:HH.foldedArea,settingsKey:"audioCues.lineHasFoldedArea"}),UH.break=UH.register({name:ot(0,"Breakpoint on Line"),sound:HH.break,settingsKey:"audioCues.lineHasBreakpoint"}),UH.inlineSuggestion=UH.register({name:ot(0,"Inline Suggestion on Line"),sound:HH.quickFixes,settingsKey:"audioCues.lineHasInlineSuggestion"}),UH.terminalQuickFix=UH.register({name:ot(0,"Terminal Quick Fix"),sound:HH.quickFixes,settingsKey:"audioCues.terminalQuickFix"}),UH.onDebugBreak=UH.register({name:ot(0,"Debugger Stopped on Breakpoint"),sound:HH.break,settingsKey:"audioCues.onDebugBreak"}),UH.noInlayHints=UH.register({name:ot(0,"No Inlay Hints on Line"),sound:HH.error,settingsKey:"audioCues.noInlayHints"}),UH.taskCompleted=UH.register({name:ot(0,"Task Completed"),sound:HH.taskCompleted,settingsKey:"audioCues.taskCompleted"}),UH.taskFailed=UH.register({name:ot(0,"Task Failed"),sound:HH.taskFailed,settingsKey:"audioCues.taskFailed"}),UH.terminalCommandFailed=UH.register({name:ot(0,"Terminal Command Failed"),sound:HH.error,settingsKey:"audioCues.terminalCommandFailed"}),UH.terminalBell=UH.register({name:ot(0,"Terminal Bell"),sound:HH.terminalBell,settingsKey:"audioCues.terminalBell"}),UH.notebookCellCompleted=UH.register({name:ot(0,"Notebook Cell Completed"),sound:HH.taskCompleted,settingsKey:"audioCues.notebookCellCompleted"}),UH.notebookCellFailed=UH.register({name:ot(0,"Notebook Cell Failed"),sound:HH.taskFailed,settingsKey:"audioCues.notebookCellFailed"}),UH.diffLineInserted=UH.register({name:ot(0,"Diff Line Inserted"),sound:HH.diffLineInserted,settingsKey:"audioCues.diffLineInserted"}),UH.diffLineDeleted=UH.register({name:ot(0,"Diff Line Deleted"),sound:HH.diffLineDeleted,settingsKey:"audioCues.diffLineDeleted"}),UH.diffLineModified=UH.register({name:ot(0,"Diff Line Modified"),sound:HH.diffLineModified,settingsKey:"audioCues.diffLineModified"}),UH.chatRequestSent=UH.register({name:ot(0,"Chat Request Sent"),sound:HH.chatRequestSent,settingsKey:"audioCues.chatRequestSent"}),UH.chatResponseReceived=UH.register({name:ot(0,"Chat Response Received"),settingsKey:"audioCues.chatResponseReceived",sound:{randomOneOf:[HH.chatResponseReceived1,HH.chatResponseReceived2,HH.chatResponseReceived3,HH.chatResponseReceived4]}}),UH.chatResponsePending=UH.register({name:ot(0,"Chat Response Pending"),sound:HH.chatResponsePending,settingsKey:"audioCues.chatResponsePending"}),UH.clear=UH.register({name:ot(0,"Clear"),sound:HH.clear,settingsKey:"audioCues.clear"}),UH.save=UH.register({name:ot(0,"Save"),sound:HH.save,settingsKey:"audioCues.save"}),UH.format=UH.register({name:ot(0,"Format"),sound:HH.format,settingsKey:"audioCues.format"});class qH extends te{constructor(t,i=[]){super(),this.logger=new qh([t,...i]),this._register(t.onDidChangeLogLevel((t=>this.setLevel(t))))}get onDidChangeLogLevel(){return this.logger.onDidChangeLogLevel}setLevel(t){this.logger.setLevel(t)}getLevel(){return this.logger.getLevel()}trace(t,...i){this.logger.trace(t,...i)}debug(t,...i){this.logger.debug(t,...i)}info(t,...i){this.logger.info(t,...i)}warn(t,...i){this.logger.warn(t,...i)}error(t,...i){this.logger.error(t,...i)}}const KH=[];function GH(t){KH.push(t)}function ZH(){return KH.slice(0)}var QH=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},JH=function(t,i){return function(e,s){i(e,s,t)}};class YH{constructor(t){this.disposed=!1,this.model=t,this._onWillDispose=new de}get textEditorModel(){return this.model}dispose(){this.disposed=!0,this._onWillDispose.fire()}}let XH=class{constructor(t){this.modelService=t}createModelReference(t){const i=this.modelService.getModel(t);return i?Promise.resolve(new se(new YH(i))):Promise.reject(new Error("Model not found"))}};XH=QH([JH(0,pr)],XH);class tV{show(){return tV.NULL_PROGRESS_RUNNER}async showWhile(t,i){await t}}tV.NULL_PROGRESS_RUNNER={done:()=>{},total:()=>{},worked:()=>{}};class iV{info(t){return this.notify({severity:sT.Info,message:t})}warn(t){return this.notify({severity:sT.Warning,message:t})}error(t){return this.notify({severity:sT.Error,message:t})}notify(t){switch(t.severity){case sT.Error:console.error(t.message);break;case sT.Warning:console.warn(t.message);break;default:console.log(t.message)}return iV.NO_OP}prompt(t,i,e,s){return iV.NO_OP}status(t,i){return te.None}}iV.NO_OP=new class{};let eV=class{constructor(t){this._onWillExecuteCommand=new de,this._onDidExecuteCommand=new de,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this._instantiationService=t}executeCommand(t,...i){const e=Dr.getCommand(t);if(!e)return Promise.reject(new Error(`command '${t}' not found`));try{this._onWillExecuteCommand.fire({commandId:t,args:i});const s=this._instantiationService.invokeFunction.apply(this._instantiationService,[e.handler,...i]);return this._onDidExecuteCommand.fire({commandId:t,args:i}),Promise.resolve(s)}catch(t){return Promise.reject(t)}}};eV=QH([JH(0,ur)],eV);let sV=class extends AO{constructor(t,i,e,s,n,o){super(t,i,e,s,n),this._cachedResolver=null,this._dynamicKeybindings=[],this._domNodeListeners=[];const r=t=>{const i=new Xi;i.add(Va(t,Ll.KEY_DOWN,(t=>{const i=new Qh(t);this._dispatch(i,i.target)&&(i.preventDefault(),i.stopPropagation())}))),i.add(Va(t,Ll.KEY_UP,(t=>{const i=new Qh(t);this._singleModifierDispatch(i,i.target)&&i.preventDefault()}))),this._domNodeListeners.push(new nV(t,i))},h=t=>{for(let i=0;i{t.getOption(61)||r(t.getContainerDomNode())};this._register(o.onCodeEditorAdd(c)),this._register(o.onCodeEditorRemove((t=>{t.getOption(61)||h(t.getContainerDomNode())}))),o.listCodeEditors().forEach(c);const a=t=>{r(t.getContainerDomNode())};this._register(o.onDiffEditorAdd(a)),this._register(o.onDiffEditorRemove((t=>{h(t.getContainerDomNode())}))),o.listDiffEditors().forEach(a)}addDynamicKeybinding(t,i,e,s){return Ji(Dr.registerCommand(t,e),this.addDynamicKeybindings([{keybinding:i,command:t,when:s}]))}addDynamicKeybindings(t){const i=t.map((t=>{var i;return{keybinding:gh(t.keybinding,It),command:null!==(i=t.command)&&void 0!==i?i:null,commandArgs:t.commandArgs,when:t.when,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}}));return this._dynamicKeybindings=this._dynamicKeybindings.concat(i),this.updateResolver(),Yi((()=>{for(let t=0;tthis._log(t)))}return this._cachedResolver}_documentHasFocus(){return $n.document.hasFocus()}_toNormalizedKeybindingItems(t,i){const e=[];let s=0;for(const n of t){const t=n.when||void 0,o=n.keybinding;if(o){const r=PO.resolveKeybinding(o,It);for(const o of r)e[s++]=new LO(o,n.command,n.commandArgs,t,i,null,!1)}else e[s++]=new LO(void 0,n.command,n.commandArgs,t,i,null,!1)}return e}resolveKeyboardEvent(t){const i=new wh(t.ctrlKey,t.shiftKey,t.altKey,t.metaKey,t.keyCode);return new PO([i],It)}};sV=QH([JH(0,ah),JH(1,Sr),JH(2,Wh),JH(3,oT),JH(4,jh),JH(5,fr)],sV);class nV extends te{constructor(t,i){super(),this.domNode=t,this._register(i)}}function oV(t){return t&&"object"==typeof t&&(!t.overrideIdentifier||"string"==typeof t.overrideIdentifier)&&(!t.resource||t.resource instanceof ms)}class rV{constructor(){this._onDidChangeConfiguration=new de,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;const t=new jH;this._configuration=new bO(t.reload(),new mO,new mO,new mO),t.dispose()}getValue(t,i){const e="string"==typeof t?t:void 0,s=oV(t)?t:oV(i)?i:{};return this._configuration.getValue(e,s,void 0)}updateValues(t){const i={data:this._configuration.toData()},e=[];for(const i of t){const[t,s]=i;this.getValue(t)!==s&&(this._configuration.updateValue(t,s),e.push(t))}if(e.length>0){const t=new yO({keys:e,overrides:[]},i,this._configuration);t.source=8,t.sourceConfig=null,this._onDidChangeConfiguration.fire(t)}return Promise.resolve()}updateValue(t,i,e,s){return this.updateValues([[t,i]])}inspect(t,i={}){return this._configuration.inspect(t,i,void 0)}}let hV=class{constructor(t,i,e){this.configurationService=t,this.modelService=i,this.languageService=e,this._onDidChangeConfiguration=new de,this.configurationService.onDidChangeConfiguration((t=>{this._onDidChangeConfiguration.fire({affectedKeys:t.affectedKeys,affectsConfiguration:(i,e)=>t.affectsConfiguration(e)})}))}getValue(t,i,e){const s=As.isIPosition(i)?i:null,n=s?"string"==typeof e?e:void 0:"string"==typeof i?i:void 0,o=t?this.getLanguage(t,s):void 0;return void 0===n?this.configurationService.getValue({resource:t,overrideIdentifier:o}):this.configurationService.getValue(n,{resource:t,overrideIdentifier:o})}getLanguage(t,i){const e=this.modelService.getModel(t);return e?i?e.getLanguageIdAtPosition(i.lineNumber,i.column):e.getLanguageId():this.languageService.guessLanguageIdByFilepathOrFirstLine(t)}};hV=QH([JH(0,pd),JH(1,pr),JH(2,yd)],hV);let cV=class{constructor(t){this.configurationService=t}getEOL(t,i){const e=this.configurationService.getValue("files.eol",{overrideIdentifier:i,resource:t});return e&&"string"==typeof e&&"auto"!==e?e:St||Ct?"\n":"\r\n"}};cV=QH([JH(0,pd)],cV);class aV{constructor(){const t=ms.from({scheme:aV.SCHEME,authority:"model",path:"/"});this.workspace={id:XO,folders:[new YO({uri:t,name:"",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(t){return t&&t.scheme===aV.SCHEME?this.workspace.folders[0]:null}}function lV(t,i,e){if(!i)return;if(!(t instanceof rV))return;const s=[];Object.keys(i).forEach((t=>{(function(t){return fO()[`editor.${t}`]||!1})(t)&&s.push([`editor.${t}`,i[t]]),e&&function(t){return fO()[`diffEditor.${t}`]||!1}(t)&&s.push([`diffEditor.${t}`,i[t]])})),s.length>0&&t.updateValues(s)}aV.SCHEME="inmemory";let uV=class{constructor(t){this._modelService=t}hasPreviewHandler(){return!1}async apply(t,i){const e=Array.isArray(t)?t:oO.convert(t),s=new Map;for(const t of e){if(!(t instanceof rO))throw new Error("bad edit - only text edits are supported");const i=this._modelService.getModel(t.resource);if(!i)throw new Error("bad edit - model not found");if("number"==typeof t.versionId&&i.getVersionId()!==t.versionId)throw new Error("bad state - model changed in the meantime");let e=s.get(i);e||(e=[],s.set(i,e)),e.push(pO.replaceMove(Ms.lift(t.textEdit.range),t.textEdit.text))}let n=0,o=0;for(const[t,i]of s)t.pushStackElement(),t.pushEditOperations([],i,(()=>[])),t.pushStackElement(),o+=1,n+=i.length;return{ariaSummary:qn(hI.bulkEditServiceSummary,n,o),isApplied:n>0}}};uV=QH([JH(0,pr)],uV);let dV=class extends mI{constructor(t,i){super(t),this._codeEditorService=i}showContextView(t,i,e){if(!i){const t=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();t&&(i=t.getContainerDomNode())}return super.showContextView(t,i,e)}};dV=QH([JH(0,qT),JH(1,fr)],dV);let fV=class extends aP{constructor(t,i,e,s,n,o){super(t,i,e,s,n,o),this.configure({blockMouse:!1})}};var pV;let gV,mV,wV;fV=QH([JH(0,Wh),JH(1,oT),JH(2,aI),JH(3,oC),JH(4,Oh),JH(5,ah)],fV),Cd(pd,rV,0),Cd(yg,hV,0),Cd(kg,cV,0),Cd(ZO,aV,0),Cd($O,class{getUriLabel(t,i){return"file"===t.scheme?t.fsPath:t.path}getUriBasenameLabel(t){return bA(t)}},0),Cd(Wh,class{publicLog2(){}},0),Cd(JT,class{async confirm(t){return{confirmed:this.doConfirm(t.message,t.detail),checkboxChecked:!1}}doConfirm(t,i){let e=t;return i&&(e=e+"\n\n"+i),$n.confirm(e)}async prompt(t){var i,e;let s;if(this.doConfirm(t.message,t.detail)){const n=[...null!==(i=t.buttons)&&void 0!==i?i:[]];t.cancelButton&&"string"!=typeof t.cancelButton&&"boolean"!=typeof t.cancelButton&&n.push(t.cancelButton),s=await(null===(e=n[0])||void 0===e?void 0:e.run({checkboxChecked:!1}))}return{result:s}}async error(t,i){await this.prompt({type:sT.Error,message:t,detail:i})}},0),Cd(fR,class{constructor(){this.isExtensionDevelopment=!1,this.isBuilt=!1}},0),Cd(oT,iV,0),Cd(kP,WH,0),Cd(yd,class extends EI{constructor(){super()}},0),Cd(rH,class extends te{constructor(){super(),this._onColorThemeChange=this._register(new de),this.onDidColorThemeChange=this._onColorThemeChange.event,this._onProductIconThemeChange=this._register(new de),this.onDidProductIconThemeChange=this._onProductIconThemeChange.event,this._environment=Object.create(null),this._builtInProductIconTheme=new Zz,this._autoDetectHighContrast=!0,this._knownThemes=new Map,this._knownThemes.set(Qz,oH(Qz)),this._knownThemes.set(Jz,oH(Jz)),this._knownThemes.set(Yz,oH(Yz)),this._knownThemes.set(Xz,oH(Xz));const t=this._register(function(t){const i=new Xi,e=i.add(new de),s=Vz();return i.add(s.onDidChange((()=>e.fire()))),t&&i.add(t.onDidProductIconThemeChange((()=>e.fire()))),{dispose:()=>i.dispose(),onDidChange:e.event,getCSS(){const i=t?t.getProductIconTheme():new Zz,e={},n=t=>{const s=i.getIcon(t);if(!s)return;const n=s.font;return n?(e[n.id]=n.definition,`.codicon-${t.id}:before { content: '${s.fontCharacter}'; font-family: ${Ul(n.id)}; }`):`.codicon-${t.id}:before { content: '${s.fontCharacter}'; }`},o=[];for(const t of s.getIcons()){const i=n(t);i&&o.push(i)}for(const t in e){const i=e[t],s=i.weight?`font-weight: ${i.weight};`:"",n=i.style?`font-style: ${i.style};`:"",r=i.src.map((t=>`${Vl(t.location)} format('${t.format}')`)).join(", ");o.push(`@font-face { src: ${r}; font-family: ${Ul(t)};${s}${n} font-display: block; }`)}return o.join("\n")}}}(this));this._codiconCSS=t.getCSS(),this._themeCSS="",this._allCSS=`${this._codiconCSS}\n${this._themeCSS}`,this._globalStyleElement=null,this._styleElements=[],this._colorMapOverride=null,this.setTheme(Qz),this._onOSSchemeChanged(),this._register(t.onDidChange((()=>{this._codiconCSS=t.getCSS(),this._updateCSS()}))),zo("(forced-colors: active)",(()=>{this._onOSSchemeChanged()}))}registerEditorContainer(t){return dl(t)?this._registerShadowDomContainer(t):this._registerRegularEditorContainer()}_registerRegularEditorContainer(){return this._globalStyleElement||(this._globalStyleElement=vl(void 0,(t=>{t.className="monaco-colors",t.textContent=this._allCSS})),this._styleElements.push(this._globalStyleElement)),te.None}_registerShadowDomContainer(t){const i=vl(t,(t=>{t.className="monaco-colors",t.textContent=this._allCSS}));return this._styleElements.push(i),{dispose:()=>{for(let t=0;t{i.base===t&&i.notifyBaseUpdated()})),this._theme.themeName===t&&this.setTheme(t)}getColorTheme(){return this._theme}setColorMapOverride(t){this._colorMapOverride=t,this._updateThemeOrColorMap()}setTheme(t){let i;i=this._knownThemes.has(t)?this._knownThemes.get(t):this._knownThemes.get(Qz),this._updateActualTheme(i)}_updateActualTheme(t){t&&this._theme!==t&&(this._theme=t,this._updateThemeOrColorMap())}_onOSSchemeChanged(){if(this._autoDetectHighContrast){const t=$n.matchMedia("(forced-colors: active)").matches;if(t!==zy(this._theme.type)){let i;i=Hy(this._theme.type)?t?Yz:Jz:t?Xz:Qz,this._updateActualTheme(this._knownThemes.get(i))}}}setAutoDetectHighContrast(t){this._autoDetectHighContrast=t,this._onOSSchemeChanged()}_updateThemeOrColorMap(){const t=[],i={},e={addRule:e=>{i[e]||(t.push(e),i[e]=!0)}};iH.getThemingParticipants().forEach((t=>t(this._theme,e,this._environment)));const s=[];for(const t of tH.getColors()){const i=this._theme.getColor(t.id,!0);i&&s.push(`${cw(t.id)}: ${i.toString()};`)}e.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${s.join("\n")} }`);const n=this._colorMapOverride||this._theme.tokenTheme.getColorMap();e.addRule(function(t){const i=[];for(let e=1,s=t.length;et.textContent=this._allCSS))}getFileIconTheme(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}getProductIconTheme(){return this._builtInProductIconTheme}},0),Cd(jh,class extends qH{constructor(){super(new Uh)}},0),Cd(pr,TP,0),Cd(jm,CP,0),Cd(ah,FH,0),Cd(WO,class{withProgress(t,i,e){return i({report:()=>{}})}},0),Cd(zO,tV,0),Cd(AB,class extends LB{constructor(){super(),this.applicationStorage=this._register(new SB(new DB,{hint:xB.STORAGE_IN_MEMORY})),this.profileStorage=this._register(new SB(new DB,{hint:xB.STORAGE_IN_MEMORY})),this.workspaceStorage=this._register(new SB(new DB,{hint:xB.STORAGE_IN_MEMORY})),this._register(this.workspaceStorage.onDidChangeStorage((t=>this.emitDidChangeValue(1,t)))),this._register(this.profileStorage.onDidChangeStorage((t=>this.emitDidChangeValue(0,t)))),this._register(this.applicationStorage.onDidChangeStorage((t=>this.emitDidChangeValue(-1,t))))}getStorage(t){switch(t){case-1:return this.applicationStorage;case 0:return this.profileStorage;default:return this.workspaceStorage}}},0),Cd(vP,Dg,0),Cd(nO,uV,0),Cd(cI,class{constructor(){this._neverEmitter=new de,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}},0),Cd(gr,XH,0),Cd(Zm,cH,0),Cd(AW,class{get lastFocusedList(){return this._lastFocusedWidget}constructor(){this.disposables=new Xi,this.lists=[],this._lastFocusedWidget=void 0,this._hasCreatedStyleController=!1}setLastFocusedList(t){var i,e;t!==this._lastFocusedWidget&&(null===(i=this._lastFocusedWidget)||void 0===i||i.getHTMLElement().classList.remove("last-focused"),this._lastFocusedWidget=t,null===(e=this._lastFocusedWidget)||void 0===e||e.getHTMLElement().classList.add("last-focused"))}register(t,i){if(this._hasCreatedStyleController||(this._hasCreatedStyleController=!0,new iB(vl(),"").style(BB)),this.lists.some((i=>i.widget===t)))throw new Error("Cannot register the same widget multiple times");const e={widget:t,extraContextKeys:i};return this.lists.push(e),gl(t.getHTMLElement())&&this.setLastFocusedList(t),Ji(t.onDidFocus((()=>this.setLastFocusedList(t))),Yi((()=>this.lists.splice(this.lists.indexOf(e),1))),t.onDidDispose((()=>{this.lists=this.lists.filter((t=>t!==e)),this._lastFocusedWidget===t&&this.setLastFocusedList(void 0)})))}dispose(){this.disposables.dispose()}},0),Cd(Sr,eV,0),Cd(oC,sV,0),Cd(Oj,Ez,0),Cd(aI,dV,0),Cd(dP,wP,0),Cd(yH,bH,0),Cd(lI,fV,0),Cd(Oh,fH,0),Cd(zH,class{async playAudioCue(t,i){}},0),Cd(Jm,class{notify(t,i){}},0),function(t){const i=new iT;for(const[t,e]of Sd())i.set(t,e);const e=new _H(i,!0);i.set(ur,e),t.get=function(t){s||o({});const n=i.get(t);if(!n)throw new Error("Missing service "+t);return n instanceof kd?e.invokeFunction((i=>i.get(t))):n};let s=!1;const n=new de;function o(t){if(s)return e;s=!0;for(const[t,e]of Sd())i.get(t)||i.set(t,e);for(const e in t)if(t.hasOwnProperty(e)){const s=dr(e);i.get(s)instanceof kd&&i.set(s,t[e])}const o=ZH();for(const t of o)try{e.createInstance(t)}catch(t){Bi(t)}return n.fire(),e}t.initialize=o,t.withServices=function(t){if(s)return t();const i=new Xi,e=i.add(n.event((()=>{e.dispose(),i.add(t())})));return i}}(pV||(pV={}));class vV{get TChange(){return null}reportChanges(){this.get()}read(t){return t?t.readObservable(this):this.get()}map(t,i){const e=void 0===i?void 0:t,s=void 0===i?t:i;return mV({owner:e,debugName:()=>{const t=LV(s);if(void 0!==t)return t;const i=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(s.toString());return i?`${this.debugName}.${i[2]}`:e?void 0:`${this.debugName} (mapped)`}},(t=>s(this.read(t),t)))}recomputeInitiallyAndOnChange(t,i){return t.add(gV(this,i)),this}}class bV extends vV{constructor(){super(...arguments),this.observers=new Set}addObserver(t){const i=this.observers.size;this.observers.add(t),0===i&&this.onFirstObserverAdded()}removeObserver(t){this.observers.delete(t)&&0===this.observers.size&&this.onLastObserverRemoved()}onFirstObserverAdded(){}onLastObserverRemoved(){}}function yV(t,i){const e=new CV(t,i);try{t(e)}finally{e.finish()}}function kV(t){if(wV)t(wV);else{const i=new CV(t,void 0);wV=i;try{t(i)}finally{i.finish(),wV=void 0}}}function xV(t,i,e){t?i(t):yV(i,e)}class CV{constructor(t,i){this._fn=t,this._getDebugName=i,this.updatingObservers=[]}getDebugName(){return this._getDebugName?this._getDebugName():LV(this._fn)}updateObserver(t,i){this.updatingObservers.push({observer:t,observable:i}),t.beginUpdate(i)}finish(){const t=this.updatingObservers;for(let i=0;i{}),(()=>`Setting ${this.debugName}`)));try{this._setValue(t),void 0;for(const t of this.observers)i.updateObserver(t,this),t.handleChange(this,e)}finally{s&&s.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(t){this._value=t}}function RV(t,i){return"string"==typeof t?new OV(void 0,t,i):new OV(t,void 0,i)}class OV extends TV{_setValue(t){this._value!==t&&(this._value&&this._value.dispose(),this._value=t)}dispose(){var t;null===(t=this._value)||void 0===t||t.dispose()}}const IV=(t,i)=>t===i;function _V(t,i){return void 0!==i?new $V(t,void 0,i,void 0,void 0,void 0,IV):new $V(void 0,void 0,t,void 0,void 0,void 0,IV)}function NV(t,i){var e;return new $V(t.owner,t.debugName,i,void 0,void 0,void 0,null!==(e=t.equalityComparer)&&void 0!==e?e:IV)}function BV(t,i){let e,s;void 0===i?(e=t,s=void 0):(s=t,e=i);const n=new Xi;return new $V(s,(()=>{var t;return null!==(t=LV(e))&&void 0!==t?t:"(anonymous)"}),(t=>(n.clear(),e(t,n))),void 0,void 0,(()=>n.dispose()),IV)}function PV(t,i){let e,s;void 0===i?(e=t,s=void 0):(s=t,e=i);const n=new Xi;return new $V(s,(()=>{var t;return null!==(t=LV(e))&&void 0!==t?t:"(anonymous)"}),(t=>{n.clear();const i=e(t);return i&&n.add(i),i}),void 0,void 0,(()=>n.dispose()),IV)}mV=NV;class $V extends bV{get debugName(){var t;return null!==(t=EV(this,this._debugName,this._computeFn,this._owner,this))&&void 0!==t?t:"(anonymous)"}constructor(t,i,e,s,n,o,r){var h;super(),this._owner=t,this._debugName=i,this._computeFn=e,this.createChangeSummary=s,this._handleChange=n,this._handleLastObserverRemoved=o,this._equalityComparator=r,this.state=0,this.value=void 0,this.updateCount=0,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=void 0,this.changeSummary=null===(h=this.createChangeSummary)||void 0===h?void 0:h.call(this)}onLastObserverRemoved(){var t;this.state=0,this.value=void 0;for(const t of this.dependencies)t.removeObserver(this);this.dependencies.clear(),null===(t=this._handleLastObserverRemoved)||void 0===t||t.call(this)}get(){var t;if(0===this.observers.size){const i=this._computeFn(this,null===(t=this.createChangeSummary)||void 0===t?void 0:t.call(this));return this.onLastObserverRemoved(),i}do{if(1===this.state)for(const t of this.dependencies)if(t.reportChanges(),2===this.state)break;1===this.state&&(this.state=3),this._recomputeIfNeeded()}while(3!==this.state);return this.value}_recomputeIfNeeded(){var t;if(3===this.state)return;const i=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=i;const e=0!==this.state,s=this.value;this.state=3;const n=this.changeSummary;this.changeSummary=null===(t=this.createChangeSummary)||void 0===t?void 0:t.call(this);try{this.value=this._computeFn(this,n)}finally{for(const t of this.dependenciesToBeRemoved)t.removeObserver(this);this.dependenciesToBeRemoved.clear()}const o=e&&!this._equalityComparator(s,this.value);if(void 0,o)for(const t of this.observers)t.handleChange(this,void 0)}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(t){this.updateCount++;const i=1===this.updateCount;if(3===this.state&&(this.state=1,!i))for(const t of this.observers)t.handlePossibleChange(this);if(i)for(const t of this.observers)t.beginUpdate(this)}endUpdate(t){if(this.updateCount--,0===this.updateCount){const t=[...this.observers];for(const i of t)i.endUpdate(this)}if(this.updateCount<0)throw new Ki}handlePossibleChange(t){if(3===this.state&&this.dependencies.has(t)&&!this.dependenciesToBeRemoved.has(t)){this.state=1;for(const t of this.observers)t.handlePossibleChange(this)}}handleChange(t,i){if(this.dependencies.has(t)&&!this.dependenciesToBeRemoved.has(t)){const e=!this._handleChange||this._handleChange({changedObservable:t,change:i,didChange:i=>i===t},this.changeSummary),s=3===this.state;if(e&&(1===this.state||s)&&(this.state=2,s))for(const t of this.observers)t.handlePossibleChange(this)}}readObservable(t){t.addObserver(this);const i=t.get();return this.dependencies.add(t),this.dependenciesToBeRemoved.delete(t),i}addObserver(t){const i=!this.observers.has(t)&&this.updateCount>0;super.addObserver(t),i&&t.beginUpdate(this)}removeObserver(t){const i=this.observers.has(t)&&this.updateCount>0;super.removeObserver(t),i&&t.endUpdate(this)}}function WV(t){return new VV(void 0,t,void 0,void 0)}function jV(t,i){return new VV(t.debugName,i,void 0,void 0)}function zV(t,i){return new VV(t.debugName,i,t.createEmptyChangeSummary,t.handleChange)}function HV(t){const i=new Xi,e=jV({debugName:()=>LV(t)||"(anonymous)"},(e=>{i.clear(),t(e,i)}));return Yi((()=>{e.dispose(),i.dispose()}))}class VV{get debugName(){if("string"==typeof this._debugName)return this._debugName;if("function"==typeof this._debugName){const t=this._debugName();if(void 0!==t)return t}const t=LV(this._runFn);return void 0!==t?t:"(anonymous)"}constructor(t,i,e,s){var n;this._debugName=t,this._runFn=i,this.createChangeSummary=e,this._handleChange=s,this.state=2,this.updateCount=0,this.disposed=!1,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=null===(n=this.createChangeSummary)||void 0===n?void 0:n.call(this),this._runIfNeeded()}dispose(){this.disposed=!0;for(const t of this.dependencies)t.removeObserver(this);this.dependencies.clear()}_runIfNeeded(){var t,i;if(3===this.state)return;const e=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=e,this.state=3;const s=this.disposed;try{if(!s){void 0;const i=this.changeSummary;this.changeSummary=null===(t=this.createChangeSummary)||void 0===t?void 0:t.call(this),this._runFn(this,i)}}finally{s||null===(i=void 0)||void 0===i||i.handleAutorunFinished(this);for(const t of this.dependenciesToBeRemoved)t.removeObserver(this);this.dependenciesToBeRemoved.clear()}}toString(){return`Autorun<${this.debugName}>`}beginUpdate(){3===this.state&&(this.state=1),this.updateCount++}endUpdate(){if(1===this.updateCount)do{if(1===this.state){this.state=3;for(const t of this.dependencies)if(t.reportChanges(),2===this.state)break}this._runIfNeeded()}while(3!==this.state);this.updateCount--,Ch((()=>this.updateCount>=0))}handlePossibleChange(t){3===this.state&&this.dependencies.has(t)&&!this.dependenciesToBeRemoved.has(t)&&(this.state=1)}handleChange(t,i){this.dependencies.has(t)&&!this.dependenciesToBeRemoved.has(t)&&(!this._handleChange||this._handleChange({changedObservable:t,change:i,didChange:i=>i===t},this.changeSummary))&&(this.state=2)}readObservable(t){if(this.disposed)return t.get();t.addObserver(this);const i=t.get();return this.dependencies.add(t),this.dependenciesToBeRemoved.delete(t),i}}function UV(t){return new qV(t)}!function(t){t.Observer=VV}(WV||(WV={}));class qV extends vV{constructor(t){super(),this.value=t}get debugName(){return this.toString()}get(){return this.value}addObserver(t){}removeObserver(t){}toString(){return`Const: ${this.value}`}}function KV(t,i){return new GV(t,i)}class GV extends bV{constructor(t,i){super(),this.event=t,this._getValue=i,this.hasValue=!1,this.handleEvent=t=>{var i;const e=this._getValue(t),s=this.value,n=!this.hasValue||s!==e;let o=!1;n&&(this.value=e,this.hasValue&&(o=!0,xV(GV.globalTransaction,(t=>{for(const i of this.observers)t.updateObserver(i,this),i.handleChange(this,void 0)}),(()=>{const t=this.getDebugName();return"Event fired"+(t?`: ${t}`:"")}))),this.hasValue=!0),o||null===(i=void 0)||void 0===i||i.handleFromEventObservableTriggered(this,{oldValue:s,newValue:e,change:void 0,didChange:n,hadValue:this.hasValue})}}getDebugName(){return LV(this._getValue)}get debugName(){const t=this.getDebugName();return"From Event"+(t?`: ${t}`:"")}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0,this.hasValue=!1,this.value=void 0}get(){return this.subscription?(this.hasValue||this.handleEvent(void 0),this.value):this._getValue(void 0)}}function ZV(t,i){return new QV(t,i)}!function(t){t.Observer=GV,t.batchEventsGlobally=function(t,i){let e=!1;void 0===GV.globalTransaction&&(GV.globalTransaction=t,e=!0);try{i()}finally{e&&(GV.globalTransaction=void 0)}}}(KV||(KV={}));class QV extends bV{constructor(t,i){super(),this.debugName=t,this.event=i,this.handleEvent=()=>{yV((t=>{for(const i of this.observers)t.updateObserver(i,this),i.handleChange(this,void 0)}),(()=>this.debugName))}}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0}get(){}}function JV(t){return"string"==typeof t?new YV(t):new YV(void 0,t)}class YV extends bV{get debugName(){var t;return null!==(t=EV(this,this._debugName,void 0,this._owner,this))&&void 0!==t?t:"Observable Signal"}constructor(t,i){super(),this._debugName=t,this._owner=i}trigger(t,i){if(t)for(const e of this.observers)t.updateObserver(e,this),e.handleChange(this,i);else yV((t=>{this.trigger(t,i)}),(()=>`Trigger signal ${this.debugName}`))}get(){}}function XV(t,i){const e=new tU(!0,i);return t.addObserver(e),i?i(t.get()):t.reportChanges(),Yi((()=>{t.removeObserver(e)}))}!function(t){gV=t}(XV);class tU{constructor(t,i){this._forceRecompute=t,this._handleValue=i,this._counter=0}beginUpdate(t){this._counter++}endUpdate(t){this._counter--,0===this._counter&&this._forceRecompute&&(this._handleValue?this._handleValue(t.get()):t.reportChanges())}handlePossibleChange(t){}handleChange(t,i){}}class iU{static capture(t){if(0===t.getScrollTop()||t.hasPendingScrollAnimation())return new iU(t.getScrollTop(),t.getContentHeight(),null,0,null);let i=null,e=0;const s=t.getVisibleRanges();if(s.length>0){i=s[0].getStartPosition();const n=t.getTopForPosition(i.lineNumber,i.column);e=t.getScrollTop()-n}return new iU(t.getScrollTop(),t.getContentHeight(),i,e,t.getPosition())}constructor(t,i,e,s,n){this._initialScrollTop=t,this._initialContentHeight=i,this._visiblePosition=e,this._visiblePositionScrollDelta=s,this._cursorPosition=n}restore(t){if((this._initialContentHeight!==t.getContentHeight()||this._initialScrollTop!==t.getScrollTop())&&this._visiblePosition){const i=t.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);t.setScrollTop(i+this._visiblePositionScrollDelta)}}restoreRelativeVerticalPositionOfCursor(t){if(this._initialContentHeight===t.getContentHeight()&&this._initialScrollTop===t.getScrollTop())return;const i=t.getPosition();if(!this._cursorPosition||!i)return;const e=t.getTopForLineNumber(i.lineNumber)-t.getTopForLineNumber(this._cursorPosition.lineNumber);t.setScrollTop(t.getScrollTop()+e)}}function eU(){return We&&!!We.VSCODE_DEV}function sU(t){if(eU()){const i=function(){nU||(nU=new Set);const t=globalThis;return t.$hotReload_applyNewExports||(t.$hotReload_applyNewExports=t=>{for(const i of nU){const e=i(t);if(e)return e}}),nU}();return i.add(t),{dispose(){i.delete(t)}}}return{dispose(){}}}let nU;function oU(t,i){const e=new Xi,s=t.createDecorationsCollection();return e.add(jV({debugName:()=>`Apply decorations from ${i.debugName}`},(t=>{const e=i.read(t);s.set(e)}))),e.add({dispose:()=>{s.clear()}}),e}function rU(t,i){return t.appendChild(i),Yi((()=>{t.removeChild(i)}))}eU()&&sU((({oldExports:t,newSrc:i})=>{if(-1!==i.indexOf("/* hot-reload:patch-prototype-methods */"))return i=>{var e,s;for(const n in i){const o=i[n];if(console.log(`[hot-reload] Patching prototype methods of '${n}'`,{exportedItem:o}),"function"==typeof o&&o.prototype){const r=t[n];if(r){for(const t of Object.getOwnPropertyNames(o.prototype)){const i=Object.getOwnPropertyDescriptor(o.prototype,t),h=Object.getOwnPropertyDescriptor(r.prototype,t);(null===(e=null==i?void 0:i.value)||void 0===e?void 0:e.toString())!==(null===(s=null==h?void 0:h.value)||void 0===s?void 0:s.toString())&&console.log(`[hot-reload] Patching prototype method '${n}.${t}'`),Object.defineProperty(r.prototype,t,i)}i[n]=r}}}return!0}}));class hU extends te{get width(){return this._width}get height(){return this._height}constructor(t,i){super(),this.elementSizeObserver=this._register(new Hm(t,i)),this._width=FV(this,this.elementSizeObserver.getWidth()),this._height=FV(this,this.elementSizeObserver.getHeight()),this._register(this.elementSizeObserver.onDidChange((()=>yV((t=>{this._width.set(this.elementSizeObserver.getWidth(),t),this._height.set(this.elementSizeObserver.getHeight(),t)})))))}observe(t){this.elementSizeObserver.observe(t)}setAutomaticLayout(t){t?this.elementSizeObserver.startObserving():this.elementSizeObserver.stopObserving()}}function cU(t,i,e){let s=i.get(),n=s,o=s;const r=FV("animatedValue",s);let h,c=-1;function a(){const i=Date.now()-c;var e,l,u;o=Math.floor((l=n,u=s-n,(e=i)===300?l+u:u*(1-Math.pow(2,-10*e/300))+l)),i<300?h=t.requestAnimationFrame(a):o=s,r.set(o,void 0)}return e.add(zV({createEmptyChangeSummary:()=>({animate:!1}),handleChange:(t,e)=>(t.didChange(i)&&(e.animate=e.animate||t.change),!0)},((e,r)=>{void 0!==h&&(t.cancelAnimationFrame(h),h=void 0),n=o,s=i.read(e),c=Date.now()-(r.animate?0:300),a()}))),r}class aU extends te{constructor(t,i,e){super(),this._register(new uU(t,e)),this._register(dU(e,{height:i.actualHeight,top:i.actualTop}))}}class lU{get afterLineNumber(){return this._afterLineNumber.get()}constructor(t,i){this._afterLineNumber=t,this.heightInPx=i,this.domNode=document.createElement("div"),this._actualTop=FV(this,void 0),this._actualHeight=FV(this,void 0),this.actualTop=this._actualTop,this.actualHeight=this._actualHeight,this.showInHiddenAreas=!0,this.onChange=this._afterLineNumber,this.onDomNodeTop=t=>{this._actualTop.set(t,void 0)},this.onComputedHeight=t=>{this._actualHeight.set(t,void 0)}}}class uU{constructor(t,i){this._editor=t,this._domElement=i,this._overlayWidgetId="managedOverlayWidget-"+uU._counter++,this._overlayWidget={getId:()=>this._overlayWidgetId,getDomNode:()=>this._domElement,getPosition:()=>null},this._editor.addOverlayWidget(this._overlayWidget)}dispose(){this._editor.removeOverlayWidget(this._overlayWidget)}}function dU(t,i){return WV((e=>{for(let[s,n]of Object.entries(i))n&&"object"==typeof n&&"read"in n&&(n=n.read(e)),"number"==typeof n&&(n=`${n}px`),s=s.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase())),t.style[s]=n}))}function fU(t,i){return function(t,i){eU()&&ZV("reload",(i=>sU((({oldExports:e})=>{if([...Object.values(e)].some((i=>t.includes(i))))return()=>(i(void 0),!0)})))).read(i)}([t],i),t}function pU(t,i,e,s){const n=new Xi,o=[];return n.add(HV(((n,r)=>{const h=i.read(n),c=new Map,a=new Map;e&&e(!0),t.changeViewZones((t=>{for(const i of o)t.removeZone(i),null==s||s.delete(i);o.length=0;for(const i of h){const e=t.addZone(i);i.setZoneId&&i.setZoneId(e),o.push(e),null==s||s.add(e),c.set(i,e)}})),e&&e(!1),r.add(zV({createEmptyChangeSummary:()=>({zoneIds:[]}),handleChange(t,i){const e=a.get(t.changedObservable);return void 0!==e&&i.zoneIds.push(e),!0}},((i,s)=>{for(const t of h)t.onChange&&(a.set(t.onChange,c.get(t)),t.onChange.read(i));e&&e(!0),t.changeViewZones((t=>{for(const i of s.zoneIds)t.layoutZone(i)})),e&&e(!1)})))}))),n.add({dispose(){e&&e(!0),t.changeViewZones((t=>{for(const i of o)t.removeZone(i)})),null==s||s.clear(),e&&e(!1)}}),n}uU._counter=0;class gU extends Ce{dispose(){super.dispose(!0)}}function mU(t,i){const e=rp(i,(i=>i.original.startLineNumber<=t.lineNumber));if(!e)return Ms.fromPositions(t);if(e.original.endLineNumberExclusive<=t.lineNumber)return Ms.fromPositions(new As(t.lineNumber-e.original.endLineNumberExclusive+e.modified.endLineNumberExclusive,t.column));if(!e.innerChanges)return Ms.fromPositions(new As(e.modified.startLineNumber,1));const s=rp(e.innerChanges,(i=>i.originalRange.getStartPosition().isBeforeOrEqual(t)));if(!s)return Ms.fromPositions(new As(t.lineNumber-e.original.startLineNumber+e.modified.startLineNumber,t.column));if(s.originalRange.containsPosition(t))return s.modifiedRange;{const i=(n=s.originalRange.getEndPosition()).lineNumber===(o=t).lineNumber?new JD(0,o.column-n.column):new JD(o.lineNumber-n.lineNumber,o.column-1);return Ms.fromPositions(function(t,i){return 0===i.lineCount?new As(t.lineNumber,t.column+i.columnCount):new As(t.lineNumber+i.lineCount,i.columnCount+1)}(s.modifiedRange.getEndPosition(),i))}var n,o}function wU(t,i,e){const s=t.bindTo(i);return jV({debugName:()=>`Update ${t.key}`},(t=>{s.set(e(t))}))}var vU=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},bU=function(t,i){return function(e,s){i(e,s,t)}};const yU=Hz("diff-review-insert",Os.add,ot(0,"Icon for 'Insert' in accessible diff viewer.")),kU=Hz("diff-review-remove",Os.remove,ot(0,"Icon for 'Remove' in accessible diff viewer.")),xU=Hz("diff-review-close",Os.close,ot(0,"Icon for 'Close' in accessible diff viewer."));let CU=class extends te{constructor(t,i,e,s,n,o,r,h,c){super(),this._parentNode=t,this._visible=i,this._setVisible=e,this._canClose=s,this._width=n,this._height=o,this._diffs=r,this._editors=h,this._instantiationService=c,this._state=BV(this,((t,i)=>{const e=this._visible.read(t);if(this._parentNode.style.visibility=e?"visible":"hidden",!e)return null;const s=i.add(this._instantiationService.createInstance(SU,this._diffs,this._editors,this._setVisible,this._canClose));return{model:s,view:i.add(this._instantiationService.createInstance(RU,this._parentNode,s,this._width,this._height,this._editors))}})).recomputeInitiallyAndOnChange(this._store)}next(){yV((t=>{const i=this._visible.get();this._setVisible(!0,t),i&&this._state.get().model.nextGroup(t)}))}prev(){yV((t=>{this._setVisible(!0,t),this._state.get().model.previousGroup(t)}))}close(){yV((t=>{this._setVisible(!1,t)}))}};CU._ttPolicy=Mu("diffReview",{createHTML:t=>t}),CU=vU([bU(8,ur)],CU);let SU=class extends te{constructor(t,i,e,s,n){super(),this._diffs=t,this._editors=i,this._setVisible=e,this.canClose=s,this._audioCueService=n,this._groups=FV(this,[]),this._currentGroupIdx=FV(this,0),this._currentElementIdx=FV(this,0),this.groups=this._groups,this.currentGroup=this._currentGroupIdx.map(((t,i)=>this._groups.read(i)[t])),this.currentGroupIndex=this._currentGroupIdx,this.currentElement=this._currentElementIdx.map(((t,i)=>{var e;return null===(e=this.currentGroup.read(i))||void 0===e?void 0:e.lines[t]})),this._register(WV((t=>{const i=this._diffs.read(t);if(!i)return void this._groups.set([],void 0);const e=function(t,i,e){const s=[];for(const n of p(t,((t,i)=>i.modified.startLineNumber-t.modified.endLineNumberExclusive<2*DU))){const t=[];t.push(new MU);const o=new fp(Math.max(1,n[0].original.startLineNumber-DU),Math.min(n[n.length-1].original.endLineNumberExclusive+DU,i+1)),r=new fp(Math.max(1,n[0].modified.startLineNumber-DU),Math.min(n[n.length-1].modified.endLineNumberExclusive+DU,e+1));g(n,((i,e)=>{const s=new fp(i?i.original.endLineNumberExclusive:o.startLineNumber,e?e.original.startLineNumber:o.endLineNumberExclusive),n=new fp(i?i.modified.endLineNumberExclusive:r.startLineNumber,e?e.modified.startLineNumber:r.endLineNumberExclusive);s.forEach((i=>{t.push(new TU(i,n.startLineNumber+(i-s.startLineNumber)))})),e&&(e.original.forEach((i=>{t.push(new LU(e,i))})),e.modified.forEach((i=>{t.push(new FU(e,i))})))}));const h=n[0].modified.join(n[n.length-1].modified),c=n[0].original.join(n[n.length-1].original);s.push(new AU(new gp(h,c),t))}return s}(i,this._editors.original.getModel().getLineCount(),this._editors.modified.getModel().getLineCount());yV((t=>{const i=this._editors.modified.getPosition();if(i){const s=e.findIndex((t=>(null==i?void 0:i.lineNumber){const i=this.currentElement.read(t);(null==i?void 0:i.type)===EU.Deleted?this._audioCueService.playAudioCue(UH.diffLineDeleted,{source:"accessibleDiffViewer.currentElementChanged"}):(null==i?void 0:i.type)===EU.Added&&this._audioCueService.playAudioCue(UH.diffLineInserted,{source:"accessibleDiffViewer.currentElementChanged"})}))),this._register(WV((t=>{var i;const e=this.currentElement.read(t);if(e&&e.type!==EU.Header){const t=null!==(i=e.modifiedLineNumber)&&void 0!==i?i:e.diff.modified.startLineNumber;this._editors.modified.setSelection(Ms.fromPositions(new As(t,1)))}})))}_goToGroupDelta(t,i){const e=this.groups.get();!e||e.length<=1||xV(i,(i=>{this._currentGroupIdx.set(np.ofLength(e.length).clipCyclic(this._currentGroupIdx.get()+t),i),this._currentElementIdx.set(0,i)}))}nextGroup(t){this._goToGroupDelta(1,t)}previousGroup(t){this._goToGroupDelta(-1,t)}_goToLineDelta(t){const i=this.currentGroup.get();!i||i.lines.length<=1||yV((e=>{this._currentElementIdx.set(np.ofLength(i.lines.length).clip(this._currentElementIdx.get()+t),e)}))}goToNextLine(){this._goToLineDelta(1)}goToPreviousLine(){this._goToLineDelta(-1)}goToLine(t){const i=this.currentGroup.get();if(!i)return;const e=i.lines.indexOf(t);-1!==e&&yV((t=>{this._currentElementIdx.set(e,t)}))}revealCurrentElementInEditor(){this._setVisible(!1,void 0);const t=this.currentElement.get();t&&(t.type===EU.Deleted?(this._editors.original.setSelection(Ms.fromPositions(new As(t.originalLineNumber,1))),this._editors.original.revealLine(t.originalLineNumber),this._editors.original.focus()):(t.type!==EU.Header&&(this._editors.modified.setSelection(Ms.fromPositions(new As(t.modifiedLineNumber,1))),this._editors.modified.revealLine(t.modifiedLineNumber)),this._editors.modified.focus()))}close(){this._setVisible(!1,void 0),this._editors.modified.focus()}};SU=vU([bU(4,zH)],SU);const DU=3;var EU;!function(t){t[t.Header=0]="Header",t[t.Unchanged=1]="Unchanged",t[t.Deleted=2]="Deleted",t[t.Added=3]="Added"}(EU||(EU={}));class AU{constructor(t,i){this.range=t,this.lines=i}}class MU{constructor(){this.type=EU.Header}}class LU{constructor(t,i){this.diff=t,this.originalLineNumber=i,this.type=EU.Deleted,this.modifiedLineNumber=void 0}}class FU{constructor(t,i){this.diff=t,this.modifiedLineNumber=i,this.type=EU.Added,this.originalLineNumber=void 0}}class TU{constructor(t,i){this.originalLineNumber=t,this.modifiedLineNumber=i,this.type=EU.Unchanged}}let RU=class extends te{constructor(t,i,e,s,n,o){super(),this._element=t,this._model=i,this._width=e,this._height=s,this._editors=n,this._languageService=o,this.domNode=this._element,this.domNode.className="diff-review monaco-editor-background";const r=document.createElement("div");r.className="diff-review-actions",this._actionBar=this._register(new YB(r)),this._register(WV((t=>{this._actionBar.clear(),this._model.canClose.read(t)&&this._actionBar.push(new mr("diffreview.close",ot(0,"Close"),"close-diff-review "+Cr.asClassName(xU),!0,(async()=>i.close())),{label:!1,icon:!0})}))),this._content=document.createElement("div"),this._content.className="diff-review-content",this._content.setAttribute("role","code"),this._scrollbar=this._register(new Tk(this._content,{})),_l(this.domNode,this._scrollbar.getDomNode(),r),this._register(Yi((()=>{_l(this.domNode)}))),this._register(dU(this.domNode,{width:this._width,height:this._height})),this._register(dU(this._content,{width:this._width,height:this._height})),this._register(HV(((t,i)=>{this._model.currentGroup.read(t),this._render(i)}))),this._register(qa(this.domNode,"keydown",(t=>{(t.equals(18)||t.equals(2066)||t.equals(530))&&(t.preventDefault(),this._model.goToNextLine()),(t.equals(16)||t.equals(2064)||t.equals(528))&&(t.preventDefault(),this._model.goToPreviousLine()),(t.equals(9)||t.equals(2057)||t.equals(521)||t.equals(1033))&&(t.preventDefault(),this._model.close()),(t.equals(10)||t.equals(3))&&(t.preventDefault(),this._model.revealCurrentElementInEditor())})))}_render(t){const i=this._editors.original.getOptions(),e=this._editors.modified.getOptions(),s=document.createElement("div");s.className="diff-review-table",s.setAttribute("role","list"),s.setAttribute("aria-label",ot(0,"Accessible Diff Viewer. Use arrow up and down to navigate.")),ir(s,e.get(50)),_l(this._content,s);const n=this._editors.original.getModel(),o=this._editors.modified.getModel();if(!n||!o)return;const r=n.getOptions(),h=o.getOptions(),c=e.get(66),a=this._model.currentGroup.get();for(const l of(null==a?void 0:a.lines)||[]){if(!a)break;let u;if(l.type===EU.Header){const t=document.createElement("div");t.className="diff-review-row",t.setAttribute("role","listitem");const i=a.range,e=this._model.currentGroupIndex.get(),s=this._model.groups.get().length,n=t=>0===t?ot(0,"no lines changed"):1===t?ot(0,"1 line changed"):ot(0,"{0} lines changed",t),o=n(i.original.length),r=n(i.modified.length);t.setAttribute("aria-label",ot(0,"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}",e+1,s,i.original.startLineNumber,o,i.modified.startLineNumber,r));const h=document.createElement("div");h.className="diff-review-cell diff-review-summary",h.appendChild(document.createTextNode(`${e+1}/${s}: @@ -${i.original.startLineNumber},${i.original.length} +${i.modified.startLineNumber},${i.modified.length} @@`)),t.appendChild(h),u=t}else u=this._createRow(l,c,this._width.get(),i,n,r,e,o,h);s.appendChild(u);const d=_V((t=>this._model.currentElement.read(t)===l));t.add(WV((t=>{const i=d.read(t);u.tabIndex=i?0:-1,i&&u.focus()}))),t.add(Va(u,"focus",(()=>{this._model.goToLine(l)})))}this._scrollbar.scanDomNode()}_createRow(t,i,e,s,n,o,r,h,c){const a=s.get(143),l=a.glyphMarginWidth+a.lineNumbersWidth,u=r.get(143),d=10+u.glyphMarginWidth+u.lineNumbersWidth;let f="diff-review-row",p="",g=null;switch(t.type){case EU.Added:f="diff-review-row line-insert",p=" char-insert",g=yU;break;case EU.Deleted:f="diff-review-row line-delete",p=" char-delete",g=kU}const m=document.createElement("div");m.style.minWidth=e+"px",m.className=f,m.setAttribute("role","listitem"),m.ariaLevel="";const w=document.createElement("div");w.className="diff-review-cell",w.style.height=`${i}px`,m.appendChild(w);const v=document.createElement("span");v.style.width=l+"px",v.style.minWidth=l+"px",v.className="diff-review-line-number"+p,void 0!==t.originalLineNumber?v.appendChild(document.createTextNode(String(t.originalLineNumber))):v.innerText=" ",w.appendChild(v);const b=document.createElement("span");b.style.width=d+"px",b.style.minWidth=d+"px",b.style.paddingRight="10px",b.className="diff-review-line-number"+p,void 0!==t.modifiedLineNumber?b.appendChild(document.createTextNode(String(t.modifiedLineNumber))):b.innerText=" ",w.appendChild(b);const y=document.createElement("span");if(y.className="diff-review-spacer",g){const t=document.createElement("span");t.className=Cr.asClassName(g),t.innerText="  ",y.appendChild(t)}else y.innerText="  ";let k;if(w.appendChild(y),void 0!==t.modifiedLineNumber){let i=this._getLineHtml(h,r,c.tabSize,t.modifiedLineNumber,this._languageService.languageIdCodec);CU._ttPolicy&&(i=CU._ttPolicy.createHTML(i)),w.insertAdjacentHTML("beforeend",i),k=h.getLineContent(t.modifiedLineNumber)}else{let i=this._getLineHtml(n,s,o.tabSize,t.originalLineNumber,this._languageService.languageIdCodec);CU._ttPolicy&&(i=CU._ttPolicy.createHTML(i)),w.insertAdjacentHTML("beforeend",i),k=n.getLineContent(t.originalLineNumber)}0===k.length&&(k=ot(0,"blank"));let x="";switch(t.type){case EU.Unchanged:x=t.originalLineNumber===t.modifiedLineNumber?ot(0,"{0} unchanged line {1}",k,t.originalLineNumber):ot(0,"{0} original line {1} modified line {2}",k,t.originalLineNumber,t.modifiedLineNumber);break;case EU.Added:x=ot(0,"+ {0} modified line {1}",k,t.modifiedLineNumber);break;case EU.Deleted:x=ot(0,"- {0} original line {1}",k,t.originalLineNumber)}return m.setAttribute("aria-label",x),m}_getLineHtml(t,i,e,s,n){const o=t.getLineContent(s),r=i.get(50),h=Pg.createEmpty(o,n),c=nm.isBasicASCII(o,t.mightContainNonBasicASCII()),a=nm.containsRTL(o,c,t.mightContainRTL());return Yg(new qg(r.isMonospace&&!i.get(33),r.canUseHalfwidthRightwardsArrow,o,!1,c,a,0,h,[],e,0,r.spaceWidth,r.middotWidth,r.wsmiddotWidth,i.get(116),i.get(98),i.get(93),i.get(51)!==wi.OFF,null)).html}};RU=vU([bU(5,yd)],RU);const OU=Hz("diff-insert",Os.add,ot(0,"Line decoration for inserts in the diff editor.")),IU=Hz("diff-remove",Os.remove,ot(0,"Line decoration for removals in the diff editor.")),_U=AL.register({className:"line-insert",description:"line-insert",isWholeLine:!0,linesDecorationsClassName:"insert-sign "+Cr.asClassName(OU),marginClassName:"gutter-insert"}),NU=AL.register({className:"line-delete",description:"line-delete",isWholeLine:!0,linesDecorationsClassName:"delete-sign "+Cr.asClassName(IU),marginClassName:"gutter-delete"}),BU=AL.register({className:"line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),PU=AL.register({className:"line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),$U=AL.register({className:"char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),WU=AL.register({className:"char-insert",description:"char-insert",isWholeLine:!0}),jU=AL.register({className:"char-insert diff-range-empty",description:"char-insert diff-range-empty"}),zU=AL.register({className:"char-delete",description:"char-delete",shouldFillLineOnLineBreak:!0}),HU=AL.register({className:"char-delete",description:"char-delete",isWholeLine:!0}),VU=AL.register({className:"char-delete diff-range-empty",description:"char-delete diff-range-empty"});class UU extends te{constructor(t,i,e,s,n){super(),this._rootElement=t,this._diffModel=i,this._originalEditorLayoutInfo=e,this._modifiedEditorLayoutInfo=s,this._editors=n,this._originalScrollTop=KV(this._editors.original.onDidScrollChange,(()=>this._editors.original.getScrollTop())),this._modifiedScrollTop=KV(this._editors.modified.onDidScrollChange,(()=>this._editors.modified.getScrollTop())),this._viewZonesChanged=ZV("onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this.width=FV(this,0),this._modifiedViewZonesChangedSignal=ZV("modified.onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this._originalViewZonesChangedSignal=ZV("original.onDidChangeViewZones",this._editors.original.onDidChangeViewZones),this._state=BV(this,((t,i)=>{var e;this._element.replaceChildren();const s=this._diffModel.read(t),n=null===(e=null==s?void 0:s.diff.read(t))||void 0===e?void 0:e.movedTexts;if(!n||0===n.length)return void this.width.set(0,void 0);this._viewZonesChanged.read(t);const o=this._originalEditorLayoutInfo.read(t),r=this._modifiedEditorLayoutInfo.read(t);if(!o||!r)return void this.width.set(0,void 0);this._modifiedViewZonesChangedSignal.read(t),this._originalViewZonesChangedSignal.read(t);const h=n.map((i=>{function e(t,i){return(i.getTopForLineNumber(t.startLineNumber,!0)+i.getTopForLineNumber(t.endLineNumberExclusive,!0))/2}const s=e(i.lineRangeMapping.original,this._editors.original),n=this._originalScrollTop.read(t),o=e(i.lineRangeMapping.modified,this._editors.modified),r=s-n,h=o-this._modifiedScrollTop.read(t),c=Math.min(s,o),a=Math.max(s,o);return{range:new np(c,a),from:r,to:h,fromWithoutScroll:s,toWithoutScroll:o,move:i}}));h.sort(function(...t){return(i,e)=>{for(const s of t){const t=s(i,e);if(!F.isNeitherLessOrGreaterThan(t))return t}return F.neitherLessOrGreaterThan}}(T((t=>t.fromWithoutScroll>t.toWithoutScroll),O),T((t=>t.fromWithoutScroll>t.toWithoutScroll?t.fromWithoutScroll:-t.toWithoutScroll),R)));const c=qU.compute(h.map((t=>t.range))),a=o.verticalScrollbarWidth,l=10*(c.getTrackCount()-1)+20,u=a+l+(r.contentLeft-UU.movedCodeBlockPadding);let d=0;for(const t of h){const e=a+10+10*c.getTrack(d),n=15,o=15,h=u,l=r.glyphMarginWidth+r.lineNumbersWidth,f=18,p=document.createElementNS("http://www.w3.org/2000/svg","rect");p.classList.add("arrow-rectangle"),p.setAttribute("x",""+(h-l)),p.setAttribute("y",""+(t.to-f/2)),p.setAttribute("width",`${l}`),p.setAttribute("height",`${f}`),this._element.appendChild(p);const g=document.createElementNS("http://www.w3.org/2000/svg","g"),m=document.createElementNS("http://www.w3.org/2000/svg","path");m.setAttribute("d",`M 0 ${t.from} L ${e} ${t.from} L ${e} ${t.to} L ${h-o} ${t.to}`),m.setAttribute("fill","none"),g.appendChild(m);const w=document.createElementNS("http://www.w3.org/2000/svg","polygon");w.classList.add("arrow"),i.add(WV((i=>{m.classList.toggle("currentMove",t.move===s.activeMovedText.read(i)),w.classList.toggle("currentMove",t.move===s.activeMovedText.read(i))}))),w.setAttribute("points",`${h-o},${t.to-n/2} ${h},${t.to} ${h-o},${t.to+n/2}`),g.appendChild(w),this._element.appendChild(g),d++}this.width.set(l,void 0)})),this._element=document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("class","moved-blocks-lines"),this._rootElement.appendChild(this._element),this._register(Yi((()=>this._element.remove()))),this._register(WV((t=>{const i=this._originalEditorLayoutInfo.read(t),e=this._modifiedEditorLayoutInfo.read(t);i&&e&&(this._element.style.left=i.width-i.verticalScrollbarWidth+"px",this._element.style.height=`${i.height}px`,this._element.style.width=`${i.verticalScrollbarWidth+i.contentLeft-UU.movedCodeBlockPadding+this.width.read(t)}px`)}))),this._register(XV(this._state));const o=_V((t=>{const i=this._diffModel.read(t),e=null==i?void 0:i.diff.read(t);return e?e.movedTexts.map((t=>({move:t,original:new lU(UV(t.lineRangeMapping.original.startLineNumber-1),18),modified:new lU(UV(t.lineRangeMapping.modified.startLineNumber-1),18)}))):[]}));this._register(pU(this._editors.original,o.map((t=>t.map((t=>t.original)))))),this._register(pU(this._editors.modified,o.map((t=>t.map((t=>t.modified)))))),this._register(HV(((t,i)=>{const e=o.read(t);for(const t of e)i.add(new KU(this._editors.original,t.original,t.move,"original",this._diffModel.get())),i.add(new KU(this._editors.modified,t.modified,t.move,"modified",this._diffModel.get()))})));const r=KV(this._editors.original.onDidChangeCursorPosition,(()=>this._editors.original.getPosition())),h=KV(this._editors.modified.onDidChangeCursorPosition,(()=>this._editors.modified.getPosition())),c=ZV("original.onDidFocusEditorWidget",(t=>this._editors.original.onDidFocusEditorWidget((()=>setTimeout((()=>t(void 0)),0))))),a=ZV("modified.onDidFocusEditorWidget",(t=>this._editors.modified.onDidFocusEditorWidget((()=>setTimeout((()=>t(void 0)),0)))));let l="modified";this._register(zV({createEmptyChangeSummary:()=>{},handleChange:t=>(t.didChange(c)&&(l="original"),t.didChange(a)&&(l="modified"),!0)},(t=>{c.read(t),a.read(t);const i=this._diffModel.read(t);if(!i)return;const e=i.diff.read(t);let s;if(e&&"original"===l){const i=r.read(t);i&&(s=e.movedTexts.find((t=>t.lineRangeMapping.original.contains(i.lineNumber))))}if(e&&"modified"===l){const i=h.read(t);i&&(s=e.movedTexts.find((t=>t.lineRangeMapping.modified.contains(i.lineNumber))))}s!==i.movedTextToCompare.get()&&i.movedTextToCompare.set(void 0,void 0),i.setActiveMovedText(s)})))}}UU.movedCodeBlockPadding=4;class qU{static compute(t){const i=[],e=[];for(const s of t){let t=i.findIndex((t=>!t.intersectsStrict(s)));-1===t&&(i.length>=6?t=dp(i,T((t=>t.intersectWithRangeLength(s)),R)):(t=i.length,i.push(new op))),i[t].addRange(s),e.push(t)}return new qU(i.length,e)}constructor(t,i){this._trackCount=t,this.trackPerLineIdx=i}getTrack(t){return this.trackPerLineIdx[t]}getTrackCount(){return this._trackCount}}class KU extends aU{constructor(t,i,e,s,n){const o=Jl("div.diff-hidden-lines-widget");super(t,i,o.root),this._editor=t,this._move=e,this._kind=s,this._diffModel=n,this._nodes=Jl("div.diff-moved-code-block",{style:{marginRight:"4px"}},[Jl("div.text-content@textContent"),Jl("div.action-bar@actionBar")]),o.root.appendChild(this._nodes.root);const r=KV(this._editor.onDidLayoutChange,(()=>this._editor.getLayoutInfo()));let h;this._register(dU(this._nodes.root,{paddingRight:r.map((t=>t.verticalScrollbarWidth))})),h=e.changes.length>0?"original"===this._kind?ot(0,"Code moved with changes to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):ot(0,"Code moved with changes from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1):"original"===this._kind?ot(0,"Code moved to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):ot(0,"Code moved from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1);const c=this._register(new YB(this._nodes.actionBar,{highlightToggledItems:!0})),a=new mr("",h,"",!1);c.push(a,{icon:!1,label:!0});const l=new mr("","Compare",Cr.asClassName(Os.compareChanges),!0,(()=>{this._editor.focus(),this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get()===e?void 0:this._move,void 0)}));this._register(WV((t=>{const i=this._diffModel.movedTextToCompare.read(t)===e;l.checked=i}))),c.push(l,{icon:!1,label:!0})}}class GU extends te{constructor(t,i,e,s){super(),this._editors=t,this._diffModel=i,this._options=e,this._decorations=_V(this,(t=>{var i;const e=null===(i=this._diffModel.read(t))||void 0===i?void 0:i.diff.read(t);if(!e)return null;const s=this._diffModel.read(t).movedTextToCompare.read(t),n=this._options.renderIndicators.read(t),o=this._options.showEmptyDecorations.read(t),r=[],h=[];if(!s)for(const t of e.mappings)if(t.lineRangeMapping.original.isEmpty||r.push({range:t.lineRangeMapping.original.toInclusiveRange(),options:n?NU:PU}),t.lineRangeMapping.modified.isEmpty||h.push({range:t.lineRangeMapping.modified.toInclusiveRange(),options:n?_U:BU}),t.lineRangeMapping.modified.isEmpty||t.lineRangeMapping.original.isEmpty)t.lineRangeMapping.original.isEmpty||r.push({range:t.lineRangeMapping.original.toInclusiveRange(),options:HU}),t.lineRangeMapping.modified.isEmpty||h.push({range:t.lineRangeMapping.modified.toInclusiveRange(),options:WU});else for(const i of t.lineRangeMapping.innerChanges||[])t.lineRangeMapping.original.contains(i.originalRange.startLineNumber)&&r.push({range:i.originalRange,options:i.originalRange.isEmpty()&&o?VU:zU}),t.lineRangeMapping.modified.contains(i.modifiedRange.startLineNumber)&&h.push({range:i.modifiedRange,options:i.modifiedRange.isEmpty()&&o?jU:$U});if(s)for(const t of s.changes){const i=t.original.toInclusiveRange();i&&r.push({range:i,options:n?NU:PU});const e=t.modified.toInclusiveRange();e&&h.push({range:e,options:n?_U:BU});for(const i of t.innerChanges||[])r.push({range:i.originalRange,options:zU}),h.push({range:i.modifiedRange,options:$U})}const c=this._diffModel.read(t).activeMovedText.read(t);for(const t of e.movedTexts)r.push({range:t.lineRangeMapping.original.toInclusiveRange(),options:{description:"moved",blockClassName:"movedOriginal"+(t===c?" currentMove":""),blockPadding:[UU.movedCodeBlockPadding,0,UU.movedCodeBlockPadding,UU.movedCodeBlockPadding]}}),h.push({range:t.lineRangeMapping.modified.toInclusiveRange(),options:{description:"moved",blockClassName:"movedModified"+(t===c?" currentMove":""),blockPadding:[4,0,4,4]}});return{originalDecorations:r,modifiedDecorations:h}})),this._register(new ZU(t,i,e,s)),this._register(oU(this._editors.original,this._decorations.map((t=>(null==t?void 0:t.originalDecorations)||[])))),this._register(oU(this._editors.modified,this._decorations.map((t=>(null==t?void 0:t.modifiedDecorations)||[]))))}}class ZU extends te{constructor(t,i,e,s){super(),this._editors=t,this._diffModel=i,this._options=e,this._widget=s;const n=[],o=_V(this,(t=>{const i=this._diffModel.read(t),e=null==i?void 0:i.diff.read(t);if(!e)return n;const s=this._editors.modifiedSelections.read(t);if(s.every((t=>t.isEmpty())))return n;const o=new pp(s.map((t=>fp.fromRangeInclusive(t)))),r=e.mappings.filter((t=>t.lineRangeMapping.innerChanges&&o.intersects(t.lineRangeMapping.modified))).map((t=>({mapping:t,rangeMappings:t.lineRangeMapping.innerChanges.filter((t=>s.some((i=>Ms.areIntersecting(t.modifiedRange,i)))))})));return 0===r.length||r.every((t=>0===t.rangeMappings.length))?n:r}));this._register(HV(((t,i)=>{const e=this._diffModel.read(t),s=null==e?void 0:e.diff.read(t);if(!e||!s)return;if(this._diffModel.read(t).movedTextToCompare.read(t))return;if(!this._options.shouldRenderRevertArrows.read(t))return;const n=[],r=o.read(t),h=new Set(r.map((t=>t.mapping)));if(r.length>0){const i=this._editors.modifiedSelections.read(t),e=new QU(i[i.length-1].positionLineNumber,this._widget,r.flatMap((t=>t.rangeMappings)),!0);this._editors.modified.addGlyphMarginWidget(e),n.push(e)}for(const t of s.mappings)if(!h.has(t)&&!t.lineRangeMapping.modified.isEmpty&&t.lineRangeMapping.innerChanges){const i=new QU(t.lineRangeMapping.modified.startLineNumber,this._widget,t.lineRangeMapping.innerChanges,!1);this._editors.modified.addGlyphMarginWidget(i),n.push(i)}i.add(Yi((()=>{for(const t of n)this._editors.modified.removeGlyphMarginWidget(t)})))})))}}class QU{getId(){return this._id}constructor(t,i,e,s){this._lineNumber=t,this._widget=i,this._diffs=e,this._selection=s,this._id="revertButton"+QU.counter++,this._domNode=Jl("div.revertButton",{title:ot(0,this._selection?"Revert Selected Changes":"Revert Change")},[Q_(Os.arrowRight)]).root,this._domNode.onmousedown=t=>{2!==t.button&&(t.stopPropagation(),t.preventDefault())},this._domNode.onmouseup=t=>{t.stopPropagation(),t.preventDefault()},this._domNode.onclick=t=>{this._widget.revertRangeMappings(this._diffs),t.stopPropagation(),t.preventDefault()}}getDomNode(){return this._domNode}getPosition(){return{lane:Nf.Right,range:{startColumn:1,startLineNumber:this._lineNumber,endColumn:1,endLineNumber:this._lineNumber},zIndex:10001}}}QU.counter=0;class JU extends te{constructor(t,i,e,s){super(),this._options=t,this._domNode=i,this._dimensions=e,this._sashes=s,this._sashRatio=FV(this,void 0),this.sashLeft=_V(this,(t=>{var i;const e=null!==(i=this._sashRatio.read(t))&&void 0!==i?i:this._options.splitViewDefaultRatio.read(t);return this._computeSashLeft(e,t)})),this._sash=this._register(new VP(this._domNode,{getVerticalSashTop:()=>0,getVerticalSashLeft:()=>this.sashLeft.get(),getVerticalSashHeight:()=>this._dimensions.height.get()},{orientation:0})),this._startSashPosition=void 0,this._register(this._sash.onDidStart((()=>{this._startSashPosition=this.sashLeft.get()}))),this._register(this._sash.onDidChange((t=>{const i=this._dimensions.width.get(),e=this._computeSashLeft((this._startSashPosition+(t.currentX-t.startX))/i,void 0);this._sashRatio.set(e/i,void 0)}))),this._register(this._sash.onDidEnd((()=>this._sash.layout()))),this._register(this._sash.onDidReset((()=>this._sashRatio.set(void 0,void 0)))),this._register(WV((t=>{const i=this._sashes.read(t);i&&(this._sash.orthogonalEndSash=i.bottom)}))),this._register(WV((t=>{const i=this._options.enableSplitViewResizing.read(t);this._sash.state=i?3:0,this.sashLeft.read(t),this._dimensions.height.read(t),this._sash.layout()})))}_computeSashLeft(t,i){const e=this._dimensions.width.read(i),s=Math.floor(this._options.splitViewDefaultRatio.read(i)*e),n=this._options.enableSplitViewResizing.read(i)?Math.floor(t*e):s,o=100;return e<=200?s:ne-o?e-o:n}}class YU{remove(){var t;null===(t=this.parent)||void 0===t||t.children.delete(this.id)}static findId(t,i){let e;"string"==typeof t?e=`${i.id}/${t}`:(e=`${i.id}/${t.name}`,void 0!==i.children.get(e)&&(e=`${i.id}/${t.name}_${t.range.startLineNumber}_${t.range.startColumn}`));let s=e;for(let t=0;void 0!==i.children.get(s);t++)s=`${e}_${t}`;return s}static empty(t){return 0===t.children.size}}class XU extends YU{constructor(t,i,e){super(),this.id=t,this.parent=i,this.symbol=e,this.children=new Map}}class tq extends YU{constructor(t,i,e,s){super(),this.id=t,this.parent=i,this.label=e,this.order=s,this.children=new Map}}class iq extends YU{static create(t,i,e){const s=new Ce(e),n=new iq(i.uri),o=t.ordered(i),r=o.map(((t,e)=>{var o;const r=YU.findId(`provider_${e}`,n),h=new tq(r,n,null!==(o=t.displayName)&&void 0!==o?o:"Unknown Outline Provider",e);return Promise.resolve(t.provideDocumentSymbols(i,s.token)).then((t=>{for(const i of t||[])iq._makeOutlineElement(i,h);return h}),(t=>(Pi(t),h))).then((t=>{YU.empty(t)?t.remove():n._groups.set(r,t)}))})),h=t.onDidChange((()=>{l(t.ordered(i),o)||s.cancel()}));return Promise.all(r).then((()=>s.token.isCancellationRequested&&!e.isCancellationRequested?iq.create(t,i,e):n._compact())).finally((()=>{s.dispose(),h.dispose()}))}static _makeOutlineElement(t,i){const e=YU.findId(t,i),s=new XU(e,i,t);if(t.children)for(const i of t.children)iq._makeOutlineElement(i,s);i.children.set(s.id,s)}constructor(t){super(),this.uri=t,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let t=0;for(const[i,e]of this._groups)0===e.children.size?this._groups.delete(i):t+=1;if(1!==t)this.children=this._groups;else{const t=Ht.first(this._groups.values());for(const[,i]of t.children)i.parent=this,this.children.set(i.id,i)}return this}getTopLevelSymbols(){const t=[];for(const i of this.children.values())i instanceof XU?t.push(i.symbol):t.push(...Ht.map(i.children.values(),(t=>t.symbol)));return t.sort(((t,i)=>Ms.compareRangesUsingStarts(t.range,i.range)))}asListOfDocumentSymbols(){const t=this.getTopLevelSymbols(),i=[];return iq._flattenDocumentSymbols(i,t,""),i.sort(((t,i)=>As.compare(Ms.getStartPosition(t.range),Ms.getStartPosition(i.range))||As.compare(Ms.getEndPosition(i.range),Ms.getEndPosition(t.range))))}static _flattenDocumentSymbols(t,i,e){for(const s of i)t.push({kind:s.kind,tags:s.tags,name:s.name,detail:s.detail,containerName:s.containerName||e,range:s.range,selectionRange:s.selectionRange,children:void 0}),s.children&&iq._flattenDocumentSymbols(t,s.children,s.name)}}var eq=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},sq=function(t,i){return function(e,s){i(e,s,t)}};let nq=class extends te{get isUpdatingHiddenAreas(){return this._isUpdatingHiddenAreas}constructor(t,i,e,s){super(),this._editors=t,this._diffModel=i,this._options=e,this._languageFeaturesService=s,this._modifiedOutlineSource=PV(this,(t=>{const i=this._editors.modifiedModel.read(t);return i?new rq(this._languageFeaturesService,i):void 0})),this._isUpdatingHiddenAreas=!1,this._register(this._editors.original.onDidChangeCursorPosition((t=>{if(3===t.reason){const t=this._diffModel.get();yV((i=>{for(const e of this._editors.original.getSelections()||[])null==t||t.ensureOriginalLineIsVisible(e.getStartPosition().lineNumber,i),null==t||t.ensureOriginalLineIsVisible(e.getEndPosition().lineNumber,i)}))}}))),this._register(this._editors.modified.onDidChangeCursorPosition((t=>{if(3===t.reason){const t=this._diffModel.get();yV((i=>{for(const e of this._editors.modified.getSelections()||[])null==t||t.ensureModifiedLineIsVisible(e.getStartPosition().lineNumber,i),null==t||t.ensureModifiedLineIsVisible(e.getEndPosition().lineNumber,i)}))}})));const n=this._diffModel.map(((t,i)=>{var e,s;return 0===(null===(e=null==t?void 0:t.diff.read(i))||void 0===e?void 0:e.mappings.length)?[]:null!==(s=null==t?void 0:t.unchangedRegions.read(i))&&void 0!==s?s:[]}));this.viewZones=BV(this,((t,i)=>{const e=this._modifiedOutlineSource.read(t);if(!e)return{origViewZones:[],modViewZones:[]};const s=[],o=[],r=this._options.renderSideBySide.read(t),h=n.read(t);for(const n of h)if(!n.shouldHideControls(t)){{const t=_V(this,(t=>n.getHiddenOriginalRange(t).startLineNumber-1)),o=new lU(t,24);s.push(o),i.add(new oq(this._editors.original,o,n,n.originalUnchangedRange,!r,e,(t=>this._diffModel.get().ensureModifiedLineIsVisible(t,void 0)),this._options))}{const t=_V(this,(t=>n.getHiddenModifiedRange(t).startLineNumber-1)),s=new lU(t,24);o.push(s),i.add(new oq(this._editors.modified,s,n,n.modifiedUnchangedRange,!1,e,(t=>this._diffModel.get().ensureModifiedLineIsVisible(t,void 0)),this._options))}}return{origViewZones:s,modViewZones:o}}));const o={description:"unchanged lines",className:"diff-unchanged-lines",isWholeLine:!0},r={description:"Fold Unchanged",glyphMarginHoverMessage:new N_(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown(ot(0,"Fold Unchanged Region")),glyphMarginClassName:"fold-unchanged "+Cr.asClassName(Os.fold),zIndex:10001};this._register(oU(this._editors.original,_V(this,(t=>{const i=n.read(t),e=i.map((t=>({range:t.originalUnchangedRange.toInclusiveRange(),options:o})));for(const s of i)s.shouldHideControls(t)&&e.push({range:Ms.fromPositions(new As(s.originalLineNumber,1)),options:r});return e})))),this._register(oU(this._editors.modified,_V(this,(t=>{const i=n.read(t),e=i.map((t=>({range:t.modifiedUnchangedRange.toInclusiveRange(),options:o})));for(const s of i)s.shouldHideControls(t)&&e.push({range:fp.ofLength(s.modifiedLineNumber,1).toInclusiveRange(),options:r});return e})))),this._register(WV((t=>{const i=n.read(t);this._isUpdatingHiddenAreas=!0;try{this._editors.original.setHiddenAreas(i.map((i=>i.getHiddenOriginalRange(t).toInclusiveRange())).filter(V)),this._editors.modified.setHiddenAreas(i.map((i=>i.getHiddenModifiedRange(t).toInclusiveRange())).filter(V))}finally{this._isUpdatingHiddenAreas=!1}}))),this._register(this._editors.modified.onMouseUp((t=>{var i;if(!t.event.rightButton&&t.target.position&&(null===(i=t.target.element)||void 0===i?void 0:i.className.includes("fold-unchanged"))){const i=t.target.position.lineNumber,e=this._diffModel.get();if(!e)return;const s=e.unchangedRegions.get().find((t=>t.modifiedUnchangedRange.includes(i)));if(!s)return;s.collapseAll(void 0),t.event.stopPropagation(),t.event.preventDefault()}}))),this._register(this._editors.original.onMouseUp((t=>{var i;if(!t.event.rightButton&&t.target.position&&(null===(i=t.target.element)||void 0===i?void 0:i.className.includes("fold-unchanged"))){const i=t.target.position.lineNumber,e=this._diffModel.get();if(!e)return;const s=e.unchangedRegions.get().find((t=>t.originalUnchangedRange.includes(i)));if(!s)return;s.collapseAll(void 0),t.event.stopPropagation(),t.event.preventDefault()}})))}};nq=eq([sq(3,xg)],nq);class oq extends aU{constructor(t,i,e,s,n,o,r,h){const c=Jl("div.diff-hidden-lines-widget");super(t,i,c.root),this._editor=t,this._unchangedRegion=e,this._unchangedRegionRange=s,this._hide=n,this._modifiedOutlineSource=o,this._revealModifiedHiddenLine=r,this._options=h,this._nodes=Jl("div.diff-hidden-lines",[Jl("div.top@top",{title:ot(0,"Click or drag to show more above")}),Jl("div.center@content",{style:{display:"flex"}},[Jl("div@first",{style:{display:"flex",justifyContent:"center",alignItems:"center",flexShrink:"0"}},[$l("a",{title:ot(0,"Show Unchanged Region"),role:"button",onclick:()=>{this._unchangedRegion.showAll(void 0)}},...Z_("$(unfold)"))]),Jl("div@others",{style:{display:"flex",justifyContent:"center",alignItems:"center"}})]),Jl("div.bottom@bottom",{title:ot(0,"Click or drag to show more below"),role:"button"})]),c.root.appendChild(this._nodes.root);const a=KV(this._editor.onDidLayoutChange,(()=>this._editor.getLayoutInfo()));this._hide?_l(this._nodes.first):this._register(dU(this._nodes.first,{width:a.map((t=>t.contentLeft))})),this._register(WV((t=>{const i=this._unchangedRegion.visibleLineCountTop.read(t)+this._unchangedRegion.visibleLineCountBottom.read(t)===this._unchangedRegion.lineCount;this._nodes.bottom.classList.toggle("canMoveTop",!i),this._nodes.bottom.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(t)>0),this._nodes.top.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(t)>0),this._nodes.top.classList.toggle("canMoveBottom",!i);const e=this._unchangedRegion.isDragged.read(t),s=this._editor.getDomNode();s&&(s.classList.toggle("draggingUnchangedRegion",!!e),"top"===e?(s.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(t)>0),s.classList.toggle("canMoveBottom",!i)):"bottom"===e?(s.classList.toggle("canMoveTop",!i),s.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(t)>0)):(s.classList.toggle("canMoveTop",!1),s.classList.toggle("canMoveBottom",!1)))})));const l=this._editor;this._register(Va(this._nodes.top,"mousedown",(t=>{if(0!==t.button)return;this._nodes.top.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),t.preventDefault();const i=t.clientY;let e=!1;const s=this._unchangedRegion.visibleLineCountTop.get();this._unchangedRegion.isDragged.set("top",void 0);const n=Na(this._nodes.top),o=Va(n,"mousemove",(t=>{const n=t.clientY-i;e=e||Math.abs(n)>2;const o=Math.round(n/l.getOption(66)),r=Math.max(0,Math.min(s+o,this._unchangedRegion.getMaxVisibleLineCountTop()));this._unchangedRegion.visibleLineCountTop.set(r,void 0)})),r=Va(n,"mouseup",(()=>{e||this._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0),this._nodes.top.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),this._unchangedRegion.isDragged.set(void 0,void 0),o.dispose(),r.dispose()}))}))),this._register(Va(this._nodes.bottom,"mousedown",(t=>{if(0!==t.button)return;this._nodes.bottom.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),t.preventDefault();const i=t.clientY;let e=!1;const s=this._unchangedRegion.visibleLineCountBottom.get();this._unchangedRegion.isDragged.set("bottom",void 0);const n=Na(this._nodes.bottom),o=Va(n,"mousemove",(t=>{const n=t.clientY-i;e=e||Math.abs(n)>2;const o=Math.round(n/l.getOption(66)),r=Math.max(0,Math.min(s-o,this._unchangedRegion.getMaxVisibleLineCountBottom())),h=l.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.visibleLineCountBottom.set(r,void 0);const c=l.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);l.setScrollTop(l.getScrollTop()+(c-h))})),r=Va(n,"mouseup",(()=>{if(this._unchangedRegion.isDragged.set(void 0,void 0),!e){const t=l.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0);const i=l.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);l.setScrollTop(l.getScrollTop()+(i-t))}this._nodes.bottom.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),o.dispose(),r.dispose()}))}))),this._register(WV((t=>{const i=[];if(!this._hide){const s=ot(0,"{0} hidden lines",e.getHiddenModifiedRange(t).length),n=$l("span",{title:ot(0,"Double click to unfold")},s);n.addEventListener("dblclick",(t=>{0===t.button&&(t.preventDefault(),this._unchangedRegion.showAll(void 0))})),i.push(n);const o=this._unchangedRegion.getHiddenModifiedRange(t),r=this._modifiedOutlineSource.getBreadcrumbItems(o,t);if(r.length>0){i.push($l("span",void 0,"  |  "));for(let t=0;t{this._revealModifiedHiddenLine(e.startLineNumber)}}}}_l(this._nodes.others,...i)})))}}let rq=class extends te{constructor(t,i){super(),this._languageFeaturesService=t,this._textModel=i,this._currentModel=FV(this,void 0);const e=ZV("documentSymbolProvider.onDidChange",this._languageFeaturesService.documentSymbolProvider.onDidChange),s=ZV("_textModel.onDidChangeContent",he.debounce((t=>this._textModel.onDidChangeContent(t)),(()=>{}),100));this._register(HV((async(t,i)=>{e.read(t),s.read(t);const n=i.add(new gU),o=await iq.create(this._languageFeaturesService.documentSymbolProvider,this._textModel,n.token);i.isDisposed||this._currentModel.set(o,void 0)})))}getBreadcrumbItems(t,i){const e=this._currentModel.read(i);if(!e)return[];const s=e.asListOfDocumentSymbols().filter((i=>t.contains(i.range.startLineNumber)&&!t.contains(i.range.endLineNumber)));return s.sort(I(T((t=>t.range.endLineNumber-t.range.startLineNumber),R))),s.map((t=>({name:t.name,kind:t.kind,startLineNumber:t.range.startLineNumber})))}};rq=eq([sq(0,xg)],rq);var hq,cq=function(t,i){return function(e,s){i(e,s,t)}};let aq=hq=class{constructor(t,i,e){this.editorWorkerService=i,this.telemetryService=e,this.onDidChangeEventEmitter=new de,this.onDidChange=this.onDidChangeEventEmitter.event,this.diffAlgorithm="advanced",this.diffAlgorithmOnDidChangeSubscription=void 0,this.setOptions(t)}dispose(){var t;null===(t=this.diffAlgorithmOnDidChangeSubscription)||void 0===t||t.dispose()}async computeDiff(t,i,e,s){var n,o;if("string"!=typeof this.diffAlgorithm)return this.diffAlgorithm.computeDiff(t,i,e,s);if(1===t.getLineCount()&&1===t.getLineMaxColumn(1))return 1===i.getLineCount()&&1===i.getLineMaxColumn(1)?{changes:[],identical:!0,quitEarly:!1,moves:[]}:{changes:[new mp(new fp(1,2),new fp(1,i.getLineCount()+1),[new wp(t.getFullModelRange(),i.getFullModelRange())])],identical:!1,quitEarly:!1,moves:[]};const r=JSON.stringify([t.uri.toString(),i.uri.toString()]),h=JSON.stringify([t.id,i.id,t.getAlternativeVersionId(),i.getAlternativeVersionId(),JSON.stringify(e)]),c=hq.diffCache.get(r);if(c&&c.context===h)return c.result;const a=re.create(),l=await this.editorWorkerService.computeDiff(t.uri,i.uri,e,this.diffAlgorithm),u=a.elapsed();if(this.telemetryService.publicLog2("diffEditor.computeDiff",{timeMs:u,timedOut:null===(n=null==l?void 0:l.quitEarly)||void 0===n||n,detectedMoves:e.computeMoves?null!==(o=null==l?void 0:l.moves.length)&&void 0!==o?o:0:-1}),s.isCancellationRequested)return{changes:[],identical:!1,quitEarly:!0,moves:[]};if(!l)throw new Error("no diff result available");return hq.diffCache.size>10&&hq.diffCache.delete(hq.diffCache.keys().next().value),hq.diffCache.set(r,{result:l,context:h}),l}setOptions(t){var i;let e=!1;t.diffAlgorithm&&this.diffAlgorithm!==t.diffAlgorithm&&(null===(i=this.diffAlgorithmOnDidChangeSubscription)||void 0===i||i.dispose(),this.diffAlgorithmOnDidChangeSubscription=void 0,this.diffAlgorithm=t.diffAlgorithm,"string"!=typeof t.diffAlgorithm&&(this.diffAlgorithmOnDidChangeSubscription=t.diffAlgorithm.onDidChange((()=>this.onDidChangeEventEmitter.fire()))),e=!0),e&&this.onDidChangeEventEmitter.fire()}};aq.diffCache=new Map,aq=hq=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([cq(1,vP),cq(2,Wh)],aq);const lq=dr("diffProviderFactoryService");let uq=class{constructor(t){this.instantiationService=t}createDiffProvider(t){return this.instantiationService.createInstance(aq,t)}};uq=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(0,ur)],uq),Cd(lq,uq,1);let dq=class extends te{setActiveMovedText(t){this._activeMovedText.set(t,void 0)}constructor(t,i,e){super(),this.model=t,this._options=i,this._diffProviderFactoryService=e,this._isDiffUpToDate=FV(this,!1),this.isDiffUpToDate=this._isDiffUpToDate,this._diff=FV(this,void 0),this.diff=this._diff,this._unchangedRegions=FV(this,{regions:[],originalDecorationIds:[],modifiedDecorationIds:[]}),this.unchangedRegions=_V(this,(t=>this._options.hideUnchangedRegions.read(t)?this._unchangedRegions.read(t).regions:(yV((t=>{for(const i of this._unchangedRegions.get().regions)i.collapseAll(t)})),[]))),this.movedTextToCompare=FV(this,void 0),this._activeMovedText=FV(this,void 0),this._hoveredMovedText=FV(this,void 0),this.activeMovedText=_V(this,(t=>{var i,e;return null!==(e=null!==(i=this.movedTextToCompare.read(t))&&void 0!==i?i:this._hoveredMovedText.read(t))&&void 0!==e?e:this._activeMovedText.read(t)})),this._cancellationTokenSource=new Ce,this._diffProvider=_V(this,(t=>{const i=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:this._options.diffAlgorithm.read(t)});return{diffProvider:i,onChangeSignal:ZV("onDidChange",i.onDidChange)}})),this._register(Yi((()=>this._cancellationTokenSource.cancel())));const s=JV("contentChangedSignal"),n=this._register(new pc((()=>s.trigger(void 0)),200)),o=(i,e,s)=>{const n=gq.fromDiffs(i.changes,t.original.getLineCount(),t.modified.getLineCount(),this._options.hideUnchangedRegionsMinimumLineCount.read(s),this._options.hideUnchangedRegionsContextLineCount.read(s)),o=this._unchangedRegions.get(),r=o.originalDecorationIds.map((i=>t.original.getDecorationRange(i))).map((t=>t?fp.fromRange(t):void 0)),h=o.modifiedDecorationIds.map((i=>t.modified.getDecorationRange(i))).map((t=>t?fp.fromRange(t):void 0)),c=t.original.deltaDecorations(o.originalDecorationIds,n.map((t=>({range:t.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})))),a=t.modified.deltaDecorations(o.modifiedDecorationIds,n.map((t=>({range:t.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))));for(const t of n)for(let i=0;i{this._diff.get()&&dE.fromModelContentChanges(t.changes),this._isDiffUpToDate.set(!1,void 0),n.schedule()}))),this._register(t.original.onDidChangeContent((t=>{this._diff.get()&&dE.fromModelContentChanges(t.changes),this._isDiffUpToDate.set(!1,void 0),n.schedule()}))),this._register(HV((async(i,e)=>{this._options.hideUnchangedRegionsMinimumLineCount.read(i),this._options.hideUnchangedRegionsContextLineCount.read(i),n.cancel(),s.read(i);const r=this._diffProvider.read(i);r.onChangeSignal.read(i),fU(ng,i),fU(Xp,i),this._isDiffUpToDate.set(!1,void 0);let h=[];e.add(t.original.onDidChangeContent((t=>{const i=dE.fromModelContentChanges(t.changes);h=UE(h,i)})));let c=[];e.add(t.modified.onDidChangeContent((t=>{const i=dE.fromModelContentChanges(t.changes);c=UE(c,i)})));let a=await r.diffProvider.computeDiff(t.original,t.modified,{ignoreTrimWhitespace:this._options.ignoreTrimWhitespace.read(i),maxComputationTimeMs:this._options.maxComputationTimeMs.read(i),computeMoves:this._options.showMoves.read(i)},this._cancellationTokenSource.token);var l,u,d;this._cancellationTokenSource.token.isCancellationRequested||(u=t.original,d=t.modified,a={changes:(l=a).changes.map((t=>new mp(t.original,t.modified,t.innerChanges?t.innerChanges.map((t=>function(t,i,e){let s=t.originalRange,n=t.modifiedRange;return(1!==s.endColumn||1!==n.endColumn)&&s.endColumn===i.getLineMaxColumn(s.endLineNumber)&&n.endColumn===e.getLineMaxColumn(n.endLineNumber)&&s.endLineNumber{o(a,t),this._lastDiff=a;const i=fq.fromDiffResult(a);this._diff.set(i,t),this._isDiffUpToDate.set(!0,t);const e=this.movedTextToCompare.get();this.movedTextToCompare.set(e?this._lastDiff.moves.find((t=>t.lineRangeMapping.modified.intersect(e.lineRangeMapping.modified))):void 0,t)})))})))}ensureModifiedLineIsVisible(t,i){var e;if(0===(null===(e=this.diff.get())||void 0===e?void 0:e.mappings.length))return;const s=this._unchangedRegions.get().regions;for(const e of s)if(e.getHiddenModifiedRange(void 0).contains(t))return void e.showModifiedLine(t,i)}ensureOriginalLineIsVisible(t,i){var e;if(0===(null===(e=this.diff.get())||void 0===e?void 0:e.mappings.length))return;const s=this._unchangedRegions.get().regions;for(const e of s)if(e.getHiddenOriginalRange(void 0).contains(t))return void e.showOriginalLine(t,i)}async waitForDiff(){var t;await(t=this.isDiffUpToDate,t=>t,new Promise((i=>{let e=!1,s=!1;const n=t.map((t=>({isFinished:t,state:t}))),o=WV((t=>{const{isFinished:r,state:h}=n.read(t);r&&(e?o.dispose():s=!0,i(h))}));e=!0,s&&o.dispose()})))}serializeState(){return{collapsedRegions:this._unchangedRegions.get().regions.map((t=>({range:t.getHiddenModifiedRange(void 0).serialize()})))}}restoreSerializedState(t){const i=t.collapsedRegions.map((t=>fp.deserialize(t.range))),e=this._unchangedRegions.get();yV((t=>{for(const s of e.regions)for(const e of i)if(s.modifiedUnchangedRange.intersect(e)){s.setHiddenModifiedRange(e,t);break}}))}};dq=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(2,lq)],dq);class fq{static fromDiffResult(t){return new fq(t.changes.map((t=>new pq(t))),t.moves||[],t.identical,t.quitEarly)}constructor(t,i,e,s){this.mappings=t,this.movedTexts=i,this.identical=e,this.quitEarly=s}}class pq{constructor(t){this.lineRangeMapping=t}}class gq{static fromDiffs(t,i,e,s,n){const o=mp.inverse(t,i,e),r=[];for(const t of o){let o=t.original.startLineNumber,h=t.modified.startLineNumber,c=t.original.length;const a=1===o&&1===h,l=o+c===i+1&&h+c===e+1;(a||l)&&c>=n+s?(a&&!l&&(c-=n),l&&!a&&(o+=n,h+=n,c-=n),r.push(new gq(o,h,c,0,0))):c>=2*n+s&&(o+=n,h+=n,c-=2*n,r.push(new gq(o,h,c,0,0)))}return r}get originalUnchangedRange(){return fp.ofLength(this.originalLineNumber,this.lineCount)}get modifiedUnchangedRange(){return fp.ofLength(this.modifiedLineNumber,this.lineCount)}constructor(t,i,e,s,n){this.originalLineNumber=t,this.modifiedLineNumber=i,this.lineCount=e,this._visibleLineCountTop=FV(this,0),this.visibleLineCountTop=this._visibleLineCountTop,this._visibleLineCountBottom=FV(this,0),this.visibleLineCountBottom=this._visibleLineCountBottom,this._shouldHideControls=_V(this,(t=>this.visibleLineCountTop.read(t)+this.visibleLineCountBottom.read(t)===this.lineCount&&!this.isDragged.read(t))),this.isDragged=FV(this,void 0),this._visibleLineCountTop.set(s,void 0),this._visibleLineCountBottom.set(n,void 0)}shouldHideControls(t){return this._shouldHideControls.read(t)}getHiddenOriginalRange(t){return fp.ofLength(this.originalLineNumber+this._visibleLineCountTop.read(t),this.lineCount-this._visibleLineCountTop.read(t)-this._visibleLineCountBottom.read(t))}getHiddenModifiedRange(t){return fp.ofLength(this.modifiedLineNumber+this._visibleLineCountTop.read(t),this.lineCount-this._visibleLineCountTop.read(t)-this._visibleLineCountBottom.read(t))}setHiddenModifiedRange(t,i){this.setState(t.startLineNumber-this.modifiedLineNumber,this.modifiedLineNumber+this.lineCount-t.endLineNumberExclusive,i)}getMaxVisibleLineCountTop(){return this.lineCount-this._visibleLineCountBottom.get()}getMaxVisibleLineCountBottom(){return this.lineCount-this._visibleLineCountTop.get()}showMoreAbove(t=10,i){const e=this.getMaxVisibleLineCountTop();this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+t,e),i)}showMoreBelow(t=10,i){const e=this.lineCount-this._visibleLineCountTop.get();this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+t,e),i)}showAll(t){this._visibleLineCountBottom.set(this.lineCount-this._visibleLineCountTop.get(),t)}showModifiedLine(t,i){const e=t+1-(this.modifiedLineNumber+this._visibleLineCountTop.get()),s=this.modifiedLineNumber-this._visibleLineCountBottom.get()+this.lineCount-t;e{var n;this._contextMenuService.showContextMenu({domForShadowRoot:u&&null!==(n=e.getDomNode())&&void 0!==n?n:void 0,getAnchor:()=>({x:t,y:i}),getActions:()=>{const t=[],i=s.modified.isEmpty;return t.push(new mr("diff.clipboard.copyDeletedContent",ot(0,i?s.original.length>1?"Copy deleted lines":"Copy deleted line":s.original.length>1?"Copy changed lines":"Copy changed line"),void 0,!0,(async()=>{const t=this._originalTextModel.getValueInRange(s.original.toExclusiveRange());await this._clipboardService.writeText(t)}))),s.original.length>1&&t.push(new mr("diff.clipboard.copyDeletedLineContent",ot(0,i?"Copy deleted line ({0})":"Copy changed line ({0})",s.original.startLineNumber+l),void 0,!0,(async()=>{let t=this._originalTextModel.getLineContent(s.original.startLineNumber+l);""===t&&(t=0===this._originalTextModel.getEndOfLineSequence()?"\n":"\r\n"),await this._clipboardService.writeText(t)}))),e.getOption(90)||t.push(new mr("diff.inline.revertChange",ot(0,"Revert this change"),void 0,!0,(async()=>{this._editor.revert(this._diff)}))),t},autoSelectFirstItem:!0})};this._register(qa(this._diffActions,"mousedown",(t=>{if(!t.leftButton)return;const{top:i,height:e}=nl(this._diffActions),s=Math.floor(a/3);t.preventDefault(),d(t.posx,i+e+s)}))),this._register(e.onMouseMove((t=>{8!==t.target.type&&5!==t.target.type||t.target.detail.viewZoneId!==this._getViewZoneId()?this.visibility=!1:(l=this._updateLightBulbPosition(this._marginDomNode,t.event.browserEvent.y,a),this.visibility=!0)}))),this._register(e.onMouseDown((t=>{!t.event.leftButton||8!==t.target.type&&5!==t.target.type||t.target.detail.viewZoneId===this._getViewZoneId()&&(t.event.preventDefault(),l=this._updateLightBulbPosition(this._marginDomNode,t.event.browserEvent.y,a),d(t.event.posx,t.event.posy+a))})))}_updateLightBulbPosition(t,i,e){const{top:s}=nl(t),n=Math.floor((i-s)/e);if(this._diffActions.style.top=n*e+"px",this._viewLineCounts){let t=0;for(let i=0;it});function vq(t,i,e,s){ir(s,i.fontInfo);const n=e.length>0,o=new td(1e4);let r=0,h=0;const c=[];for(let s=0;s');const c=i.getLineContent(),a=nm.isBasicASCII(c,n),l=nm.containsRTL(c,a,o),u=Qg(new qg(r.fontInfo.isMonospace&&!r.disableMonospaceOptimizations,r.fontInfo.canUseHalfwidthRightwardsArrow,c,!1,a,l,0,i,e,r.tabSize,0,r.fontInfo.spaceWidth,r.fontInfo.middotWidth,r.fontInfo.wsmiddotWidth,r.stopRenderingLineAfter,r.renderWhitespace,r.renderControlCharacters,r.fontLigatures!==wi.OFF,null),h);return h.appendString(""),u.characterMapping.getHorizontalOffset(u.characterMapping.length)}var xq=function(t,i){return function(e,s){i(e,s,t)}};let Cq=class extends te{constructor(t,i,e,s,n,o,r,h,c,a){super(),this._targetWindow=t,this._editors=i,this._diffModel=e,this._options=s,this._diffEditorWidget=n,this._canIgnoreViewZoneUpdateEvent=o,this._origViewZonesToIgnore=r,this._modViewZonesToIgnore=h,this._clipboardService=c,this._contextMenuService=a,this._originalTopPadding=FV(this,0),this._originalScrollOffset=FV(this,0),this._originalScrollOffsetAnimated=cU(this._targetWindow,this._originalScrollOffset,this._store),this._modifiedTopPadding=FV(this,0),this._modifiedScrollOffset=FV(this,0),this._modifiedScrollOffsetAnimated=cU(this._targetWindow,this._modifiedScrollOffset,this._store);const l=FV("invalidateAlignmentsState",0),u=this._register(new pc((()=>{l.set(l.get()+1,void 0)}),0));this._register(this._editors.original.onDidChangeViewZones((()=>{this._canIgnoreViewZoneUpdateEvent()||u.schedule()}))),this._register(this._editors.modified.onDidChangeViewZones((()=>{this._canIgnoreViewZoneUpdateEvent()||u.schedule()}))),this._register(this._editors.original.onDidChangeConfiguration((t=>{(t.hasChanged(144)||t.hasChanged(66))&&u.schedule()}))),this._register(this._editors.modified.onDidChangeConfiguration((t=>{(t.hasChanged(144)||t.hasChanged(66))&&u.schedule()})));const d=this._diffModel.map((t=>t?KV(t.model.original.onDidChangeTokens,(()=>2===t.model.original.tokenization.backgroundTokenizationState)):void 0)).map(((t,i)=>null==t?void 0:t.read(i))),f=_V((t=>{const i=this._diffModel.read(t),e=null==i?void 0:i.diff.read(t);if(!i||!e)return null;l.read(t);const s=this._options.renderSideBySide.read(t);return Sq(this._editors.original,this._editors.modified,e.mappings,this._origViewZonesToIgnore,this._modViewZonesToIgnore,s)})),p=_V((t=>{var i;const e=null===(i=this._diffModel.read(t))||void 0===i?void 0:i.movedTextToCompare.read(t);if(!e)return null;l.read(t);const s=e.changes.map((t=>new pq(t)));return Sq(this._editors.original,this._editors.modified,s,this._origViewZonesToIgnore,this._modViewZonesToIgnore,!0)}));function g(){const t=document.createElement("div");return t.className="diagonal-fill",t}const m=this._register(new Xi);this.viewZones=BV(this,((t,i)=>{var e,s,o,r,h,c,a,l;m.clear();const u=f.read(t)||[],w=[],v=[],b=this._modifiedTopPadding.read(t);b>0&&v.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:b,showInHiddenAreas:!0,suppressMouseDown:!0});const y=this._originalTopPadding.read(t);y>0&&w.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:y,showInHiddenAreas:!0,suppressMouseDown:!0});const k=this._options.renderSideBySide.read(t),x=k||null===(e=this._editors.modified._getViewModel())||void 0===e?void 0:e.createLineBreaksComputer();if(x)for(const F of u)if(F.diff)for(let T=F.originalRange.startLineNumber;Tthis._editors.original.getModel().tokenization.getLineTokens(t))),R.originalRange.mapToLineArray((()=>C[S++])),A,M),N=[];for(const W of R.diff.innerChanges||[])N.push(new om(W.originalRange.delta(-(R.diff.original.startLineNumber-1)),zU.className,0));const B=vq(_,L,N,I),P=document.createElement("div");if(P.className="inline-deleted-margin-view-zone",ir(P,L.fontInfo),this._options.renderIndicators.read(t))for(let j=0;jK($)),P,this._editors.modified,R.diff,this._diffEditorWidget,B.viewLineCounts,this._editors.original.getModel(),this._contextMenuService,this._clipboardService));for(let H=0;H1&&w.push({afterLineNumber:R.originalRange.startLineNumber+H,domNode:g(),heightInPx:(V-1)*D,showInHiddenAreas:!0,suppressMouseDown:!0})}v.push({afterLineNumber:R.modifiedRange.startLineNumber-1,domNode:I,heightInPx:B.heightInLines*D,minWidthInPx:B.minWidthInPx,marginDomNode:P,setZoneId(t){$=t},showInHiddenAreas:!0,suppressMouseDown:!0})}const O=document.createElement("div");O.className="gutter-delete",w.push({afterLineNumber:R.originalRange.endLineNumberExclusive-1,domNode:g(),heightInPx:R.modifiedHeightInPx,marginDomNode:O,showInHiddenAreas:!0,suppressMouseDown:!0})}else{const U=R.modifiedHeightInPx-R.originalHeightInPx;if(U>0){if(null==E?void 0:E.lineRangeMapping.original.delta(-1).deltaLength(2).contains(R.originalRange.endLineNumberExclusive-1))continue;w.push({afterLineNumber:R.originalRange.endLineNumberExclusive-1,domNode:g(),heightInPx:U,showInHiddenAreas:!0,suppressMouseDown:!0})}else{if(null==E?void 0:E.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(R.modifiedRange.endLineNumberExclusive-1))continue;function q(){const t=document.createElement("div");return t.className="arrow-revert-change "+Cr.asClassName(Os.arrowRight),i.add(Va(t,"mousedown",(t=>t.stopPropagation()))),i.add(Va(t,"click",(t=>{t.stopPropagation(),n.revert(R.diff)}))),$l("div",{},t)}let G;R.diff&&R.diff.modified.isEmpty&&this._options.shouldRenderRevertArrows.read(t)&&(G=q()),v.push({afterLineNumber:R.modifiedRange.endLineNumberExclusive-1,domNode:g(),heightInPx:-U,marginDomNode:G,showInHiddenAreas:!0,suppressMouseDown:!0})}}for(const Z of null!==(l=p.read(t))&&void 0!==l?l:[]){if(!(null==E?void 0:E.lineRangeMapping.original.intersect(Z.originalRange))||!(null==E?void 0:E.lineRangeMapping.modified.intersect(Z.modifiedRange)))continue;const Q=Z.modifiedHeightInPx-Z.originalHeightInPx;Q>0?w.push({afterLineNumber:Z.originalRange.endLineNumberExclusive-1,domNode:g(),heightInPx:Q,showInHiddenAreas:!0,suppressMouseDown:!0}):v.push({afterLineNumber:Z.modifiedRange.endLineNumberExclusive-1,domNode:g(),heightInPx:-Q,showInHiddenAreas:!0,suppressMouseDown:!0})}return{orig:w,mod:v}}));let w=!1;this._register(this._editors.original.onDidScrollChange((t=>{t.scrollLeftChanged&&!w&&(w=!0,this._editors.modified.setScrollLeft(t.scrollLeft),w=!1)}))),this._register(this._editors.modified.onDidScrollChange((t=>{t.scrollLeftChanged&&!w&&(w=!0,this._editors.original.setScrollLeft(t.scrollLeft),w=!1)}))),this._originalScrollTop=KV(this._editors.original.onDidScrollChange,(()=>this._editors.original.getScrollTop())),this._modifiedScrollTop=KV(this._editors.modified.onDidScrollChange,(()=>this._editors.modified.getScrollTop())),this._register(WV((t=>{const i=this._originalScrollTop.read(t)-(this._originalScrollOffsetAnimated.get()-this._modifiedScrollOffsetAnimated.read(t))-(this._originalTopPadding.get()-this._modifiedTopPadding.read(t));i!==this._editors.modified.getScrollTop()&&this._editors.modified.setScrollTop(i,1)}))),this._register(WV((t=>{const i=this._modifiedScrollTop.read(t)-(this._modifiedScrollOffsetAnimated.get()-this._originalScrollOffsetAnimated.read(t))-(this._modifiedTopPadding.get()-this._originalTopPadding.read(t));i!==this._editors.original.getScrollTop()&&this._editors.original.setScrollTop(i,1)}))),this._register(WV((t=>{var i;const e=null===(i=this._diffModel.read(t))||void 0===i?void 0:i.movedTextToCompare.read(t);let s=0;if(e){const t=this._editors.original.getTopForLineNumber(e.lineRangeMapping.original.startLineNumber,!0)-this._originalTopPadding.get();s=this._editors.modified.getTopForLineNumber(e.lineRangeMapping.modified.startLineNumber,!0)-this._modifiedTopPadding.get()-t}s>0?(this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(s,void 0)):s<0?(this._modifiedTopPadding.set(-s,void 0),this._originalTopPadding.set(0,void 0)):setTimeout((()=>{this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(0,void 0)}),400),this._editors.modified.hasTextFocus()?this._originalScrollOffset.set(this._modifiedScrollOffset.get()-s,void 0,!0):this._modifiedScrollOffset.set(this._originalScrollOffset.get()+s,void 0,!0)})))}};function Sq(t,i,e,s,n,o){const r=new _(Dq(t,s)),h=new _(Dq(i,n)),c=t.getOption(66),a=i.getOption(66),l=[];let u=0,d=0;function f(t,i){for(;;){let e=r.peek(),s=h.peek();if(e&&e.lineNumber>=t&&(e=void 0),s&&s.lineNumber>=i&&(s=void 0),!e&&!s)break;const n=e?e.lineNumber-u:Number.MAX_VALUE,o=s?s.lineNumber-d:Number.MAX_VALUE;no?(h.dequeue(),e={lineNumber:s.lineNumber-d+u,heightInPx:0}):(r.dequeue(),h.dequeue()),l.push({originalRange:fp.ofLength(e.lineNumber,1),modifiedRange:fp.ofLength(s.lineNumber,1),originalHeightInPx:c+e.heightInPx,modifiedHeightInPx:a+s.heightInPx,diff:void 0})}}for(const p of e){const g=p.lineRangeMapping;f(g.original.startLineNumber,g.modified.startLineNumber);let m=!0,w=g.modified.startLineNumber,v=g.original.startLineNumber;function b(t,i){var e,s,n,o;if(ti.lineNumbert+i.heightInPx),0))&&void 0!==s?s:0,g=null!==(o=null===(n=h.takeWhile((t=>t.lineNumbert+i.heightInPx),0))&&void 0!==o?o:0;l.push({originalRange:u,modifiedRange:d,originalHeightInPx:u.length*c+f,modifiedHeightInPx:d.length*a+g,diff:p.lineRangeMapping}),v=t,w=i}if(o)for(const y of g.innerChanges||[])y.originalRange.startColumn>1&&y.modifiedRange.startColumn>1&&b(y.originalRange.startLineNumber,y.modifiedRange.startLineNumber),y.originalRange.endColumn1&&s.push({lineNumber:i,heightInPx:r*(t-1)})}for(const s of t.getWhitespaces()){if(i.has(s.id))continue;const t=0===s.afterLineNumber?0:o.convertViewPositionToModelPosition(new As(s.afterLineNumber,1)).lineNumber;e.push({lineNumber:t,heightInPx:s.height})}return function(t,i,e){if(0===t.length)return i;if(0===i.length)return t;const s=[];let n=0,o=0;for(;nl?(s.push(c),o++):(s.push({lineNumber:(r=h).lineNumber,heightInPx:r.heightInPx+c.heightInPx}),n++,o++)}for(var r;nt.lineNumber))}Cq=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([xq(8,yH),xq(9,lI)],Cq);var Eq;let Aq=Eq=class extends te{constructor(t,i,e,s,n,o,r){super(),this._editors=t,this._rootElement=i,this._diffModel=e,this._rootWidth=s,this._rootHeight=n,this._modifiedEditorLayoutInfo=o,this._themeService=r,this.width=Eq.ENTIRE_DIFF_OVERVIEW_WIDTH;const h=KV(this._themeService.onDidColorThemeChange,(()=>this._themeService.getColorTheme())),c=_V((t=>{const i=h.read(t);return{insertColor:i.getColor(Kv)||(i.getColor(Uv)||Hv).transparent(2),removeColor:i.getColor(Gv)||(i.getColor(qv)||Vv).transparent(2)}})),a=tr(document.createElement("div"));a.setClassName("diffViewport"),a.setPosition("absolute");const l=Jl("div.diffOverview",{style:{position:"absolute",top:"0px",width:Eq.ENTIRE_DIFF_OVERVIEW_WIDTH+"px"}}).root;this._register(rU(l,a.domNode)),this._register(qa(l,Ll.POINTER_DOWN,(t=>{this._editors.modified.delegateVerticalScrollbarPointerDown(t)}))),this._register(Va(l,Ll.MOUSE_WHEEL,(t=>{this._editors.modified.delegateScrollFromMouseWheelEvent(t)}),{passive:!1})),this._register(rU(this._rootElement,l)),this._register(HV(((t,i)=>{const e=this._diffModel.read(t),s=this._editors.original.createOverviewRuler("original diffOverviewRuler");s&&(i.add(s),i.add(rU(l,s.getDomNode())));const n=this._editors.modified.createOverviewRuler("modified diffOverviewRuler");if(n&&(i.add(n),i.add(rU(l,n.getDomNode()))),!s||!n)return;const o=ZV("viewZoneChanged",this._editors.original.onDidChangeViewZones),r=ZV("viewZoneChanged",this._editors.modified.onDidChangeViewZones),h=ZV("hiddenRangesChanged",this._editors.original.onDidChangeHiddenAreas),u=ZV("hiddenRangesChanged",this._editors.modified.onDidChangeHiddenAreas);i.add(WV((t=>{var i;o.read(t),r.read(t),h.read(t),u.read(t);const a=c.read(t),l=null===(i=null==e?void 0:e.diff.read(t))||void 0===i?void 0:i.mappings;function d(t,i,e){const s=e._getViewModel();return s?t.filter((t=>t.length>0)).map((t=>{const e=s.coordinatesConverter.convertModelPositionToViewPosition(new As(t.startLineNumber,1)),n=s.coordinatesConverter.convertModelPositionToViewPosition(new As(t.endLineNumberExclusive,1));return new kD(e.lineNumber,n.lineNumber,n.lineNumber-e.lineNumber,i.toString())})):[]}const f=d((l||[]).map((t=>t.lineRangeMapping.original)),a.removeColor,this._editors.original),p=d((l||[]).map((t=>t.lineRangeMapping.modified)),a.insertColor,this._editors.modified);null==s||s.setZones(f),null==n||n.setZones(p)}))),i.add(WV((t=>{const i=this._rootHeight.read(t),e=this._rootWidth.read(t),o=this._modifiedEditorLayoutInfo.read(t);if(o){s.setLayout({top:0,height:i,right:Eq.ENTIRE_DIFF_OVERVIEW_WIDTH-2*Eq.ONE_OVERVIEW_WIDTH+Eq.ONE_OVERVIEW_WIDTH,width:Eq.ONE_OVERVIEW_WIDTH}),n.setLayout({top:0,height:i,right:0,width:Eq.ONE_OVERVIEW_WIDTH});const e=this._editors.modifiedScrollTop.read(t),r=this._editors.modifiedScrollHeight.read(t),h=this._editors.modified.getOption(102),c=new vk(h.verticalHasArrows?h.arrowSize:0,h.verticalScrollbarSize,0,o.height,r,e);a.setTop(c.getSliderPosition()),a.setHeight(c.getSliderSize())}else a.setTop(0),a.setHeight(0);l.style.height=i+"px",l.style.left=e-Eq.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",a.setWidth(Eq.ENTIRE_DIFF_OVERVIEW_WIDTH)})))})))}};Aq.ONE_OVERVIEW_WIDTH=15,Aq.ENTIRE_DIFF_OVERVIEW_WIDTH=2*Eq.ONE_OVERVIEW_WIDTH,Aq=Eq=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(6,Xk)],Aq),dw("diffEditor.move.border",{dark:"#8b8b8b9c",light:"#8b8b8b9c",hcDark:"#8b8b8b9c",hcLight:"#8b8b8b9c"},ot(0,"The border color for text that got moved in the diff editor.")),dw("diffEditor.moveActive.border",{dark:"#FFA500",light:"#FFA500",hcDark:"#FFA500",hcLight:"#FFA500"},ot(0,"The active border color for text that got moved in the diff editor.")),dw("diffEditor.unchangedRegionShadow",{dark:"#000000",light:"#737373BF",hcDark:"#000000",hcLight:"#737373BF"},ot(0,"The color of the shadow around unchanged region widgets."));class Mq extends te{constructor(){super(...arguments),this._id=++Mq.idCounter,this._onDidDispose=this._register(new de),this.onDidDispose=this._onDidDispose.event}getId(){return this.getEditorType()+":v2:"+this._id}getVisibleColumnFromPosition(t){return this._targetEditor.getVisibleColumnFromPosition(t)}getPosition(){return this._targetEditor.getPosition()}setPosition(t,i="api"){this._targetEditor.setPosition(t,i)}revealLine(t,i=0){this._targetEditor.revealLine(t,i)}revealLineInCenter(t,i=0){this._targetEditor.revealLineInCenter(t,i)}revealLineInCenterIfOutsideViewport(t,i=0){this._targetEditor.revealLineInCenterIfOutsideViewport(t,i)}revealLineNearTop(t,i=0){this._targetEditor.revealLineNearTop(t,i)}revealPosition(t,i=0){this._targetEditor.revealPosition(t,i)}revealPositionInCenter(t,i=0){this._targetEditor.revealPositionInCenter(t,i)}revealPositionInCenterIfOutsideViewport(t,i=0){this._targetEditor.revealPositionInCenterIfOutsideViewport(t,i)}revealPositionNearTop(t,i=0){this._targetEditor.revealPositionNearTop(t,i)}getSelection(){return this._targetEditor.getSelection()}getSelections(){return this._targetEditor.getSelections()}setSelection(t,i="api"){this._targetEditor.setSelection(t,i)}setSelections(t,i="api"){this._targetEditor.setSelections(t,i)}revealLines(t,i,e=0){this._targetEditor.revealLines(t,i,e)}revealLinesInCenter(t,i,e=0){this._targetEditor.revealLinesInCenter(t,i,e)}revealLinesInCenterIfOutsideViewport(t,i,e=0){this._targetEditor.revealLinesInCenterIfOutsideViewport(t,i,e)}revealLinesNearTop(t,i,e=0){this._targetEditor.revealLinesNearTop(t,i,e)}revealRange(t,i=0,e=!1,s=!0){this._targetEditor.revealRange(t,i,e,s)}revealRangeInCenter(t,i=0){this._targetEditor.revealRangeInCenter(t,i)}revealRangeInCenterIfOutsideViewport(t,i=0){this._targetEditor.revealRangeInCenterIfOutsideViewport(t,i)}revealRangeNearTop(t,i=0){this._targetEditor.revealRangeNearTop(t,i)}revealRangeNearTopIfOutsideViewport(t,i=0){this._targetEditor.revealRangeNearTopIfOutsideViewport(t,i)}revealRangeAtTop(t,i=0){this._targetEditor.revealRangeAtTop(t,i)}getSupportedActions(){return this._targetEditor.getSupportedActions()}focus(){this._targetEditor.focus()}trigger(t,i,e){this._targetEditor.trigger(t,i,e)}createDecorationsCollection(t){return this._targetEditor.createDecorationsCollection(t)}changeDecorations(t){return this._targetEditor.changeDecorations(t)}}Mq.idCounter=0;var Lq=function(t,i){return function(e,s){i(e,s,t)}};let Fq=class extends te{get onDidContentSizeChange(){return this._onDidContentSizeChange.event}constructor(t,i,e,s,n,o,r){super(),this.originalEditorElement=t,this.modifiedEditorElement=i,this._options=e,this._createInnerEditor=n,this._instantiationService=o,this._keybindingService=r,this._onDidContentSizeChange=this._register(new de),this.original=this._register(this._createLeftHandSideEditor(e.editorOptions.get(),s.originalEditor||{})),this.modified=this._register(this._createRightHandSideEditor(e.editorOptions.get(),s.modifiedEditor||{})),this.modifiedModel=KV(this.modified.onDidChangeModel,(()=>this.modified.getModel())),this.modifiedScrollTop=KV(this.modified.onDidScrollChange,(()=>this.modified.getScrollTop())),this.modifiedScrollHeight=KV(this.modified.onDidScrollChange,(()=>this.modified.getScrollHeight())),this.modifiedSelections=KV(this.modified.onDidChangeCursorSelection,(()=>{var t;return null!==(t=this.modified.getSelections())&&void 0!==t?t:[]})),this.modifiedCursor=KV(this.modified.onDidChangeCursorPosition,(()=>{var t;return null!==(t=this.modified.getPosition())&&void 0!==t?t:new As(1,1)})),this._register(zV({createEmptyChangeSummary:()=>({}),handleChange:(t,i)=>(t.didChange(e.editorOptions)&&Object.assign(i,t.change.changedOptions),!0)},((t,i)=>{e.editorOptions.read(t),this._options.renderSideBySide.read(t),this.modified.updateOptions(this._adjustOptionsForRightHandSide(t,i)),this.original.updateOptions(this._adjustOptionsForLeftHandSide(t,i))})))}_createLeftHandSideEditor(t,i){const e=this._adjustOptionsForLeftHandSide(void 0,t),s=this._constructInnerEditor(this._instantiationService,this.originalEditorElement,e,i);return s.setContextValue("isInDiffLeftEditor",!0),s}_createRightHandSideEditor(t,i){const e=this._adjustOptionsForRightHandSide(void 0,t),s=this._constructInnerEditor(this._instantiationService,this.modifiedEditorElement,e,i);return s.setContextValue("isInDiffRightEditor",!0),s}_constructInnerEditor(t,i,e,s){const n=this._createInnerEditor(t,i,e,s);return this._register(n.onDidContentSizeChange((t=>{const i=this.original.getContentWidth()+this.modified.getContentWidth()+Aq.ENTIRE_DIFF_OVERVIEW_WIDTH,e=Math.max(this.modified.getContentHeight(),this.original.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:e,contentWidth:i,contentHeightChanged:t.contentHeightChanged,contentWidthChanged:t.contentWidthChanged})}))),n}_adjustOptionsForLeftHandSide(t,i){const e=this._adjustOptionsForSubEditor(i);return this._options.renderSideBySide.get()?(e.unicodeHighlight=this._options.editorOptions.get().unicodeHighlight||{},e.wordWrapOverride1=this._options.diffWordWrap.get()):(e.wordWrapOverride1="off",e.wordWrapOverride2="off",e.stickyScroll={enabled:!1},e.unicodeHighlight={nonBasicASCII:!1,ambiguousCharacters:!1,invisibleCharacters:!1}),e.glyphMargin=this._options.renderSideBySide.get(),i.originalAriaLabel&&(e.ariaLabel=i.originalAriaLabel),e.ariaLabel=this._updateAriaLabel(e.ariaLabel),e.readOnly=!this._options.originalEditable.get(),e.dropIntoEditor={enabled:!e.readOnly},e.extraEditorClassName="original-in-monaco-diff-editor",e}_adjustOptionsForRightHandSide(t,i){const e=this._adjustOptionsForSubEditor(i);return i.modifiedAriaLabel&&(e.ariaLabel=i.modifiedAriaLabel),e.ariaLabel=this._updateAriaLabel(e.ariaLabel),e.wordWrapOverride1=this._options.diffWordWrap.get(),e.revealHorizontalRightPadding=_i.revealHorizontalRightPadding.defaultValue+Aq.ENTIRE_DIFF_OVERVIEW_WIDTH,e.scrollbar.verticalHasArrows=!1,e.extraEditorClassName="modified-in-monaco-diff-editor",e}_adjustOptionsForSubEditor(t){const i={...t,dimension:{height:0,width:0}};return i.inDiffEditor=!0,i.automaticLayout=!1,i.scrollbar={...i.scrollbar||{}},i.folding=!1,i.codeLens=this._options.diffCodeLens.get(),i.fixedOverflowWidgets=!0,i.minimap={...i.minimap||{}},i.minimap.enabled=!1,i.stickyScroll=this._options.hideUnchangedRegions.get()?{enabled:!1}:this._options.editorOptions.get().stickyScroll,i}_updateAriaLabel(t){var i;t||(t="");const e=ot(0," use {0} to open the accessibility help.",null===(i=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp"))||void 0===i?void 0:i.getAriaLabel());return this._options.accessibilityVerbose.get()?t+e:t?t.replaceAll(e,""):""}};Fq=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Lq(5,ur),Lq(6,oC)],Fq);class Tq{get editorOptions(){return this._options}constructor(t){this._diffEditorWidth=FV(this,0),this.couldShowInlineViewBecauseOfSize=_V(this,(t=>this._options.read(t).renderSideBySide&&this._diffEditorWidth.read(t)<=this._options.read(t).renderSideBySideInlineBreakpoint)),this.renderOverviewRuler=_V(this,(t=>this._options.read(t).renderOverviewRuler)),this.renderSideBySide=_V(this,(t=>this._options.read(t).renderSideBySide&&!(this._options.read(t).useInlineViewWhenSpaceIsLimited&&this.couldShowInlineViewBecauseOfSize.read(t)))),this.readOnly=_V(this,(t=>this._options.read(t).readOnly)),this.shouldRenderRevertArrows=_V(this,(t=>!!this._options.read(t).renderMarginRevertIcon&&!!this.renderSideBySide.read(t)&&!this.readOnly.read(t))),this.renderIndicators=_V(this,(t=>this._options.read(t).renderIndicators)),this.enableSplitViewResizing=_V(this,(t=>this._options.read(t).enableSplitViewResizing)),this.splitViewDefaultRatio=_V(this,(t=>this._options.read(t).splitViewDefaultRatio)),this.ignoreTrimWhitespace=_V(this,(t=>this._options.read(t).ignoreTrimWhitespace)),this.maxComputationTimeMs=_V(this,(t=>this._options.read(t).maxComputationTime)),this.showMoves=_V(this,(t=>this._options.read(t).experimental.showMoves&&this.renderSideBySide.read(t))),this.isInEmbeddedEditor=_V(this,(t=>this._options.read(t).isInEmbeddedEditor)),this.diffWordWrap=_V(this,(t=>this._options.read(t).diffWordWrap)),this.originalEditable=_V(this,(t=>this._options.read(t).originalEditable)),this.diffCodeLens=_V(this,(t=>this._options.read(t).diffCodeLens)),this.accessibilityVerbose=_V(this,(t=>this._options.read(t).accessibilityVerbose)),this.diffAlgorithm=_V(this,(t=>this._options.read(t).diffAlgorithm)),this.showEmptyDecorations=_V(this,(t=>this._options.read(t).experimental.showEmptyDecorations)),this.onlyShowAccessibleDiffViewer=_V(this,(t=>this._options.read(t).onlyShowAccessibleDiffViewer)),this.hideUnchangedRegions=_V(this,(t=>this._options.read(t).hideUnchangedRegions.enabled)),this.hideUnchangedRegionsRevealLineCount=_V(this,(t=>this._options.read(t).hideUnchangedRegions.revealLineCount)),this.hideUnchangedRegionsContextLineCount=_V(this,(t=>this._options.read(t).hideUnchangedRegions.contextLineCount)),this.hideUnchangedRegionsMinimumLineCount=_V(this,(t=>this._options.read(t).hideUnchangedRegions.minimumLineCount));const i={...t,...Rq(t,cO)};this._options=FV(this,i)}updateOptions(t){const i=Rq(t,this._options.get()),e={...this._options.get(),...t,...i};this._options.set(e,void 0,{changedOptions:t})}setWidth(t){this._diffEditorWidth.set(t,void 0)}}function Rq(t,i){var e,s,n,o,r,h,c,a;return{enableSplitViewResizing:oi(t.enableSplitViewResizing,i.enableSplitViewResizing),splitViewDefaultRatio:ai(t.splitViewDefaultRatio,.5,.1,.9),renderSideBySide:oi(t.renderSideBySide,i.renderSideBySide),renderMarginRevertIcon:oi(t.renderMarginRevertIcon,i.renderMarginRevertIcon),maxComputationTime:hi(t.maxComputationTime,i.maxComputationTime,0,1073741824),maxFileSize:hi(t.maxFileSize,i.maxFileSize,0,1073741824),ignoreTrimWhitespace:oi(t.ignoreTrimWhitespace,i.ignoreTrimWhitespace),renderIndicators:oi(t.renderIndicators,i.renderIndicators),originalEditable:oi(t.originalEditable,i.originalEditable),diffCodeLens:oi(t.diffCodeLens,i.diffCodeLens),renderOverviewRuler:oi(t.renderOverviewRuler,i.renderOverviewRuler),diffWordWrap:di(t.diffWordWrap,i.diffWordWrap,["off","on","inherit"]),diffAlgorithm:di(t.diffAlgorithm,i.diffAlgorithm,["legacy","advanced"],{smart:"legacy",experimental:"advanced"}),accessibilityVerbose:oi(t.accessibilityVerbose,i.accessibilityVerbose),experimental:{showMoves:oi(null===(e=t.experimental)||void 0===e?void 0:e.showMoves,i.experimental.showMoves),showEmptyDecorations:oi(null===(s=t.experimental)||void 0===s?void 0:s.showEmptyDecorations,i.experimental.showEmptyDecorations)},hideUnchangedRegions:{enabled:oi(null!==(o=null===(n=t.hideUnchangedRegions)||void 0===n?void 0:n.enabled)&&void 0!==o?o:null===(r=t.experimental)||void 0===r?void 0:r.collapseUnchangedRegions,i.hideUnchangedRegions.enabled),contextLineCount:hi(null===(h=t.hideUnchangedRegions)||void 0===h?void 0:h.contextLineCount,i.hideUnchangedRegions.contextLineCount,0,1073741824),minimumLineCount:hi(null===(c=t.hideUnchangedRegions)||void 0===c?void 0:c.minimumLineCount,i.hideUnchangedRegions.minimumLineCount,0,1073741824),revealLineCount:hi(null===(a=t.hideUnchangedRegions)||void 0===a?void 0:a.revealLineCount,i.hideUnchangedRegions.revealLineCount,0,1073741824)},isInEmbeddedEditor:oi(t.isInEmbeddedEditor,i.isInEmbeddedEditor),onlyShowAccessibleDiffViewer:oi(t.onlyShowAccessibleDiffViewer,i.onlyShowAccessibleDiffViewer),renderSideBySideInlineBreakpoint:hi(t.renderSideBySideInlineBreakpoint,i.renderSideBySideInlineBreakpoint,0,1073741824),useInlineViewWhenSpaceIsLimited:oi(t.useInlineViewWhenSpaceIsLimited,i.useInlineViewWhenSpaceIsLimited)}}var Oq=function(t,i){return function(e,s){i(e,s,t)}};let Iq=class extends Mq{get onDidContentSizeChange(){return this._editors.onDidContentSizeChange}constructor(t,i,e,s,n,o,r,h){var c;super(),this._domElement=t,this._parentContextKeyService=s,this._parentInstantiationService=n,this._audioCueService=r,this._editorProgressService=h,this.elements=Jl("div.monaco-diff-editor.side-by-side",{style:{position:"relative",height:"100%"}},[Jl("div.noModificationsOverlay@overlay",{style:{position:"absolute",height:"100%",visibility:"hidden"}},[$l("span",{},"No Changes")]),Jl("div.editor.original@original",{style:{position:"absolute",height:"100%"}}),Jl("div.editor.modified@modified",{style:{position:"absolute",height:"100%"}}),Jl("div.accessibleDiffViewer@accessibleDiffViewer",{style:{position:"absolute",height:"100%"}})]),this._diffModel=FV(this,void 0),this._shouldDisposeDiffModel=!1,this.onDidChangeModel=he.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._parentInstantiationService.createChild(new iT([ah,this._contextKeyService])),this._boundarySashes=FV(this,void 0),this._accessibleDiffViewerShouldBeVisible=FV(this,!1),this._accessibleDiffViewerVisible=_V(this,(t=>!!this._options.onlyShowAccessibleDiffViewer.read(t)||this._accessibleDiffViewerShouldBeVisible.read(t))),this._movedBlocksLinesPart=FV(this,void 0),this._layoutInfo=_V(this,(t=>{var i,e,s,n,o;const r=this._rootSizeObserver.width.read(t),h=this._rootSizeObserver.height.read(t),c=null===(i=this._sash.read(t))||void 0===i?void 0:i.sashLeft.read(t),a=null!=c?c:Math.max(5,this._editors.original.getLayoutInfo().decorationsLeft),l=r-a-(null!==(s=null===(e=this._overviewRulerPart.read(t))||void 0===e?void 0:e.width)&&void 0!==s?s:0),u=a-(null!==(o=null===(n=this._movedBlocksLinesPart.read(t))||void 0===n?void 0:n.width.read(t))&&void 0!==o?o:0);return this.elements.original.style.width=u+"px",this.elements.original.style.left="0px",this.elements.modified.style.width=l+"px",this.elements.modified.style.left=a+"px",this._editors.original.layout({width:u,height:h},!0),this._editors.modified.layout({width:l,height:h},!0),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}})),this._diffValue=this._diffModel.map(((t,i)=>null==t?void 0:t.diff.read(i))),this.onDidUpdateDiff=he.fromObservableLight(this._diffValue),o.willCreateDiffEditor(),this._contextKeyService.createKey("isInDiffEditor",!0),this._domElement.appendChild(this.elements.root),this._register(Yi((()=>this._domElement.removeChild(this.elements.root)))),this._rootSizeObserver=this._register(new hU(this.elements.root,i.dimension)),this._rootSizeObserver.setAutomaticLayout(null!==(c=i.automaticLayout)&&void 0!==c&&c),this._options=new Tq(i),this._register(WV((t=>{this._options.setWidth(this._rootSizeObserver.width.read(t))}))),this._contextKeyService.createKey(YC.isEmbeddedDiffEditor.key,!1),this._register(wU(YC.isEmbeddedDiffEditor,this._contextKeyService,(t=>this._options.isInEmbeddedEditor.read(t)))),this._register(wU(YC.comparingMovedCode,this._contextKeyService,(t=>{var i;return!!(null===(i=this._diffModel.read(t))||void 0===i?void 0:i.movedTextToCompare.read(t))}))),this._register(wU(YC.diffEditorRenderSideBySideInlineBreakpointReached,this._contextKeyService,(t=>this._options.couldShowInlineViewBecauseOfSize.read(t)))),this._register(wU(YC.hasChanges,this._contextKeyService,(t=>{var i,e,s;return(null!==(s=null===(e=null===(i=this._diffModel.read(t))||void 0===i?void 0:i.diff.read(t))||void 0===e?void 0:e.mappings.length)&&void 0!==s?s:0)>0}))),this._editors=this._register(this._instantiationService.createInstance(Fq,this.elements.original,this.elements.modified,this._options,e,((t,i,e,s)=>this._createInnerEditor(t,i,e,s)))),this._overviewRulerPart=PV(this,(t=>this._options.renderOverviewRuler.read(t)?this._instantiationService.createInstance(fU(Aq,t),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map((t=>t.modifiedEditor))):void 0)).recomputeInitiallyAndOnChange(this._store),this._sash=PV(this,(t=>{const i=this._options.renderSideBySide.read(t);return this.elements.root.classList.toggle("side-by-side",i),i?new JU(this._options,this.elements.root,{height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map(((t,i)=>{var e,s;return t-(null!==(s=null===(e=this._overviewRulerPart.read(i))||void 0===e?void 0:e.width)&&void 0!==s?s:0)}))},this._boundarySashes):void 0})).recomputeInitiallyAndOnChange(this._store);const a=PV(this,(t=>this._instantiationService.createInstance(fU(nq,t),this._editors,this._diffModel,this._options))).recomputeInitiallyAndOnChange(this._store);PV(this,(t=>this._instantiationService.createInstance(fU(GU,t),this._editors,this._diffModel,this._options,this))).recomputeInitiallyAndOnChange(this._store);const l=new Set,u=new Set;let d=!1;const f=PV(this,(t=>this._instantiationService.createInstance(fU(Cq,t),Na(this._domElement),this._editors,this._diffModel,this._options,this,(()=>d||a.get().isUpdatingHiddenAreas),l,u))).recomputeInitiallyAndOnChange(this._store),p=_V(this,(t=>{const i=f.read(t).viewZones.read(t).orig,e=a.read(t).viewZones.read(t).origViewZones;return i.concat(e)})),g=_V(this,(t=>{const i=f.read(t).viewZones.read(t).mod,e=a.read(t).viewZones.read(t).modViewZones;return i.concat(e)}));let m;this._register(pU(this._editors.original,p,(t=>{d=t}),l)),this._register(pU(this._editors.modified,g,(t=>{d=t,d?m=iU.capture(this._editors.modified):(null==m||m.restore(this._editors.modified),m=void 0)}),u)),this._accessibleDiffViewer=PV(this,(t=>this._instantiationService.createInstance(fU(CU,t),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,((t,i)=>this._accessibleDiffViewerShouldBeVisible.set(t,i)),this._options.onlyShowAccessibleDiffViewer.map((t=>!t)),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map(((t,i)=>{var e;return null===(e=null==t?void 0:t.diff.read(i))||void 0===e?void 0:e.mappings.map((t=>t.lineRangeMapping))})),this._editors))).recomputeInitiallyAndOnChange(this._store);const w=this._accessibleDiffViewerVisible.map((t=>t?"hidden":"visible"));this._register(dU(this.elements.modified,{visibility:w})),this._register(dU(this.elements.original,{visibility:w})),this._createDiffEditorContributions(),o.addDiffEditor(this),this._register(XV(this._layoutInfo)),PV(this,(t=>new(fU(UU,t))(this.elements.root,this._diffModel,this._layoutInfo.map((t=>t.originalEditor)),this._layoutInfo.map((t=>t.modifiedEditor)),this._editors))).recomputeInitiallyAndOnChange(this._store,(t=>{this._movedBlocksLinesPart.set(t,void 0)})),this._register(dU(this.elements.overlay,{width:this._layoutInfo.map(((t,i)=>t.originalEditor.width+(this._options.renderSideBySide.read(i)?0:t.modifiedEditor.width))),visibility:_V((t=>{var i,e;return this._options.hideUnchangedRegions.read(t)&&0===(null===(e=null===(i=this._diffModel.read(t))||void 0===i?void 0:i.diff.read(t))||void 0===e?void 0:e.mappings.length)?"visible":"hidden"}))})),this._register(he.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,(t=>{var i,e;if(3===(null==t?void 0:t.reason)){const s=null===(e=null===(i=this._diffModel.get())||void 0===i?void 0:i.diff.get())||void 0===e?void 0:e.mappings.find((i=>i.lineRangeMapping.modified.contains(t.position.lineNumber)));(null==s?void 0:s.lineRangeMapping.modified.isEmpty)?this._audioCueService.playAudioCue(UH.diffLineDeleted,{source:"diffEditor.cursorPositionChanged"}):(null==s?void 0:s.lineRangeMapping.original.isEmpty)?this._audioCueService.playAudioCue(UH.diffLineInserted,{source:"diffEditor.cursorPositionChanged"}):s&&this._audioCueService.playAudioCue(UH.diffLineModified,{source:"diffEditor.cursorPositionChanged"})}})));const v=this._diffModel.map(this,((t,i)=>{if(t)return void 0===t.diff.read(i)&&!t.isDiffUpToDate.read(i)}));this._register(HV(((t,i)=>{if(!0===v.read(t)){const t=this._editorProgressService.show(!0,1e3);i.add(Yi((()=>t.done())))}}))),this._register(Yi((()=>{var t;this._shouldDisposeDiffModel&&(null===(t=this._diffModel.get())||void 0===t||t.dispose())})))}_createInnerEditor(t,i,e,s){return t.createInstance(TT,i,e,s)}_createDiffEditorContributions(){const t=uu.getDiffEditorContributions();for(const i of t)try{this._register(this._instantiationService.createInstance(i.ctor,this))}catch(t){Bi(t)}}get _targetEditor(){return this._editors.modified}getEditorType(){return Og.IDiffEditor}layout(t){this._rootSizeObserver.observe(t)}hasTextFocus(){return this._editors.original.hasTextFocus()||this._editors.modified.hasTextFocus()}saveViewState(){var t;return{original:this._editors.original.saveViewState(),modified:this._editors.modified.saveViewState(),modelState:null===(t=this._diffModel.get())||void 0===t?void 0:t.serializeState()}}restoreViewState(t){var i;if(t&&t.original&&t.modified){const e=t;this._editors.original.restoreViewState(e.original),this._editors.modified.restoreViewState(e.modified),e.modelState&&(null===(i=this._diffModel.get())||void 0===i||i.restoreSerializedState(e.modelState))}}handleInitialized(){this._editors.original.handleInitialized(),this._editors.modified.handleInitialized()}createViewModel(t){return this._instantiationService.createInstance(dq,t,this._options)}getModel(){var t,i;return null!==(i=null===(t=this._diffModel.get())||void 0===t?void 0:t.model)&&void 0!==i?i:null}setModel(t,i){!t&&this._diffModel.get()&&this._accessibleDiffViewer.get().close();const e=t?"model"in t?{model:t,shouldDispose:!1}:{model:this.createViewModel(t),shouldDispose:!0}:void 0;this._diffModel.get()!==(null==e?void 0:e.model)&&xV(i,(t=>{var i;KV.batchEventsGlobally(t,(()=>{this._editors.original.setModel(e?e.model.model.original:null),this._editors.modified.setModel(e?e.model.model.modified:null)}));const s=this._diffModel.get(),n=this._shouldDisposeDiffModel;this._shouldDisposeDiffModel=null!==(i=null==e?void 0:e.shouldDispose)&&void 0!==i&&i,this._diffModel.set(null==e?void 0:e.model,t),n&&(null==s||s.dispose())}))}updateOptions(t){this._options.updateOptions(t)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){var t;const i=null===(t=this._diffModel.get())||void 0===t?void 0:t.diff.get();return i?i.mappings.map((t=>{const i=t.lineRangeMapping;let e,s,n,o,r=i.innerChanges;return i.original.isEmpty?(e=i.original.startLineNumber-1,s=0,r=void 0):(e=i.original.startLineNumber,s=i.original.endLineNumberExclusive-1),i.modified.isEmpty?(n=i.modified.startLineNumber-1,o=0,r=void 0):(n=i.modified.startLineNumber,o=i.modified.endLineNumberExclusive-1),{originalStartLineNumber:e,originalEndLineNumber:s,modifiedStartLineNumber:n,modifiedEndLineNumber:o,charChanges:null==r?void 0:r.map((t=>({originalStartLineNumber:t.originalRange.startLineNumber,originalStartColumn:t.originalRange.startColumn,originalEndLineNumber:t.originalRange.endLineNumber,originalEndColumn:t.originalRange.endColumn,modifiedStartLineNumber:t.modifiedRange.startLineNumber,modifiedStartColumn:t.modifiedRange.startColumn,modifiedEndLineNumber:t.modifiedRange.endLineNumber,modifiedEndColumn:t.modifiedRange.endColumn})))}})):null}revert(t){var i;if(t.innerChanges)return void this.revertRangeMappings(t.innerChanges);const e=null===(i=this._diffModel.get())||void 0===i?void 0:i.model;e&&this._editors.modified.executeEdits("diffEditor",[{range:t.modified.toExclusiveRange(),text:e.original.getValueInRange(t.original.toExclusiveRange())}])}revertRangeMappings(t){const i=this._diffModel.get();if(!i||!i.isDiffUpToDate.get())return;const e=t.map((t=>({range:t.modifiedRange,text:i.model.original.getValueInRange(t.originalRange)})));this._editors.modified.executeEdits("diffEditor",e)}_goTo(t){this._editors.modified.setPosition(new As(t.lineRangeMapping.modified.startLineNumber,1)),this._editors.modified.revealRangeInCenter(t.lineRangeMapping.modified.toExclusiveRange())}goToDiff(t){var i,e,s,n;const o=null===(e=null===(i=this._diffModel.get())||void 0===i?void 0:i.diff.get())||void 0===e?void 0:e.mappings;if(!o||0===o.length)return;const r=this._editors.modified.getPosition().lineNumber;let h;h="next"===t?null!==(s=o.find((t=>t.lineRangeMapping.modified.startLineNumber>r)))&&void 0!==s?s:o[0]:null!==(n=rp(o,(t=>t.lineRangeMapping.modified.startLineNumber{var i;const e=null===(i=t.diff.get())||void 0===i?void 0:i.mappings;e&&0!==e.length&&this._goTo(e[0])}))}accessibleDiffViewerNext(){this._accessibleDiffViewer.get().next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.get().prev()}async waitForDiff(){const t=this._diffModel.get();t&&await t.waitForDiff()}mapToOtherSide(){var t,i;const e=this._editors.modified.hasWidgetFocus(),s=e?this._editors.original:this._editors.modified;let n;const o=(e?this._editors.modified:this._editors.original).getSelection();if(o){const s=null===(i=null===(t=this._diffModel.get())||void 0===t?void 0:t.diff.get())||void 0===i?void 0:i.mappings.map((t=>e?t.lineRangeMapping.flip():t.lineRangeMapping));if(s){const t=mU(o.getStartPosition(),s),i=mU(o.getEndPosition(),s);n=Ms.plusRange(t,i)}}return{destination:s,destinationSelection:n}}switchSide(){const{destination:t,destinationSelection:i}=this.mapToOtherSide();t.focus(),i&&t.setSelection(i)}exitCompareMove(){const t=this._diffModel.get();t&&t.movedTextToCompare.set(void 0,void 0)}collapseAllUnchangedRegions(){var t;const i=null===(t=this._diffModel.get())||void 0===t?void 0:t.unchangedRegions.get();i&&yV((t=>{for(const e of i)e.collapseAll(t)}))}showAllUnchangedRegions(){var t;const i=null===(t=this._diffModel.get())||void 0===t?void 0:t.unchangedRegions.get();i&&yV((t=>{for(const e of i)e.showAll(t)}))}};Iq=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Oq(3,ah),Oq(4,ur),Oq(5,fr),Oq(6,zH),Oq(7,zO)],Iq);var _q=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},Nq=function(t,i){return function(e,s){i(e,s,t)}};let Bq=0,Pq=!1;let $q=class extends TT{constructor(t,i,e,s,n,o,r,h,c,a,l,u){const d={...i};d.ariaLabel=d.ariaLabel||oI.editorViewAccessibleLabel,d.ariaLabel=d.ariaLabel+";"+oI.accessibilityHelpMessage,super(t,d,{},e,s,n,o,h,c,a,l,u),this._standaloneKeybindingService=r instanceof sV?r:null,function(t){if(!t){if(Pq)return;Pq=!0}!function(t){Om=document.createElement("div"),Om.className="monaco-aria-container";const i=()=>{const t=document.createElement("div");return t.className="monaco-alert",t.setAttribute("role","alert"),t.setAttribute("aria-atomic","true"),Om.appendChild(t),t};Im=i(),_m=i();const e=()=>{const t=document.createElement("div");return t.className="monaco-status",t.setAttribute("aria-live","polite"),t.setAttribute("aria-atomic","true"),Om.appendChild(t),t};Nm=e(),Bm=e(),t.appendChild(Om)}(t||$n.document.body)}(d.ariaContainerElement)}addCommand(t,i,e){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const s="DYNAMIC_"+ ++Bq,n=zr.deserialize(e);return this._standaloneKeybindingService.addDynamicKeybinding(s,t,i,n),s}createContextKey(t,i){return this._contextKeyService.createKey(t,i)}addAction(t){if("string"!=typeof t.id||"string"!=typeof t.label||"function"!=typeof t.run)throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),te.None;const i=t.id,e=t.label,s=zr.and(zr.equals("editorId",this.getId()),zr.deserialize(t.precondition)),n=t.keybindings,o=zr.and(s,zr.deserialize(t.keybindingContext)),r=t.contextMenuGroupId||null,h=t.contextMenuOrder||0,c=(i,...e)=>Promise.resolve(t.run(this,...e)),a=new Xi,l=this.getId()+":"+i;if(a.add(Dr.registerCommand(l,c)),r&&a.add(_h.appendMenuItem(Rh.EditorContext,{command:{id:l,title:e},when:s,group:r,order:h})),Array.isArray(n))for(const t of n)a.add(this._standaloneKeybindingService.addDynamicKeybinding(l,t,c,o));const u=new qD(l,e,e,void 0,s,((...i)=>Promise.resolve(t.run(this,...i))),this._contextKeyService);return this._actions.set(i,u),a.add(Yi((()=>{this._actions.delete(i)}))),a}_triggerCommand(t,i){if(this._codeEditorService instanceof UT)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(t,i)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(t,i)}};$q=_q([Nq(2,ur),Nq(3,fr),Nq(4,Sr),Nq(5,ah),Nq(6,oC),Nq(7,Xk),Nq(8,oT),Nq(9,Zm),Nq(10,Xd),Nq(11,xg)],$q);let Wq=class extends $q{constructor(t,i,e,s,n,o,r,h,c,a,l,u,d,f,p){const g={...i};lV(a,g,!1);const m=h.registerEditorContainer(t);"string"==typeof g.theme&&h.setTheme(g.theme),void 0!==g.autoDetectHighContrast&&h.setAutoDetectHighContrast(Boolean(g.autoDetectHighContrast));const w=g.model;let v;if(delete g.model,super(t,g,e,s,n,o,r,h,c,l,f,p),this._configurationService=a,this._standaloneThemeService=h,this._register(m),void 0===w){const t=d.getLanguageIdByMimeType(g.language)||g.language||Ud;v=zq(u,d,g.value||"",t,void 0),this._ownsModel=!0}else v=w,this._ownsModel=!1;this._attachModel(v),v&&this._onDidChangeModel.fire({oldModelUrl:null,newModelUrl:v.uri})}dispose(){super.dispose()}updateOptions(t){lV(this._configurationService,t,!1),"string"==typeof t.theme&&this._standaloneThemeService.setTheme(t.theme),void 0!==t.autoDetectHighContrast&&this._standaloneThemeService.setAutoDetectHighContrast(Boolean(t.autoDetectHighContrast)),super.updateOptions(t)}_postDetachModelCleanup(t){super._postDetachModelCleanup(t),t&&this._ownsModel&&(t.dispose(),this._ownsModel=!1)}};Wq=_q([Nq(2,ur),Nq(3,fr),Nq(4,Sr),Nq(5,ah),Nq(6,oC),Nq(7,rH),Nq(8,oT),Nq(9,pd),Nq(10,Zm),Nq(11,pr),Nq(12,yd),Nq(13,Xd),Nq(14,xg)],Wq);let jq=class extends Iq{constructor(t,i,e,s,n,o,r,h,c,a,l,u){const d={...i};lV(h,d,!0);const f=o.registerEditorContainer(t);"string"==typeof d.theme&&o.setTheme(d.theme),void 0!==d.autoDetectHighContrast&&o.setAutoDetectHighContrast(Boolean(d.autoDetectHighContrast)),super(t,d,{},s,e,n,u,a),this._configurationService=h,this._standaloneThemeService=o,this._register(f)}dispose(){super.dispose()}updateOptions(t){lV(this._configurationService,t,!0),"string"==typeof t.theme&&this._standaloneThemeService.setTheme(t.theme),void 0!==t.autoDetectHighContrast&&this._standaloneThemeService.setAutoDetectHighContrast(Boolean(t.autoDetectHighContrast)),super.updateOptions(t)}_createInnerEditor(t,i,e){return t.createInstance($q,i,e)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(t,i,e){return this.getModifiedEditor().addCommand(t,i,e)}createContextKey(t,i){return this.getModifiedEditor().createContextKey(t,i)}addAction(t){return this.getModifiedEditor().addAction(t)}};function zq(t,i,e,s,n){if(e=e||"",!s){const s=e.indexOf("\n");let o=e;return-1!==s&&(o=e.substring(0,s)),Hq(t,e,i.createByFilepathOrFirstLine(n||null,o),n)}return Hq(t,e,i.createById(s),n)}function Hq(t,i,e,s){return t.createModel(i,e,s)}jq=_q([Nq(2,ur),Nq(3,ah),Nq(4,fr),Nq(5,rH),Nq(6,oT),Nq(7,pd),Nq(8,lI),Nq(9,zO),Nq(10,yH),Nq(11,zH)],jq);class Vq extends te{constructor(t,i,e={orientation:0}){super(),this.submenuActionViewItems=[],this.hasSecondaryActions=!1,this._onDidChangeDropdownVisibility=this._register(new we),this.onDidChangeDropdownVisibility=this._onDidChangeDropdownVisibility.event,this.disposables=this._register(new Xi),this.options=e,this.lookupKeybindings="function"==typeof this.options.getKeyBinding,this.toggleMenuAction=this._register(new Uq((()=>{var t;return null===(t=this.toggleMenuActionViewItem)||void 0===t?void 0:t.show()}),e.toggleMenuTitle)),this.element=document.createElement("div"),this.element.className="monaco-toolbar",t.appendChild(this.element),this.actionBar=this._register(new YB(this.element,{orientation:e.orientation,ariaLabel:e.ariaLabel,actionRunner:e.actionRunner,allowContextMenu:e.allowContextMenu,highlightToggledItems:e.highlightToggledItems,actionViewItemProvider:(t,s)=>{var n;if(t.id===Uq.ID)return this.toggleMenuActionViewItem=new kB(t,t.menuActions,i,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:Cr.asClassNameArray(null!==(n=e.moreIcon)&&void 0!==n?n:Os.toolBarMore),anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,isMenu:!0}),this.toggleMenuActionViewItem.setActionContext(this.actionBar.context),this.disposables.add(this._onDidChangeDropdownVisibility.add(this.toggleMenuActionViewItem.onDidChangeVisibility)),this.toggleMenuActionViewItem;if(e.actionViewItemProvider){const i=e.actionViewItemProvider(t,s);if(i)return i}if(t instanceof br){const e=new kB(t,t.actions,i,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:t.class,anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry});return e.setActionContext(this.actionBar.context),this.submenuActionViewItems.push(e),this.disposables.add(this._onDidChangeDropdownVisibility.add(e.onDidChangeVisibility)),e}}}))}set actionRunner(t){this.actionBar.actionRunner=t}get actionRunner(){return this.actionBar.actionRunner}getElement(){return this.element}getItemAction(t){return this.actionBar.getAction(t)}setActions(t,i){this.clear();const e=t?t.slice(0):[];this.hasSecondaryActions=!!(i&&i.length>0),this.hasSecondaryActions&&i&&(this.toggleMenuAction.menuActions=i.slice(0),e.push(this.toggleMenuAction)),e.forEach((t=>{this.actionBar.push(t,{icon:!0,label:!1,keybinding:this.getKeybindingLabel(t)})}))}getKeybindingLabel(t){var i,e,s;const n=this.lookupKeybindings?null===(e=(i=this.options).getKeyBinding)||void 0===e?void 0:e.call(i,t):void 0;return null!==(s=null==n?void 0:n.getLabel())&&void 0!==s?s:void 0}clear(){this.submenuActionViewItems=[],this.disposables.clear(),this.actionBar.clear()}dispose(){this.clear(),this.disposables.dispose(),super.dispose()}}class Uq extends mr{constructor(t,i){i=i||ot(0,"More Actions..."),super(Uq.ID,i,void 0,!0),this._menuActions=[],this.toggleDropdownMenu=t}async run(){this.toggleDropdownMenu()}get menuActions(){return this._menuActions}set menuActions(t){this._menuActions=t}}Uq.ID="toolbar.toggle.more";var qq=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},Kq=function(t,i){return function(e,s){i(e,s,t)}};let Gq=class extends Vq{constructor(t,i,e,s,n,o,r){super(t,n,{getKeyBinding:t=>{var i;return null!==(i=o.lookupKeybinding(t.id))&&void 0!==i?i:void 0},...i,allowContextMenu:!0,skipTelemetry:"string"==typeof(null==i?void 0:i.telemetrySource)}),this._options=i,this._menuService=e,this._contextKeyService=s,this._contextMenuService=n,this._sessionDisposables=this._store.add(new Xi);const h=null==i?void 0:i.telemetrySource;h&&this._store.add(this.actionBar.onDidRun((t=>r.publicLog2("workbenchActionExecuted",{id:t.action.id,from:h}))))}setActions(t,i=[],e){var s,n,o;this._sessionDisposables.clear();const r=t.slice(),h=i.slice(),c=[];let a=0;const l=[];let u=!1;if(-1!==(null===(s=this._options)||void 0===s?void 0:s.hiddenItemStrategy))for(let t=0;tnull==t?void 0:t.id))),i=this._options.overflowBehavior.maxItems-t.size;let e=0;for(let s=0;s=i&&(r[s]=void 0,l[s]=n))}}w(r),w(l),super.setActions(r,vr.join(l,h)),c.length>0&&this._sessionDisposables.add(Va(this.getElement(),"contextmenu",(t=>{var i,s,n,o,r;const h=new tc(Na(this.getElement()),t),l=this.getItemAction(h.target);if(!l)return;h.preventDefault(),h.stopPropagation();let d,f=!1;if(1===a&&0===(null===(i=this._options)||void 0===i?void 0:i.hiddenItemStrategy)){f=!0;for(let t=0;tthis._menuService.resetHiddenStates(e)}))),this._contextMenuService.showContextMenu({getAnchor:()=>h,getActions:()=>p,menuId:null===(n=this._options)||void 0===n?void 0:n.contextMenu,menuActionOptions:{renderShortTitle:!0,...null===(o=this._options)||void 0===o?void 0:o.menuOptions},skipTelemetry:"string"==typeof(null===(r=this._options)||void 0===r?void 0:r.telemetrySource),contextKeyService:this._contextKeyService})})))}};Gq=qq([Kq(2,Oh),Kq(3,ah),Kq(4,lI),Kq(5,oC),Kq(6,Wh)],Gq);let Zq=class extends Gq{constructor(t,i,e,s,n,o,r,h){super(t,{resetMenu:i,...e},s,n,o,r,h),this._onDidChangeMenuItems=this._store.add(new de);const c=this._store.add(s.createMenu(i,n,{emitEventsForSubmenuChanges:!0})),a=()=>{var i,s,n;const o=[],r=[];UB(c,null==e?void 0:e.menuOptions,{primary:o,secondary:r},null===(i=null==e?void 0:e.toolbarOptions)||void 0===i?void 0:i.primaryGroup,null===(s=null==e?void 0:e.toolbarOptions)||void 0===s?void 0:s.shouldInlineSubmenu,null===(n=null==e?void 0:e.toolbarOptions)||void 0===n?void 0:n.useSeparatorsInPrimaryActions),t.classList.toggle("has-no-actions",0===o.length&&0===r.length),super.setActions(o,r)};this._store.add(c.onDidChange((()=>{a(),this._onDidChangeMenuItems.fire(this)}))),a()}setActions(){throw new Ki("This toolbar is populated from a menu.")}};Zq=qq([Kq(3,Oh),Kq(4,ah),Kq(5,lI),Kq(6,oC),Kq(7,Wh)],Zq);class Qq extends wr{constructor(t){super(),this._getContext=t}runAction(t,i){return super.runAction(t,this._getContext())}}class Jq{constructor(t){this.viewModel=t}getId(){return this.viewModel}}let Yq=class extends te{constructor(t,i,e,s){super(),this._container=t,this._overflowWidgetsDomNode=i,this._workbenchUIElementFactory=e,this._instantiationService=s,this._viewModel=FV(this,void 0),this._collapsed=_V(this,(t=>{var i;return null===(i=this._viewModel.read(t))||void 0===i?void 0:i.collapsed.read(t)})),this._contentHeight=FV(this,500),this.height=_V(this,(t=>(this._collapsed.read(t)?0:this._contentHeight.read(t))+this._outerEditorHeight)),this._modifiedContentWidth=FV(this,0),this._modifiedWidth=FV(this,0),this._originalContentWidth=FV(this,0),this._originalWidth=FV(this,0),this.maxScroll=_V(this,(t=>{const i=this._modifiedContentWidth.read(t)-this._modifiedWidth.read(t),e=this._originalContentWidth.read(t)-this._originalWidth.read(t);return i>e?{maxScroll:i,width:this._modifiedWidth.read(t)}:{maxScroll:e,width:this._originalWidth.read(t)}})),this._elements=Jl("div.multiDiffEntry",[Jl("div.content",{style:{display:"flex",flexDirection:"column",flex:"1",overflow:"hidden"}},[Jl("div.header@header",[Jl("div.collapse-button@collapseButton"),Jl("div.title.show-file-icons@title",[]),Jl("div.actions@actions")]),Jl("div.editorParent",{style:{flex:"1",display:"flex",flexDirection:"column"}},[Jl("div.editorContainer@editor",{style:{flex:"1"}})])])]),this.editor=this._register(this._instantiationService.createInstance(Iq,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode},{})),this.isModifedFocused=Xq(this.editor.getModifiedEditor()),this.isOriginalFocused=Xq(this.editor.getOriginalEditor()),this.isFocused=_V(this,(t=>this.isModifedFocused.read(t)||this.isOriginalFocused.read(t))),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.title)):void 0,this._dataStore=new Xi,this._headerHeight=this._elements.header.clientHeight;const n=new Nj(this._elements.collapseButton,{});this._register(WV((t=>{n.element.className="",n.icon=this._collapsed.read(t)?Os.chevronRight:Os.chevronDown}))),this._register(n.onDidClick((()=>{var t;null===(t=this._viewModel.get())||void 0===t||t.collapsed.set(!this._collapsed.get(),void 0)}))),this._register(WV((t=>{this._elements.editor.style.display=this._collapsed.read(t)?"none":"block"}))),this.editor.getModifiedEditor().onDidLayoutChange((()=>{const t=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(t,void 0)})),this.editor.getOriginalEditor().onDidLayoutChange((()=>{const t=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(t,void 0)})),this._register(this.editor.onDidContentSizeChange((t=>{kV((i=>{this._contentHeight.set(t.contentHeight,i),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),i),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),i)}))}))),this._register(WV((t=>{const i=this.isFocused.read(t);this._elements.root.classList.toggle("focused",i)}))),this._container.appendChild(this._elements.root),this._outerEditorHeight=38,this._register(this._instantiationService.createInstance(Zq,this._elements.actions,Rh.MultiDiffEditorFileToolbar,{actionRunner:this._register(new Qq((()=>{var t,i;return null===(i=null===(t=this._viewModel.get())||void 0===t?void 0:t.diffEditorViewModel)||void 0===i?void 0:i.model.modified.uri}))),menuOptions:{shouldForwardArgs:!0}}))}setScrollLeft(t){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(t):this.editor.getOriginalEditor().setScrollLeft(t)}setData(t){function i(t){return{...t,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0}}const e=t.viewModel.entry.value;e.onOptionsDidChange&&this._dataStore.add(e.onOptionsDidChange((()=>{var t;this.editor.updateOptions(i(null!==(t=e.options)&&void 0!==t?t:{}))}))),kV((s=>{var n,o;null===(n=this._resourceLabel)||void 0===n||n.setUri(t.viewModel.diffEditorViewModel.model.modified.uri),this._dataStore.clear(),this._viewModel.set(t.viewModel,s),this.editor.setModel(t.viewModel.diffEditorViewModel,s),this.editor.updateOptions(i(null!==(o=e.options)&&void 0!==o?o:{}))}))}render(t,i,e,s){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${t.start}px`,this._elements.root.style.height=`${t.length}px`,this._elements.root.style.width=`${i}px`,this._elements.root.style.position="absolute";const n=Math.max(0,Math.min(t.length-this._headerHeight,s.start-t.start));this._elements.header.style.transform=`translateY(${n}px)`,kV((()=>{this.editor.layout({width:i,height:t.length-this._outerEditorHeight})})),this.editor.getOriginalEditor().setScrollTop(e),this._elements.header.classList.toggle("shadow",n>0||e>0)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};function Xq(t){return KV((i=>{const e=new Xi;return e.add(t.onDidFocusEditorWidget((()=>i(!0)))),e.add(t.onDidBlurEditorWidget((()=>i(!1)))),e}),(()=>t.hasWidgetFocus()))}Yq=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(3,ur)],Yq);class tK{constructor(t){this._create=t,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(t){var i;let e;if(0===this._unused.size)e=this._create(t),this._itemData.set(e,t);else{const s=[...this._unused.values()];e=null!==(i=s.find((i=>this._itemData.get(i).getId()===t.getId())))&&void 0!==i?i:s[0],this._unused.delete(e),this._itemData.set(e,t),e.setData(t)}return this._used.add(e),{object:e,dispose:()=>{this._used.delete(e),this._unused.size>5?e.dispose():this._unused.add(e)}}}dispose(){for(const t of this._used)t.dispose();for(const t of this._unused)t.dispose();this._used.clear(),this._unused.clear()}}var iK=function(t,i){return function(e,s){i(e,s,t)}};let eK=class extends te{constructor(t,i,e,s,n,o){super(),this._element=t,this._dimension=i,this._viewModel=e,this._workbenchUIElementFactory=s,this._parentContextKeyService=n,this._parentInstantiationService=o,this._elements=Jl("div",{style:{overflowY:"hidden"}},[Jl("div@content",{style:{overflow:"hidden"}}),Jl("div.monaco-editor@overflowWidgetsDomNode",{})]),this._sizeObserver=this._register(new hU(this._element,void 0)),this._objectPool=this._register(new tK((t=>{const i=this._instantiationService.createInstance(Yq,this._elements.content,this._elements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return i.setData(t),i}))),this._scrollable=this._register(new xk({forceIntegerValues:!1,scheduleAtNextAnimationFrame:t=>Qa(Na(this._element),t),smoothScrollDuration:100})),this._scrollableElement=this._register(new Fk(this._elements.root,{vertical:1,horizontal:1,className:"monaco-component",useShadows:!1},this._scrollable)),this.scrollTop=KV(this._scrollableElement.onScroll,(()=>this._scrollableElement.getScrollPosition().scrollTop)),this.scrollLeft=KV(this._scrollableElement.onScroll,(()=>this._scrollableElement.getScrollPosition().scrollLeft)),this._viewItems=BV(this,((t,i)=>{const e=this._viewModel.read(t);return e?e.items.read(t).map((t=>i.add(new sK(t,this._objectPool,this.scrollLeft)))):[]})),this._totalHeight=this._viewItems.map(this,((t,i)=>t.reduce(((t,e)=>t+e.contentHeight.read(i)),0))),this.activeDiffItem=_V(this,(t=>this._viewItems.read(t).find((i=>{var e;return null===(e=i.template.read(t))||void 0===e?void 0:e.isFocused.read(t)})))),this.lastActiveDiffItem=function(t){let i;return _V((e=>(i=t(e,i),i)))}(((t,i)=>{var e;return null!==(e=this.activeDiffItem.read(t))&&void 0!==e?e:i})),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._parentInstantiationService.createChild(new iT([ah,this._contextKeyService])),this._contextKeyService.createKey(YC.inMultiDiffEditor.key,!0);const r=this._parentContextKeyService.createKey(YC.multiDiffEditorAllCollapsed.key,!1);this._register(WV((t=>{const i=this._viewModel.read(t);if(i){const e=i.items.read(t).every((i=>i.collapsed.read(t)));r.set(e)}}))),this._register(WV((t=>{const i=this.lastActiveDiffItem.read(t);yV((e=>{var s;null===(s=this._viewModel.read(t))||void 0===s||s.activeDiffItem.set(null==i?void 0:i.viewModel,e)}))}))),this._register(WV((t=>{const i=this._dimension.read(t);this._sizeObserver.observe(i)}))),this._elements.content.style.position="relative",this._register(WV((t=>{const i=this._sizeObserver.height.read(t);this._elements.root.style.height=`${i}px`;const e=this._totalHeight.read(t);this._elements.content.style.height=`${e}px`;const s=this._sizeObserver.width.read(t);let n=s;const o=up(this._viewItems.read(t),(i=>i.maxScroll.read(t).maxScroll));o&&(n=s+o.maxScroll.read(t).maxScroll),this._scrollableElement.setScrollDimensions({width:s,height:i,scrollHeight:e,scrollWidth:n})}))),t.replaceChildren(this._scrollableElement.getDomNode()),this._register(Yi((()=>{t.replaceChildren()}))),this._register(this._register(WV((t=>{kV((()=>{this.render(t)}))}))))}render(t){const i=this.scrollTop.read(t);let e=0,s=0,n=0;const o=this._sizeObserver.height.read(t),r=np.ofStartAndLength(i,o),h=this._sizeObserver.width.read(t);for(const c of this._viewItems.read(t)){const a=c.contentHeight.read(t),l=Math.min(a,o),u=np.ofStartAndLength(s,l),d=np.ofStartAndLength(n,a);if(d.isBefore(r))e-=a-l,c.hide();else if(d.isAfter(r))c.hide();else{const t=Math.max(0,Math.min(r.start-d.start,a-l));e-=t;const s=np.ofStartAndLength(i+e,o);c.render(u,t,h,s)}s+=l,n+=a}this._elements.content.style.transform=`translateY(${-(i+e)}px)`}};eK=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([iK(4,ah),iK(5,ur)],eK);class sK extends te{constructor(t,i,e){super(),this.viewModel=t,this._objectPool=i,this._scrollLeft=e,this._lastTemplateData=FV(this,{contentHeight:500,maxScroll:{maxScroll:0,width:0}}),this._templateRef=this._register(RV(this,void 0)),this.contentHeight=_V(this,(t=>{var i,e,s;return null!==(s=null===(e=null===(i=this._templateRef.read(t))||void 0===i?void 0:i.object.height)||void 0===e?void 0:e.read(t))&&void 0!==s?s:this._lastTemplateData.read(t).contentHeight})),this.maxScroll=_V(this,(t=>{var i,e;return null!==(e=null===(i=this._templateRef.read(t))||void 0===i?void 0:i.object.maxScroll.read(t))&&void 0!==e?e:this._lastTemplateData.read(t).maxScroll})),this.template=_V(this,(t=>{var i;return null===(i=this._templateRef.read(t))||void 0===i?void 0:i.object})),this._isHidden=FV(this,!1),this._register(WV((t=>{var i;const e=this._scrollLeft.read(t);null===(i=this._templateRef.read(t))||void 0===i||i.object.setScrollLeft(e)}))),this._register(WV((t=>{const i=this._templateRef.read(t);i&&this._isHidden.read(t)&&(i.object.isFocused.read(t)||yV((t=>{this._lastTemplateData.set({contentHeight:i.object.height.get(),maxScroll:{maxScroll:0,width:0}},t),i.object.hide(),this._templateRef.set(void 0,t)})))})))}dispose(){this.hide(),super.dispose()}toString(){return`VirtualViewItem(${this.viewModel.entry.value.title})`}hide(){this._isHidden.set(!0,void 0)}render(t,i,e,s){this._isHidden.set(!1,void 0);let n=this._templateRef.get();n||(n=this._objectPool.getUnusedObj(new Jq(this.viewModel)),this._templateRef.set(n,void 0)),n.object.render(t,e,i,s)}}dw("multiDiffEditor.headerBackground",{dark:"#808080",light:"#b4b4b4",hcDark:"#808080",hcLight:"#b4b4b4"},ot(0,"The background color of the diff editor's header"));let nK=class extends te{constructor(t,i,e){super(),this._element=t,this._workbenchUIElementFactory=i,this._instantiationService=e,this._dimension=FV(this,void 0),this._viewModel=FV(this,void 0),this._widgetImpl=BV(this,((t,i)=>(fU(Yq,t),i.add(this._instantiationService.createInstance(fU(eK,t),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory))))),this._register(XV(this._widgetImpl))}};function oK(t){const i=pV.get(oC);return i instanceof sV?i.addDynamicKeybindings(t.map((t=>({keybinding:t.keybinding,command:t.command,commandArgs:t.commandArgs,when:zr.deserialize(t.when)})))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),te.None)}function rK(t,i){return"boolean"==typeof t?t:i}function hK(t,i){return"string"==typeof t?t:i}function cK(t,i=!1){i&&(t=t.map((function(t){return t.toLowerCase()})));const e=function(t){const i={};for(const e of t)i[e]=!0;return i}(t);return i?function(t){return void 0!==e[t.toLowerCase()]&&e.hasOwnProperty(t.toLowerCase())}:function(t){return void 0!==e[t]&&e.hasOwnProperty(t)}}function aK(t,i){i=i.replace(/@@/g,"");let e,s=0;do{e=!1,i=i.replace(/@(\w+)/g,(function(s,n){e=!0;let o="";if("string"==typeof t[n])o=t[n];else{if(!(t[n]&&t[n]instanceof RegExp))throw pm(t,void 0===t[n]?"language definition does not contain attribute '"+n+"', used at: "+i:"attribute reference '"+n+"' must be a string, used at: "+i);o=t[n].source}return um(o)?"":"(?:"+o+")"})),s++}while(e&&s<5);return i=i.replace(/\x01/g,"@"),new RegExp(i,(t.ignoreCase?"i":"")+(t.unicode?"u":""))}function lK(t,i,e,s){let n=-1,o=e,r=e.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);r&&(r[3]&&(n=parseInt(r[3]),r[2]&&(n+=100)),o=r[4]);let h,c="~",a=o;if(o&&0!==o.length?/^\w*$/.test(a)?c="==":(r=o.match(/^(@|!@|~|!~|==|!=)(.*)$/),r&&(c=r[1],a=r[2])):(c="!=",a=""),"~"!==c&&"!~"!==c||!/^(\w|\|)*$/.test(a))if("@"===c||"!@"===c){const e=t[a];if(!e)throw pm(t,"the @ match target '"+a+"' is not defined, in rule: "+i);if(!function(t,i){if(!i)return!1;if(!Array.isArray(i))return!1;for(const t of i)if("string"!=typeof t)return!1;return!0}(0,e))throw pm(t,"the @ match target '"+a+"' must be an array of strings, in rule: "+i);const s=cK(e,t.ignoreCase);h=function(t){return"@"===c?s(t):!s(t)}}else if("~"===c||"!~"===c)if(a.indexOf("$")<0){const i=aK(t,"^"+a+"$");h=function(t){return"~"===c?i.test(t):!i.test(t)}}else h=function(i,e,s,n){return aK(t,"^"+gm(t,a,e,s,n)+"$").test(i)};else if(a.indexOf("$")<0){const i=dm(t,a);h=function(t){return"=="===c?t===i:t!==i}}else{const i=dm(t,a);h=function(e,s,n,o){const r=gm(t,i,s,n,o);return"=="===c?e===r:e!==r}}else{const i=cK(a.split("|"),t.ignoreCase);h=function(t){return"~"===c?i(t):!i(t)}}return-1===n?{name:e,value:s,test:function(t,i,e,s){return h(t,t,i,e,s)}}:{name:e,value:s,test:function(t,i,e,s){const o=function(t,i,e,s){if(s<0)return t;if(s=100){s-=100;const t=e.split(".");if(t.unshift(e),s=0&&(s.tokenSubst=!0),"string"==typeof e.bracket)if("@open"===e.bracket)s.bracket=1;else{if("@close"!==e.bracket)throw pm(t,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+i);s.bracket=-1}if(e.next){if("string"!=typeof e.next)throw pm(t,"the next state must be a string value in rule: "+i);{let n=e.next;if(!/^(@pop|@push|@popall)$/.test(n)&&("@"===n[0]&&(n=n.substr(1)),n.indexOf("$")<0&&!function(t,i){let e=i;for(;e&&e.length>0;){if(t.stateNames[e])return!0;const i=e.lastIndexOf(".");e=i<0?null:e.substr(0,i)}return!1}(t,gm(t,n,"",[],""))))throw pm(t,"the next state '"+e.next+"' is not defined in rule: "+i);s.next=n}}return"number"==typeof e.goBack&&(s.goBack=e.goBack),"string"==typeof e.switchTo&&(s.switchTo=e.switchTo),"string"==typeof e.log&&(s.log=e.log),"string"==typeof e.nextEmbedded&&(s.nextEmbedded=e.nextEmbedded,t.usesEmbedded=!0),s}}if(Array.isArray(e)){const s=[];for(let n=0,o=e.length;n=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(2,ur)],nK);class dK{constructor(t){this.regex=new RegExp(""),this.action={token:""},this.matchOnlyAtLineStart=!1,this.name="",this.name=t}setRegex(t,i){let e;if("string"==typeof i)e=i;else{if(!(i instanceof RegExp))throw pm(t,"rules must start with a match string or regular expression: "+this.name);e=i.source}this.matchOnlyAtLineStart=e.length>0&&"^"===e[0],this.name=this.name+": "+e,this.regex=aK(t,"^(?:"+(this.matchOnlyAtLineStart?e.substr(1):e)+")")}setAction(t,i){this.action=uK(t,this.name,i)}}function fK(t,i){if(!i||"object"!=typeof i)throw new Error("Monarch: expecting a language definition object");const e={};e.languageId=t,e.includeLF=rK(i.includeLF,!1),e.noThrow=!1,e.maxStack=100,e.start="string"==typeof i.start?i.start:null,e.ignoreCase=rK(i.ignoreCase,!1),e.unicode=rK(i.unicode,!1),e.tokenPostfix=hK(i.tokenPostfix,"."+e.languageId),e.defaultToken=hK(i.defaultToken,"source"),e.usesEmbedded=!1;const s=i;function n(t,o,r){for(const h of r){let r=h.include;if(r){if("string"!=typeof r)throw pm(e,"an 'include' attribute must be a string at: "+t);if("@"===r[0]&&(r=r.substr(1)),!i.tokenizer[r])throw pm(e,"include target '"+r+"' is not defined at: "+t);n(t+"."+r,o,i.tokenizer[r])}else{const i=new dK(t);if(Array.isArray(h)&&h.length>=1&&h.length<=3)if(i.setRegex(s,h[0]),h.length>=3)if("string"==typeof h[1])i.setAction(s,{token:h[1],next:h[2]});else{if("object"!=typeof h[1])throw pm(e,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+t);{const t=h[1];t.next=h[2],i.setAction(s,t)}}else i.setAction(s,h[1]);else{if(!h.regex)throw pm(e,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+t);h.name&&"string"==typeof h.name&&(i.name=h.name),h.matchOnlyAtStart&&(i.matchOnlyAtLineStart=rK(h.matchOnlyAtLineStart,!1)),i.setRegex(s,h.regex),i.setAction(s,h.action)}o.push(i)}}}if(s.languageId=t,s.includeLF=e.includeLF,s.ignoreCase=e.ignoreCase,s.unicode=e.unicode,s.noThrow=e.noThrow,s.usesEmbedded=e.usesEmbedded,s.stateNames=i.tokenizer,s.defaultToken=e.defaultToken,!i.tokenizer||"object"!=typeof i.tokenizer)throw pm(e,"a language definition must define the 'tokenizer' attribute as an object");e.tokenizer=[];for(const t in i.tokenizer)if(i.tokenizer.hasOwnProperty(t)){e.start||(e.start=t);const s=i.tokenizer[t];e.tokenizer[t]=new Array,n("tokenizer."+t,e.tokenizer[t],s)}if(e.usesEmbedded=s.usesEmbedded,i.brackets){if(!Array.isArray(i.brackets))throw pm(e,"the 'brackets' attribute must be defined as an array")}else i.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const o=[];for(const t of i.brackets){let i=t;if(i&&Array.isArray(i)&&3===i.length&&(i={token:i[2],open:i[0],close:i[1]}),i.open===i.close)throw pm(e,"open and close brackets in a 'brackets' attribute must be different: "+i.open+"\n hint: use the 'bracket' attribute if matching on equal brackets is required.");if("string"!=typeof i.open||"string"!=typeof i.token||"string"!=typeof i.close)throw pm(e,"every element in the 'brackets' array must be a '{open,close,token}' object or array");o.push({token:i.token+e.tokenPostfix,open:dm(e,i.open),close:dm(e,i.close)})}return e.brackets=o,e.noThrow=!0,e}class pK{constructor(t,i){this._languageId=t,this._actual=i}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(t,i,e){if("function"==typeof this._actual.tokenize)return gK.adaptTokenize(this._languageId,this._actual,t,e);throw new Error("Not supported!")}tokenizeEncoded(t,i,e){const s=this._actual.tokenizeEncoded(t,e);return new Bs(s.tokens,s.endState)}}class gK{constructor(t,i,e,s){this._languageId=t,this._actual=i,this._languageService=e,this._standaloneThemeService=s}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(t,i){const e=[];let s=0;for(let n=0,o=t.length;n0&&n[o-1]===c)continue;let a=h.startIndex;0===t?a=0:a{const e=await Promise.resolve(i.create());return e?"function"==typeof e.getInitialState?wK(t,e):new Dm(pV.get(yd),pV.get(rH),t,fK(t,e),pV.get(pd)):null}));return Zs.registerFactory(t,e)}const bK=dr("IEditorCancelService"),yK=new ch("cancellableOperation",!1,ot(0,"Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));Cd(bK,class{constructor(){this._tokens=new WeakMap}add(t,i){let e,s=this._tokens.get(t);return s||(s=t.invokeWithinContext((t=>({key:yK.bindTo(t.get(ah)),tokens:new Ut}))),this._tokens.set(t,s)),s.key.set(!0),e=s.tokens.push(i),()=>{e&&(e(),s.key.set(!s.tokens.isEmpty()),e=void 0)}}cancel(t){const i=this._tokens.get(t);if(!i)return;const e=i.tokens.pop();e&&(e.cancel(),i.key.set(!i.tokens.isEmpty()))}},1);class kK extends Ce{constructor(t,i){super(i),this.editor=t,this._unregister=t.invokeWithinContext((i=>i.get(bK).add(t,this)))}dispose(){this._unregister(),super.dispose()}}hu(new class extends eu{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:yK})}runEditorCommand(t,i){t.get(bK).cancel(i)}});class xK{constructor(t,i){if(this.flags=i,1&this.flags){const i=t.getModel();this.modelVersionId=i?qn("{0}#{1}",i.uri.toString(),i.getVersionId()):null}else this.modelVersionId=null;this.position=4&this.flags?t.getPosition():null,this.selection=2&this.flags?t.getSelection():null,8&this.flags?(this.scrollLeft=t.getScrollLeft(),this.scrollTop=t.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}_equals(t){if(!(t instanceof xK))return!1;const i=t;return this.modelVersionId===i.modelVersionId&&this.scrollLeft===i.scrollLeft&&this.scrollTop===i.scrollTop&&!(!this.position&&i.position||this.position&&!i.position||this.position&&i.position&&!this.position.equals(i.position))&&!(!this.selection&&i.selection||this.selection&&!i.selection||this.selection&&i.selection&&!this.selection.equalsRange(i.selection))}validate(t){return this._equals(new xK(t,this.flags))}}class CK extends kK{constructor(t,i,e,s){super(t,s),this._listener=new Xi,4&i&&this._listener.add(t.onDidChangeCursorPosition((t=>{e&&Ms.containsPosition(e,t.position)||this.cancel()}))),2&i&&this._listener.add(t.onDidChangeCursorSelection((t=>{e&&Ms.containsRange(e,t.selection)||this.cancel()}))),8&i&&this._listener.add(t.onDidScrollChange((()=>this.cancel()))),1&i&&(this._listener.add(t.onDidChangeModel((()=>this.cancel()))),this._listener.add(t.onDidChangeModelContent((()=>this.cancel()))))}dispose(){this._listener.dispose(),super.dispose()}}class SK extends Ce{constructor(t,i){super(i),this._listener=t.onDidChangeContent((()=>this.cancel()))}dispose(){this._listener.dispose(),super.dispose()}}function DK(t){return!(!t||"function"!=typeof t.getEditorType)&&t.getEditorType()===Og.ICodeEditor}function EK(t){return!(!t||"function"!=typeof t.getEditorType)&&t.getEditorType()===Og.IDiffEditor}function AK(t){return DK(t)?t:EK(t)?t.getModifiedEditor():function(t){return!!t&&"object"==typeof t&&"function"==typeof t.onDidChangeActiveEditor}(t)&&DK(t.activeCodeEditor)?t.activeCodeEditor:null}class MK{static _handleEolEdits(t,i){let e;const s=[];for(const t of i)"number"==typeof t.eol&&(e=t.eol),t.range&&"string"==typeof t.text&&s.push(t);return"number"==typeof e&&t.hasModel()&&t.getModel().pushEOL(e),s}static _isFullModelReplaceEdit(t,i){if(!t.hasModel())return!1;const e=t.getModel(),s=e.validateRange(i.range);return e.getFullModelRange().equalsRange(s)}static execute(t,i,e){e&&t.pushUndoStop();const s=iU.capture(t),n=MK._handleEolEdits(t,i);1===n.length&&MK._isFullModelReplaceEdit(t,n[0])?t.executeEdits("formatEditsCommand",n.map((t=>pO.replace(Ms.lift(t.range),t.text)))):t.executeEdits("formatEditsCommand",n.map((t=>pO.replaceMove(Ms.lift(t.range),t.text)))),e&&t.pushUndoStop(),s.restoreRelativeVerticalPositionOfCursor(t)}}class LK{constructor(t){this.value=t,this._lower=t.toLowerCase()}static toKey(t){return"string"==typeof t?t.toLowerCase():t._lower}}class FK{constructor(t){if(this._set=new Set,t)for(const i of t)this.add(i)}add(t){this._set.add(LK.toKey(t))}has(t){return this._set.has(LK.toKey(t))}}function TK(t,i,e){const s=[],n=new FK,o=t.ordered(e);for(const t of o)s.push(t),t.extensionId&&n.add(t.extensionId);const r=i.ordered(e);for(const t of r){if(t.extensionId){if(n.has(t.extensionId))continue;n.add(t.extensionId)}s.push({displayName:t.displayName,extensionId:t.extensionId,provideDocumentFormattingEdits:(i,e,s)=>t.provideDocumentRangeFormattingEdits(i,i.getFullModelRange(),e,s)})}return s}class RK{static setFormatterSelector(t){return{dispose:RK._selectors.unshift(t)}}static async select(t,i,e){if(0===t.length)return;const s=Ht.first(RK._selectors);return s?await s(t,i,e):void 0}}async function OK(t,i,e,s,n,o,r){const h=t.get(ur),{documentRangeFormattingEditProvider:c}=t.get(xg),a=DK(i)?i.getModel():i,l=c.ordered(a),u=await RK.select(l,a,s);u&&(n.report(u),await h.invokeFunction(IK,u,i,e,o,r))}async function IK(t,i,e,s,n,o){var r,h;const c=t.get(vP),a=t.get(jh),l=t.get(Jm);let u,d;DK(e)?(u=e.getModel(),d=new CK(e,5,void 0,n)):(u=e,d=new SK(e,n));const f=[];let p=0;for(const t of A(s).sort(Ms.compareRangesUsingStarts))p>0&&Ms.areIntersectingOrTouching(f[p-1],t)?f[p-1]=Ms.fromPositions(f[p-1].getStartPosition(),t.getEndPosition()):p=f.push(t);const g=async t=>{var e,s;a.trace("[format][provideDocumentRangeFormattingEdits] (request)",null===(e=i.extensionId)||void 0===e?void 0:e.value,t);const n=await i.provideDocumentRangeFormattingEdits(u,t,u.getFormattingOptions(),d.token)||[];return a.trace("[format][provideDocumentRangeFormattingEdits] (response)",null===(s=i.extensionId)||void 0===s?void 0:s.value,n),n},m=(t,i)=>{if(!t.length||!i.length)return!1;const e=t.reduce(((t,i)=>Ms.plusRange(t,i.range)),t[0].range);if(!i.some((t=>Ms.intersectRanges(e,t.range))))return!1;for(const e of t)for(const t of i)if(Ms.intersectRanges(e.range,t.range))return!0;return!1},w=[],v=[];try{if("function"==typeof i.provideDocumentRangesFormattingEdits){a.trace("[format][provideDocumentRangeFormattingEdits] (request)",null===(r=i.extensionId)||void 0===r?void 0:r.value,f);const t=await i.provideDocumentRangesFormattingEdits(u,f,u.getFormattingOptions(),d.token)||[];a.trace("[format][provideDocumentRangeFormattingEdits] (response)",null===(h=i.extensionId)||void 0===h?void 0:h.value,t),v.push(t)}else{for(const t of f){if(d.token.isCancellationRequested)return!0;v.push(await g(t))}for(let t=0;t({text:t.text,range:Ms.lift(t.range),forceMoveMarkers:!0}))),(t=>{for(const{range:e}of t)if(Ms.areIntersectingOrTouching(e,i))return[new Ls(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn)];return null}))}return l.notify("format",o),!0}async function _K(t,i,e,s,n,o){const r=t.get(ur),h=t.get(xg),c=DK(i)?i.getModel():i,a=TK(h.documentFormattingEditProvider,h.documentRangeFormattingEditProvider,c),l=await RK.select(a,c,e);l&&(s.report(l),await r.invokeFunction(NK,l,i,e,n,o))}async function NK(t,i,e,s,n,o){const r=t.get(vP),h=t.get(Jm);let c,a,l;DK(e)?(c=e.getModel(),a=new CK(e,5,void 0,n)):(c=e,a=new SK(e,n));try{const t=await i.provideDocumentFormattingEdits(c,c.getFormattingOptions(),a.token);if(l=await r.computeMoreMinimalEdits(c.uri,t),a.token.isCancellationRequested)return!0}finally{a.dispose()}if(!l||0===l.length)return!1;if(DK(e))MK.execute(e,l,2!==s),2!==s&&e.revealPositionInCenterIfOutsideViewport(e.getPosition(),1);else{const[{range:t}]=l,i=new Ls(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn);c.pushEditOperations([i],l.map((t=>({text:t.text,range:Ms.lift(t.range),forceMoveMarkers:!0}))),(t=>{for(const{range:e}of t)if(Ms.areIntersectingOrTouching(e,i))return[new Ls(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn)];return null}))}return h.notify("format",o),!0}function BK(t,i,e,s,n,o,r){const h=i.onTypeFormattingEditProvider.ordered(e);return 0===h.length||h[0].autoFormatTriggerCharacters.indexOf(n)<0?Promise.resolve(void 0):Promise.resolve(h[0].provideOnTypeFormattingEdits(e,s,n,o,r)).catch(Pi).then((i=>t.computeMoreMinimalEdits(e.uri,i)))}RK._selectors=new Ut,Dr.registerCommand("_executeFormatRangeProvider",(async function(t,...i){const[e,s,n]=i;q(ms.isUri(e)),q(Ms.isIRange(s));const o=t.get(gr),r=t.get(vP),h=t.get(xg),c=await o.createModelReference(e);try{return async function(t,i,e,s,n,o){const r=i.documentRangeFormattingEditProvider.ordered(e);for(const i of r){const r=await Promise.resolve(i.provideDocumentRangeFormattingEdits(e,s,n,o)).catch(Pi);if(b(r))return await t.computeMoreMinimalEdits(e.uri,r)}}(r,h,c.object.textEditorModel,Ms.lift(s),n,ke.None)}finally{c.dispose()}})),Dr.registerCommand("_executeFormatDocumentProvider",(async function(t,...i){const[e,s]=i;q(ms.isUri(e));const n=t.get(gr),o=t.get(vP),r=t.get(xg),h=await n.createModelReference(e);try{return async function(t,i,e,s,n){const o=TK(i.documentFormattingEditProvider,i.documentRangeFormattingEditProvider,e);for(const i of o){const o=await Promise.resolve(i.provideDocumentFormattingEdits(e,s,n)).catch(Pi);if(b(o))return await t.computeMoreMinimalEdits(e.uri,o)}}(o,r,h.object.textEditorModel,s,ke.None)}finally{h.dispose()}})),Dr.registerCommand("_executeFormatOnTypeProvider",(async function(t,...i){const[e,s,n,o]=i;q(ms.isUri(e)),q(As.isIPosition(s)),q("string"==typeof n);const r=t.get(gr),h=t.get(vP),c=t.get(xg),a=await r.createModelReference(e);try{return BK(h,c,a.object.textEditorModel,As.lift(s),n,o,ke.None)}finally{a.dispose()}})),_i.wrappingIndent.defaultValue=0,_i.glyphMargin.defaultValue=!1,_i.autoIndent.defaultValue=3,_i.overviewRulerLanes.defaultValue=2,RK.setFormatterSelector((t=>Promise.resolve(t[0])));const PK=Pn();PK.editor={create:function(t,i,e){return pV.initialize(e||{}).createInstance(Wq,t,i)},getEditors:function(){return pV.get(fr).listCodeEditors()},getDiffEditors:function(){return pV.get(fr).listDiffEditors()},onDidCreateEditor:function(t){return pV.get(fr).onCodeEditorAdd((i=>{t(i)}))},onDidCreateDiffEditor:function(t){return pV.get(fr).onDiffEditorAdd((i=>{t(i)}))},createDiffEditor:function(t,i,e){return pV.initialize(e||{}).createInstance(jq,t,i)},addCommand:function(t){if("string"!=typeof t.id||"function"!=typeof t.run)throw new Error("Invalid command descriptor, `id` and `run` are required properties!");return Dr.registerCommand(t.id,t.run)},addEditorAction:function(t){if("string"!=typeof t.id||"string"!=typeof t.label||"function"!=typeof t.run)throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");const i=zr.deserialize(t.precondition),e=new Xi;if(e.add(Dr.registerCommand(t.id,((e,...s)=>eu.runEditorCommand(e,s,i,((i,e,s)=>Promise.resolve(t.run(e,...s))))))),t.contextMenuGroupId&&e.add(_h.appendMenuItem(Rh.EditorContext,{command:{id:t.id,title:t.label},when:i,group:t.contextMenuGroupId,order:t.contextMenuOrder||0})),Array.isArray(t.keybindings)){const s=pV.get(oC);if(s instanceof sV){const n=zr.and(i,zr.deserialize(t.keybindingContext));e.add(s.addDynamicKeybindings(t.keybindings.map((i=>({keybinding:i,command:t.id,when:n})))))}else console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService")}return e},addKeybindingRule:function(t){return oK([t])},addKeybindingRules:oK,createModel:function(t,i,e){const s=pV.get(yd),n=s.getLanguageIdByMimeType(i)||i;return zq(pV.get(pr),s,t,n,e)},setModelLanguage:function(t,i){const e=pV.get(yd),s=e.getLanguageIdByMimeType(i)||i||Ud;t.setLanguage(e.createById(s))},setModelMarkers:function(t,i,e){t&&pV.get(kP).changeOne(i,t.uri,e)},getModelMarkers:function(t){return pV.get(kP).read(t)},removeAllMarkers:function(t){pV.get(kP).changeAll(t,[])},onDidChangeMarkers:function(t){return pV.get(kP).onMarkerChanged(t)},getModels:function(){return pV.get(pr).getModels()},getModel:function(t){return pV.get(pr).getModel(t)},onDidCreateModel:function(t){return pV.get(pr).onModelAdded(t)},onWillDisposeModel:function(t){return pV.get(pr).onModelRemoved(t)},onDidChangeModelLanguage:function(t){return pV.get(pr).onModelLanguageChanged((i=>{t({model:i.model,oldLanguage:i.oldLanguageId})}))},createWebWorker:function(t){return function(t,i,e){return new Rg(t,i,e)}(pV.get(pr),pV.get(Xd),t)},colorizeElement:function(t,i){const e=pV.get(yd),s=pV.get(rH);return Fm.colorizeElement(s,e,t,i).then((()=>{s.registerEditorContainer(t)}))},colorize:function(t,i,e){const s=pV.get(yd);return pV.get(rH).registerEditorContainer($n.document.body),Fm.colorize(s,t,i,e)},colorizeModelLine:function(t,i,e=4){return pV.get(rH).registerEditorContainer($n.document.body),Fm.colorizeModelLine(t,i,e)},tokenize:function(t,i){Zs.getOrCreate(i);const e=function(t){return Zs.get(t)||{getInitialState:()=>Ig,tokenize:(i,e,s)=>_g(t,s)}}(i),s=Xn(t),n=[];let o=e.getInitialState();for(let t=0,i=s.length;t("string"==typeof i&&(i=ms.parse(i)),t.open(i))})},registerEditorOpener:function(t){return pV.get(fr).registerCodeEditorOpenHandler((async(i,e)=>{var s;if(!e)return null;const n=null===(s=i.options)||void 0===s?void 0:s.selection;let o;return n&&"number"==typeof n.endLineNumber&&"number"==typeof n.endColumn?o=n:n&&(o={lineNumber:n.startLineNumber,column:n.startColumn}),await t.openCodeEditor(e,i.resource,o)?e:null}))},AccessibilitySupport:Qs,ContentWidgetPositionPreference:sn,CursorChangeReason:nn,DefaultEndOfLine:on,EditorAutoIndentStrategy:hn,EditorOption:cn,EndOfLinePreference:an,EndOfLineSequence:ln,MinimapPosition:bn,MouseTargetType:yn,OverlayWidgetPositionPreference:kn,OverviewRulerLane:xn,GlyphMarginLane:un,RenderLineNumbersType:Sn,RenderMinimap:Dn,ScrollbarVisibility:An,ScrollType:En,TextEditorCursorBlinkingStyle:On,TextEditorCursorStyle:In,TrackedRangeStickiness:_n,WrappingIndent:Nn,InjectedTextCursorStops:fn,PositionAffinity:Cn,ShowAiIconMode:Ln,ConfigurationChangedEvent:Yt,BareFontInfo:rr,FontInfo:hr,TextModelResolvedOptions:jf,FindMatch:zf,ApplyUpdateResult:ii,EditorZoom:nr,createMultiFileDiffEditor:function(t,i){const e=pV.initialize(i||{});return new nK(t,{},e)},EditorType:Og,EditorOptions:_i},PK.languages={register:function(t){Vd.registerLanguage(t)},getLanguages:function(){let t=[];return t=t.concat(Vd.getLanguages()),t},onLanguage:function(t,i){return pV.withServices((()=>{const e=pV.get(yd).onDidRequestRichLanguageFeatures((s=>{s===t&&(e.dispose(),i())}));return e}))},onLanguageEncountered:function(t,i){return pV.withServices((()=>{const e=pV.get(yd).onDidRequestBasicLanguageFeatures((s=>{s===t&&(e.dispose(),i())}));return e}))},getEncodedLanguageId:function(t){return pV.get(yd).languageIdCodec.encodeLanguageId(t)},setLanguageConfiguration:function(t,i){if(!pV.get(yd).isRegisteredLanguageId(t))throw new Error(`Cannot set configuration for unknown language ${t}`);return pV.get(Xd).register(t,i,100)},setColorMap:function(t){const i=pV.get(rH);if(t){const e=[null];for(let i=1,s=t.length;ii}):Zs.register(t,wK(t,i))},setMonarchTokensProvider:function(t,i){return mK(i)?vK(t,{create:()=>i}):Zs.register(t,(i=>new Dm(pV.get(yd),pV.get(rH),t,fK(t,i),pV.get(pd)))(i))},registerReferenceProvider:function(t,i){return pV.get(xg).referenceProvider.register(t,i)},registerRenameProvider:function(t,i){return pV.get(xg).renameProvider.register(t,i)},registerCompletionItemProvider:function(t,i){return pV.get(xg).completionProvider.register(t,i)},registerSignatureHelpProvider:function(t,i){return pV.get(xg).signatureHelpProvider.register(t,i)},registerHoverProvider:function(t,i){return pV.get(xg).hoverProvider.register(t,{provideHover:(t,e,s)=>{const n=t.getWordAtPosition(e);return Promise.resolve(i.provideHover(t,e,s)).then((t=>{if(t)return!t.range&&n&&(t.range=new Ms(e.lineNumber,n.startColumn,e.lineNumber,n.endColumn)),t.range||(t.range=new Ms(e.lineNumber,e.column,e.lineNumber,e.column)),t}))}})},registerDocumentSymbolProvider:function(t,i){return pV.get(xg).documentSymbolProvider.register(t,i)},registerDocumentHighlightProvider:function(t,i){return pV.get(xg).documentHighlightProvider.register(t,i)},registerLinkedEditingRangeProvider:function(t,i){return pV.get(xg).linkedEditingRangeProvider.register(t,i)},registerDefinitionProvider:function(t,i){return pV.get(xg).definitionProvider.register(t,i)},registerImplementationProvider:function(t,i){return pV.get(xg).implementationProvider.register(t,i)},registerTypeDefinitionProvider:function(t,i){return pV.get(xg).typeDefinitionProvider.register(t,i)},registerCodeLensProvider:function(t,i){return pV.get(xg).codeLensProvider.register(t,i)},registerCodeActionProvider:function(t,i,e){return pV.get(xg).codeActionProvider.register(t,{providedCodeActionKinds:null==e?void 0:e.providedCodeActionKinds,documentation:null==e?void 0:e.documentation,provideCodeActions:(t,e,s,n)=>{const o=pV.get(kP).read({resource:t.uri}).filter((t=>Ms.areIntersectingOrTouching(t,e)));return i.provideCodeActions(t,e,{markers:o,only:s.only,trigger:s.trigger},n)},resolveCodeAction:i.resolveCodeAction})},registerDocumentFormattingEditProvider:function(t,i){return pV.get(xg).documentFormattingEditProvider.register(t,i)},registerDocumentRangeFormattingEditProvider:function(t,i){return pV.get(xg).documentRangeFormattingEditProvider.register(t,i)},registerOnTypeFormattingEditProvider:function(t,i){return pV.get(xg).onTypeFormattingEditProvider.register(t,i)},registerLinkProvider:function(t,i){return pV.get(xg).linkProvider.register(t,i)},registerColorProvider:function(t,i){return pV.get(xg).colorProvider.register(t,i)},registerFoldingRangeProvider:function(t,i){return pV.get(xg).foldingRangeProvider.register(t,i)},registerDeclarationProvider:function(t,i){return pV.get(xg).declarationProvider.register(t,i)},registerSelectionRangeProvider:function(t,i){return pV.get(xg).selectionRangeProvider.register(t,i)},registerDocumentSemanticTokensProvider:function(t,i){return pV.get(xg).documentSemanticTokensProvider.register(t,i)},registerDocumentRangeSemanticTokensProvider:function(t,i){return pV.get(xg).documentRangeSemanticTokensProvider.register(t,i)},registerInlineCompletionsProvider:function(t,i){return pV.get(xg).inlineCompletionsProvider.register(t,i)},registerInlayHintsProvider:function(t,i){return pV.get(xg).inlayHintsProvider.register(t,i)},DocumentHighlightKind:rn,CompletionItemKind:Xs,CompletionItemTag:tn,CompletionItemInsertTextRule:Ys,SymbolKind:Tn,SymbolTag:Rn,IndentAction:dn,CompletionTriggerKind:en,SignatureHelpTriggerKind:Fn,InlayHintKind:pn,InlineCompletionTriggerKind:gn,CodeActionTriggerType:Js,FoldingRangeKind:Ks,SelectedSuggestionInfo:zs};const $K=PK.CancellationTokenSource,WK=PK.Emitter,jK=PK.KeyCode,zK=PK.KeyMod,HK=PK.Position,VK=PK.Range,UK=PK.Selection,qK=PK.SelectionDirection,KK=PK.MarkerSeverity,GK=PK.MarkerTag,ZK=PK.Uri,QK=PK.Token,JK=PK.editor,YK=PK.languages,XK=globalThis.MonacoEnvironment;((null==XK?void 0:XK.globalAPI)||"function"==typeof define&&define.amd)&&(globalThis.monaco=PK),void 0!==globalThis.require&&"function"==typeof globalThis.require.config&&globalThis.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});const tG=Object.freeze({__proto__:null,CancellationTokenSource:$K,Emitter:WK,KeyCode:jK,KeyMod:zK,Position:HK,Range:VK,Selection:UK,SelectionDirection:qK,MarkerSeverity:KK,MarkerTag:GK,Uri:ZK,Token:QK,editor:JK,languages:YK}); /*!----------------------------------------------------------------------------- @@ -145,7 +145,7 @@ lG({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliase * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ -lG({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>import("./p-fffb499f.js").then((t=>t.TagAutoInterpolationDollar))}),lG({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>import("./p-fffb499f.js").then((t=>t.TagAngleInterpolationDollar))}),lG({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>import("./p-fffb499f.js").then((t=>t.TagBracketInterpolationDollar))}),lG({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>import("./p-fffb499f.js").then((t=>t.TagAngleInterpolationBracket))}),lG({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>import("./p-fffb499f.js").then((t=>t.TagBracketInterpolationBracket))}),lG({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>import("./p-fffb499f.js").then((t=>t.TagAutoInterpolationDollar))}),lG({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>import("./p-fffb499f.js").then((t=>t.TagAutoInterpolationBracket))}), +lG({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>import("./p-653d3561.js").then((t=>t.TagAutoInterpolationDollar))}),lG({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>import("./p-653d3561.js").then((t=>t.TagAngleInterpolationDollar))}),lG({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>import("./p-653d3561.js").then((t=>t.TagBracketInterpolationDollar))}),lG({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>import("./p-653d3561.js").then((t=>t.TagAngleInterpolationBracket))}),lG({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>import("./p-653d3561.js").then((t=>t.TagBracketInterpolationBracket))}),lG({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>import("./p-653d3561.js").then((t=>t.TagAutoInterpolationDollar))}),lG({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>import("./p-653d3561.js").then((t=>t.TagAutoInterpolationBracket))}), /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) @@ -166,7 +166,7 @@ lG({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gq * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ -lG({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>import("./p-97f79079.js")}), +lG({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>import("./p-b50c412c.js")}), /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) @@ -180,7 +180,7 @@ lG({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL" * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ -lG({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>import("./p-7b1e6314.js")}), +lG({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>import("./p-bb08ba1a.js")}), /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) @@ -201,7 +201,7 @@ lG({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["te * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ -lG({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>import("./p-6ddeb7f5.js")}), +lG({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>import("./p-1779e198.js")}), /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) @@ -243,7 +243,7 @@ lG({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>import("./p-65 * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ -lG({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>import("./p-47792246.js")}), +lG({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>import("./p-9db7a80f.js")}), /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) @@ -264,7 +264,7 @@ lG({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn", * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ -lG({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>import("./p-144a358f.js")}), +lG({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>import("./p-69409066.js")}), /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) @@ -376,7 +376,7 @@ lG({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:() * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ -lG({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>import("./p-90996b5e.js")}), +lG({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>import("./p-0a0c3f37.js")}), /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) @@ -397,7 +397,7 @@ lG({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R"," * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ -lG({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>import("./p-292a79ff.js")}), +lG({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>import("./p-f7ffc9dd.js")}), /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) @@ -537,7 +537,7 @@ lG({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-tw * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ -lG({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>import("./p-636798a4.js")}), +lG({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>import("./p-468cbb6a.js")}), /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) @@ -558,38 +558,38 @@ lG({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wg * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ -lG({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\import("./p-2091a01b.js")}), +lG({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\import("./p-eca4d606.js")}), /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ -lG({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>import("./p-66189762.js")}); +lG({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>import("./p-6e41e876.js")}); /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ -var uG=Object.defineProperty,dG=Object.getOwnPropertyDescriptor,fG=Object.getOwnPropertyNames,pG=Object.prototype.hasOwnProperty,gG=(t,i,e,s)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let n of fG(i))pG.call(t,n)||n===e||uG(t,n,{get:()=>i[n],enumerable:!(s=dG(i,n))||s.enumerable});return t},mG={};((t,i)=>{gG(mG,i,"default")})(0,tG);var wG=class{_onDidChange=new mG.Emitter;_options;_modeConfiguration;_languageId;constructor(t,i,e){this._languageId=t,this.setOptions(i),this.setModeConfiguration(e)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(t){this._options=t||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(t){this.setOptions(t)}setModeConfiguration(t){this._modeConfiguration=t||Object.create(null),this._onDidChange.fire(this)}},vG={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},bG={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},yG=new wG("css",vG,bG),kG=new wG("scss",vG,bG),xG=new wG("less",vG,bG);function CG(){return import("./p-c48a9f49.js")}mG.languages.css={cssDefaults:yG,lessDefaults:xG,scssDefaults:kG},mG.languages.onLanguage("less",(()=>{CG().then((t=>t.setupMode(xG)))})),mG.languages.onLanguage("scss",(()=>{CG().then((t=>t.setupMode(kG)))})),mG.languages.onLanguage("css",(()=>{CG().then((t=>t.setupMode(yG)))})); +var uG=Object.defineProperty,dG=Object.getOwnPropertyDescriptor,fG=Object.getOwnPropertyNames,pG=Object.prototype.hasOwnProperty,gG=(t,i,e,s)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let n of fG(i))pG.call(t,n)||n===e||uG(t,n,{get:()=>i[n],enumerable:!(s=dG(i,n))||s.enumerable});return t},mG={};((t,i)=>{gG(mG,i,"default")})(0,tG);var wG=class{_onDidChange=new mG.Emitter;_options;_modeConfiguration;_languageId;constructor(t,i,e){this._languageId=t,this.setOptions(i),this.setModeConfiguration(e)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(t){this._options=t||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(t){this.setOptions(t)}setModeConfiguration(t){this._modeConfiguration=t||Object.create(null),this._onDidChange.fire(this)}},vG={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},bG={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},yG=new wG("css",vG,bG),kG=new wG("scss",vG,bG),xG=new wG("less",vG,bG);function CG(){return import("./p-41e690f7.js")}mG.languages.css={cssDefaults:yG,lessDefaults:xG,scssDefaults:kG},mG.languages.onLanguage("less",(()=>{CG().then((t=>t.setupMode(xG)))})),mG.languages.onLanguage("scss",(()=>{CG().then((t=>t.setupMode(kG)))})),mG.languages.onLanguage("css",(()=>{CG().then((t=>t.setupMode(yG)))})); /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ -var SG=Object.defineProperty,DG=Object.getOwnPropertyDescriptor,EG=Object.getOwnPropertyNames,AG=Object.prototype.hasOwnProperty,MG=(t,i,e,s)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let n of EG(i))AG.call(t,n)||n===e||SG(t,n,{get:()=>i[n],enumerable:!(s=DG(i,n))||s.enumerable});return t},LG={};((t,i)=>{MG(LG,i,"default")})(0,tG);var FG=class{_onDidChange=new LG.Emitter;_options;_modeConfiguration;_languageId;constructor(t,i,e){this._languageId=t,this.setOptions(i),this.setModeConfiguration(e)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(t){this._options=t||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(t){this._modeConfiguration=t||Object.create(null),this._onDidChange.fire(this)}},TG={format:{tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},suggest:{},data:{useDefaultDataProvider:!0}};function RG(t){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:t===OG,documentFormattingEdits:t===OG,documentRangeFormattingEdits:t===OG}}var OG="html",IG="handlebars",_G="razor",NG=jG(OG,TG,RG(OG)),BG=NG.defaults,PG=jG(IG,TG,RG(IG)),$G=PG.defaults,WG=jG(_G,TG,RG(_G));function jG(t,i=TG,e=RG(t)){const s=new FG(t,i,e);let n;const o=LG.languages.onLanguage(t,(async()=>{n=(await import("./p-3a1e2af7.js")).setupMode(s)}));return{defaults:s,dispose(){o.dispose(),n?.dispose(),n=void 0}}} +var SG=Object.defineProperty,DG=Object.getOwnPropertyDescriptor,EG=Object.getOwnPropertyNames,AG=Object.prototype.hasOwnProperty,MG=(t,i,e,s)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let n of EG(i))AG.call(t,n)||n===e||SG(t,n,{get:()=>i[n],enumerable:!(s=DG(i,n))||s.enumerable});return t},LG={};((t,i)=>{MG(LG,i,"default")})(0,tG);var FG=class{_onDidChange=new LG.Emitter;_options;_modeConfiguration;_languageId;constructor(t,i,e){this._languageId=t,this.setOptions(i),this.setModeConfiguration(e)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(t){this._options=t||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(t){this._modeConfiguration=t||Object.create(null),this._onDidChange.fire(this)}},TG={format:{tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},suggest:{},data:{useDefaultDataProvider:!0}};function RG(t){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:t===OG,documentFormattingEdits:t===OG,documentRangeFormattingEdits:t===OG}}var OG="html",IG="handlebars",_G="razor",NG=jG(OG,TG,RG(OG)),BG=NG.defaults,PG=jG(IG,TG,RG(IG)),$G=PG.defaults,WG=jG(_G,TG,RG(_G));function jG(t,i=TG,e=RG(t)){const s=new FG(t,i,e);let n;const o=LG.languages.onLanguage(t,(async()=>{n=(await import("./p-6aacc7a8.js")).setupMode(s)}));return{defaults:s,dispose(){o.dispose(),n?.dispose(),n=void 0}}} /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/LG.languages.html={htmlDefaults:BG,razorDefaults:WG.defaults,handlebarDefaults:$G,htmlLanguageService:NG,handlebarLanguageService:PG,razorLanguageService:WG,registerHTMLLanguageService:jG};var zG=Object.defineProperty,HG=Object.getOwnPropertyDescriptor,VG=Object.getOwnPropertyNames,UG=Object.prototype.hasOwnProperty,qG=(t,i,e,s)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let n of VG(i))UG.call(t,n)||n===e||zG(t,n,{get:()=>i[n],enumerable:!(s=HG(i,n))||s.enumerable});return t},KG={};((t,i)=>{qG(KG,i,"default")})(0,tG);var GG=new class{_onDidChange=new KG.Emitter;_diagnosticsOptions;_modeConfiguration;_languageId;constructor(t,i,e){this._languageId=t,this.setDiagnosticsOptions(i),this.setModeConfiguration(e)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(t){this._diagnosticsOptions=t||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(t){this._modeConfiguration=t||Object.create(null),this._onDidChange.fire(this)}}("json",{validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},{documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0});KG.languages.json={jsonDefaults:GG},KG.languages.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]}),KG.languages.onLanguage("json",(()=>{import("./p-bea1c390.js").then((t=>t.setupMode(GG)))})); + *-----------------------------------------------------------------------------*/LG.languages.html={htmlDefaults:BG,razorDefaults:WG.defaults,handlebarDefaults:$G,htmlLanguageService:NG,handlebarLanguageService:PG,razorLanguageService:WG,registerHTMLLanguageService:jG};var zG=Object.defineProperty,HG=Object.getOwnPropertyDescriptor,VG=Object.getOwnPropertyNames,UG=Object.prototype.hasOwnProperty,qG=(t,i,e,s)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let n of VG(i))UG.call(t,n)||n===e||zG(t,n,{get:()=>i[n],enumerable:!(s=HG(i,n))||s.enumerable});return t},KG={};((t,i)=>{qG(KG,i,"default")})(0,tG);var GG=new class{_onDidChange=new KG.Emitter;_diagnosticsOptions;_modeConfiguration;_languageId;constructor(t,i,e){this._languageId=t,this.setDiagnosticsOptions(i),this.setModeConfiguration(e)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(t){this._diagnosticsOptions=t||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(t){this._modeConfiguration=t||Object.create(null),this._onDidChange.fire(this)}}("json",{validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},{documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0});KG.languages.json={jsonDefaults:GG},KG.languages.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]}),KG.languages.onLanguage("json",(()=>{import("./p-13eec5c0.js").then((t=>t.setupMode(GG)))})); /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ -var ZG=Object.defineProperty,QG=Object.getOwnPropertyDescriptor,JG=Object.getOwnPropertyNames,YG=Object.prototype.hasOwnProperty,XG=(t,i,e,s)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let n of JG(i))YG.call(t,n)||n===e||ZG(t,n,{get:()=>i[n],enumerable:!(s=QG(i,n))||s.enumerable});return t},tZ={};((t,i)=>{XG(tZ,i,"default")})(0,tG);var iZ=(t=>(t[t.None=0]="None",t[t.CommonJS=1]="CommonJS",t[t.AMD=2]="AMD",t[t.UMD=3]="UMD",t[t.System=4]="System",t[t.ES2015=5]="ES2015",t[t.ESNext=99]="ESNext",t))(iZ||{}),eZ=(t=>(t[t.None=0]="None",t[t.Preserve=1]="Preserve",t[t.React=2]="React",t[t.ReactNative=3]="ReactNative",t[t.ReactJSX=4]="ReactJSX",t[t.ReactJSXDev=5]="ReactJSXDev",t))(eZ||{}),sZ=(t=>(t[t.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",t[t.LineFeed=1]="LineFeed",t))(sZ||{}),nZ=(t=>(t[t.ES3=0]="ES3",t[t.ES5=1]="ES5",t[t.ES2015=2]="ES2015",t[t.ES2016=3]="ES2016",t[t.ES2017=4]="ES2017",t[t.ES2018=5]="ES2018",t[t.ES2019=6]="ES2019",t[t.ES2020=7]="ES2020",t[t.ESNext=99]="ESNext",t[t.JSON=100]="JSON",t[t.Latest=99]="Latest",t))(nZ||{}),oZ=(t=>(t[t.Classic=1]="Classic",t[t.NodeJs=2]="NodeJs",t))(oZ||{}),rZ=class{_onDidChange=new tZ.Emitter;_onDidExtraLibsChange=new tZ.Emitter;_extraLibs;_removedExtraLibs;_eagerModelSync;_compilerOptions;_diagnosticsOptions;_workerOptions;_onDidExtraLibsChangeTimeout;_inlayHintsOptions;_modeConfiguration;constructor(t,i,e,s,n){this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(t),this.setDiagnosticsOptions(i),this.setWorkerOptions(e),this.setInlayHintsOptions(s),this.setModeConfiguration(n),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(t,i){let e;if(e=void 0===i?`ts:extralib-${Math.random().toString(36).substring(2,15)}`:i,this._extraLibs[e]&&this._extraLibs[e].content===t)return{dispose:()=>{}};let s=1;return this._removedExtraLibs[e]&&(s=this._removedExtraLibs[e]+1),this._extraLibs[e]&&(s=this._extraLibs[e].version+1),this._extraLibs[e]={content:t,version:s},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let t=this._extraLibs[e];t&&t.version===s&&(delete this._extraLibs[e],this._removedExtraLibs[e]=s,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(t){for(const t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),t&&t.length>0)for(const i of t){const t=i.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`;let e=1;this._removedExtraLibs[t]&&(e=this._removedExtraLibs[t]+1),this._extraLibs[t]={content:i.content,version:e}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){-1===this._onDidExtraLibsChangeTimeout&&(this._onDidExtraLibsChangeTimeout=window.setTimeout((()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)}),0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(t){this._compilerOptions=t||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(t){this._diagnosticsOptions=t||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(t){this._workerOptions=t||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(t){this._inlayHintsOptions=t||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(t){}setEagerModelSync(t){this._eagerModelSync=t}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(t){this._modeConfiguration=t||Object.create(null),this._onDidChange.fire(void 0)}},hZ={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},cZ=new rZ({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},hZ),aZ=new rZ({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},hZ);function lZ(){return import("./p-2e5b4139.js")}tZ.languages.typescript={ModuleKind:iZ,JsxEmit:eZ,NewLineKind:sZ,ScriptTarget:nZ,ModuleResolutionKind:oZ,typescriptVersion:"5.0.2",typescriptDefaults:cZ,javascriptDefaults:aZ,getTypeScriptWorker:()=>lZ().then((t=>t.getTypeScriptWorker())),getJavaScriptWorker:()=>lZ().then((t=>t.getJavaScriptWorker()))},tZ.languages.onLanguage("typescript",(()=>lZ().then((t=>t.setupTypeScript(cZ))))),tZ.languages.onLanguage("javascript",(()=>lZ().then((t=>t.setupJavaScript(aZ))))),$h(class extends Ph{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:{value:ot(0,"Toggle Collapse Unchanged Regions"),original:"Toggle Collapse Unchanged Regions"},icon:Os.map,toggled:zr.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:zr.has("isInDiffEditor"),menu:{when:zr.has("isInDiffEditor"),id:Rh.EditorTitle,order:22,group:"navigation"}})}run(t,...i){const e=t.get(pd),s=!e.getValue("diffEditor.hideUnchangedRegions.enabled");e.updateValue("diffEditor.hideUnchangedRegions.enabled",s)}});class uZ extends Ph{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:{value:ot(0,"Toggle Show Moved Code Blocks"),original:"Toggle Show Moved Code Blocks"},precondition:zr.has("isInDiffEditor")})}run(t,...i){const e=t.get(pd),s=!e.getValue("diffEditor.experimental.showMoves");e.updateValue("diffEditor.experimental.showMoves",s)}}$h(uZ);class dZ extends Ph{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:{value:ot(0,"Toggle Use Inline View When Space Is Limited"),original:"Toggle Use Inline View When Space Is Limited"},precondition:zr.has("isInDiffEditor")})}run(t,...i){const e=t.get(pd),s=!e.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");e.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",s)}}$h(dZ),_h.appendMenuItem(Rh.EditorTitle,{command:{id:(new dZ).desc.id,title:ot(0,"Use Inline View When Space Is Limited"),toggled:zr.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:zr.has("isInDiffEditor")},order:11,group:"1_diff",when:zr.and(YC.diffEditorRenderSideBySideInlineBreakpointReached,zr.has("isInDiffEditor"))}),_h.appendMenuItem(Rh.EditorTitle,{command:{id:(new uZ).desc.id,title:ot(0,"Show Moved Code Blocks"),icon:Os.move,toggled:Kr.create("config.diffEditor.experimental.showMoves",!0),precondition:zr.has("isInDiffEditor")},order:10,group:"1_diff",when:zr.has("isInDiffEditor")});const fZ={value:ot(0,"Diff Editor"),original:"Diff Editor"};$h(class extends ou{constructor(){super({id:"diffEditor.switchSide",title:{value:ot(0,"Switch Side"),original:"Switch Side"},icon:Os.arrowSwap,precondition:zr.has("isInDiffEditor"),f1:!0,category:fZ})}runEditorCommand(t,i,e){const s=wZ(t);if(s instanceof Iq){if(e&&e.dryRun)return{destinationSelection:s.mapToOtherSide().destinationSelection};s.switchSide()}}}),$h(class extends ou{constructor(){super({id:"diffEditor.exitCompareMove",title:{value:ot(0,"Exit Compare Move"),original:"Exit Compare Move"},icon:Os.close,precondition:YC.comparingMovedCode,f1:!1,category:fZ,keybinding:{weight:1e4,primary:9}})}runEditorCommand(t,i,...e){const s=wZ(t);s instanceof Iq&&s.exitCompareMove()}}),$h(class extends ou{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:{value:ot(0,"Collapse All Unchanged Regions"),original:"Collapse All Unchanged Regions"},icon:Os.fold,precondition:zr.has("isInDiffEditor"),f1:!0,category:fZ})}runEditorCommand(t,i,...e){const s=wZ(t);s instanceof Iq&&s.collapseAllUnchangedRegions()}}),$h(class extends ou{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:{value:ot(0,"Show All Unchanged Regions"),original:"Show All Unchanged Regions"},icon:Os.unfold,precondition:zr.has("isInDiffEditor"),f1:!0,category:fZ})}runEditorCommand(t,i,...e){const s=wZ(t);s instanceof Iq&&s.showAllUnchangedRegions()}});const pZ={value:ot(0,"Accessible Diff Viewer"),original:"Accessible Diff Viewer"};class gZ extends Ph{constructor(){super({id:gZ.id,title:{value:ot(0,"Go to Next Difference"),original:"Go to Next Difference"},category:pZ,precondition:zr.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(t){const i=wZ(t);null==i||i.accessibleDiffViewerNext()}}gZ.id="editor.action.accessibleDiffViewer.next",_h.appendMenuItem(Rh.EditorTitle,{command:{id:gZ.id,title:ot(0,"Open Accessible Diff Viewer"),precondition:zr.has("isInDiffEditor")},order:10,group:"2_diff",when:zr.and(YC.accessibleDiffViewerVisible.negate(),zr.has("isInDiffEditor"))});class mZ extends Ph{constructor(){super({id:mZ.id,title:{value:ot(0,"Go to Previous Difference"),original:"Go to Previous Difference"},category:pZ,precondition:zr.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(t){const i=wZ(t);null==i||i.accessibleDiffViewerPrev()}}function wZ(t){var i;const e=t.get(fr),s=e.listDiffEditors(),n=null!==(i=e.getFocusedCodeEditor())&&void 0!==i?i:e.getActiveCodeEditor();if(!n)return null;for(let t=0,i=s.length;tthis.selectionAnchorSetContextKey.reset()))}setSelectionAnchor(){if(this.editor.hasModel()){const t=this.editor.getPosition();this.editor.changeDecorations((i=>{this.decorationId&&i.removeDecoration(this.decorationId),this.decorationId=i.addDecoration(Ls.fromPositions(t,t),{description:"selection-anchor",stickiness:1,hoverMessage:(new N_).appendText(ot(0,"Selection Anchor")),className:"selection-anchor"})})),this.selectionAnchorSetContextKey.set(!!this.decorationId),Pm(ot(0,"Anchor set at {0}:{1}",t.lineNumber,t.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const t=this.editor.getModel().getDecorationRange(this.decorationId);t&&this.editor.setPosition(t.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const t=this.editor.getModel().getDecorationRange(this.decorationId);if(t){const i=this.editor.getPosition();this.editor.setSelection(Ls.fromPositions(t.getStartPosition(),i)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const t=this.decorationId;this.editor.changeDecorations((i=>{i.removeDecoration(t),this.decorationId=void 0})),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}};kZ.ID="editor.contrib.selectionAnchorController",kZ=bZ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,ah)],kZ),lu(kZ.ID,kZ,4),cu(class extends su{constructor(){super({id:"editor.action.setSelectionAnchor",label:ot(0,"Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2080),weight:100}})}async run(t,i){var e;null===(e=kZ.get(i))||void 0===e||e.setSelectionAnchor()}}),cu(class extends su{constructor(){super({id:"editor.action.goToSelectionAnchor",label:ot(0,"Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:yZ})}async run(t,i){var e;null===(e=kZ.get(i))||void 0===e||e.goToSelectionAnchor()}}),cu(class extends su{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:ot(0,"Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:yZ,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2089),weight:100}})}async run(t,i){var e;null===(e=kZ.get(i))||void 0===e||e.selectFromAnchorToCursor()}}),cu(class extends su{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:ot(0,"Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:yZ,kbOpts:{kbExpr:YC.editorTextFocus,primary:9,weight:100}})}async run(t,i){var e;null===(e=kZ.get(i))||void 0===e||e.cancelSelectionAnchor()}});const xZ=dw("editorOverviewRuler.bracketMatchForeground",{dark:"#A0A0A0",light:"#A0A0A0",hcDark:"#A0A0A0",hcLight:"#A0A0A0"},ot(0,"Overview ruler marker color for matching brackets."));class CZ{constructor(t,i,e){this.position=t,this.brackets=i,this.options=e}}class SZ extends te{static get(t){return t.getContribution(SZ.ID)}constructor(t){super(),this._editor=t,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new pc((()=>this._updateBrackets()),50)),this._matchBrackets=this._editor.getOption(71),this._updateBracketsSoon.schedule(),this._register(t.onDidChangeCursorPosition((()=>{"never"!==this._matchBrackets&&this._updateBracketsSoon.schedule()}))),this._register(t.onDidChangeModelContent((()=>{this._updateBracketsSoon.schedule()}))),this._register(t.onDidChangeModel((()=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()}))),this._register(t.onDidChangeModelLanguageConfiguration((()=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()}))),this._register(t.onDidChangeConfiguration((t=>{t.hasChanged(71)&&(this._matchBrackets=this._editor.getOption(71),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())}))),this._register(t.onDidBlurEditorWidget((()=>{this._updateBracketsSoon.schedule()}))),this._register(t.onDidFocusEditorWidget((()=>{this._updateBracketsSoon.schedule()})))}jumpToBracket(){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=this._editor.getSelections().map((i=>{const e=i.getStartPosition(),s=t.bracketPairs.matchBracket(e);let n=null;if(s)s[0].containsPosition(e)&&!s[1].containsPosition(e)?n=s[1].getStartPosition():s[1].containsPosition(e)&&(n=s[0].getStartPosition());else{const i=t.bracketPairs.findEnclosingBrackets(e);if(i)n=i[1].getStartPosition();else{const i=t.bracketPairs.findNextBracket(e);i&&i.range&&(n=i.range.getStartPosition())}}return n?new Ls(n.lineNumber,n.column,n.lineNumber,n.column):new Ls(e.lineNumber,e.column,e.lineNumber,e.column)}));this._editor.setSelections(i),this._editor.revealRange(i[0])}selectToBracket(t){if(!this._editor.hasModel())return;const i=this._editor.getModel(),e=[];this._editor.getSelections().forEach((s=>{const n=s.getStartPosition();let o=i.bracketPairs.matchBracket(n);if(!o&&(o=i.bracketPairs.findEnclosingBrackets(n),!o)){const t=i.bracketPairs.findNextBracket(n);t&&t.range&&(o=i.bracketPairs.matchBracket(t.range.getStartPosition()))}let r=null,h=null;if(o){o.sort(Ms.compareRangesUsingStarts);const[i,e]=o;if(r=t?i.getStartPosition():i.getEndPosition(),h=t?e.getEndPosition():e.getStartPosition(),e.containsPosition(n)){const t=r;r=h,h=t}}r&&h&&e.push(new Ls(r.lineNumber,r.column,h.lineNumber,h.column))})),e.length>0&&(this._editor.setSelections(e),this._editor.revealRange(e[0]))}removeBrackets(t){if(!this._editor.hasModel())return;const i=this._editor.getModel();this._editor.getSelections().forEach((e=>{const s=e.getPosition();let n=i.bracketPairs.matchBracket(s);n||(n=i.bracketPairs.findEnclosingBrackets(s)),n&&(this._editor.pushUndoStop(),this._editor.executeEdits(t,[{range:n[0],text:""},{range:n[1],text:""}]),this._editor.pushUndoStop())}))}_updateBrackets(){if("never"===this._matchBrackets)return;this._recomputeBrackets();const t=[];let i=0;for(const e of this._lastBracketsData){const s=e.brackets;s&&(t[i++]={range:s[0],options:e.options},t[i++]={range:s[1],options:e.options})}this._decorations.set(t)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus())return this._lastBracketsData=[],void(this._lastVersionId=0);const t=this._editor.getSelections();if(t.length>100)return this._lastBracketsData=[],void(this._lastVersionId=0);const i=this._editor.getModel(),e=i.getVersionId();let s=[];this._lastVersionId===e&&(s=this._lastBracketsData);const n=[];let o=0;for(let i=0,e=t.length;i1&&n.sort(As.compare);const r=[];let h=0,c=0;const a=s.length;for(let t=0,e=n.length;t0&&(i.pushUndoStop(),i.executeCommands(this.id,s),i.pushUndoStop())}});const AZ="9_cutcopypaste",MZ=Dt||document.queryCommandSupported("cut"),LZ=Dt||document.queryCommandSupported("copy"),FZ=void 0!==navigator.clipboard&&!Uo||document.queryCommandSupported("paste");function TZ(t){return t.register(),t}const RZ=MZ?TZ(new tu({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:Dt?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:Rh.MenubarEditMenu,group:"2_ccp",title:ot(0,"Cu&&t"),order:1},{menuId:Rh.EditorContext,group:AZ,title:ot(0,"Cut"),when:YC.writable,order:1},{menuId:Rh.CommandPalette,group:"",title:ot(0,"Cut"),order:1},{menuId:Rh.SimpleEditorContext,group:AZ,title:ot(0,"Cut"),when:YC.writable,order:1}]})):void 0,OZ=LZ?TZ(new tu({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:Dt?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:Rh.MenubarEditMenu,group:"2_ccp",title:ot(0,"&&Copy"),order:2},{menuId:Rh.EditorContext,group:AZ,title:ot(0,"Copy"),order:2},{menuId:Rh.CommandPalette,group:"",title:ot(0,"Copy"),order:1},{menuId:Rh.SimpleEditorContext,group:AZ,title:ot(0,"Copy"),order:2}]})):void 0;_h.appendMenuItem(Rh.MenubarEditMenu,{submenu:Rh.MenubarCopy,title:{value:ot(0,"Copy As"),original:"Copy As"},group:"2_ccp",order:3}),_h.appendMenuItem(Rh.EditorContext,{submenu:Rh.EditorContextCopy,title:{value:ot(0,"Copy As"),original:"Copy As"},group:AZ,order:3}),_h.appendMenuItem(Rh.EditorContext,{submenu:Rh.EditorContextShare,title:{value:ot(0,"Share"),original:"Share"},group:"11_share",order:-1,when:zr.and(zr.notEquals("resourceScheme","output"),YC.editorTextFocus)}),_h.appendMenuItem(Rh.EditorTitleContext,{submenu:Rh.EditorTitleContextShare,title:{value:ot(0,"Share"),original:"Share"},group:"11_share",order:-1}),_h.appendMenuItem(Rh.ExplorerContext,{submenu:Rh.ExplorerContextShare,title:{value:ot(0,"Share"),original:"Share"},group:"11_share",order:-1});const IZ=FZ?TZ(new tu({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:Dt?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:Rh.MenubarEditMenu,group:"2_ccp",title:ot(0,"&&Paste"),order:4},{menuId:Rh.EditorContext,group:AZ,title:ot(0,"Paste"),when:YC.writable,order:4},{menuId:Rh.CommandPalette,group:"",title:ot(0,"Paste"),order:1},{menuId:Rh.SimpleEditorContext,group:AZ,title:ot(0,"Paste"),when:YC.writable,order:4}]})):void 0;function _Z(t,i){t&&(t.addImplementation(1e4,"code-editor",(t=>{const e=t.get(fr).getFocusedCodeEditor();if(e&&e.hasTextFocus()){const t=e.getOption(37),s=e.getSelection();return s&&s.isEmpty()&&!t||e.getContainerDomNode().ownerDocument.execCommand(i),!0}return!1})),t.addImplementation(0,"generic-dom",(()=>(ml().execCommand(i),!0))))}_Z(RZ,"cut"),_Z(OZ,"copy"),IZ&&(IZ.addImplementation(1e4,"code-editor",(t=>{const i=t.get(fr),e=t.get(yH),s=i.getFocusedCodeEditor();return!(!s||!s.hasTextFocus())&&(!(!s.getContainerDomNode().ownerDocument.execCommand("paste")&&Et)||(async()=>{const t=await e.readText();if(""!==t){const i=Vk.INSTANCE.get(t);let e=!1,n=null,o=null;i&&(e=s.getOption(37)&&!!i.isFromEmptySelection,n=void 0!==i.multicursorText?i.multicursorText:null,o=i.mode),s.trigger("keyboard","paste",{text:t,pasteOnNewLine:e,multicursorText:n,mode:o})}})())})),IZ.addImplementation(0,"generic-dom",(()=>(ml().execCommand("paste"),!0)))),LZ&&cu(class extends su{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:ot(0,"Copy With Syntax Highlighting"),alias:"Copy With Syntax Highlighting",precondition:void 0,kbOpts:{kbExpr:YC.textInputFocus,primary:0,weight:100}})}run(t,i){i.hasModel()&&(!i.getOption(37)&&i.getSelection().isEmpty()||(Hk.forceCopyWithSyntaxHighlighting=!0,i.focus(),i.getContainerDomNode().ownerDocument.execCommand("copy"),Hk.forceCopyWithSyntaxHighlighting=!1))}});class NZ{constructor(t){this.value=t}equals(t){return this.value===t.value}contains(t){return this.equals(t)||""===this.value||t.value.startsWith(this.value+NZ.sep)}intersects(t){return this.contains(t)||t.contains(this)}append(t){return new NZ(this.value+NZ.sep+t)}}var BZ;function PZ(t,i,e){return!(!i.contains(t)||e&&i.contains(e))}NZ.sep=".",NZ.None=new NZ("@@none@@"),NZ.Empty=new NZ(""),NZ.QuickFix=new NZ("quickfix"),NZ.Refactor=new NZ("refactor"),NZ.RefactorExtract=NZ.Refactor.append("extract"),NZ.RefactorInline=NZ.Refactor.append("inline"),NZ.RefactorMove=NZ.Refactor.append("move"),NZ.RefactorRewrite=NZ.Refactor.append("rewrite"),NZ.Notebook=new NZ("notebook"),NZ.Source=new NZ("source"),NZ.SourceOrganizeImports=NZ.Source.append("organizeImports"),NZ.SourceFixAll=NZ.Source.append("fixAll"),NZ.SurroundWith=NZ.Refactor.append("surround"),function(t){t.Refactor="refactor",t.RefactorPreview="refactor preview",t.Lightbulb="lightbulb",t.Default="other (default)",t.SourceAction="source action",t.QuickFix="quick fix action",t.FixAll="fix all",t.OrganizeImports="organize imports",t.AutoFix="auto fix",t.QuickFixHover="quick fix hover window",t.OnSave="save participants",t.ProblemsView="problems view"}(BZ||(BZ={}));class $Z{static fromUser(t,i){return t&&"object"==typeof t?new $Z($Z.getKindFromUser(t,i.kind),$Z.getApplyFromUser(t,i.apply),$Z.getPreferredUser(t)):new $Z(i.kind,i.apply,!1)}static getApplyFromUser(t,i){switch("string"==typeof t.apply?t.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return i}}static getKindFromUser(t,i){return"string"==typeof t.kind?new NZ(t.kind):i}static getPreferredUser(t){return"boolean"==typeof t.preferred&&t.preferred}constructor(t,i,e){this.kind=t,this.apply=i,this.preferred=e}}class WZ{constructor(t,i,e){this.action=t,this.provider=i,this.highlightRange=e}async resolve(t){var i;if((null===(i=this.provider)||void 0===i?void 0:i.resolveCodeAction)&&!this.action.edit){let i;try{i=await this.provider.resolveCodeAction(this.action,t)}catch(t){Pi(t)}i&&(this.action.edit=i.edit)}return this}}const jZ="editor.action.codeAction",zZ="editor.action.quickFix",HZ="editor.action.autoFix",VZ="editor.action.refactor",UZ="editor.action.sourceAction",qZ="editor.action.organizeImports",KZ="editor.action.fixAll";class GZ extends te{static codeActionsPreferredComparator(t,i){return t.isPreferred&&!i.isPreferred?-1:!t.isPreferred&&i.isPreferred?1:0}static codeActionsComparator({action:t},{action:i}){return t.isAI&&!i.isAI?1:!t.isAI&&i.isAI?-1:b(t.diagnostics)?b(i.diagnostics)?GZ.codeActionsPreferredComparator(t,i):-1:b(i.diagnostics)?1:GZ.codeActionsPreferredComparator(t,i)}constructor(t,i,e){super(),this.documentation=i,this._register(e),this.allActions=[...t].sort(GZ.codeActionsComparator),this.validActions=this.allActions.filter((({action:t})=>!t.disabled))}get hasAutoFix(){return this.validActions.some((({action:t})=>!!t.kind&&NZ.QuickFix.contains(new NZ(t.kind))&&!!t.isPreferred))}get hasAIFix(){return this.validActions.some((({action:t})=>!!t.isAI))}get allAIFixes(){return this.validActions.every((({action:t})=>!!t.isAI))}}const ZZ={actions:[],documentation:void 0};async function QZ(t,i,e,s,n,o){var r;const h=s.filter||{},c={...h,excludes:[...h.excludes||[],NZ.Notebook]},a={only:null===(r=h.include)||void 0===r?void 0:r.value,trigger:s.type},u=new SK(i,o),d=function(t,i,e){return t.all(i).filter((t=>!t.providedCodeActionKinds||t.providedCodeActionKinds.some((t=>function(t,i){return!(t.include&&!t.include.intersects(i)||t.excludes&&t.excludes.some((e=>PZ(i,e,t.include)))||!t.includeSourceActions&&NZ.Source.contains(i))}(e,new NZ(t))))))}(t,i,2===s.type?c:h),f=new Xi,p=d.map((async t=>{try{n.report(t);const s=await t.provideCodeActions(i,e,a,u.token);if(s&&f.add(s),u.token.isCancellationRequested)return ZZ;const o=((null==s?void 0:s.actions)||[]).filter((t=>t&&function(t,i){const e=i.kind?new NZ(i.kind):void 0;return!(!(!t.include||e&&t.include.contains(e))||t.excludes&&e&&t.excludes.some((i=>PZ(e,i,t.include)))||!t.includeSourceActions&&e&&NZ.Source.contains(e)||t.onlyIncludePreferredActions&&!i.isPreferred)}(h,t))),r=function(t,i,e){if(!t.documentation)return;const s=t.documentation.map((t=>({kind:new NZ(t.kind),command:t.command})));if(e){let t;for(const i of s)i.kind.contains(e)&&(t?t.kind.contains(i.kind)&&(t=i):t=i);if(t)return null==t?void 0:t.command}for(const t of i)if(t.kind)for(const i of s)if(i.kind.contains(new NZ(t.kind)))return i.command}(t,o,h.include);return{actions:o.map((i=>new WZ(i,t))),documentation:r}}catch(t){if(ji(t))throw t;return Pi(t),ZZ}})),g=t.onDidChange((()=>{l(t.all(i),d)||u.cancel()}));try{const e=await Promise.all(p),n=e.map((t=>t.actions)).flat(),o=[...m(e.map((t=>t.documentation))),...JZ(t,i,s,n)];return new GZ(n,o,f)}finally{g.dispose(),u.dispose()}}function*JZ(t,i,e,s){var n,o,r;if(i&&s.length)for(const h of t.all(i))h._getAdditionalMenuItems&&(yield*null===(n=h._getAdditionalMenuItems)||void 0===n?void 0:n.call(h,{trigger:e.type,only:null===(r=null===(o=e.filter)||void 0===o?void 0:o.include)||void 0===r?void 0:r.value},s.map((t=>t.action))))}var YZ;async function XZ(t,i,e,s,n=ke.None){var o;const r=t.get(nO),h=t.get(Sr),c=t.get(Wh),a=t.get(oT);if(c.publicLog2("codeAction.applyCodeAction",{codeActionTitle:i.action.title,codeActionKind:i.action.kind,codeActionIsPreferred:!!i.action.isPreferred,reason:e}),await i.resolve(n),!n.isCancellationRequested){if((null===(o=i.action.edit)||void 0===o?void 0:o.edits.length)&&!(await r.apply(i.action.edit,{editor:null==s?void 0:s.editor,label:i.action.title,quotableLabel:i.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:e!==YZ.OnSave,showPreview:null==s?void 0:s.preview})).isApplied)return;if(i.action.command)try{await h.executeCommand(i.action.command.id,...i.action.command.arguments||[])}catch(t){const i=function(t){return"string"==typeof t?t:t instanceof Error&&"string"==typeof t.message?t.message:void 0}(t);a.error("string"==typeof i?i:ot(0,"An unknown error occurred while applying the code action"))}}}!function(t){t.OnSave="onSave",t.FromProblemsView="fromProblemsView",t.FromCodeActions="fromCodeActions"}(YZ||(YZ={})),Dr.registerCommand("_executeCodeActionProvider",(async function(t,i,e,s,n){if(!(i instanceof ms))throw Hi();const{codeActionProvider:o}=t.get(xg),r=t.get(pr).getModel(i);if(!r)throw Hi();const h=Ls.isISelection(e)?Ls.liftSelection(e):Ms.isIRange(e)?r.validateRange(e):void 0;if(!h)throw Hi();const c="string"==typeof s?new NZ(s):void 0,a=await QZ(o,r,h,{type:1,triggerAction:BZ.Default,filter:{includeSourceActions:!0,include:c}},jO.None,ke.None),l=[],u=Math.min(a.validActions.length,"number"==typeof n?n:0);for(let t=0;tt.action))}finally{setTimeout((()=>a.dispose()),100)}}));var tQ;let iQ=tQ=class{constructor(t){this.keybindingService=t}getResolver(){const t=new zn((()=>this.keybindingService.getKeybindings().filter((t=>tQ.codeActionCommands.indexOf(t.command)>=0)).filter((t=>t.resolvedKeybinding)).map((t=>{let i=t.commandArgs;return t.command===qZ?i={kind:NZ.SourceOrganizeImports.value}:t.command===KZ&&(i={kind:NZ.SourceFixAll.value}),{resolvedKeybinding:t.resolvedKeybinding,...$Z.fromUser(i,{kind:NZ.None,apply:"never"})}}))));return i=>{if(i.kind){const e=this.bestKeybindingForCodeAction(i,t.value);return null==e?void 0:e.resolvedKeybinding}}}bestKeybindingForCodeAction(t,i){if(!t.kind)return;const e=new NZ(t.kind);return i.filter((t=>t.kind.contains(e))).filter((i=>!i.preferred||t.isPreferred)).reduceRight(((t,i)=>t?t.kind.contains(i.kind)?i:t:i),void 0)}};iQ.codeActionCommands=[VZ,jZ,UZ,qZ,KZ],iQ=tQ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(0,oC)],iQ),dw("symbolIcon.arrayForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.booleanForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},ot(0,"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.colorForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.constantForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},ot(0,"The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},ot(0,"The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},ot(0,"The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},ot(0,"The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},ot(0,"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.fileForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.folderForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},ot(0,"The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},ot(0,"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.keyForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.keywordForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},ot(0,"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.moduleForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.namespaceForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.nullForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.numberForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.objectForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.operatorForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.packageForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.propertyForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.referenceForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.snippetForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.stringForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.structForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.textForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.typeParameterForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.unitForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},ot(0,"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));const eQ=Object.freeze({kind:NZ.Empty,title:ot(0,"More Actions...")}),sQ=Object.freeze([{kind:NZ.QuickFix,title:ot(0,"Quick Fix")},{kind:NZ.RefactorExtract,title:ot(0,"Extract"),icon:Os.wrench},{kind:NZ.RefactorInline,title:ot(0,"Inline"),icon:Os.wrench},{kind:NZ.RefactorRewrite,title:ot(0,"Rewrite"),icon:Os.wrench},{kind:NZ.RefactorMove,title:ot(0,"Move"),icon:Os.wrench},{kind:NZ.SurroundWith,title:ot(0,"Surround With"),icon:Os.symbolSnippet},{kind:NZ.Source,title:ot(0,"Source Action"),icon:Os.symbolFile},eQ]);var nQ,oQ,rQ=function(t,i){return function(e,s){i(e,s,t)}};!function(t){t.Hidden={type:0},t.Showing=class{constructor(t,i,e,s){this.actions=t,this.trigger=i,this.editorPosition=e,this.widgetPosition=s,this.type=1}}}(oQ||(oQ={}));let hQ=nQ=class extends te{constructor(t,i,e){var s,n,o;super(),this._editor=t,this._keybindingService=i,this._onClick=this._register(new de),this.onClick=this._onClick.event,this._state=oQ.Hidden,this._iconClasses=[],this._domNode=$l("div.lightBulbWidget"),this._register(rw.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent((()=>{const t=this._editor.getModel();(1!==this.state.type||!t||this.state.editorPosition.lineNumber>=t.getLineCount())&&this.hide()}))),this._register((n=t=>{var i;if(1!==this.state.type)return;const s=this._editor.getOption(64).experimental.showAiIcon;if((s===mi.On||s===mi.OnCode)&&this.state.actions.allAIFixes&&1===this.state.actions.validActions.length){const s=this.state.actions.validActions[0].action;if(null===(i=s.command)||void 0===i?void 0:i.id)return e.executeCommand(s.command.id,...s.command.arguments||[]),void t.preventDefault()}this._editor.focus(),t.preventDefault();const{top:n,height:o}=nl(this._domNode),r=this._editor.getOption(66);let h=Math.floor(r/3);null!==this.state.widgetPosition.position&&this.state.widgetPosition.position.lineNumber{1&~t.buttons||this.hide()}))),this._register(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(64)&&(this._editor.getOption(64).enabled||this.hide(),this._updateLightBulbTitleAndIcon())}))),this._register(he.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,(()=>{var t,i,e,s;this._preferredKbLabel=null!==(i=null===(t=this._keybindingService.lookupKeybinding(HZ))||void 0===t?void 0:t.getLabel())&&void 0!==i?i:void 0,this._quickFixKbLabel=null!==(s=null===(e=this._keybindingService.lookupKeybinding(zZ))||void 0===e?void 0:e.getLabel())&&void 0!==s?s:void 0,this._updateLightBulbTitleAndIcon()})))}dispose(){super.dispose(),this._editor.removeContentWidget(this)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){return 1===this._state.type?this._state.widgetPosition:null}update(t,i,e){if(t.validActions.length<=0)return this.hide();const s=this._editor.getOptions();if(!s.get(64).enabled)return this.hide();const n=this._editor.getModel();if(!n)return this.hide();const{lineNumber:o,column:r}=n.validatePosition(e),h=n.getOptions().tabSize,c=s.get(50),a=RS(n.getLineContent(o),h),l=t=>t>2&&this._editor.getTopForLineNumber(t)===this._editor.getTopForLineNumber(t-1);let u=o;if(!(c.spaceWidth*a>22))if(o>1&&!l(o-1))u-=1;else if(l(o+1)){if(r*c.spaceWidth<22)return this.hide()}else u+=1;this.state=new oQ.Showing(t,i,e,{position:{lineNumber:u,column:n.getLineContent(u).match(/^\S\s*$/)?2:1},preference:nQ._posPref}),this._editor.layoutContentWidget(this)}hide(){this.state!==oQ.Hidden&&(this.state=oQ.Hidden,this._editor.layoutContentWidget(this))}get state(){return this._state}set state(t){this._state=t,this._updateLightBulbTitleAndIcon()}_updateLightBulbTitleAndIcon(){var t,i,e;if(this._domNode.classList.remove(...this._iconClasses),this._iconClasses=[],1!==this.state.type)return;const s=()=>{this._preferredKbLabel&&(this.title=ot(0,"Show Code Actions. Preferred Quick Fix Available ({0})",this._preferredKbLabel))},n=()=>{this.title=this._quickFixKbLabel?ot(0,"Show Code Actions ({0})",this._quickFixKbLabel):ot(0,"Show Code Actions")};let o;const r=this._editor.getOption(64).experimental.showAiIcon;if(r===mi.On||r===mi.OnCode)if(r===mi.On&&this.state.actions.allAIFixes)if(o=Os.sparkleFilled,this.state.actions.allAIFixes&&1===this.state.actions.validActions.length)if("inlineChat.start"===(null===(t=this.state.actions.validActions[0].action.command)||void 0===t?void 0:t.id)){const t=null!==(e=null===(i=this._keybindingService.lookupKeybinding("inlineChat.start"))||void 0===i?void 0:i.getLabel())&&void 0!==e?e:void 0;this.title=t?ot(0,"Start Inline Chat ({0})",t):ot(0,"Start Inline Chat")}else this.title=ot(0,"Trigger AI Action");else n();else this.state.actions.hasAutoFix?(o=this.state.actions.hasAIFix?Os.lightbulbSparkleAutofix:Os.lightbulbAutofix,s()):this.state.actions.hasAIFix?(o=Os.lightbulbSparkle,n()):(o=Os.lightBulb,n());else this.state.actions.hasAutoFix?(o=Os.lightbulbAutofix,s()):(o=Os.lightBulb,n());this._iconClasses=Cr.asClassNameArray(o),this._domNode.classList.add(...this._iconClasses)}set title(t){this._domNode.title=t}};hQ.ID="editor.contrib.lightbulbWidget",hQ._posPref=[0],hQ=nQ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([rQ(1,oC),rQ(2,Sr)],hQ);var cQ,aQ=function(t,i){return function(e,s){i(e,s,t)}};let lQ=cQ=class{constructor(t,i,e){this._options=t,this._languageService=i,this._openerService=e,this._onDidRenderAsync=new de,this.onDidRenderAsync=this._onDidRenderAsync.event}dispose(){this._onDidRenderAsync.dispose()}render(t,i,e){if(!t)return{element:document.createElement("span"),dispose:()=>{}};const s=new Xi,n=s.add(oN(t,{...this._getRenderOptions(t,s),...i},e));return n.element.classList.add("rendered-markdown"),{element:n.element,dispose:()=>s.dispose()}}_getRenderOptions(t,i){return{codeBlockRenderer:async(t,i)=>{var e,s,n;let o;t?o=this._languageService.getLanguageIdByLanguageName(t):this._options.editor&&(o=null===(e=this._options.editor.getModel())||void 0===e?void 0:e.getLanguageId()),o||(o=Ud);const r=await async function(t,i,e){if(!e)return SF(i,t.languageIdCodec,xF);const s=await Zs.getOrCreate(e);return SF(i,t.languageIdCodec,s||xF)}(this._languageService,i,o),h=document.createElement("span");return h.innerHTML=null!==(n=null===(s=cQ._ttpTokenizer)||void 0===s?void 0:s.createHTML(r))&&void 0!==n?n:r,this._options.editor?ir(h,this._options.editor.getOption(50)):this._options.codeBlockFontFamily&&(h.style.fontFamily=this._options.codeBlockFontFamily),void 0!==this._options.codeBlockFontSize&&(h.style.fontSize=this._options.codeBlockFontSize),h},asyncRenderCallback:()=>this._onDidRenderAsync.fire(),actionHandler:{callback:i=>uQ(this._openerService,i,t.isTrusted),disposables:i}}}};async function uQ(t,i,e){try{return await t.open(i,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:dQ(e)})}catch(t){return Bi(t),!1}}function dQ(t){return!0===t||!(!t||!Array.isArray(t.enabledCommands))&&t.enabledCommands}lQ._ttpTokenizer=Mu("tokenizeToString",{createHTML:t=>t}),lQ=cQ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([aQ(1,yd),aQ(2,dP)],lQ);var fQ,pQ=function(t,i){return function(e,s){i(e,s,t)}};let gQ=fQ=class{static get(t){return t.getContribution(fQ.ID)}constructor(t,i,e){this._openerService=e,this._messageWidget=new ie,this._messageListeners=new Xi,this._mouseOverMessage=!1,this._editor=t,this._visible=fQ.MESSAGE_VISIBLE.bindTo(i)}dispose(){var t;null===(t=this._message)||void 0===t||t.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(t,i){let e;Pm(P_(t)?t.value:t),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=P_(t)?oN(t,{actionHandler:{callback:i=>uQ(this._openerService,i,P_(t)?t.isTrusted:void 0),disposables:this._messageListeners}}):void 0,this._messageWidget.value=new mQ(this._editor,i,"string"==typeof t?t:this._message.element),this._messageListeners.add(he.debounce(this._editor.onDidBlurEditorText,((t,i)=>i),0)((()=>{this._mouseOverMessage||this._messageWidget.value&&al(pl(),this._messageWidget.value.getDomNode())||this.closeMessage()}))),this._messageListeners.add(this._editor.onDidChangeCursorPosition((()=>this.closeMessage()))),this._messageListeners.add(this._editor.onDidDispose((()=>this.closeMessage()))),this._messageListeners.add(this._editor.onDidChangeModel((()=>this.closeMessage()))),this._messageListeners.add(Va(this._messageWidget.value.getDomNode(),Ll.MOUSE_ENTER,(()=>this._mouseOverMessage=!0),!0)),this._messageListeners.add(Va(this._messageWidget.value.getDomNode(),Ll.MOUSE_LEAVE,(()=>this._mouseOverMessage=!1),!0)),this._messageListeners.add(this._editor.onMouseMove((t=>{t.target.position&&(e?e.containsPosition(t.target.position)||this.closeMessage():e=new Ms(i.lineNumber-3,1,t.target.position.lineNumber+3,1))})))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(mQ.fadeOut(this._messageWidget.value))}};gQ.ID="editor.contrib.messageController",gQ.MESSAGE_VISIBLE=new ch("messageVisible",!1,ot(0,"Whether the editor is currently showing an inline message")),gQ=fQ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([pQ(1,ah),pQ(2,dP)],gQ),hu(new(eu.bindToContribution(gQ.get))({id:"leaveEditorMessage",precondition:gQ.MESSAGE_VISIBLE,handler:t=>t.closeMessage(),kbOpts:{weight:130,primary:9}}));class mQ{static fadeOut(t){const i=()=>{t.dispose(),clearTimeout(e),t.getDomNode().removeEventListener("animationend",i)},e=setTimeout(i,110);return t.getDomNode().addEventListener("animationend",i),t.getDomNode().classList.add("fadeOut"),{dispose:i}}constructor(t,{lineNumber:i,column:e},s){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=t,this._editor.revealLinesInCenterIfOutsideViewport(i,i,0),this._position={lineNumber:i,column:e},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const n=document.createElement("div");n.classList.add("anchor","top"),this._domNode.appendChild(n);const o=document.createElement("div");"string"==typeof s?(o.classList.add("message"),o.textContent=s):(s.classList.add("message"),o.appendChild(s)),this._domNode.appendChild(o);const r=document.createElement("div");r.classList.add("anchor","below"),this._domNode.appendChild(r),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(t){this._domNode.classList.toggle("below",2===t)}}lu(gQ.ID,gQ,4);var wQ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},vQ=function(t,i){return function(e,s){i(e,s,t)}};const bQ="acceptSelectedCodeAction",yQ="previewSelectedCodeAction";class kQ{get templateId(){return"header"}renderTemplate(t){t.classList.add("group-header");const i=document.createElement("span");return t.append(i),{container:t,text:i}}renderElement(t,i,e){var s,n;e.text.textContent=null!==(n=null===(s=t.group)||void 0===s?void 0:s.title)&&void 0!==n?n:""}disposeTemplate(t){}}let xQ=class{get templateId(){return"action"}constructor(t,i){this._supportsPreview=t,this._keybindingService=i}renderTemplate(t){t.classList.add(this.templateId);const i=document.createElement("div");i.className="icon",t.append(i);const e=document.createElement("span");return e.className="title",t.append(e),{container:t,icon:i,text:e,keybinding:new Xj(t,It)}}renderElement(t,i,e){var s,n,o;if((null===(s=t.group)||void 0===s?void 0:s.icon)?(e.icon.className=Cr.asClassName(t.group.icon),t.group.icon.color&&(e.icon.style.color=aw(t.group.icon.color.id))):(e.icon.className=Cr.asClassName(Os.lightBulb),e.icon.style.color="var(--vscode-editorLightBulb-foreground)"),!t.item||!t.label)return;e.text.textContent=AQ(t.label),e.keybinding.set(t.keybinding),function(t,...i){t?Wl(...i):jl(...i)}(!!t.keybinding,e.keybinding.element);const r=null===(n=this._keybindingService.lookupKeybinding(bQ))||void 0===n?void 0:n.getLabel(),h=null===(o=this._keybindingService.lookupKeybinding(yQ))||void 0===o?void 0:o.getLabel();e.container.classList.toggle("option-disabled",t.disabled),e.container.title=t.disabled?t.label:r&&h?this._supportsPreview&&t.canPreview?ot(0,"{0} to apply, {1} to preview",r,h):ot(0,"{0} to apply",r):""}disposeTemplate(t){}};xQ=wQ([vQ(1,oC)],xQ);class CQ extends UIEvent{constructor(){super("acceptSelectedAction")}}class SQ extends UIEvent{constructor(){super("previewSelectedAction")}}function DQ(t){if("action"===t.kind)return t.label}let EQ=class extends te{constructor(t,i,e,s,n,o){super(),this._delegate=s,this._contextViewService=n,this._keybindingService=o,this._actionLineHeight=24,this._headerLineHeight=26,this.cts=this._register(new Ce),this.domNode=document.createElement("div"),this.domNode.classList.add("actionList"),this._list=this._register(new aB(t,this.domNode,{getHeight:t=>"header"===t.kind?this._headerLineHeight:this._actionLineHeight,getTemplateId:t=>t.kind},[new xQ(i,this._keybindingService),new kQ],{keyboardSupport:!1,typeNavigationEnabled:!0,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:DQ},accessibilityProvider:{getAriaLabel:t=>{if("action"===t.kind){let i=t.label?AQ(null==t?void 0:t.label):"";return t.disabled&&(i=ot(0,"{0}, Disabled Reason: {1}",i,t.disabled)),i}return null},getWidgetAriaLabel:()=>ot(0,"Action Widget"),getRole:t=>"action"===t.kind?"option":"separator",getWidgetRole:()=>"listbox"}})),this._list.style(BB),this._register(this._list.onMouseClick((t=>this.onListClick(t)))),this._register(this._list.onMouseOver((t=>this.onListHover(t)))),this._register(this._list.onDidChangeFocus((()=>this.onFocus()))),this._register(this._list.onDidChangeSelection((t=>this.onListSelection(t)))),this._allMenuItems=e,this._list.splice(0,this._list.length,this._allMenuItems),this._list.length&&this.focusNext()}focusCondition(t){return!t.disabled&&"action"===t.kind}hide(t){this._delegate.onHide(t),this.cts.cancel(),this._contextViewService.hideContextView()}layout(t){const i=this._allMenuItems.filter((t=>"header"===t.kind)).length,e=this._allMenuItems.length*this._actionLineHeight+i*this._headerLineHeight-i*this._actionLineHeight;this._list.layout(e);let s=t;if(this._allMenuItems.length>=50)s=380;else{const i=this._allMenuItems.map(((t,i)=>{const e=this.domNode.ownerDocument.getElementById(this._list.getElementID(i));if(e){e.style.width="auto";const t=e.getBoundingClientRect().width;return e.style.width="",t}return 0}));s=Math.max(...i,t)}const n=Math.min(e,.7*this.domNode.ownerDocument.body.clientHeight);return this._list.layout(n,s),this.domNode.style.height=`${n}px`,this._list.domFocus(),s}focusPrevious(){this._list.focusPrevious(1,!0,void 0,this.focusCondition)}focusNext(){this._list.focusNext(1,!0,void 0,this.focusCondition)}acceptSelected(t){const i=this._list.getFocus();if(0===i.length)return;const e=i[0],s=this._list.element(e);if(!this.focusCondition(s))return;const n=t?new SQ:new CQ;this._list.setSelection([e],n)}onListSelection(t){if(!t.elements.length)return;const i=t.elements[0];i.item&&this.focusCondition(i)?this._delegate.onSelect(i.item,t.browserEvent instanceof SQ):this._list.setSelection([])}onFocus(){var t,i;this._list.domFocus();const e=this._list.getFocus();if(0===e.length)return;const s=this._list.element(e[0]);null===(i=(t=this._delegate).onFocus)||void 0===i||i.call(t,s.item)}async onListHover(t){const i=t.element;if(i&&i.item&&this.focusCondition(i)){if(this._delegate.onHover&&!i.disabled&&"action"===i.kind){const t=await this._delegate.onHover(i.item,this.cts.token);i.canPreview=t?t.canPreview:void 0}t.index&&this._list.splice(t.index,1,[i])}this._list.setFocus("number"==typeof t.index?[t.index]:[])}onListClick(t){t.element&&this.focusCondition(t.element)&&this._list.setFocus([])}};function AQ(t){return t.replace(/\r\n|\r|\n/g," ")}EQ=wQ([vQ(4,aI),vQ(5,oC)],EQ);var MQ=function(t,i){return function(e,s){i(e,s,t)}};dw("actionBar.toggledBackground",{dark:Ew,light:Ew,hcDark:Ew,hcLight:Ew},ot(0,"Background color for toggled action items in action bar."));const LQ={Visible:new ch("codeActionMenuVisible",!1,ot(0,"Whether the action widget list is visible"))},FQ=dr("actionWidgetService");let TQ=class extends te{get isVisible(){return LQ.Visible.getValue(this._contextKeyService)||!1}constructor(t,i,e){super(),this._contextViewService=t,this._contextKeyService=i,this._instantiationService=e,this._list=this._register(new ie)}show(t,i,e,s,n,o,r){const h=LQ.Visible.bindTo(this._contextKeyService),c=this._instantiationService.createInstance(EQ,t,i,e,s);this._contextViewService.showContextView({getAnchor:()=>n,render:t=>(h.set(!0),this._renderWidget(t,c,null!=r?r:[])),onHide:t=>{h.reset(),this._onWidgetClosed(t)}},o,!1)}acceptSelected(t){var i;null===(i=this._list.value)||void 0===i||i.acceptSelected(t)}focusPrevious(){var t,i;null===(i=null===(t=this._list)||void 0===t?void 0:t.value)||void 0===i||i.focusPrevious()}focusNext(){var t,i;null===(i=null===(t=this._list)||void 0===t?void 0:t.value)||void 0===i||i.focusNext()}hide(){var t;null===(t=this._list.value)||void 0===t||t.hide(),this._list.clear()}_renderWidget(t,i,e){var s;const n=document.createElement("div");if(n.classList.add("action-widget"),t.appendChild(n),this._list.value=i,!this._list.value)throw new Error("List has no value");n.appendChild(this._list.value.domNode);const o=new Xi,r=document.createElement("div"),h=t.appendChild(r);h.classList.add("context-view-block"),o.add(Va(h,Ll.MOUSE_DOWN,(t=>t.stopPropagation())));const c=document.createElement("div"),a=t.appendChild(c);a.classList.add("context-view-pointerBlock"),o.add(Va(a,Ll.POINTER_MOVE,(()=>a.remove()))),o.add(Va(a,Ll.MOUSE_DOWN,(()=>a.remove())));let l=0;if(e.length){const t=this._createActionBar(".action-widget-action-bar",e);t&&(n.appendChild(t.getContainer().parentElement),o.add(t),l=t.getContainer().offsetWidth)}const u=null===(s=this._list.value)||void 0===s?void 0:s.layout(l);n.style.width=`${u}px`;const d=o.add(Rl(t));return o.add(d.onDidBlur((()=>this.hide()))),o}_createActionBar(t,i){if(!i.length)return;const e=$l(t),s=new YB(e);return s.push(i,{icon:!1,label:!0}),s}_onWidgetClosed(t){var i;null===(i=this._list.value)||void 0===i||i.hide(t)}};TQ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([MQ(0,aI),MQ(1,ah),MQ(2,ur)],TQ),Cd(FQ,TQ,1);const RQ=1100;$h(class extends Ph{constructor(){super({id:"hideCodeActionWidget",title:{value:ot(0,"Hide action widget"),original:"Hide action widget"},precondition:LQ.Visible,keybinding:{weight:RQ,primary:9,secondary:[1033]}})}run(t){t.get(FQ).hide()}}),$h(class extends Ph{constructor(){super({id:"selectPrevCodeAction",title:{value:ot(0,"Select previous action"),original:"Select previous action"},precondition:LQ.Visible,keybinding:{weight:RQ,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(t){const i=t.get(FQ);i instanceof TQ&&i.focusPrevious()}}),$h(class extends Ph{constructor(){super({id:"selectNextCodeAction",title:{value:ot(0,"Select next action"),original:"Select next action"},precondition:LQ.Visible,keybinding:{weight:RQ,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(t){const i=t.get(FQ);i instanceof TQ&&i.focusNext()}}),$h(class extends Ph{constructor(){super({id:bQ,title:{value:ot(0,"Accept selected action"),original:"Accept selected action"},precondition:LQ.Visible,keybinding:{weight:RQ,primary:3,secondary:[2137]}})}run(t){const i=t.get(FQ);i instanceof TQ&&i.acceptSelected()}}),$h(class extends Ph{constructor(){super({id:yQ,title:{value:ot(0,"Preview selected action"),original:"Preview selected action"},precondition:LQ.Visible,keybinding:{weight:RQ,primary:2051}})}run(t){const i=t.get(FQ);i instanceof TQ&&i.acceptSelected(!0)}});const OQ=new ch("supportedCodeAction","");class IQ extends te{constructor(t,i,e,s=250){super(),this._editor=t,this._markerService=i,this._signalChange=e,this._delay=s,this._autoTriggerTimer=this._register(new dc),this._register(this._markerService.onMarkerChanged((t=>this._onMarkerChanges(t)))),this._register(this._editor.onDidChangeCursorPosition((()=>this._tryAutoTrigger())))}trigger(t){const i=this._getRangeOfSelectionUnlessWhitespaceEnclosed(t);this._signalChange(i?{trigger:t,selection:i}:void 0)}_onMarkerChanges(t){const i=this._editor.getModel();i&&t.some((t=>wA(t,i.uri)))&&this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet((()=>{this.trigger({type:2,triggerAction:BZ.Default})}),this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(t){var i;if(!this._editor.hasModel())return;const e=this._editor.getModel(),s=this._editor.getSelection();if(s.isEmpty()&&2===t.type){const{lineNumber:t,column:n}=s.getPosition(),o=e.getLineContent(t);if(0===o.length){if((null===(i=this._editor.getOption(64).experimental)||void 0===i?void 0:i.showAiIcon)!==mi.On)return}else if(1===n){if(/\s/.test(o[0]))return}else if(n===e.getLineMaxColumn(t)){if(/\s/.test(o[o.length-1]))return}else if(/\s/.test(o[n-2])&&/\s/.test(o[n-1]))return}return s}}var _Q;!function(t){t.Empty={type:0},t.Triggered=class{constructor(t,i,e){this.trigger=t,this.position=i,this._cancellablePromise=e,this.type=1,this.actions=e.catch((t=>{if(ji(t))return NQ;throw t}))}cancel(){this._cancellablePromise.cancel()}}}(_Q||(_Q={}));const NQ=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class BQ extends te{constructor(t,i,e,s,n,o){super(),this._editor=t,this._registry=i,this._markerService=e,this._progressService=n,this._configurationService=o,this._codeActionOracle=this._register(new ie),this._state=_Q.Empty,this._onDidChangeState=this._register(new de),this.onDidChangeState=this._onDidChangeState.event,this._disposed=!1,this._supportedCodeActions=OQ.bindTo(s),this._register(this._editor.onDidChangeModel((()=>this._update()))),this._register(this._editor.onDidChangeModelLanguage((()=>this._update()))),this._register(this._registry.onDidChange((()=>this._update()))),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(_Q.Empty,!0))}_settingEnabledNearbyQuickfixes(){var t;const i=null===(t=this._editor)||void 0===t?void 0:t.getModel();return!!this._configurationService&&this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:null==i?void 0:i.uri})}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(_Q.Empty);const t=this._editor.getModel();if(t&&this._registry.has(t)&&!this._editor.getOption(90)){const i=this._registry.all(t).flatMap((t=>{var i;return null!==(i=t.providedCodeActionKinds)&&void 0!==i?i:[]}));this._supportedCodeActions.set(i.join(" ")),this._codeActionOracle.value=new IQ(this._editor,this._markerService,(i=>{var e;if(!i)return void this.setState(_Q.Empty);const s=i.selection.getStartPosition(),n=nc((async e=>{var s,n,o,r,h,c;if(this._settingEnabledNearbyQuickfixes()&&1===i.trigger.type&&(i.trigger.triggerAction===BZ.QuickFix||(null===(n=null===(s=i.trigger.filter)||void 0===s?void 0:s.include)||void 0===n?void 0:n.contains(NZ.QuickFix)))){const s=await QZ(this._registry,t,i.selection,i.trigger,jO.None,e),n=[...s.allActions];if(e.isCancellationRequested)return NQ;if(!(null===(o=s.validActions)||void 0===o?void 0:o.some((t=>!!t.action.kind&&NZ.QuickFix.contains(new NZ(t.action.kind)))))){const o=this._markerService.read({resource:t.uri});if(o.length>0){const a=i.selection.getPosition();let l=a,u=Number.MAX_VALUE;const d=[...s.validActions];for(const f of o){const o=f.endColumn,p=f.endLineNumber;if(p===a.lineNumber||f.startLineNumber===a.lineNumber){l=new As(p,o);const f={type:i.trigger.type,triggerAction:i.trigger.triggerAction,filter:{include:(null===(r=i.trigger.filter)||void 0===r?void 0:r.include)?null===(h=i.trigger.filter)||void 0===h?void 0:h.include:NZ.QuickFix},autoApply:i.trigger.autoApply,context:{notAvailableMessage:(null===(c=i.trigger.context)||void 0===c?void 0:c.notAvailableMessage)||"",position:l}},g=new Ls(l.lineNumber,l.column,l.lineNumber,l.column),m=await QZ(this._registry,t,g,f,jO.None,e);if(0!==m.validActions.length){for(const t of m.validActions)t.highlightRange=t.action.isPreferred;0===s.allActions.length&&n.push(...m.allActions),Math.abs(a.column-o)e.findIndex((i=>i.action.title===t.action.title))===i));return f.sort(((t,i)=>t.action.isPreferred&&!i.action.isPreferred?-1:!t.action.isPreferred&&i.action.isPreferred||t.action.isAI&&!i.action.isAI?1:!t.action.isAI&&i.action.isAI?-1:0)),{validActions:f,allActions:n,documentation:s.documentation,hasAutoFix:s.hasAutoFix,hasAIFix:s.hasAIFix,allAIFixes:s.allAIFixes,dispose:()=>{s.dispose()}}}}}return QZ(this._registry,t,i.selection,i.trigger,jO.None,e)}));1===i.trigger.type&&(null===(e=this._progressService)||void 0===e||e.showWhile(n,250)),this.setState(new _Q.Triggered(i.trigger,s,n))}),void 0),this._codeActionOracle.value.trigger({type:2,triggerAction:BZ.Default})}else this._supportedCodeActions.reset()}trigger(t){var i;null===(i=this._codeActionOracle.value)||void 0===i||i.trigger(t)}setState(t,i){t!==this._state&&(1===this._state.type&&this._state.cancel(),this._state=t,i||this._disposed||this._onDidChangeState.fire(t))}}var PQ,$Q=function(t,i){return function(e,s){i(e,s,t)}};let WQ=PQ=class extends te{static get(t){return t.getContribution(PQ.ID)}constructor(t,i,e,s,n,o,r,h,c,a){super(),this._commandService=r,this._configurationService=h,this._actionWidgetService=c,this._instantiationService=a,this._activeCodeActions=this._register(new ie),this._showDisabled=!1,this._disposed=!1,this._editor=t,this._model=this._register(new BQ(this._editor,n.codeActionProvider,i,e,o,h)),this._register(this._model.onDidChangeState((t=>this.update(t)))),this._lightBulbWidget=new zn((()=>{const t=this._editor.getContribution(hQ.ID);return t&&this._register(t.onClick((t=>this.showCodeActionList(t.actions,t,{includeDisabledActions:!1,fromLightbulb:!0})))),t})),this._resolver=s.createInstance(iQ),this._register(this._editor.onDidLayoutChange((()=>this._actionWidgetService.hide())))}dispose(){this._disposed=!0,super.dispose()}showCodeActions(t,i,e){return this.showCodeActionList(i,e,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(t,i,e,s){var n;if(!this._editor.hasModel())return;null===(n=gQ.get(this._editor))||void 0===n||n.closeMessage();const o=this._editor.getPosition();this._trigger({type:1,triggerAction:i,filter:e,autoApply:s,context:{notAvailableMessage:t,position:o}})}_trigger(t){return this._model.trigger(t)}async _applyCodeAction(t,i,e){try{await this._instantiationService.invokeFunction(XZ,t,YZ.FromCodeActions,{preview:e,editor:this._editor})}finally{i&&this._trigger({type:2,triggerAction:BZ.QuickFix,filter:{}})}}async update(t){var i,e,s,n,o,r,h;if(1!==t.type)return void(null===(i=this._lightBulbWidget.rawValue)||void 0===i||i.hide());let c;try{c=await t.actions}catch(t){return void Bi(t)}if(!this._disposed)if(null===(e=this._lightBulbWidget.value)||void 0===e||e.update(c,t.trigger,t.position),1===t.trigger.type){if(null===(s=t.trigger.filter)||void 0===s?void 0:s.include){const i=this.tryGetValidActionToApply(t.trigger,c);if(i){try{null===(n=this._lightBulbWidget.value)||void 0===n||n.hide(),await this._applyCodeAction(i,!1,!1)}finally{c.dispose()}return}if(t.trigger.context){const i=this.getInvalidActionThatWouldHaveBeenApplied(t.trigger,c);if(i&&i.action.disabled)return null===(o=gQ.get(this._editor))||void 0===o||o.showMessage(i.action.disabled,t.trigger.context.position),void c.dispose()}}const i=!!(null===(r=t.trigger.filter)||void 0===r?void 0:r.include);if(t.trigger.context&&(!c.allActions.length||!i&&!c.validActions.length))return null===(h=gQ.get(this._editor))||void 0===h||h.showMessage(t.trigger.context.notAvailableMessage,t.trigger.context.position),this._activeCodeActions.value=c,void c.dispose();this._activeCodeActions.value=c,this.showCodeActionList(c,this.toCoords(t.position),{includeDisabledActions:i,fromLightbulb:!1})}else this._actionWidgetService.isVisible?c.dispose():this._activeCodeActions.value=c}getInvalidActionThatWouldHaveBeenApplied(t,i){if(i.allActions.length)return"first"===t.autoApply&&0===i.validActions.length||"ifSingle"===t.autoApply&&1===i.allActions.length?i.allActions.find((({action:t})=>t.disabled)):void 0}tryGetValidActionToApply(t,i){if(i.validActions.length)return"first"===t.autoApply&&i.validActions.length>0||"ifSingle"===t.autoApply&&1===i.validActions.length?i.validActions[0]:void 0}async showCodeActionList(t,i,e){const s=this._editor.createDecorationsCollection(),n=this._editor.getDomNode();if(!n)return;const o=e.includeDisabledActions&&(this._showDisabled||0===t.validActions.length)?t.allActions:t.validActions;if(!o.length)return;const r=As.isIPosition(i)?this.toCoords(i):i,h={onSelect:async(t,i)=>{this._applyCodeAction(t,!0,!!i),this._actionWidgetService.hide(),s.clear()},onHide:()=>{var t;null===(t=this._editor)||void 0===t||t.focus(),s.clear()},onHover:async(t,i)=>{var e;if(await t.resolve(i),!i.isCancellationRequested)return{canPreview:!!(null===(e=t.action.edit)||void 0===e?void 0:e.edits.length)}},onFocus:t=>{var i,e;if(t&&t.highlightRange&&t.action.diagnostics){s.set([{range:t.action.diagnostics[0],options:PQ.DECORATION}]);const n=t.action.diagnostics[0];$m(ot(0,"Context: {0} at line {1} and column {2}.",null===(e=null===(i=this._editor.getModel())||void 0===i?void 0:i.getWordAtPosition({lineNumber:n.startLineNumber,column:n.startColumn}))||void 0===e?void 0:e.word,n.startLineNumber,n.startColumn))}else s.clear()}};this._actionWidgetService.show("codeActionWidget",!0,function(t,i,e){if(!i)return t.map((t=>{var i;return{kind:"action",item:t,group:eQ,disabled:!!t.action.disabled,label:t.action.disabled||t.action.title,canPreview:!!(null===(i=t.action.edit)||void 0===i?void 0:i.edits.length)}}));const s=sQ.map((t=>({group:t,actions:[]})));for(const i of t){const t=i.action.kind?new NZ(i.action.kind):NZ.None;for(const e of s)if(e.group.kind.contains(t)){e.actions.push(i);break}}const n=[];for(const t of s)if(t.actions.length){n.push({kind:"header",group:t.group});for(const i of t.actions){const s=t.group;n.push({kind:"action",item:i,group:i.action.isAI?{title:s.title,kind:s.kind,icon:Os.sparkle}:s,label:i.action.title,disabled:!!i.action.disabled,keybinding:e(i.action)})}}return n}(o,this._shouldShowHeaders(),this._resolver.getResolver()),h,r,n,this._getActionBarActions(t,i,e))}toCoords(t){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(t,1),this._editor.render();const i=this._editor.getScrolledVisiblePosition(t),e=nl(this._editor.getDomNode());return{x:e.left+i.left,y:e.top+i.top+i.height}}_shouldShowHeaders(){var t;const i=null===(t=this._editor)||void 0===t?void 0:t.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:null==i?void 0:i.uri})}_getActionBarActions(t,i,e){if(e.fromLightbulb)return[];const s=t.documentation.map((t=>{var i;return{id:t.id,label:t.title,tooltip:null!==(i=t.tooltip)&&void 0!==i?i:"",class:void 0,enabled:!0,run:()=>{var i;return this._commandService.executeCommand(t.id,...null!==(i=t.arguments)&&void 0!==i?i:[])}}}));return e.includeDisabledActions&&t.validActions.length>0&&t.allActions.length!==t.validActions.length&&s.push(this._showDisabled?{id:"hideMoreActions",label:ot(0,"Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(t,i,e))}:{id:"showMoreActions",label:ot(0,"Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(t,i,e))}),s}};function jQ(t){return zr.regex(OQ.keys()[0],new RegExp("(\\s|^)"+Gn(t.value)+"\\b"))}WQ.ID="editor.contrib.codeActionController",WQ.DECORATION=AL.register({description:"quickfix-highlight",className:"quickfix-edit-highlight"}),WQ=PQ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([$Q(1,kP),$Q(2,ah),$Q(3,ur),$Q(4,xg),$Q(5,zO),$Q(6,Sr),$Q(7,pd),$Q(8,FQ),$Q(9,ur)],WQ),nx(((t,i)=>{((t,e)=>{e&&i.addRule(`.monaco-editor .quickfix-edit-highlight { background-color: ${e}; }`)})(0,t.getColor(Lv));const e=t.getColor(Rv);e&&i.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${zy(t.type)?"dotted":"solid"} ${e}; box-sizing: border-box; }`)}));const zQ={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:ot(0,"Kind of the code action to run.")},apply:{type:"string",description:ot(0,"Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[ot(0,"Always apply the first returned code action."),ot(0,"Apply the first returned code action if it is the only one."),ot(0,"Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:ot(0,"Controls if only preferred code actions should be returned.")}}};function HQ(t,i,e,s,n=BZ.Default){if(t.hasModel()){const o=WQ.get(t);null==o||o.manualTriggerAtCurrentPosition(i,n,e,s)}}lu(WQ.ID,WQ,3),lu(hQ.ID,hQ,4),cu(class extends su{constructor(){super({id:zZ,label:ot(0,"Quick Fix..."),alias:"Quick Fix...",precondition:zr.and(YC.writable,YC.hasCodeActionsProvider),kbOpts:{kbExpr:YC.textInputFocus,primary:2137,weight:100}})}run(t,i){return HQ(i,ot(0,"No code actions available"),void 0,void 0,BZ.QuickFix)}}),cu(class extends su{constructor(){super({id:VZ,label:ot(0,"Refactor..."),alias:"Refactor...",precondition:zr.and(YC.writable,YC.hasCodeActionsProvider),kbOpts:{kbExpr:YC.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:zr.and(YC.writable,jQ(NZ.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:zQ}]}})}run(t,i,e){const s=$Z.fromUser(e,{kind:NZ.Refactor,apply:"never"});return HQ(i,"string"==typeof(null==e?void 0:e.kind)?ot(0,s.preferred?"No preferred refactorings for '{0}' available":"No refactorings for '{0}' available",e.kind):ot(0,s.preferred?"No preferred refactorings available":"No refactorings available"),{include:NZ.Refactor.contains(s.kind)?s.kind:NZ.None,onlyIncludePreferredActions:s.preferred},s.apply,BZ.Refactor)}}),cu(class extends su{constructor(){super({id:UZ,label:ot(0,"Source Action..."),alias:"Source Action...",precondition:zr.and(YC.writable,YC.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:zr.and(YC.writable,jQ(NZ.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:zQ}]}})}run(t,i,e){const s=$Z.fromUser(e,{kind:NZ.Source,apply:"never"});return HQ(i,"string"==typeof(null==e?void 0:e.kind)?ot(0,s.preferred?"No preferred source actions for '{0}' available":"No source actions for '{0}' available",e.kind):ot(0,s.preferred?"No preferred source actions available":"No source actions available"),{include:NZ.Source.contains(s.kind)?s.kind:NZ.None,includeSourceActions:!0,onlyIncludePreferredActions:s.preferred},s.apply,BZ.SourceAction)}}),cu(class extends su{constructor(){super({id:qZ,label:ot(0,"Organize Imports"),alias:"Organize Imports",precondition:zr.and(YC.writable,jQ(NZ.SourceOrganizeImports)),kbOpts:{kbExpr:YC.textInputFocus,primary:1581,weight:100}})}run(t,i){return HQ(i,ot(0,"No organize imports action available"),{include:NZ.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",BZ.OrganizeImports)}}),cu(class extends su{constructor(){super({id:HZ,label:ot(0,"Auto Fix..."),alias:"Auto Fix...",precondition:zr.and(YC.writable,jQ(NZ.QuickFix)),kbOpts:{kbExpr:YC.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(t,i){return HQ(i,ot(0,"No auto fixes available"),{include:NZ.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",BZ.AutoFix)}}),cu(class extends su{constructor(){super({id:KZ,label:ot(0,"Fix All"),alias:"Fix All",precondition:zr.and(YC.writable,jQ(NZ.SourceFixAll))})}run(t,i){return HQ(i,ot(0,"No fix all action available"),{include:NZ.SourceFixAll,includeSourceActions:!0},"ifSingle",BZ.FixAll)}}),hu(new class extends eu{constructor(){super({id:jZ,precondition:zr.and(YC.writable,YC.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:zQ}]}})}runEditorCommand(t,i,e){const s=$Z.fromUser(e,{kind:NZ.Empty,apply:"ifSingle"});return HQ(i,"string"==typeof(null==e?void 0:e.kind)?ot(0,s.preferred?"No preferred code actions for '{0}' available":"No code actions for '{0}' available",e.kind):ot(0,s.preferred?"No preferred code actions available":"No code actions available"),{include:s.kind,includeSourceActions:!0,onlyIncludePreferredActions:s.preferred},s.apply)}}),Dh.as(Md).registerConfiguration({...aO,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:5,description:ot(0,"Enable/disable showing group headers in the Code Action menu."),default:!0}}}),Dh.as(Md).registerConfiguration({...aO,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:5,description:ot(0,"Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."),default:!0}}});class VQ{constructor(){this.lenses=[],this._disposables=new Xi}dispose(){this._disposables.dispose()}get isDisposed(){return this._disposables.isDisposed}add(t,i){this._disposables.add(t);for(const e of t.lenses)this.lenses.push({symbol:e,provider:i})}}async function UQ(t,i,e){const s=t.ordered(i),n=new Map,o=new VQ,r=s.map((async(t,s)=>{n.set(t,s);try{const s=await Promise.resolve(t.provideCodeLenses(i,e));s&&o.add(s,t)}catch(t){Pi(t)}}));return await Promise.all(r),o.lenses=o.lenses.sort(((t,i)=>t.symbol.range.startLineNumberi.symbol.range.startLineNumber?1:n.get(t.provider)n.get(i.provider)?1:t.symbol.range.startColumni.symbol.range.startColumn?1:0)),o}Dr.registerCommand("_executeCodeLensProvider",(function(t,...i){let[e,s]=i;q(ms.isUri(e)),q("number"==typeof s||!s);const{codeLensProvider:n}=t.get(xg),o=t.get(pr).getModel(e);if(!o)throw Hi();const r=[],h=new Xi;return UQ(n,o,ke.None).then((t=>{h.add(t);const i=[];for(const e of t.lenses)null==s||Boolean(e.symbol.command)?r.push(e.symbol):s-- >0&&e.provider.resolveCodeLens&&i.push(Promise.resolve(e.provider.resolveCodeLens(o,e.symbol,ke.None)).then((t=>r.push(t||e.symbol))));return Promise.all(i)})).then((()=>r)).finally((()=>{setTimeout((()=>h.dispose()),100)}))}));const qQ=dr("ICodeLensCache");class KQ{constructor(t,i){this.lineCount=t,this.data=i}}let GQ=class{constructor(t){this._fakeProvider=new class{provideCodeLenses(){throw new Error("not supported")}},this._cache=new Vp(20,.75),Ka($n,(()=>t.remove("codelens/cache",1)));const i="codelens/cache2",e=t.get(i,1,"{}");this._deserialize(e),he.once(t.onWillSaveState)((e=>{e.reason===MB.SHUTDOWN&&t.store(i,this._serialize(),1,1)}))}put(t,i){const e=i.lenses.map((t=>{var i;return{range:t.symbol.range,command:t.symbol.command&&{id:"",title:null===(i=t.symbol.command)||void 0===i?void 0:i.title}}})),s=new VQ;s.add({lenses:e,dispose:()=>{}},this._fakeProvider);const n=new KQ(t.getLineCount(),s);this._cache.set(t.uri.toString(),n)}get(t){const i=this._cache.get(t.uri.toString());return i&&i.lineCount===t.getLineCount()?i.data:void 0}delete(t){this._cache.delete(t.uri.toString())}_serialize(){const t=Object.create(null);for(const[i,e]of this._cache){const s=new Set;for(const t of e.data.lenses)s.add(t.symbol.range.startLineNumber);t[i]={lineCount:e.lineCount,lines:[...s.values()]}}return JSON.stringify(t)}_deserialize(t){try{const i=JSON.parse(t);for(const t in i){const e=i[t],s=[];for(const t of e.lines)s.push({range:new Ms(t,1,t,11)});const n=new VQ;n.add({lenses:s,dispose(){}},this._fakeProvider),this._cache.set(t,new KQ(e.lineCount,n))}}catch(t){}}};GQ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(0,AB)],GQ),Cd(qQ,GQ,1);class ZQ{constructor(t,i,e){this.afterColumn=1073741824,this.afterLineNumber=t,this.heightInPx=i,this._onHeight=e,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(t){void 0===this._lastHeight?this._lastHeight=t:this._lastHeight!==t&&(this._lastHeight=t,this._onHeight())}isVisible(){return 0!==this._lastHeight&&this.domNode.hasAttribute("monaco-visible-view-zone")}}class QQ{constructor(t,i){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=t,this._id="codelens.widget-"+QQ._idPool++,this.updatePosition(i),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration"}withCommands(t,i){this._commands.clear();const e=[];let s=!1;for(let i=0;i{t.symbol.command&&h.push(t.symbol),e.addDecoration({range:t.symbol.range,options:YQ},(t=>this._decorationIds[i]=t)),r=r?Ms.plusRange(r,t.symbol.range):Ms.lift(t.symbol.range)})),this._viewZone=new ZQ(r.startLineNumber-1,n,o),this._viewZoneId=s.addZone(this._viewZone),h.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(h,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new QQ(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(t,i){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],null==i||i.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some(((t,i)=>{const e=this._editor.getModel().getDecorationRange(t);return!(!e||Ms.isEmpty(this._data[i].symbol.range)!==e.isEmpty())}))}updateCodeLensSymbols(t,i){this._decorationIds.forEach(i.removeDecoration,i),this._decorationIds=[],this._data=t,this._data.forEach(((t,e)=>{i.addDecoration({range:t.symbol.range,options:YQ},(t=>this._decorationIds[e]=t))}))}updateHeight(t,i){this._viewZone.heightInPx=t,i.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(t){if(!this._viewZone.isVisible())return null;for(let i=0;ithis._resolveCodeLensesInViewport()),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel((()=>this._onModelChange()))),this._disposables.add(this._editor.onDidChangeModelLanguage((()=>this._onModelChange()))),this._disposables.add(this._editor.onDidChangeConfiguration((t=>{(t.hasChanged(50)||t.hasChanged(19)||t.hasChanged(18))&&this._updateLensStyle(),t.hasChanged(17)&&this._onModelChange()}))),this._disposables.add(i.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){var t;this._localDispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),null===(t=this._currentCodeLensModel)||void 0===t||t.dispose()}_getLayoutInfo(){const t=Math.max(1.3,this._editor.getOption(66)/this._editor.getOption(52));let i=this._editor.getOption(19);return(!i||i<5)&&(i=.9*this._editor.getOption(52)|0),{fontSize:i,codeLensHeight:i*t|0}}_updateLensStyle(){const{codeLensHeight:t,fontSize:i}=this._getLayoutInfo(),e=this._editor.getOption(18),s=this._editor.getOption(50),{style:n}=this._editor.getContainerDomNode();n.setProperty("--vscode-editorCodeLens-lineHeight",`${t}px`),n.setProperty("--vscode-editorCodeLens-fontSize",`${i}px`),n.setProperty("--vscode-editorCodeLens-fontFeatureSettings",s.fontFeatureSettings),e&&(n.setProperty("--vscode-editorCodeLens-fontFamily",e),n.setProperty("--vscode-editorCodeLens-fontFamilyDefault",Ri.fontFamily)),this._editor.changeViewZones((i=>{for(const e of this._lenses)e.updateHeight(t,i)}))}_localDispose(){var t,i,e;null===(t=this._getCodeLensModelPromise)||void 0===t||t.cancel(),this._getCodeLensModelPromise=void 0,null===(i=this._resolveCodeLensesPromise)||void 0===i||i.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),null===(e=this._currentCodeLensModel)||void 0===e||e.dispose()}_onModelChange(){this._localDispose();const t=this._editor.getModel();if(!t)return;if(!this._editor.getOption(17)||t.isTooLargeForTokenization())return;const i=this._codeLensCache.get(t);if(i&&this._renderCodeLensSymbols(i),!this._languageFeaturesService.codeLensProvider.has(t))return void(i&&lc((()=>{const e=this._codeLensCache.get(t);i===e&&(this._codeLensCache.delete(t),this._onModelChange())}),3e4,this._localToDispose));for(const i of this._languageFeaturesService.codeLensProvider.all(t))if("function"==typeof i.onDidChange){const t=i.onDidChange((()=>e.schedule()));this._localToDispose.add(t)}const e=new pc((()=>{var i;const s=Date.now();null===(i=this._getCodeLensModelPromise)||void 0===i||i.cancel(),this._getCodeLensModelPromise=nc((i=>UQ(this._languageFeaturesService.codeLensProvider,t,i))),this._getCodeLensModelPromise.then((i=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=i,this._codeLensCache.put(t,i);const n=this._provideCodeLensDebounce.update(t,Date.now()-s);e.delay=n,this._renderCodeLensSymbols(i),this._resolveCodeLensesInViewportSoon()}),Bi)}),this._provideCodeLensDebounce.get(t));this._localToDispose.add(e),this._localToDispose.add(Yi((()=>this._resolveCodeLensesScheduler.cancel()))),this._localToDispose.add(this._editor.onDidChangeModelContent((()=>{var t;this._editor.changeDecorations((t=>{this._editor.changeViewZones((i=>{const e=[];let s=-1;this._lenses.forEach((t=>{t.isValid()&&s!==t.getLineNumber()?(t.update(i),s=t.getLineNumber()):e.push(t)}));const n=new JQ;e.forEach((t=>{t.dispose(n,i),this._lenses.splice(this._lenses.indexOf(t),1)})),n.commit(t)}))})),e.schedule(),this._resolveCodeLensesScheduler.cancel(),null===(t=this._resolveCodeLensesPromise)||void 0===t||t.cancel(),this._resolveCodeLensesPromise=void 0}))),this._localToDispose.add(this._editor.onDidFocusEditorWidget((()=>{e.schedule()}))),this._localToDispose.add(this._editor.onDidBlurEditorText((()=>{e.cancel()}))),this._localToDispose.add(this._editor.onDidScrollChange((t=>{t.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()}))),this._localToDispose.add(this._editor.onDidLayoutChange((()=>{this._resolveCodeLensesInViewportSoon()}))),this._localToDispose.add(Yi((()=>{if(this._editor.getModel()){const t=iU.capture(this._editor);this._editor.changeDecorations((t=>{this._editor.changeViewZones((i=>{this._disposeAllLenses(t,i)}))})),t.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)}))),this._localToDispose.add(this._editor.onMouseDown((t=>{if(9!==t.target.type)return;let i=t.target.element;if("SPAN"===(null==i?void 0:i.tagName)&&(i=i.parentElement),"A"===(null==i?void 0:i.tagName))for(const t of this._lenses){const e=t.getCommand(i);if(e){this._commandService.executeCommand(e.id,...e.arguments||[]).catch((t=>this._notificationService.error(t)));break}}}))),e.schedule()}_disposeAllLenses(t,i){const e=new JQ;for(const t of this._lenses)t.dispose(e,i);t&&e.commit(t),this._lenses.length=0}_renderCodeLensSymbols(t){if(!this._editor.hasModel())return;const i=this._editor.getModel().getLineCount(),e=[];let s;for(const n of t.lenses){const t=n.symbol.range.startLineNumber;t<1||t>i||(s&&s[s.length-1].symbol.range.startLineNumber===t?s.push(n):(s=[n],e.push(s)))}if(!e.length&&!this._lenses.length)return;const n=iU.capture(this._editor),o=this._getLayoutInfo();this._editor.changeDecorations((t=>{this._editor.changeViewZones((i=>{const s=new JQ;let n=0,r=0;for(;rthis._resolveCodeLensesInViewportSoon()))),n++,r++)}for(;nthis._resolveCodeLensesInViewportSoon()))),r++;s.commit(t)}))})),n.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){var t;null===(t=this._resolveCodeLensesPromise)||void 0===t||t.cancel(),this._resolveCodeLensesPromise=void 0;const i=this._editor.getModel();if(!i)return;const e=[],s=[];if(this._lenses.forEach((t=>{const n=t.computeIfNecessary(i);n&&(e.push(n),s.push(t))})),0===e.length)return;const n=Date.now(),o=nc((t=>{const n=e.map(((e,n)=>{const o=new Array(e.length),r=e.map(((e,s)=>e.symbol.command||"function"!=typeof e.provider.resolveCodeLens?(o[s]=e.symbol,Promise.resolve(void 0)):Promise.resolve(e.provider.resolveCodeLens(i,e.symbol,t)).then((t=>{o[s]=t}),Pi)));return Promise.all(r).then((()=>{t.isCancellationRequested||s[n].isDisposed()||s[n].updateCommands(o)}))}));return Promise.all(n)}));this._resolveCodeLensesPromise=o,this._resolveCodeLensesPromise.then((()=>{const t=this._resolveCodeLensesDebounce.update(i,Date.now()-n);this._resolveCodeLensesScheduler.delay=t,this._currentCodeLensModel&&this._codeLensCache.put(i,this._currentCodeLensModel),this._oldCodeLensModels.clear(),o===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)}),(t=>{Bi(t),o===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)}))}async getModel(){var t;return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,(null===(t=this._currentCodeLensModel)||void 0===t?void 0:t.isDisposed)?void 0:this._currentCodeLensModel}};iJ.ID="css.editor.codeLens",iJ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([tJ(1,xg),tJ(2,gR),tJ(3,Sr),tJ(4,oT),tJ(5,qQ)],iJ),lu(iJ.ID,iJ,1),cu(class extends su{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:YC.hasCodeLensProvider,label:ot(0,"Show CodeLens Commands For Current Line"),alias:"Show CodeLens Commands For Current Line"})}async run(t,i){if(!i.hasModel())return;const e=t.get(Oj),s=t.get(Sr),n=t.get(oT),o=i.getSelection().positionLineNumber,r=i.getContribution(iJ.ID);if(!r)return;const h=await r.getModel();if(!h)return;const c=[];for(const t of h.lenses)t.symbol.command&&t.symbol.range.startLineNumber===o&&c.push({label:t.symbol.command.title,command:t.symbol.command});if(0===c.length)return;const a=await e.pick(c,{canPickMany:!1,placeHolder:ot(0,"Select a command")});if(!a)return;let l=a.command;if(h.isDisposed){const t=await r.getModel(),i=null==t?void 0:t.lenses.find((t=>{var i;return t.symbol.range.startLineNumber===o&&(null===(i=t.symbol.command)||void 0===i?void 0:i.title)===l.title}));if(!i||!i.symbol.command)return;l=i.symbol.command}try{await s.executeCommand(l.id,...l.arguments||[])}catch(t){n.error(t)}}});var eJ=function(t,i){return function(e,s){i(e,s,t)}};class sJ{constructor(t,i){this._editorWorkerClient=new Tg(t,!1,"editorWorkerService",i)}async provideDocumentColors(t,i){return this._editorWorkerClient.computeDefaultDocumentColors(t.uri)}provideColorPresentations(t,i,e){const s=i.range,n=i.color,o=n.alpha,r=new lg(new hg(Math.round(255*n.red),Math.round(255*n.green),Math.round(255*n.blue),o)),h=o?lg.Format.CSS.formatRGB(r):lg.Format.CSS.formatRGBA(r),c=o?lg.Format.CSS.formatHSL(r):lg.Format.CSS.formatHSLA(r),a=o?lg.Format.CSS.formatHex(r):lg.Format.CSS.formatHexA(r),l=[];return l.push({label:h,textEdit:{range:s,text:h}}),l.push({label:c,textEdit:{range:s,text:c}}),l.push({label:a,textEdit:{range:s,text:a}}),l}}let nJ=class extends te{constructor(t,i,e){super(),this._register(e.colorProvider.register("*",new sJ(t,i)))}};async function oJ(t,i,e,s=!0){return lJ(new hJ,t,i,e,s)}function rJ(t,i,e,s){return Promise.resolve(e.provideColorPresentations(t,i,s))}nJ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([eJ(0,pr),eJ(1,Xd),eJ(2,xg)],nJ),GH(nJ);class hJ{constructor(){}async compute(t,i,e,s){const n=await t.provideDocumentColors(i,e);if(Array.isArray(n))for(const i of n)s.push({colorInfo:i,provider:t});return Array.isArray(n)}}class cJ{constructor(){}async compute(t,i,e,s){const n=await t.provideDocumentColors(i,e);if(Array.isArray(n))for(const t of n)s.push({range:t.range,color:[t.color.red,t.color.green,t.color.blue,t.color.alpha]});return Array.isArray(n)}}class aJ{constructor(t){this.colorInfo=t}async compute(t,i,e,s){const n=await t.provideColorPresentations(i,this.colorInfo,ke.None);return Array.isArray(n)&&s.push(...n),Array.isArray(n)}}async function lJ(t,i,e,s,n){let o,r=!1;const h=[],c=i.ordered(e);for(let i=c.length-1;i>=0;i--){const n=c[i];if(n instanceof sJ)o=n;else try{await t.compute(n,e,s,h)&&(r=!0)}catch(t){Pi(t)}}return r?h:o&&n?(await t.compute(o,e,s,h),h):[]}function uJ(t,i){const{colorProvider:e}=t.get(xg),s=t.get(pr).getModel(i);if(!s)throw Hi();return{model:s,colorProviderRegistry:e,isDefaultColorDecoratorsEnabled:t.get(pd).getValue("editor.defaultColorDecorators",{resource:i})}}Dr.registerCommand("_executeDocumentColorProvider",(function(t,...i){const[e]=i;if(!(e instanceof ms))throw Hi();const{model:s,colorProviderRegistry:n,isDefaultColorDecoratorsEnabled:o}=uJ(t,e);return lJ(new cJ,n,s,ke.None,o)})),Dr.registerCommand("_executeColorPresentationProvider",(function(t,...i){const[e,s]=i,{uri:n,range:o}=s;if(!(n instanceof ms&&Array.isArray(e)&&4===e.length&&Ms.isIRange(o)))throw Hi();const{model:r,colorProviderRegistry:h,isDefaultColorDecoratorsEnabled:c}=uJ(t,n),[a,l,u,d]=e;return lJ(new aJ({range:o,color:{red:a,green:l,blue:u,alpha:d}}),h,r,ke.None,c)}));var dJ,fJ=function(t,i){return function(e,s){i(e,s,t)}};const pJ=Object.create({});let gJ=dJ=class extends te{constructor(t,i,e,s){super(),this._editor=t,this._configurationService=i,this._languageFeaturesService=e,this._localToDispose=this._register(new Xi),this._decorationsIds=[],this._colorDatas=new Map,this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=new Ay(this._editor),this._decoratorLimitReporter=new mJ,this._colorDecorationClassRefs=this._register(new Xi),this._debounceInformation=s.for(e.colorProvider,"Document Colors",{min:dJ.RECOMPUTE_TIME}),this._register(t.onDidChangeModel((()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()}))),this._register(t.onDidChangeModelLanguage((()=>this.updateColors()))),this._register(e.colorProvider.onDidChange((()=>this.updateColors()))),this._register(t.onDidChangeConfiguration((t=>{const i=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(145);const e=i!==this._isColorDecoratorsEnabled||t.hasChanged(21),s=t.hasChanged(145);(e||s)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())}))),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(145),this.updateColors()}isEnabled(){const t=this._editor.getModel();if(!t)return!1;const i=t.getLanguageId(),e=this._configurationService.getValue(i);if(e&&"object"==typeof e){const t=e.colorDecorators;if(t&&void 0!==t.enable&&!t.enable)return t.enable}return this._editor.getOption(20)}static get(t){return t.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled)return;const t=this._editor.getModel();t&&this._languageFeaturesService.colorProvider.has(t)&&(this._localToDispose.add(this._editor.onDidChangeModelContent((()=>{this._timeoutTimer||(this._timeoutTimer=new dc,this._timeoutTimer.cancelAndSet((()=>{this._timeoutTimer=null,this.beginCompute()}),this._debounceInformation.get(t)))}))),this.beginCompute())}async beginCompute(){this._computePromise=nc((async t=>{const i=this._editor.getModel();if(!i)return[];const e=new re(!1),s=await oJ(this._languageFeaturesService.colorProvider,i,t,this._isDefaultColorDecoratorsEnabled);return this._debounceInformation.update(i,e.elapsed()),s}));try{const t=await this._computePromise;this.updateDecorations(t),this.updateColorDecorators(t),this._computePromise=null}catch(t){Bi(t)}}stop(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}updateDecorations(t){const i=t.map((t=>({range:{startLineNumber:t.colorInfo.range.startLineNumber,startColumn:t.colorInfo.range.startColumn,endLineNumber:t.colorInfo.range.endLineNumber,endColumn:t.colorInfo.range.endColumn},options:AL.EMPTY})));this._editor.changeDecorations((e=>{this._decorationsIds=e.deltaDecorations(this._decorationsIds,i),this._colorDatas=new Map,this._decorationsIds.forEach(((i,e)=>this._colorDatas.set(i,t[e])))}))}updateColorDecorators(t){this._colorDecorationClassRefs.clear();const i=[],e=this._editor.getOption(21);for(let s=0;sthis._colorDatas.has(t.id)));return 0===e.length?null:this._colorDatas.get(e[0].id)}isColorDecoration(t){return this._colorDecoratorIds.has(t)}};gJ.ID="editor.contrib.colorDetector",gJ.RECOMPUTE_TIME=1e3,gJ=dJ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([fJ(1,pd),fJ(2,xg),fJ(3,gR)],gJ);class mJ{constructor(){this._onDidChange=new de,this._computed=0,this._limited=!1}update(t,i){t===this._computed&&i===this._limited||(this._computed=t,this._limited=i,this._onDidChange.fire())}}lu(gJ.ID,gJ,1);class wJ{get color(){return this._color}set color(t){this._color.equals(t)||(this._color=t,this._onDidChangeColor.fire(t))}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(t){this._colorPresentations=t,this.presentationIndex>t.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}constructor(t,i,e){this.presentationIndex=e,this._onColorFlushed=new de,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new de,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new de,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=t,this._color=t,this._colorPresentations=i}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(t,i){let e=-1;for(let t=0;t{this.backgroundColor=t.getColor(Iv)||lg.white}))),this._register(Va(this._pickedColorNode,Ll.CLICK,(()=>this.model.selectNextColorPresentation()))),this._register(Va(this._originalColorNode,Ll.CLICK,(()=>{this.model.color=this.model.originalColor,this.model.flushColor()}))),this._register(i.onDidChangeColor(this.onDidChangeColor,this)),this._register(i.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=lg.Format.CSS.format(i.color)||"",this._pickedColorNode.classList.toggle("light",i.color.rgba.a<.5?this.backgroundColor.isLighter():i.color.isLighter()),this.onDidChangeColor(this.model.color),this.showingStandaloneColorPicker&&(this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new yJ(this._domNode)))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(t){this._pickedColorNode.style.backgroundColor=lg.Format.CSS.format(t)||"",this._pickedColorNode.classList.toggle("light",t.rgba.a<.5?this.backgroundColor.isLighter():t.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}class yJ extends te{constructor(t){super(),this._onClicked=this._register(new de),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),Ol(t,this._button);const i=document.createElement("div");i.classList.add("close-button-inner-div"),Ol(this._button,i),Ol(i,vJ(".button"+Cr.asCSSSelector(Hz("color-picker-close",Os.close,ot(0,"Icon to close the color picker"))))).classList.add("close-icon"),this._button.onclick=()=>{this._onClicked.fire()}}}class kJ extends te{constructor(t,i,e,s=!1){super(),this.model=i,this.pixelRatio=e,this._insertButton=null,this._domNode=vJ(".colorpicker-body"),Ol(t,this._domNode),this._saturationBox=new xJ(this._domNode,this.model,this.pixelRatio),this._register(this._saturationBox),this._register(this._saturationBox.onDidChange(this.onDidSaturationValueChange,this)),this._register(this._saturationBox.onColorFlushed(this.flushColor,this)),this._opacityStrip=new SJ(this._domNode,this.model,s),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new DJ(this._domNode,this.model,s),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),s&&(this._insertButton=this._register(new EJ(this._domNode)),this._domNode.classList.add("standalone-colorpicker"))}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:t,v:i}){const e=this.model.color.hsva;this.model.color=new lg(new ag(e.h,t,i,e.a))}onDidOpacityChange(t){const i=this.model.color.hsva;this.model.color=new lg(new ag(i.h,i.s,i.v,t))}onDidHueChange(t){const i=this.model.color.hsva,e=360*(1-t);this.model.color=new lg(new ag(360===e?0:e,i.s,i.v,i.a))}get domNode(){return this._domNode}get saturationBox(){return this._saturationBox}get enterButton(){return this._insertButton}layout(){this._saturationBox.layout(),this._opacityStrip.layout(),this._hueStrip.layout()}}class xJ extends te{constructor(t,i,e){super(),this.model=i,this.pixelRatio=e,this._onDidChange=new de,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new de,this.onColorFlushed=this._onColorFlushed.event,this._domNode=vJ(".saturation-wrap"),Ol(t,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",Ol(this._domNode,this._canvas),this.selection=vJ(".saturation-selection"),Ol(this._domNode,this.selection),this.layout(),this._register(Va(this._domNode,Ll.POINTER_DOWN,(t=>this.onPointerDown(t)))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(t){if(!(t.target&&t.target instanceof Element))return;this.monitor=this._register(new hw);const i=nl(this._domNode);t.target!==this.selection&&this.onDidChangePosition(t.offsetX,t.offsetY),this.monitor.startMonitoring(t.target,t.pointerId,t.buttons,(t=>this.onDidChangePosition(t.pageX-i.left,t.pageY-i.top)),(()=>null));const e=Va(t.target.ownerDocument,Ll.POINTER_UP,(()=>{this._onColorFlushed.fire(),e.dispose(),this.monitor&&(this.monitor.stopMonitoring(!0),this.monitor=null)}),!0)}onDidChangePosition(t,i){const e=Math.max(0,Math.min(1,t/this.width)),s=Math.max(0,Math.min(1,1-i/this.height));this.paintSelection(e,s),this._onDidChange.fire({s:e,v:s})}layout(){this.width=this._domNode.offsetWidth,this.height=this._domNode.offsetHeight,this._canvas.width=this.width*this.pixelRatio,this._canvas.height=this.height*this.pixelRatio,this.paint();const t=this.model.color.hsva;this.paintSelection(t.s,t.v)}paint(){const t=new lg(new ag(this.model.color.hsva.h,1,1,1)),i=this._canvas.getContext("2d"),e=i.createLinearGradient(0,0,this._canvas.width,0);e.addColorStop(0,"rgba(255, 255, 255, 1)"),e.addColorStop(.5,"rgba(255, 255, 255, 0.5)"),e.addColorStop(1,"rgba(255, 255, 255, 0)");const s=i.createLinearGradient(0,0,0,this._canvas.height);s.addColorStop(0,"rgba(0, 0, 0, 0)"),s.addColorStop(1,"rgba(0, 0, 0, 1)"),i.rect(0,0,this._canvas.width,this._canvas.height),i.fillStyle=lg.Format.CSS.format(t),i.fill(),i.fillStyle=e,i.fill(),i.fillStyle=s,i.fill()}paintSelection(t,i){this.selection.style.left=t*this.width+"px",this.selection.style.top=this.height-i*this.height+"px"}onDidChangeColor(t){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();const i=t.hsva;this.paintSelection(i.s,i.v)}}class CJ extends te{constructor(t,i,e=!1){super(),this.model=i,this._onDidChange=new de,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new de,this.onColorFlushed=this._onColorFlushed.event,e?(this.domNode=Ol(t,vJ(".standalone-strip")),this.overlay=Ol(this.domNode,vJ(".standalone-overlay"))):(this.domNode=Ol(t,vJ(".strip")),this.overlay=Ol(this.domNode,vJ(".overlay"))),this.slider=Ol(this.domNode,vJ(".slider")),this.slider.style.top="0px",this._register(Va(this.domNode,Ll.POINTER_DOWN,(t=>this.onPointerDown(t)))),this._register(i.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;const t=this.getValue(this.model.color);this.updateSliderPosition(t)}onDidChangeColor(t){const i=this.getValue(t);this.updateSliderPosition(i)}onPointerDown(t){if(!(t.target&&t.target instanceof Element))return;const i=this._register(new hw),e=nl(this.domNode);this.domNode.classList.add("grabbing"),t.target!==this.slider&&this.onDidChangeTop(t.offsetY),i.startMonitoring(t.target,t.pointerId,t.buttons,(t=>this.onDidChangeTop(t.pageY-e.top)),(()=>null));const s=Va(t.target.ownerDocument,Ll.POINTER_UP,(()=>{this._onColorFlushed.fire(),s.dispose(),i.stopMonitoring(!0),this.domNode.classList.remove("grabbing")}),!0)}onDidChangeTop(t){const i=Math.max(0,Math.min(1,1-t/this.height));this.updateSliderPosition(i),this._onDidChange.fire(i)}updateSliderPosition(t){this.slider.style.top=(1-t)*this.height+"px"}}class SJ extends CJ{constructor(t,i,e=!1){super(t,i,e),this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(t){super.onDidChangeColor(t);const{r:i,g:e,b:s}=t.rgba,n=new lg(new hg(i,e,s,1)),o=new lg(new hg(i,e,s,0));this.overlay.style.background=`linear-gradient(to bottom, ${n} 0%, ${o} 100%)`}getValue(t){return t.hsva.a}}class DJ extends CJ{constructor(t,i,e=!1){super(t,i,e),this.domNode.classList.add("hue-strip")}getValue(t){return 1-t.hsva.h/360}}class EJ extends te{constructor(t){super(),this._onClicked=this._register(new de),this.onClicked=this._onClicked.event,this._button=Ol(t,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._button.onclick=()=>{this._onClicked.fire()}}get button(){return this._button}}class AJ extends pk{constructor(t,i,e,s,n=!1){super(),this.model=i,this.pixelRatio=e,this._register(Ho.onDidChange((()=>this.layout())));const o=vJ(".colorpicker-widget");t.appendChild(o),this.header=this._register(new bJ(o,this.model,s,n)),this.body=this._register(new kJ(o,this.model,this.pixelRatio,n))}layout(){this.body.layout()}}var MJ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},LJ=function(t,i){return function(e,s){i(e,s,t)}};class FJ{constructor(t,i,e,s){this.owner=t,this.range=i,this.model=e,this.provider=s,this.forceShowAtRange=!0}isValidForHoverAnchor(t){return 1===t.type&&this.range.startColumn<=t.range.startColumn&&this.range.endColumn>=t.range.endColumn}}let TJ=class{constructor(t,i){this._editor=t,this._themeService=i,this.hoverOrdinal=2}computeSync(t,i){return[]}computeAsync(t,i,e){return kc.fromPromise(this._computeAsync(t,i,e))}async _computeAsync(t,i,e){if(!this._editor.hasModel())return[];const s=gJ.get(this._editor);if(!s)return[];for(const t of i){if(!s.isColorDecoration(t))continue;const i=s.getColorData(t.range.getStartPosition());if(i)return[await IJ(this,this._editor.getModel(),i.colorInfo,i.provider)]}return[]}renderHoverParts(t,i){return _J(this,this._editor,this._themeService,i,t)}};TJ=MJ([LJ(1,Xk)],TJ);class RJ{constructor(t,i,e,s){this.owner=t,this.range=i,this.model=e,this.provider=s}}let OJ=class{constructor(t,i){this._editor=t,this._themeService=i,this._color=null}async createColorHover(t,i,e){if(!this._editor.hasModel())return null;if(!gJ.get(this._editor))return null;const s=await oJ(e,this._editor.getModel(),ke.None);let n=null,o=null;for(const i of s){const e=i.colorInfo;Ms.containsRange(e.range,t.range)&&(n=e,o=i.provider)}const r=null!=n?n:t,h=null!=o?o:i,c=!!n;return{colorHover:await IJ(this,this._editor.getModel(),r,h),foundInEditor:c}}async updateEditorModel(t){if(!this._editor.hasModel())return;const i=t.model;let e=new Ms(t.range.startLineNumber,t.range.startColumn,t.range.endLineNumber,t.range.endColumn);this._color&&(await BJ(this._editor.getModel(),i,this._color,e,t),e=NJ(this._editor,e,i))}renderHoverParts(t,i){return _J(this,this._editor,this._themeService,i,t)}set color(t){this._color=t}get color(){return this._color}};async function IJ(t,i,e,s){const n=i.getValueInRange(e.range),{red:o,green:r,blue:h,alpha:c}=e.color,a=new hg(Math.round(255*o),Math.round(255*r),Math.round(255*h),c),l=new lg(a),u=await rJ(i,e,s,ke.None),d=new wJ(l,[],0);return d.colorPresentations=u||[],d.guessColorPresentation(l,n),t instanceof TJ?new FJ(t,Ms.lift(e.range),d,s):new RJ(t,Ms.lift(e.range),d,s)}function _J(t,i,e,s,n){if(0===s.length||!i.hasModel())return te.None;if(n.setMinimumDimensions){const t=i.getOption(66)+8;n.setMinimumDimensions(new el(302,t))}const o=new Xi,r=s[0],h=i.getModel(),c=r.model,a=o.add(new AJ(n.fragment,c,i.getOption(141),e,t instanceof OJ));n.setColorPicker(a);let l=!1,u=new Ms(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn);if(t instanceof OJ){const i=s[0].model.color;t.color=i,BJ(h,c,i,u,r),o.add(c.onColorFlushed((i=>{t.color=i})))}else o.add(c.onColorFlushed((async t=>{await BJ(h,c,t,u,r),l=!0,u=NJ(i,u,c,n)})));return o.add(c.onDidChangeColor((t=>{BJ(h,c,t,u,r)}))),o.add(i.onDidChangeModelContent((()=>{l?l=!1:(n.hide(),i.focus())}))),o}function NJ(t,i,e,s){let n,o;if(e.presentation.textEdit){n=[e.presentation.textEdit],o=new Ms(e.presentation.textEdit.range.startLineNumber,e.presentation.textEdit.range.startColumn,e.presentation.textEdit.range.endLineNumber,e.presentation.textEdit.range.endColumn);const i=t.getModel()._setTrackedRange(null,o,3);t.pushUndoStop(),t.executeEdits("colorpicker",n),o=t.getModel()._getTrackedRange(i)||o}else n=[{range:i,text:e.presentation.label,forceMoveMarkers:!1}],o=i.setEndPosition(i.endLineNumber,i.startColumn+e.presentation.label.length),t.pushUndoStop(),t.executeEdits("colorpicker",n);return e.presentation.additionalTextEdits&&(n=[...e.presentation.additionalTextEdits],t.executeEdits("colorpicker",n),s&&s.hide()),t.pushUndoStop(),o}async function BJ(t,i,e,s,n){const o=await rJ(t,{range:s,color:{red:e.rgba.r/255,green:e.rgba.g/255,blue:e.rgba.b/255,alpha:e.rgba.a}},n.provider,ke.None);i.colorPresentations=o||[]}function PJ(t,i){return!!t[i]}OJ=MJ([LJ(1,Xk)],OJ);class $J{constructor(t,i){this.target=t.target,this.isLeftClick=t.event.leftButton,this.isMiddleClick=t.event.middleButton,this.isRightClick=t.event.rightButton,this.hasTriggerModifier=PJ(t.event,i.triggerModifier),this.hasSideBySideModifier=PJ(t.event,i.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=t.event.detail<=1}}class WJ{constructor(t,i){this.keyCodeIsTriggerKey=t.keyCode===i.triggerKey,this.keyCodeIsSideBySideKey=t.keyCode===i.triggerSideBySideKey,this.hasTriggerModifier=PJ(t,i.triggerModifier)}}class jJ{constructor(t,i,e,s){this.triggerKey=t,this.triggerModifier=i,this.triggerSideBySideKey=e,this.triggerSideBySideModifier=s}equals(t){return this.triggerKey===t.triggerKey&&this.triggerModifier===t.triggerModifier&&this.triggerSideBySideKey===t.triggerSideBySideKey&&this.triggerSideBySideModifier===t.triggerSideBySideModifier}}function zJ(t){return"altKey"===t?Ct?new jJ(57,"metaKey",6,"altKey"):new jJ(5,"ctrlKey",6,"altKey"):Ct?new jJ(6,"altKey",57,"metaKey"):new jJ(6,"altKey",5,"ctrlKey")}class HJ extends te{constructor(t,i){var e;super(),this._onMouseMoveOrRelevantKeyDown=this._register(new de),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new de),this.onExecute=this._onExecute.event,this._onCancel=this._register(new de),this.onCancel=this._onCancel.event,this._editor=t,this._extractLineNumberFromMouseEvent=null!==(e=null==i?void 0:i.extractLineNumberFromMouseEvent)&&void 0!==e?e:t=>t.target.position?t.target.position.lineNumber:0,this._opts=zJ(this._editor.getOption(77)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration((t=>{if(t.hasChanged(77)){const t=zJ(this._editor.getOption(77));if(this._opts.equals(t))return;this._opts=t,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}}))),this._register(this._editor.onMouseMove((t=>this._onEditorMouseMove(new $J(t,this._opts))))),this._register(this._editor.onMouseDown((t=>this._onEditorMouseDown(new $J(t,this._opts))))),this._register(this._editor.onMouseUp((t=>this._onEditorMouseUp(new $J(t,this._opts))))),this._register(this._editor.onKeyDown((t=>this._onEditorKeyDown(new WJ(t,this._opts))))),this._register(this._editor.onKeyUp((t=>this._onEditorKeyUp(new WJ(t,this._opts))))),this._register(this._editor.onMouseDrag((()=>this._resetHandler()))),this._register(this._editor.onDidChangeCursorSelection((t=>this._onDidChangeCursorSelection(t)))),this._register(this._editor.onDidChangeModel((()=>this._resetHandler()))),this._register(this._editor.onDidChangeModelContent((()=>this._resetHandler()))),this._register(this._editor.onDidScrollChange((t=>{(t.scrollTopChanged||t.scrollLeftChanged)&&this._resetHandler()})))}_onDidChangeCursorSelection(t){t.selection&&t.selection.startColumn!==t.selection.endColumn&&this._resetHandler()}_onEditorMouseMove(t){this._lastMouseMoveEvent=t,this._onMouseMoveOrRelevantKeyDown.fire([t,null])}_onEditorMouseDown(t){this._hasTriggerKeyOnMouseDown=t.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(t)}_onEditorMouseUp(t){const i=this._extractLineNumberFromMouseEvent(t);this._hasTriggerKeyOnMouseDown&&this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===i&&this._onExecute.fire(t)}_onEditorKeyDown(t){this._lastMouseMoveEvent&&(t.keyCodeIsTriggerKey||t.keyCodeIsSideBySideKey&&t.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,t]):t.hasTriggerModifier&&this._onCancel.fire()}_onEditorKeyUp(t){t.keyCodeIsTriggerKey&&this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}var VJ=function(t,i){return function(e,s){i(e,s,t)}};let UJ=class extends TT{constructor(t,i,e,s,n,o,r,h,c,a,l,u,d){super(t,{...s.getRawOptions(),overflowWidgetsDomNode:s.getOverflowWidgetsDomNode()},e,n,o,r,h,c,a,l,u,d),this._parentEditor=s,this._overwriteOptions=i,super.updateOptions(this._overwriteOptions),this._register(s.onDidChangeConfiguration((t=>this._onParentConfigurationChanged(t))))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(t){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(t){tt(this._overwriteOptions,t,!0),super.updateOptions(this._overwriteOptions)}};UJ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([VJ(4,ur),VJ(5,fr),VJ(6,Sr),VJ(7,ah),VJ(8,Xk),VJ(9,oT),VJ(10,Zm),VJ(11,Xd),VJ(12,xg)],UJ);const qJ=new lg(new hg(0,122,204)),KJ={showArrow:!0,showFrame:!0,className:"",frameColor:qJ,arrowColor:qJ,keepEditorSelection:!1};class GJ{constructor(t,i,e,s,n,o,r,h){this.id="",this.domNode=t,this.afterLineNumber=i,this.afterColumn=e,this.heightInLines=s,this.showInHiddenAreas=r,this.ordinal=h,this._onDomNodeTop=n,this._onComputedHeight=o}onDomNodeTop(t){this._onDomNodeTop(t)}onComputedHeight(t){this._onComputedHeight(t)}}class ZJ{constructor(t,i){this._id=t,this._domNode=i}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}class QJ{constructor(t){this._editor=t,this._ruleName=QJ._IdGenerator.nextId(),this._decorations=this._editor.createDecorationsCollection(),this._color=null,this._height=-1}dispose(){this.hide(),Dl(this._ruleName)}set color(t){this._color!==t&&(this._color=t,this._updateStyle())}set height(t){this._height!==t&&(this._height=t,this._updateStyle())}_updateStyle(){Dl(this._ruleName),Sl(`.monaco-editor ${this._ruleName}`,`border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px; margin-left: -${this._height}px; `)}show(t){1===t.column&&(t={lineNumber:t.lineNumber,column:2}),this._decorations.set([{range:Ms.fromPositions(t),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}QJ._IdGenerator=new J_(".arrow-decoration-");class JJ{constructor(t,i={}){this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._viewZone=null,this._disposables=new Xi,this.container=null,this._isShowing=!1,this.editor=t,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=Q(i),tt(this.options,KJ,!1),this.domNode=document.createElement("div"),this.options.isAccessible||(this.domNode.setAttribute("aria-hidden","true"),this.domNode.setAttribute("role","presentation")),this._disposables.add(this.editor.onDidLayoutChange((t=>{const i=this._getWidth(t);this.domNode.style.width=i+"px",this.domNode.style.left=this._getLeft(t)+"px",this._onWidth(i)})))}dispose(){this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones((t=>{this._viewZone&&t.removeZone(this._viewZone.id),this._viewZone=null})),this._positionMarkerId.clear(),this._disposables.dispose()}create(){this.domNode.classList.add("zone-widget"),this.options.className&&this.domNode.classList.add(this.options.className),this.container=document.createElement("div"),this.container.classList.add("zone-widget-container"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new QJ(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(t){t.frameColor&&(this.options.frameColor=t.frameColor),t.arrowColor&&(this.options.arrowColor=t.arrowColor),this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){const t=this.options.frameColor.toString();this.container.style.borderTopColor=t,this.container.style.borderBottomColor=t}if(this._arrow&&this.options.arrowColor){const t=this.options.arrowColor.toString();this._arrow.color=t}}_getWidth(t){return t.width-t.minimap.minimapWidth-t.verticalScrollbarWidth}_getLeft(t){return t.minimap.minimapWidth>0&&0===t.minimap.minimapLeft?t.minimap.minimapWidth:0}_onViewZoneTop(t){this.domNode.style.top=t+"px"}_onViewZoneHeight(t){var i;if(this.domNode.style.height=`${t}px`,this.container){const i=t-this._decoratingElementsHeight();this.container.style.height=`${i}px`;const e=this.editor.getLayoutInfo();this._doLayout(i,this._getWidth(e))}null===(i=this._resizeSash)||void 0===i||i.layout()}get position(){const t=this._positionMarkerId.getRange(0);if(t)return t.getStartPosition()}show(t,i){const e=Ms.isIRange(t)?Ms.lift(t):Ms.fromPositions(t);this._isShowing=!0,this._showImpl(e,i),this._isShowing=!1,this._positionMarkerId.set([{range:e,options:AL.EMPTY}])}hide(){var t;this._viewZone&&(this.editor.changeViewZones((t=>{this._viewZone&&t.removeZone(this._viewZone.id)})),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),null===(t=this._arrow)||void 0===t||t.hide(),this._positionMarkerId.clear()}_decoratingElementsHeight(){const t=this.editor.getOption(66);let i=0;return this.options.showArrow&&(i+=2*Math.round(t/3)),this.options.showFrame&&(i+=2*Math.round(t/9)),i}_showImpl(t,i){const e=t.getStartPosition(),s=this.editor.getLayoutInfo(),n=this._getWidth(s);this.domNode.style.width=`${n}px`,this.domNode.style.left=this._getLeft(s)+"px";const o=document.createElement("div");o.style.overflow="hidden";const r=this.editor.getOption(66);if(!this.options.allowUnlimitedHeight){const t=Math.max(12,this.editor.getLayoutInfo().height/r*.8);i=Math.min(i,t)}let h=0,c=0;if(this._arrow&&this.options.showArrow&&(h=Math.round(r/3),this._arrow.height=h,this._arrow.show(e)),this.options.showFrame&&(c=Math.round(r/9)),this.editor.changeViewZones((t=>{this._viewZone&&t.removeZone(this._viewZone.id),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this.domNode.style.top="-1000px",this._viewZone=new GJ(o,e.lineNumber,e.column,i,(t=>this._onViewZoneTop(t)),(t=>this._onViewZoneHeight(t)),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=t.addZone(this._viewZone),this._overlayWidget=new ZJ("vs.editor.contrib.zoneWidget"+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)})),this.container&&this.options.showFrame){const t=this.options.frameWidth?this.options.frameWidth:c;this.container.style.borderTopWidth=t+"px",this.container.style.borderBottomWidth=t+"px"}const a=i*r-this._decoratingElementsHeight();this.container&&(this.container.style.top=h+"px",this.container.style.height=a+"px",this.container.style.overflow="hidden"),this._doLayout(a,n),this.options.keepEditorSelection||this.editor.setSelection(t);const l=this.editor.getModel();if(l){const i=l.validateRange(new Ms(t.startLineNumber,1,t.endLineNumber+1,1));this.revealRange(i,i.startLineNumber===l.getLineCount())}}revealRange(t,i){i?this.editor.revealLineNearTop(t.endLineNumber,0):this.editor.revealRange(t,0)}setCssClass(t,i){this.container&&(i&&this.container.classList.remove(i),this.container.classList.add(t))}_onWidth(t){}_doLayout(t,i){}_relayout(t){this._viewZone&&this._viewZone.heightInLines!==t&&this.editor.changeViewZones((i=>{this._viewZone&&(this._viewZone.heightInLines=t,i.layoutZone(this._viewZone.id))}))}_initSash(){if(this._resizeSash)return;let t;this._resizeSash=this._disposables.add(new VP(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.state=0),this._disposables.add(this._resizeSash.onDidStart((i=>{this._viewZone&&(t={startY:i.startY,heightInLines:this._viewZone.heightInLines})}))),this._disposables.add(this._resizeSash.onDidEnd((()=>{t=void 0}))),this._disposables.add(this._resizeSash.onDidChange((i=>{if(t){const e=(i.currentY-t.startY)/this.editor.getOption(66),s=e<0?Math.ceil(e):Math.floor(e),n=t.heightInLines+s;n>5&&n<35&&this._relayout(n)}})))}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(null===this.domNode.style.height?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){const t=this.editor.getLayoutInfo();return t.width-t.minimap.minimapWidth}}var YJ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},XJ=function(t,i){return function(e,s){i(e,s,t)}};const tY=dr("IPeekViewService");var iY;Cd(tY,class{constructor(){this._widgets=new Map}addExclusiveWidget(t,i){const e=this._widgets.get(t);e&&(e.listener.dispose(),e.widget.dispose()),this._widgets.set(t,{widget:i,listener:i.onDidClose((()=>{const e=this._widgets.get(t);e&&e.widget===i&&(e.listener.dispose(),this._widgets.delete(t))}))})}},1),function(t){t.inPeekEditor=new ch("inReferenceSearchEditor",!0,ot(0,"Whether the current code editor is embedded inside peek")),t.notInPeekEditor=t.inPeekEditor.toNegated()}(iY||(iY={}));let eY=class{constructor(t,i){t instanceof UJ&&iY.inPeekEditor.bindTo(i)}dispose(){}};eY.ID="editor.contrib.referenceController",eY=YJ([XJ(1,ah)],eY),lu(eY.ID,eY,0);const sY={headerBackgroundColor:lg.white,primaryHeadingColor:lg.fromHex("#333333"),secondaryHeadingColor:lg.fromHex("#6c6c6cb3")};let nY=class extends JJ{constructor(t,i,e){super(t,i),this.instantiationService=e,this._onDidClose=new de,this.onDidClose=this._onDidClose.event,tt(this.options,sY,!1)}dispose(){this.disposed||(this.disposed=!0,super.dispose(),this._onDidClose.fire(this))}style(t){const i=this.options;t.headerBackgroundColor&&(i.headerBackgroundColor=t.headerBackgroundColor),t.primaryHeadingColor&&(i.primaryHeadingColor=t.primaryHeadingColor),t.secondaryHeadingColor&&(i.secondaryHeadingColor=t.secondaryHeadingColor),super.style(t)}_applyStyles(){super._applyStyles();const t=this.options;this._headElement&&t.headerBackgroundColor&&(this._headElement.style.backgroundColor=t.headerBackgroundColor.toString()),this._primaryHeading&&t.primaryHeadingColor&&(this._primaryHeading.style.color=t.primaryHeadingColor.toString()),this._secondaryHeading&&t.secondaryHeadingColor&&(this._secondaryHeading.style.color=t.secondaryHeadingColor.toString()),this._bodyElement&&t.frameColor&&(this._bodyElement.style.borderColor=t.frameColor.toString())}_fillContainer(t){this.setCssClass("peekview-widget"),this._headElement=$l(".head"),this._bodyElement=$l(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),t.appendChild(this._headElement),t.appendChild(this._bodyElement)}_fillHead(t,i){this._titleElement=$l(".peekview-title"),this.options.supportOnTitleClick&&(this._titleElement.classList.add("clickable"),qa(this._titleElement,"click",(t=>this._onTitleClick(t)))),Ol(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=$l("span.filename"),this._secondaryHeading=$l("span.dirname"),this._metaHeading=$l("span.meta"),Ol(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);const e=$l(".peekview-actions");Ol(this._headElement,e);const s=this._getActionBarOptions();this._actionbarWidget=new YB(e,s),this._disposables.add(this._actionbarWidget),i||this._actionbarWidget.push(new mr("peekview.close",ot(0,"Close"),Cr.asClassName(Os.close),!0,(()=>(this.dispose(),Promise.resolve()))),{label:!1,icon:!0})}_fillTitleIcon(t){}_getActionBarOptions(){return{actionViewItemProvider:JB.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(t){}setTitle(t,i){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerText=t,this._primaryHeading.setAttribute("title",t),i?this._secondaryHeading.innerText=i:za(this._secondaryHeading))}setMetaTitle(t){this._metaHeading&&(t?(this._metaHeading.innerText=t,Wl(this._metaHeading)):jl(this._metaHeading))}_doLayout(t,i){if(!this._isShowing&&t<0)return void this.dispose();const e=Math.ceil(1.2*this.editor.getOption(66)),s=Math.round(t-(e+2));this._doLayoutHead(e,i),this._doLayoutBody(s,i)}_doLayoutHead(t,i){this._headElement&&(this._headElement.style.height=`${t}px`,this._headElement.style.lineHeight=this._headElement.style.height)}_doLayoutBody(t,i){this._bodyElement&&(this._bodyElement.style.height=`${t}px`)}};nY=YJ([XJ(2,ur)],nY);const oY=dw("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:lg.black,hcLight:lg.white},ot(0,"Background color of the peek view title area.")),rY=dw("peekViewTitleLabel.foreground",{dark:lg.white,light:lg.black,hcDark:lg.white,hcLight:lv},ot(0,"Color of the peek view title.")),hY=dw("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},ot(0,"Color of the peek view title info.")),cY=dw("peekView.border",{dark:rv,light:rv,hcDark:ww,hcLight:ww},ot(0,"Color of the peek view borders and arrow.")),aY=dw("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:lg.black,hcLight:lg.white},ot(0,"Background color of the peek view result list."));dw("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:lg.white,hcLight:lv},ot(0,"Foreground color for line nodes in the peek view result list.")),dw("peekViewResult.fileForeground",{dark:lg.white,light:"#1E1E1E",hcDark:lg.white,hcLight:lv},ot(0,"Foreground color for file nodes in the peek view result list.")),dw("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},ot(0,"Background color of the selected entry in the peek view result list.")),dw("peekViewResult.selectionForeground",{dark:lg.white,light:"#6C6C6C",hcDark:lg.white,hcLight:lv},ot(0,"Foreground color of the selected entry in the peek view result list."));const lY=dw("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:lg.black,hcLight:lg.white},ot(0,"Background color of the peek view editor."));dw("peekViewEditorGutter.background",{dark:lY,light:lY,hcDark:lY,hcLight:lY},ot(0,"Background color of the gutter in the peek view editor.")),dw("peekViewEditorStickyScroll.background",{dark:lY,light:lY,hcDark:lY,hcLight:lY},ot(0,"Background color of sticky scroll in the peek view editor.")),dw("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},ot(0,"Match highlight color in the peek view result list.")),dw("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},ot(0,"Match highlight color in the peek view editor.")),dw("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:vw,hcLight:vw},ot(0,"Match highlight border in the peek view editor."));class uY{constructor(t,i,e,s){this.isProviderFirst=t,this.parent=i,this.link=e,this._rangeCallback=s,this.id=Y_.nextId()}get uri(){return this.link.uri}get range(){var t,i;return null!==(i=null!==(t=this._range)&&void 0!==t?t:this.link.targetSelectionRange)&&void 0!==i?i:this.link.range}set range(t){this._range=t,this._rangeCallback(this)}get ariaMessage(){var t;const i=null===(t=this.parent.getPreview(this))||void 0===t?void 0:t.preview(this.range);return i?ot(0,"{0} in {1} on line {2} at column {3}",i.value,bA(this.uri),this.range.startLineNumber,this.range.startColumn):ot(0,"in {0} on line {1} at column {2}",bA(this.uri),this.range.startLineNumber,this.range.startColumn)}}class dY{constructor(t){this._modelReference=t}dispose(){this._modelReference.dispose()}preview(t,i=8){const e=this._modelReference.object.textEditorModel;if(!e)return;const{startLineNumber:s,startColumn:n,endLineNumber:o,endColumn:r}=t,h=e.getWordUntilPosition({lineNumber:s,column:n-i}),c=new Ms(s,h.startColumn,s,n),a=new Ms(o,r,o,1073741824),l=e.getValueInRange(c).replace(/^\s+/,""),u=e.getValueInRange(t);return{value:l+u+e.getValueInRange(a).replace(/\s+$/,""),highlight:{start:l.length,end:l.length+u.length}}}}class fY{constructor(t,i){this.parent=t,this.uri=i,this.children=[],this._previews=new zp}dispose(){Qi(this._previews.values()),this._previews.clear()}getPreview(t){return this._previews.get(t.uri)}get ariaMessage(){const t=this.children.length;return 1===t?ot(0,"1 symbol in {0}, full path {1}",bA(this.uri),this.uri.fsPath):ot(0,"{0} symbols in {1}, full path {2}",t,bA(this.uri),this.uri.fsPath)}async resolve(t){if(0!==this._previews.size)return this;for(const i of this.children)if(!this._previews.has(i.uri))try{const e=await t.createModelReference(i.uri);this._previews.set(i.uri,new dY(e))}catch(t){Bi(t)}return this}}class pY{constructor(t,i){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new de,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=t,this._title=i;const[e]=t;let s;t.sort(pY._compareReferences);for(const i of t)if(s&&mA.isEqual(s.uri,i.uri,!0)||(s=new fY(this,i.uri),this.groups.push(s)),0===s.children.length||0!==pY._compareReferences(i,s.children[s.children.length-1])){const t=new uY(e===i,s,i,(t=>this._onDidChangeReferenceRange.fire(t)));this.references.push(t),s.children.push(t)}}dispose(){Qi(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new pY(this._links,this._title)}get title(){return this._title}get isEmpty(){return 0===this.groups.length}get ariaMessage(){return this.isEmpty?ot(0,"No results found"):1===this.references.length?ot(0,"Found 1 symbol in {0}",this.references[0].uri.fsPath):1===this.groups.length?ot(0,"Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath):ot(0,"Found {0} symbols in {1} files",this.references.length,this.groups.length)}nextOrPreviousReference(t,i){const{parent:e}=t;let s=e.children.indexOf(t);const n=e.children.length,o=e.parent.groups.length;return 1===o||i&&s+10?(s=i?(s+1)%n:(s+n-1)%n,e.children[s]):(s=e.parent.groups.indexOf(e),i?(s=(s+1)%o,e.parent.groups[s].children[0]):(s=(s+o-1)%o,e.parent.groups[s].children[e.parent.groups[s].children.length-1]))}nearestReference(t,i){const e=this.references.map(((e,s)=>({idx:s,prefixLen:fo(e.uri.toString(),t.toString()),offsetDist:100*Math.abs(e.range.startLineNumber-i.lineNumber)+Math.abs(e.range.startColumn-i.column)}))).sort(((t,i)=>t.prefixLen>i.prefixLen?-1:t.prefixLeni.offsetDist?1:0))[0];if(e)return this.references[e.idx]}referenceAt(t,i){for(const e of this.references)if(e.uri.toString()===t.toString()&&Ms.containsPosition(e.range,i))return e}firstReference(){for(const t of this.references)if(t.isProviderFirst)return t;return this.references[0]}static _compareReferences(t,i){return mA.compare(t.uri,i.uri)||Ms.compareRangesUsingStarts(t.range,i.range)}}var gY,mY=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},wY=function(t,i){return function(e,s){i(e,s,t)}};let vY=class{constructor(t){this._resolverService=t}hasChildren(t){return t instanceof pY||t instanceof fY}getChildren(t){if(t instanceof pY)return t.groups;if(t instanceof fY)return t.resolve(this._resolverService).then((t=>t.children));throw new Error("bad tree")}};vY=mY([wY(0,gr)],vY);class bY{getHeight(){return 23}getTemplateId(t){return t instanceof fY?CY.id:DY.id}}let yY=class{constructor(t){this._keybindingService=t}getKeyboardNavigationLabel(t){var i;if(t instanceof uY){const e=null===(i=t.parent.getPreview(t))||void 0===i?void 0:i.preview(t.range);if(e)return e.value}return bA(t.uri)}};yY=mY([wY(0,oC)],yY);class kY{getId(t){return t instanceof uY?t.id:t.uri}}let xY=class extends te{constructor(t,i){super(),this._labelService=i;const e=document.createElement("div");e.classList.add("reference-file"),this.file=this._register(new Gj(e,{supportHighlights:!0})),this.badge=new Bj(Ol(e,$l(".count")),{},NB),t.appendChild(e)}set(t,i){const e=kA(t.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(t.uri),this._labelService.getUriLabel(e,{relative:!0}),{title:this._labelService.getUriLabel(t.uri),matches:i});const s=t.children.length;this.badge.setCount(s),this.badge.setTitleFormat(ot(0,s>1?"{0} references":"{0} reference",s))}};xY=mY([wY(1,$O)],xY);let CY=gY=class{constructor(t){this._instantiationService=t,this.templateId=gY.id}renderTemplate(t){return this._instantiationService.createInstance(xY,t)}renderElement(t,i,e){e.set(t.element,l_(t.filterData))}disposeTemplate(t){t.dispose()}};CY.id="FileReferencesRenderer",CY=gY=mY([wY(0,ur)],CY);class SY{constructor(t){this.label=new qj(t)}set(t,i){var e;const s=null===(e=t.parent.getPreview(t))||void 0===e?void 0:e.preview(t.range);if(s&&s.value){const{value:t,highlight:e}=s;i&&!x_.isDefault(i)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(t,l_(i))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(t,[e]))}else this.label.set(`${bA(t.uri)}:${t.range.startLineNumber+1}:${t.range.startColumn+1}`)}}class DY{constructor(){this.templateId=DY.id}renderTemplate(t){return new SY(t)}renderElement(t,i,e){e.set(t.element,t.filterData)}disposeTemplate(){}}DY.id="OneReferenceRenderer";class EY{getWidgetAriaLabel(){return ot(0,"References")}getAriaLabel(t){return t.ariaMessage}}var AY=function(t,i){return function(e,s){i(e,s,t)}};class MY{constructor(t,i){this._editor=t,this._model=i,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new Xi,this._callOnModelChange=new Xi,this._callOnDispose.add(this._editor.onDidChangeModel((()=>this._onModelChanged()))),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();const t=this._editor.getModel();if(t)for(const i of this._model.references)if(i.uri.toString()===t.uri.toString())return void this._addDecorations(i.parent)}_addDecorations(t){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations((()=>this._onDecorationChanged())));const i=[],e=[];for(let s=0,n=t.children.length;s{const n=s.deltaDecorations([],i);for(let i=0;i{t.equals(9)&&(this._keybindingService.dispatchEvent(t,t.target),t.stopPropagation())}),!0)),this._tree=this._instantiationService.createInstance(FY,"ReferencesWidget",this._treeContainer,new bY,[this._instantiationService.createInstance(CY),this._instantiationService.createInstance(DY)],this._instantiationService.createInstance(vY),i),this._splitView.addView({onDidChange:he.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:t=>{this._preview.layout({height:this._dim.height,width:t})}},QP.Distribute),this._splitView.addView({onDidChange:he.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:t=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${t}px`,this._tree.layout(this._dim.height,t)}},QP.Distribute),this._disposables.add(this._splitView.onDidSashChange((()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)}),void 0));const e=(t,i)=>{t instanceof uY&&("show"===i&&this._revealReference(t,!1),this._onDidSelectReference.fire({element:t,kind:i,source:"tree"}))};this._tree.onDidOpen((t=>{e(t.element,t.sideBySide?"side":t.editorOptions.pinned?"goto":"show")})),jl(this._treeContainer)}_onWidth(t){this._dim&&this._doLayoutBody(this._dim.height,t)}_doLayoutBody(t,i){super._doLayoutBody(t,i),this._dim=new el(i,t),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(i),this._splitView.resizeView(0,i*this.layoutData.ratio)}setSelection(t){return this._revealReference(t,!0).then((()=>{this._model&&(this._tree.setSelection([t]),this._tree.setFocus([t]))}))}setModel(t){return this._disposeOnNewModel.clear(),this._model=t,this._model?this._onNewModel():Promise.resolve()}_onNewModel(){return this._model?this._model.isEmpty?(this.setTitle(""),this._messageContainer.innerText=ot(0,"No results"),Wl(this._messageContainer),Promise.resolve(void 0)):(jl(this._messageContainer),this._decorationsManager=new MY(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange((t=>this._tree.rerender(t)))),this._disposeOnNewModel.add(this._preview.onMouseDown((t=>{const{event:i,target:e}=t;if(2!==i.detail)return;const s=this._getFocusedReference();s&&this._onDidSelectReference.fire({element:{uri:s.uri,range:e.range},kind:i.ctrlKey||i.metaKey||i.altKey?"side":"open",source:"editor"})}))),this.container.classList.add("results-loaded"),Wl(this._treeContainer),Wl(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(1===this._model.groups.length?this._model.groups[0]:this._model)):Promise.resolve(void 0)}_getFocusedReference(){const[t]=this._tree.getFocus();return t instanceof uY?t:t instanceof fY&&t.children.length>0?t.children[0]:void 0}async revealReference(t){await this._revealReference(t,!1),this._onDidSelectReference.fire({element:t,kind:"goto",source:"tree"})}async _revealReference(t,i){if(this._revealedReference===t)return;this._revealedReference=t,t.uri.scheme!==ka.inMemory?this.setTitle(vA(t.uri),this._uriLabel.getUriLabel(kA(t.uri))):this.setTitle(ot(0,"References"));const e=this._textModelResolverService.createModelReference(t.uri);this._tree.getInput()===t.parent||(i&&this._tree.reveal(t.parent),await this._tree.expand(t.parent)),this._tree.reveal(t);const s=await e;if(!this._model)return void s.dispose();Qi(this._previewModelReference);const n=s.object;if(n){const i=this._preview.getModel()===n.textEditorModel?0:1,e=Ms.lift(t.range).collapseToStart();this._previewModelReference=s,this._preview.setModel(n.textEditorModel),this._preview.setSelection(e),this._preview.revealRangeInCenter(e,i)}else this._preview.setModel(this._previewNotAvailableMessage),s.dispose()}};TY=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([AY(3,Xk),AY(4,gr),AY(5,ur),AY(6,tY),AY(7,$O),AY(8,hL),AY(9,oC),AY(10,yd),AY(11,Xd)],TY);var RY,OY=function(t,i){return function(e,s){i(e,s,t)}};const IY=new ch("referenceSearchVisible",!1,ot(0,"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'"));let _Y=RY=class{static get(t){return t.getContribution(RY.ID)}constructor(t,i,e,s,n,o,r,h){this._defaultTreeKeyboardSupport=t,this._editor=i,this._editorService=s,this._notificationService=n,this._instantiationService=o,this._storageService=r,this._configurationService=h,this._disposables=new Xi,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=IY.bindTo(e)}dispose(){var t,i;this._referenceSearchVisible.reset(),this._disposables.dispose(),null===(t=this._widget)||void 0===t||t.dispose(),null===(i=this._model)||void 0===i||i.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(t,i,e){let s;if(this._widget&&(s=this._widget.position),this.closeWidget(),s&&t.containsPosition(s))return;this._peekMode=e,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage((()=>{this.closeWidget()}))),this._disposables.add(this._editor.onDidChangeModel((()=>{this._ignoreModelChangeEvent||this.closeWidget()})));const n="peekViewLayout",o=LY.fromJSON(this._storageService.get(n,0,"{}"));this._widget=this._instantiationService.createInstance(TY,this._editor,this._defaultTreeKeyboardSupport,o),this._widget.setTitle(ot(0,"Loading...")),this._widget.show(t),this._disposables.add(this._widget.onDidClose((()=>{i.cancel(),this._widget&&(this._storageService.store(n,JSON.stringify(this._widget.layoutData),0,1),this._widget=void 0),this.closeWidget()}))),this._disposables.add(this._widget.onDidSelectReference((t=>{const{element:i,kind:s}=t;if(i)switch(s){case"open":"editor"===t.source&&this._configurationService.getValue("editor.stablePeek")||this.openReference(i,!1,!1);break;case"side":this.openReference(i,!0,!1);break;case"goto":e?this._gotoReference(i,!0):this.openReference(i,!1,!0)}})));const r=++this._requestIdPool;i.then((i=>{var e;if(r===this._requestIdPool&&this._widget)return null===(e=this._model)||void 0===e||e.dispose(),this._model=i,this._widget.setModel(this._model).then((()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._widget.setMetaTitle(this._model.isEmpty?"":ot(0,"{0} ({1})",this._model.title,this._model.references.length));const i=this._editor.getModel().uri,e=new As(t.startLineNumber,t.startColumn),s=this._model.nearestReference(i,e);if(s)return this._widget.setSelection(s).then((()=>{this._widget&&"editor"===this._editor.getOption(86)&&this._widget.focusOnPreviewEditor()}))}}));i.dispose()}),(t=>{this._notificationService.error(t)}))}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}async goToNextOrPreviousReference(t){if(!this._editor.hasModel()||!this._model||!this._widget)return;const i=this._widget.position;if(!i)return;const e=this._model.nearestReference(this._editor.getModel().uri,i);if(!e)return;const s=this._model.nextOrPreviousReference(e,t),n=this._editor.hasTextFocus(),o=this._widget.isPreviewEditorFocused();await this._widget.setSelection(s),await this._gotoReference(s,!1),n?this._editor.focus():this._widget&&o&&this._widget.focusOnPreviewEditor()}async revealReference(t){this._editor.hasModel()&&this._model&&this._widget&&await this._widget.revealReference(t)}closeWidget(t=!0){var i,e;null===(i=this._widget)||void 0===i||i.dispose(),null===(e=this._model)||void 0===e||e.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,t&&this._editor.focus(),this._requestIdPool+=1}_gotoReference(t,i){var e;null===(e=this._widget)||void 0===e||e.hide(),this._ignoreModelChangeEvent=!0;const s=Ms.lift(t.range).collapseToStart();return this._editorService.openCodeEditor({resource:t.uri,options:{selection:s,selectionSource:"code.jump",pinned:i}},this._editor).then((t=>{var i;if(this._ignoreModelChangeEvent=!1,t&&this._widget)if(this._editor===t)this._widget.show(s),this._widget.focusOnReferenceTree();else{const e=RY.get(t),n=this._model.clone();this.closeWidget(),t.focus(),null==e||e.toggleWidget(s,nc((()=>Promise.resolve(n))),null!==(i=this._peekMode)&&void 0!==i&&i)}else this.closeWidget()}),(t=>{this._ignoreModelChangeEvent=!1,Bi(t)}))}openReference(t,i,e){i||this.closeWidget();const{uri:s,range:n}=t;this._editorService.openCodeEditor({resource:s,options:{selection:n,selectionSource:"code.jump",pinned:e}},this._editor,i)}};function NY(t,i){const e=function(t){const i=t.get(fr).getFocusedCodeEditor();return i instanceof UJ?i.getParentEditor():i}(t);if(!e)return;const s=_Y.get(e);s&&i(s)}_Y.ID="editor.contrib.referencesController",_Y=RY=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([OY(2,ah),OY(3,fr),OY(4,oT),OY(5,ur),OY(6,AB),OY(7,pd)],_Y),Ah.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:Ne(2089,60),when:zr.or(IY,iY.inPeekEditor),handler(t){NY(t,(t=>{t.changeFocusBetweenPreviewAndReferences()}))}}),Ah.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:zr.or(IY,iY.inPeekEditor),handler(t){NY(t,(t=>{t.goToNextOrPreviousReference(!0)}))}}),Ah.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:zr.or(IY,iY.inPeekEditor),handler(t){NY(t,(t=>{t.goToNextOrPreviousReference(!1)}))}}),Dr.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference"),Dr.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference"),Dr.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch"),Dr.registerCommand("closeReferenceSearch",(t=>NY(t,(t=>t.closeWidget())))),Ah.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:zr.and(iY.inPeekEditor,zr.not("config.editor.stablePeek"))}),Ah.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:zr.and(IY,zr.not("config.editor.stablePeek"))}),Ah.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:zr.and(IY,TW,BW.negate(),$W.negate()),handler(t){var i;const e=null===(i=t.get(AW).lastFocusedList)||void 0===i?void 0:i.getFocus();Array.isArray(e)&&e[0]instanceof uY&&NY(t,(t=>t.revealReference(e[0])))}}),Ah.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:zr.and(IY,TW,BW.negate(),$W.negate()),handler(t){var i;const e=null===(i=t.get(AW).lastFocusedList)||void 0===i?void 0:i.getFocus();Array.isArray(e)&&e[0]instanceof uY&&NY(t,(t=>t.openReference(e[0],!0,!0)))}}),Dr.registerCommand("openReference",(t=>{var i;const e=null===(i=t.get(AW).lastFocusedList)||void 0===i?void 0:i.getFocus();Array.isArray(e)&&e[0]instanceof uY&&NY(t,(t=>t.openReference(e[0],!1,!0)))}));var BY=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},PY=function(t,i){return function(e,s){i(e,s,t)}};const $Y=new ch("hasSymbols",!1,ot(0,"Whether there are symbol locations that can be navigated via keyboard-only.")),WY=dr("ISymbolNavigationService");let jY=class{constructor(t,i,e,s){this._editorService=i,this._notificationService=e,this._keybindingService=s,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=$Y.bindTo(t)}reset(){var t,i;this._ctxHasSymbols.reset(),null===(t=this._currentState)||void 0===t||t.dispose(),null===(i=this._currentMessage)||void 0===i||i.dispose(),this._currentModel=void 0,this._currentIdx=-1}put(t){const i=t.parent.parent;if(i.references.length<=1)return void this.reset();this._currentModel=i,this._currentIdx=i.references.indexOf(t),this._ctxHasSymbols.set(!0),this._showMessage();const e=new zY(this._editorService),s=e.onDidChange((()=>{if(this._ignoreEditorChange)return;const t=this._editorService.getActiveCodeEditor();if(!t)return;const e=t.getModel(),s=t.getPosition();if(!e||!s)return;let n=!1,o=!1;for(const t of i.references)if(wA(t.uri,e.uri))n=!0,o=o||Ms.containsPosition(t.range,s);else if(n)break;n&&o||this.reset()}));this._currentState=Ji(e,s)}revealNext(t){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;const i=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:i.uri,options:{selection:Ms.collapseToStart(i.range),selectionRevealType:3}},t).finally((()=>{this._ignoreEditorChange=!1}))}_showMessage(){var t;null===(t=this._currentMessage)||void 0===t||t.dispose();const i=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),e=i?ot(0,"Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,i.getLabel()):ot(0,"Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(e)}};jY=BY([PY(0,ah),PY(1,fr),PY(2,oT),PY(3,oC)],jY),Cd(WY,jY,1),hu(new class extends eu{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:$Y,kbOpts:{weight:100,primary:70}})}runEditorCommand(t,i){return t.get(WY).revealNext(i)}}),Ah.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:$Y,primary:9,handler(t){t.get(WY).reset()}});let zY=class{constructor(t){this._listener=new Map,this._disposables=new Xi,this._onDidChange=new de,this.onDidChange=this._onDidChange.event,this._disposables.add(t.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(t.onCodeEditorAdd(this._onDidAddEditor,this)),t.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),Qi(this._listener.values())}_onDidAddEditor(t){this._listener.set(t,Ji(t.onDidChangeCursorPosition((()=>this._onDidChange.fire({editor:t}))),t.onDidChangeModelContent((()=>this._onDidChange.fire({editor:t})))))}_onDidRemoveEditor(t){var i;null===(i=this._listener.get(t))||void 0===i||i.dispose(),this._listener.delete(t)}};async function HY(t,i,e,s){const n=e.ordered(t).map((e=>Promise.resolve(s(e,t,i)).then(void 0,(t=>{Pi(t)}))));return m((await Promise.all(n)).flat())}function VY(t,i,e,s){return HY(i,e,t,((t,i,e)=>t.provideDefinition(i,e,s)))}function UY(t,i,e,s){return HY(i,e,t,((t,i,e)=>t.provideDeclaration(i,e,s)))}function qY(t,i,e,s){return HY(i,e,t,((t,i,e)=>t.provideImplementation(i,e,s)))}function KY(t,i,e,s){return HY(i,e,t,((t,i,e)=>t.provideTypeDefinition(i,e,s)))}function GY(t,i,e,s,n){return HY(i,e,t,(async(t,i,e)=>{const o=await t.provideReferences(i,e,{includeDeclaration:!0},n);if(!s||!o||2!==o.length)return o;const r=await t.provideReferences(i,e,{includeDeclaration:!1},n);return r&&1===r.length?r:o}))}async function ZY(t){const i=await t(),e=new pY(i,""),s=e.references.map((t=>t.link));return e.dispose(),s}var QY,JY,YY,XY,tX,iX,eX,sX;zY=BY([PY(0,fr)],zY),ru("_executeDefinitionProvider",((t,i,e)=>{const s=VY(t.get(xg).definitionProvider,i,e,ke.None);return ZY((()=>s))})),ru("_executeTypeDefinitionProvider",((t,i,e)=>{const s=KY(t.get(xg).typeDefinitionProvider,i,e,ke.None);return ZY((()=>s))})),ru("_executeDeclarationProvider",((t,i,e)=>{const s=UY(t.get(xg).declarationProvider,i,e,ke.None);return ZY((()=>s))})),ru("_executeReferenceProvider",((t,i,e)=>{const s=GY(t.get(xg).referenceProvider,i,e,!1,ke.None);return ZY((()=>s))})),ru("_executeImplementationProvider",((t,i,e)=>{const s=qY(t.get(xg).implementationProvider,i,e,ke.None);return ZY((()=>s))})),_h.appendMenuItem(Rh.EditorContext,{submenu:Rh.EditorContextPeek,title:ot(0,"Peek"),group:"navigation",order:100});class nX{static is(t){return!(!t||"object"!=typeof t)&&(t instanceof nX||!(!As.isIPosition(t.position)||!t.model))}constructor(t,i){this.model=t,this.position=i}}class oX extends ou{static all(){return oX._allSymbolNavigationCommands.values()}static _patchConfig(t){const i={...t,f1:!0};if(i.menu)for(const e of Ht.wrap(i.menu))e.id!==Rh.EditorContext&&e.id!==Rh.EditorContextPeek||(e.when=zr.and(t.precondition,e.when));return i}constructor(t,i){super(oX._patchConfig(i)),this.configuration=t,oX._allSymbolNavigationCommands.set(i.id,this)}runEditorCommand(t,i,e,s){if(!i.hasModel())return Promise.resolve(void 0);const n=t.get(oT),o=t.get(fr),r=t.get(zO),h=t.get(WY),c=t.get(xg),a=t.get(ur),l=i.getModel(),u=i.getPosition(),d=nX.is(e)?e:new nX(l,u),f=new CK(i,5),p=oc(this._getLocationModel(c,d.model,d.position,f.token),f.token).then((async t=>{var n;if(!t||f.token.isCancellationRequested)return;let r;if(Pm(t.ariaMessage),t.referenceAt(l.uri,u)){const t=this._getAlternativeCommand(i);!oX._activeAlternativeCommands.has(t)&&oX._allSymbolNavigationCommands.has(t)&&(r=oX._allSymbolNavigationCommands.get(t))}const c=t.references.length;if(0===c){if(!this.configuration.muteMessage){const t=l.getWordAtPosition(u);null===(n=gQ.get(i))||void 0===n||n.showMessage(this._getNoResultFoundMessage(t),u)}}else{if(1!==c||!r)return this._onResult(o,h,i,t,s);oX._activeAlternativeCommands.add(this.desc.id),a.invokeFunction((t=>r.runEditorCommand(t,i,e,s).finally((()=>{oX._activeAlternativeCommands.delete(this.desc.id)}))))}}),(t=>{n.error(t)})).finally((()=>{f.dispose()}));return r.showWhile(p,250),p}async _onResult(t,i,e,s,n){const o=this._getGoToPreference(e);if(e instanceof UJ||!(this.configuration.openInPeek||"peek"===o&&s.references.length>1)){const r=s.firstReference(),h=s.references.length>1&&"gotoAndPeek"===o,c=await this._openReference(e,t,r,this.configuration.openToSide,!h);h&&c?this._openInPeek(c,s,n):s.dispose(),"goto"===o&&i.put(r)}else this._openInPeek(e,s,n)}async _openReference(t,i,e,s,n){let o;var r;if((r=e)&&ms.isUri(r.uri)&&Ms.isIRange(r.range)&&(Ms.isIRange(r.originSelectionRange)||Ms.isIRange(r.targetSelectionRange))&&(o=e.targetSelectionRange),o||(o=e.range),!o)return;const h=await i.openCodeEditor({resource:e.uri,options:{selection:Ms.collapseToStart(o),selectionRevealType:3,selectionSource:"code.jump"}},t,s);if(h){if(n){const t=h.getModel(),i=h.createDecorationsCollection([{range:o,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout((()=>{h.getModel()===t&&i.clear()}),350)}return h}}_openInPeek(t,i,e){const s=_Y.get(t);s&&t.hasModel()?s.toggleWidget(null!=e?e:t.getSelection(),nc((()=>Promise.resolve(i))),this.configuration.openInPeek):i.dispose()}}oX._allSymbolNavigationCommands=new Map,oX._activeAlternativeCommands=new Set;class rX extends oX{async _getLocationModel(t,i,e,s){return new pY(await VY(t.definitionProvider,i,e,s),ot(0,"Definitions"))}_getNoResultFoundMessage(t){return t&&t.word?ot(0,"No definition found for '{0}'",t.word):ot(0,"No definition found")}_getAlternativeCommand(t){return t.getOption(58).alternativeDefinitionCommand}_getGoToPreference(t){return t.getOption(58).multipleDefinitions}}$h(((QY=class extends rX{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:QY.id,title:{value:ot(0,"Go to Definition"),original:"Go to Definition",mnemonicTitle:ot(0,"Go to &&Definition")},precondition:zr.and(YC.hasDefinitionProvider,YC.isInWalkThroughSnippet.toNegated()),keybinding:[{when:YC.editorTextFocus,primary:70,weight:100},{when:zr.and(YC.editorTextFocus,yW),primary:2118,weight:100}],menu:[{id:Rh.EditorContext,group:"navigation",order:1.1},{id:Rh.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]}),Dr.registerCommandAlias("editor.action.goToDeclaration",QY.id)}}).id="editor.action.revealDefinition",QY)),$h(((JY=class extends rX{constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:JY.id,title:{value:ot(0,"Open Definition to the Side"),original:"Open Definition to the Side"},precondition:zr.and(YC.hasDefinitionProvider,YC.isInWalkThroughSnippet.toNegated()),keybinding:[{when:YC.editorTextFocus,primary:Ne(2089,70),weight:100},{when:zr.and(YC.editorTextFocus,yW),primary:Ne(2089,2118),weight:100}]}),Dr.registerCommandAlias("editor.action.openDeclarationToTheSide",JY.id)}}).id="editor.action.revealDefinitionAside",JY)),$h(((YY=class extends rX{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:YY.id,title:{value:ot(0,"Peek Definition"),original:"Peek Definition"},precondition:zr.and(YC.hasDefinitionProvider,iY.notInPeekEditor,YC.isInWalkThroughSnippet.toNegated()),keybinding:{when:YC.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:Rh.EditorContextPeek,group:"peek",order:2}}),Dr.registerCommandAlias("editor.action.previewDeclaration",YY.id)}}).id="editor.action.peekDefinition",YY));class hX extends oX{async _getLocationModel(t,i,e,s){return new pY(await UY(t.declarationProvider,i,e,s),ot(0,"Declarations"))}_getNoResultFoundMessage(t){return t&&t.word?ot(0,"No declaration found for '{0}'",t.word):ot(0,"No declaration found")}_getAlternativeCommand(t){return t.getOption(58).alternativeDeclarationCommand}_getGoToPreference(t){return t.getOption(58).multipleDeclarations}}$h(((XY=class extends hX{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:XY.id,title:{value:ot(0,"Go to Declaration"),original:"Go to Declaration",mnemonicTitle:ot(0,"Go to &&Declaration")},precondition:zr.and(YC.hasDeclarationProvider,YC.isInWalkThroughSnippet.toNegated()),menu:[{id:Rh.EditorContext,group:"navigation",order:1.3},{id:Rh.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(t){return t&&t.word?ot(0,"No declaration found for '{0}'",t.word):ot(0,"No declaration found")}}).id="editor.action.revealDeclaration",XY)),$h(class extends hX{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:{value:ot(0,"Peek Declaration"),original:"Peek Declaration"},precondition:zr.and(YC.hasDeclarationProvider,iY.notInPeekEditor,YC.isInWalkThroughSnippet.toNegated()),menu:{id:Rh.EditorContextPeek,group:"peek",order:3}})}});class cX extends oX{async _getLocationModel(t,i,e,s){return new pY(await KY(t.typeDefinitionProvider,i,e,s),ot(0,"Type Definitions"))}_getNoResultFoundMessage(t){return t&&t.word?ot(0,"No type definition found for '{0}'",t.word):ot(0,"No type definition found")}_getAlternativeCommand(t){return t.getOption(58).alternativeTypeDefinitionCommand}_getGoToPreference(t){return t.getOption(58).multipleTypeDefinitions}}$h(((tX=class extends cX{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:tX.ID,title:{value:ot(0,"Go to Type Definition"),original:"Go to Type Definition",mnemonicTitle:ot(0,"Go to &&Type Definition")},precondition:zr.and(YC.hasTypeDefinitionProvider,YC.isInWalkThroughSnippet.toNegated()),keybinding:{when:YC.editorTextFocus,primary:0,weight:100},menu:[{id:Rh.EditorContext,group:"navigation",order:1.4},{id:Rh.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}}).ID="editor.action.goToTypeDefinition",tX)),$h(((iX=class extends cX{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:iX.ID,title:{value:ot(0,"Peek Type Definition"),original:"Peek Type Definition"},precondition:zr.and(YC.hasTypeDefinitionProvider,iY.notInPeekEditor,YC.isInWalkThroughSnippet.toNegated()),menu:{id:Rh.EditorContextPeek,group:"peek",order:4}})}}).ID="editor.action.peekTypeDefinition",iX));class aX extends oX{async _getLocationModel(t,i,e,s){return new pY(await qY(t.implementationProvider,i,e,s),ot(0,"Implementations"))}_getNoResultFoundMessage(t){return t&&t.word?ot(0,"No implementation found for '{0}'",t.word):ot(0,"No implementation found")}_getAlternativeCommand(t){return t.getOption(58).alternativeImplementationCommand}_getGoToPreference(t){return t.getOption(58).multipleImplementations}}$h(((eX=class extends aX{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:eX.ID,title:{value:ot(0,"Go to Implementations"),original:"Go to Implementations",mnemonicTitle:ot(0,"Go to &&Implementations")},precondition:zr.and(YC.hasImplementationProvider,YC.isInWalkThroughSnippet.toNegated()),keybinding:{when:YC.editorTextFocus,primary:2118,weight:100},menu:[{id:Rh.EditorContext,group:"navigation",order:1.45},{id:Rh.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}}).ID="editor.action.goToImplementation",eX)),$h(((sX=class extends aX{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:sX.ID,title:{value:ot(0,"Peek Implementations"),original:"Peek Implementations"},precondition:zr.and(YC.hasImplementationProvider,iY.notInPeekEditor,YC.isInWalkThroughSnippet.toNegated()),keybinding:{when:YC.editorTextFocus,primary:3142,weight:100},menu:{id:Rh.EditorContextPeek,group:"peek",order:5}})}}).ID="editor.action.peekImplementation",sX));class lX extends oX{_getNoResultFoundMessage(t){return t?ot(0,"No references found for '{0}'",t.word):ot(0,"No references found")}_getAlternativeCommand(t){return t.getOption(58).alternativeReferenceCommand}_getGoToPreference(t){return t.getOption(58).multipleReferences}}$h(class extends lX{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{value:ot(0,"Go to References"),original:"Go to References",mnemonicTitle:ot(0,"Go to &&References")},precondition:zr.and(YC.hasReferenceProvider,iY.notInPeekEditor,YC.isInWalkThroughSnippet.toNegated()),keybinding:{when:YC.editorTextFocus,primary:1094,weight:100},menu:[{id:Rh.EditorContext,group:"navigation",order:1.45},{id:Rh.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(t,i,e,s){return new pY(await GY(t.referenceProvider,i,e,!0,s),ot(0,"References"))}}),$h(class extends lX{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:{value:ot(0,"Peek References"),original:"Peek References"},precondition:zr.and(YC.hasReferenceProvider,iY.notInPeekEditor,YC.isInWalkThroughSnippet.toNegated()),menu:{id:Rh.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(t,i,e,s){return new pY(await GY(t.referenceProvider,i,e,!1,s),ot(0,"References"))}});class uX extends oX{constructor(t,i,e){super(t,{id:"editor.action.goToLocation",title:{value:ot(0,"Go to Any Symbol"),original:"Go to Any Symbol"},precondition:zr.and(iY.notInPeekEditor,YC.isInWalkThroughSnippet.toNegated())}),this._references=i,this._gotoMultipleBehaviour=e}async _getLocationModel(t,i,e,s){return new pY(this._references,ot(0,"Locations"))}_getNoResultFoundMessage(t){return t&&ot(0,"No results for '{0}'",t.word)||""}_getGoToPreference(t){var i;return null!==(i=this._gotoMultipleBehaviour)&&void 0!==i?i:t.getOption(58).multipleReferences}_getAlternativeCommand(){return""}}Dr.registerCommand({id:"editor.action.goToLocations",metadata:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:ms},{name:"position",description:"The position at which to start",constraint:As.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:async(t,i,e,s,n,o,r)=>{q(ms.isUri(i)),q(As.isIPosition(e)),q(Array.isArray(s)),q(void 0===n||"string"==typeof n),q(void 0===r||"boolean"==typeof r);const h=t.get(fr),c=await h.openCodeEditor({resource:i},h.getFocusedCodeEditor());if(DK(c))return c.setPosition(e),c.revealPositionInCenterIfOutsideViewport(e,0),c.invokeWithinContext((t=>{const i=new class extends uX{_getNoResultFoundMessage(t){return o||super._getNoResultFoundMessage(t)}}({muteMessage:!Boolean(o),openInPeek:Boolean(r),openToSide:!1},s,n);t.get(ur).invokeFunction(i.run.bind(i),c)}))}}),Dr.registerCommand({id:"editor.action.peekLocations",metadata:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:ms},{name:"position",description:"The position at which to start",constraint:As.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto"}]},handler:async(t,i,e,s,n)=>{t.get(Sr).executeCommand("editor.action.goToLocations",i,e,s,n,void 0,!0)}}),Dr.registerCommand({id:"editor.action.findReferences",handler:(t,i,e)=>{q(ms.isUri(i)),q(As.isIPosition(e));const s=t.get(xg),n=t.get(fr);return n.openCodeEditor({resource:i},n.getFocusedCodeEditor()).then((t=>{if(!DK(t)||!t.hasModel())return;const i=_Y.get(t);if(!i)return;const n=nc((i=>GY(s.referenceProvider,t.getModel(),As.lift(e),!1,i).then((t=>new pY(t,ot(0,"References")))))),o=new Ms(e.lineNumber,e.column,e.lineNumber,e.column);return Promise.resolve(i.toggleWidget(o,n,!1))}))}}),Dr.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");var dX,fX=function(t,i){return function(e,s){i(e,s,t)}};let pX=dX=class{constructor(t,i,e,s){this.textModelResolverService=i,this.languageService=e,this.languageFeaturesService=s,this.toUnhook=new Xi,this.toUnhookForKeyboard=new Xi,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=t,this.linkDecorations=this.editor.createDecorationsCollection();const n=new HJ(t);this.toUnhook.add(n),this.toUnhook.add(n.onMouseMoveOrRelevantKeyDown((([t,i])=>{this.startFindDefinitionFromMouse(t,null!=i?i:void 0)}))),this.toUnhook.add(n.onExecute((t=>{this.isEnabled(t)&&this.gotoDefinition(t.target.position,t.hasSideBySideModifier).catch((t=>{Bi(t)})).finally((()=>{this.removeLinkDecorations()}))}))),this.toUnhook.add(n.onCancel((()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null})))}static get(t){return t.getContribution(dX.ID)}async startFindDefinitionFromCursor(t){await this.startFindDefinition(t),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition((()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()}))),this.toUnhookForKeyboard.add(this.editor.onKeyDown((t=>{t&&(this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear())})))}startFindDefinitionFromMouse(t,i){if(!(9===t.target.type&&this.linkDecorations.length>0))return this.editor.hasModel()&&this.isEnabled(t,i)?void this.startFindDefinition(t.target.position):(this.currentWordAtPosition=null,void this.removeLinkDecorations())}async startFindDefinition(t){var i;this.toUnhookForKeyboard.clear();const e=t?null===(i=this.editor.getModel())||void 0===i?void 0:i.getWordAtPosition(t):null;if(!e)return this.currentWordAtPosition=null,void this.removeLinkDecorations();if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===e.startColumn&&this.currentWordAtPosition.endColumn===e.endColumn&&this.currentWordAtPosition.word===e.word)return;this.currentWordAtPosition=e;const s=new xK(this.editor,15);let n;this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=nc((i=>this.findDefinition(t,i)));try{n=await this.previousPromise}catch(t){return void Bi(t)}if(!n||!n.length||!s.validate(this.editor))return void this.removeLinkDecorations();const o=n[0].originSelectionRange?Ms.lift(n[0].originSelectionRange):new Ms(t.lineNumber,e.startColumn,t.lineNumber,e.endColumn);if(n.length>1){let t=o;for(const{originSelectionRange:i}of n)i&&(t=Ms.plusRange(t,i));this.addDecoration(t,(new N_).appendText(ot(0,"Click to show {0} definitions.",n.length)))}else{const t=n[0];if(!t.uri)return;this.textModelResolverService.createModelReference(t.uri).then((i=>{if(!i.object||!i.object.textEditorModel)return void i.dispose();const{object:{textEditorModel:e}}=i,{startLineNumber:s}=t.range;if(s<1||s>e.getLineCount())return void i.dispose();const n=this.getPreviewValue(e,s,t),r=this.languageService.guessLanguageIdByFilepathOrFirstLine(e.uri);this.addDecoration(o,n?(new N_).appendCodeblock(r||"",n):void 0),i.dispose()}))}}getPreviewValue(t,i,e){let s=e.range;return s.endLineNumber-s.startLineNumber>=dX.MAX_SOURCE_PREVIEW_LINES&&(s=this.getPreviewRangeBasedOnIndentation(t,i)),this.stripIndentationFromPreviewRange(t,i,s)}stripIndentationFromPreviewRange(t,i,e){let s=t.getLineFirstNonWhitespaceColumn(i);for(let n=i+1;n{const e=!i&&this.editor.getOption(87)&&!this.isInPeekEditor(t);return new rX({openToSide:i,openInPeek:e,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(t)}))}isInPeekEditor(t){const i=t.get(ah);return iY.inPeekEditor.getValue(i)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};pX.ID="editor.contrib.gotodefinitionatposition",pX.MAX_SOURCE_PREVIEW_LINES=8,pX=dX=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([fX(1,gr),fX(2,yd),fX(3,xg)],pX),lu(pX.ID,pX,2);const gX=$l;class mX extends te{constructor(){super(),this.containerDomNode=document.createElement("div"),this.containerDomNode.className="monaco-hover",this.containerDomNode.tabIndex=0,this.containerDomNode.setAttribute("role","tooltip"),this.contentsDomNode=document.createElement("div"),this.contentsDomNode.className="monaco-hover-content",this.scrollbar=this._register(new Tk(this.contentsDomNode,{consumeMouseWheelIfScrollbarIsNeeded:!0})),this.containerDomNode.appendChild(this.scrollbar.getDomNode())}onContentsChanged(){this.scrollbar.scanDomNode()}}class wX extends te{static render(t,i,e){return new wX(t,i,e)}constructor(t,i,e){super(),this.actionContainer=Ol(t,gX("div.action-container")),this.actionContainer.setAttribute("tabindex","0"),this.action=Ol(this.actionContainer,gX("a.action")),this.action.setAttribute("role","button"),i.iconClass&&Ol(this.action,gX(`span.icon.${i.iconClass}`)),Ol(this.action,gX("span")).textContent=e?`${i.label} (${e})`:i.label,this._register(Va(this.actionContainer,Ll.CLICK,(t=>{t.stopPropagation(),t.preventDefault(),i.run(this.actionContainer)}))),this._register(Va(this.actionContainer,Ll.KEY_DOWN,(t=>{const e=new Qh(t);(e.equals(3)||e.equals(10))&&(t.stopPropagation(),t.preventDefault(),i.run(this.actionContainer))}))),this.setEnabled(!0)}setEnabled(t){t?(this.actionContainer.classList.remove("disabled"),this.actionContainer.removeAttribute("aria-disabled")):(this.actionContainer.classList.add("disabled"),this.actionContainer.setAttribute("aria-disabled","true"))}}class vX{constructor(t,i,e){this.value=t,this.isComplete=i,this.hasLoadingMessage=e}}class bX extends te{constructor(t,i){super(),this._editor=t,this._computer=i,this._onResult=this._register(new de),this.onResult=this._onResult.event,this._firstWaitScheduler=this._register(new pc((()=>this._triggerAsyncComputation()),0)),this._secondWaitScheduler=this._register(new pc((()=>this._triggerSyncComputation()),0)),this._loadingMessageScheduler=this._register(new pc((()=>this._triggerLoadingMessage()),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),super.dispose()}get _hoverTime(){return this._editor.getOption(60).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(t,i=!0){this._state=t,i&&this._fireResult()}_triggerAsyncComputation(){this._setState(2),this._secondWaitScheduler.schedule(this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=function(t){const i=new Ce,e=t(i.token);return new xc(i,(async t=>{const s=i.token.onCancellationRequested((()=>{s.dispose(),i.dispose(),t.reject(new zi)}));try{for await(const s of e){if(i.token.isCancellationRequested)return;t.emitOne(s)}s.dispose(),i.dispose()}catch(e){s.dispose(),i.dispose(),t.reject(e)}}))}((t=>this._computer.computeAsync(t))),(async()=>{try{for await(const t of this._asyncIterable)t&&(this._result.push(t),this._fireResult());this._asyncIterableDone=!0,3!==this._state&&4!==this._state||this._setState(0)}catch(t){Bi(t)}})()):this._asyncIterableDone=!0}_triggerSyncComputation(){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync())),this._setState(this._asyncIterableDone?0:3)}_triggerLoadingMessage(){3===this._state&&this._setState(4)}_fireResult(){if(1===this._state||2===this._state)return;const t=0===this._state,i=4===this._state;this._onResult.fire(new vX(this._result.slice(0),t,i))}start(t){if(0===t)0===this._state&&(this._setState(1),this._firstWaitScheduler.schedule(this._firstWaitTime),this._loadingMessageScheduler.schedule(this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation()}}cancel(){this._firstWaitScheduler.cancel(),this._secondWaitScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._result=[],this._setState(0,!1)}}class yX{constructor(t,i,e,s){this.priority=t,this.range=i,this.initialMousePosX=e,this.initialMousePosY=s,this.type=1}equals(t){return 1===t.type&&this.range.equalsRange(t.range)}canAdoptVisibleHover(t,i){return 1===t.type&&i.lineNumber===this.range.startLineNumber}}class kX{constructor(t,i,e,s,n,o){this.priority=t,this.owner=i,this.range=e,this.initialMousePosX=s,this.initialMousePosY=n,this.supportsMarkerHover=o,this.type=2}equals(t){return 2===t.type&&this.owner===t.owner}canAdoptVisibleHover(t,i){return 2===t.type&&this.owner===t.owner}}const xX=new class{constructor(){this._participants=[]}register(t){this._participants.push(t)}getAll(){return this._participants}};class CX{constructor(){let t;this._onDidWillResize=new de,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new de,this.onDidResize=this._onDidResize.event,this._sashListener=new Xi,this._size=new el(0,0),this._minSize=new el(0,0),this._maxSize=new el(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new VP(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new VP(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new VP(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:NP.North}),this._southSash=new VP(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:NP.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let i=0,e=0;this._sashListener.add(he.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)((()=>{void 0===t&&(this._onDidWillResize.fire(),t=this._size,i=0,e=0)}))),this._sashListener.add(he.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)((()=>{void 0!==t&&(t=void 0,i=0,e=0,this._onDidResize.fire({dimension:this._size,done:!0}))}))),this._sashListener.add(this._eastSash.onDidChange((s=>{t&&(e=s.currentX-s.startX,this.layout(t.height+i,t.width+e),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))}))),this._sashListener.add(this._westSash.onDidChange((s=>{t&&(e=-(s.currentX-s.startX),this.layout(t.height+i,t.width+e),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))}))),this._sashListener.add(this._northSash.onDidChange((s=>{t&&(i=-(s.currentY-s.startY),this.layout(t.height+i,t.width+e),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))}))),this._sashListener.add(this._southSash.onDidChange((s=>{t&&(i=s.currentY-s.startY,this.layout(t.height+i,t.width+e),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))}))),this._sashListener.add(he.any(this._eastSash.onDidReset,this._westSash.onDidReset)((()=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))),this._sashListener.add(he.any(this._northSash.onDidReset,this._southSash.onDidReset)((()=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))})))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(t,i,e,s){this._northSash.state=t?3:0,this._eastSash.state=i?3:0,this._southSash.state=e?3:0,this._westSash.state=s?3:0}layout(t=this.size.height,i=this.size.width){const{height:e,width:s}=this._minSize,{height:n,width:o}=this._maxSize;t=Math.max(e,Math.min(n,t)),i=Math.max(s,Math.min(o,i));const r=new el(i,t);el.equals(r,this._size)||(this.domNode.style.height=t+"px",this.domNode.style.width=i+"px",this._size=r,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(t){this._maxSize=t}get maxSize(){return this._maxSize}set minSize(t){this._minSize=t}get minSize(){return this._minSize}set preferredSize(t){this._preferredSize=t}get preferredSize(){return this._preferredSize}}class SX extends te{constructor(t,i=new el(10,10)){super(),this._editor=t,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new CX),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=el.lift(i),this._resizableNode.layout(i.height,i.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize((t=>{this._resize(new el(t.dimension.width,t.dimension.height)),t.done&&(this._isResizing=!1)}))),this._register(this._resizableNode.onDidWillResize((()=>{this._isResizing=!0})))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){var t;return(null===(t=this._contentPosition)||void 0===t?void 0:t.position)?As.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(t){const i=this._editor.getDomNode(),e=this._editor.getScrolledVisiblePosition(t);if(i&&e)return nl(i).top+e.top-30}_availableVerticalSpaceBelow(t){const i=this._editor.getDomNode(),e=this._editor.getScrolledVisiblePosition(t);if(!i||!e)return;const s=nl(i);return tl(i.ownerDocument.body).height-(s.top+e.top+e.height)-24}_findPositionPreference(t,i){var e,s;const n=Math.min(null!==(e=this._availableVerticalSpaceBelow(i))&&void 0!==e?e:1/0,t),o=Math.min(null!==(s=this._availableVerticalSpaceAbove(i))&&void 0!==s?s:1/0,t),r=Math.min(Math.max(o,n),t),h=Math.min(t,r);let c;return c=this._editor.getOption(60).above?h<=o?1:2:h<=n?2:1,1===c?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),c}_resize(t){this._resizableNode.layout(t.height,t.width)}}var DX,EX,AX=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},MX=function(t,i){return function(e,s){i(e,s,t)}};const LX=$l;let FX=DX=class extends te{constructor(t,i,e){super(),this._editor=t,this._instantiationService=i,this._keybindingService=e,this._currentResult=null,this._widget=this._register(this._instantiationService.createInstance(IX,this._editor)),this._participants=[];for(const t of xX.getAll())this._participants.push(this._instantiationService.createInstance(t,this._editor));this._participants.sort(((t,i)=>t.hoverOrdinal-i.hoverOrdinal)),this._computer=new NX(this._editor,this._participants),this._hoverOperation=this._register(new bX(this._editor,this._computer)),this._register(this._hoverOperation.onResult((t=>{if(!this._computer.anchor)return;const i=t.hasLoadingMessage?this._addLoadingMessage(t.value):t.value;this._withResult(new TX(this._computer.anchor,i,t.isComplete))}))),this._register(qa(this._widget.getDomNode(),"keydown",(t=>{t.equals(9)&&this.hide()}))),this._register(Zs.onDidChange((()=>{this._widget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)})))}get widget(){return this._widget}maybeShowAt(t){if(this._widget.isResizing)return!0;const i=[];for(const e of this._participants)if(e.suggestHoverAnchor){const s=e.suggestHoverAnchor(t);s&&i.push(s)}const e=t.target;if(6===e.type&&i.push(new yX(0,e.range,t.event.posx,t.event.posy)),7===e.type){const s=this._editor.getOption(50).typicalHalfwidthCharacterWidth/2;!e.detail.isAfterLines&&"number"==typeof e.detail.horizontalDistanceToText&&e.detail.horizontalDistanceToTexti.priority-t.priority)),this._startShowingOrUpdateHover(i[0],0,0,!1,t))}startShowingAtRange(t,i,e,s){this._startShowingOrUpdateHover(new yX(0,t,void 0,void 0),i,e,s,null)}_startShowingOrUpdateHover(t,i,e,s,n){return this._widget.position&&this._currentResult?this._editor.getOption(60).sticky&&n&&this._widget.isMouseGettingCloser(n.event.posx,n.event.posy)?(t&&this._startHoverOperationIfNecessary(t,i,e,s,!0),!0):t?!(!t||!this._currentResult.anchor.equals(t))||(t.canAdoptVisibleHover(this._currentResult.anchor,this._widget.position)?(this._setCurrentResult(this._currentResult.filter(t)),this._startHoverOperationIfNecessary(t,i,e,s,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(t,i,e,s,!1),!0)):(this._setCurrentResult(null),!1):!!t&&(this._startHoverOperationIfNecessary(t,i,e,s,!1),!0)}_startHoverOperationIfNecessary(t,i,e,s,n){this._computer.anchor&&this._computer.anchor.equals(t)||(this._hoverOperation.cancel(),this._computer.anchor=t,this._computer.shouldFocus=s,this._computer.source=e,this._computer.insistOnKeepingHoverVisible=n,this._hoverOperation.start(i))}_setCurrentResult(t){this._currentResult!==t&&(t&&0===t.messages.length&&(t=null),this._currentResult=t,this._currentResult?this._renderMessages(this._currentResult.anchor,this._currentResult.messages):this._widget.hide())}hide(){this._computer.anchor=null,this._hoverOperation.cancel(),this._setCurrentResult(null)}get isColorPickerVisible(){return this._widget.isColorPickerVisible}get isVisibleFromKeyboard(){return this._widget.isVisibleFromKeyboard}get isVisible(){return this._widget.isVisible}get isFocused(){return this._widget.isFocused}get isResizing(){return this._widget.isResizing}containsNode(t){return!!t&&this._widget.getDomNode().contains(t)}_addLoadingMessage(t){if(this._computer.anchor)for(const i of this._participants)if(i.createLoadingMessage){const e=i.createLoadingMessage(this._computer.anchor);if(e)return t.slice(0).concat([e])}return t}_withResult(t){if(this._widget.position&&this._currentResult&&this._currentResult.isComplete){if(!t.isComplete)return;if(this._computer.insistOnKeepingHoverVisible&&0===t.messages.length)return}this._setCurrentResult(t)}_renderMessages(t,i){const{showAtPosition:e,showAtSecondaryPosition:s,highlightRange:n}=DX.computeHoverRanges(this._editor,t.range,i),o=new Xi,r=o.add(new _X(this._keybindingService)),h=document.createDocumentFragment();let c=null;const a={fragment:h,statusBar:r,setColorPicker:t=>c=t,onContentsChanged:()=>this._widget.onContentsChanged(),setMinimumDimensions:t=>this._widget.setMinimumDimensions(t),hide:()=>this.hide()};for(const t of this._participants){const e=i.filter((i=>i.owner===t));e.length>0&&o.add(t.renderHoverParts(a,e))}const l=i.some((t=>t.isBeforeContent));if(r.hasContent&&h.appendChild(r.hoverElement),h.hasChildNodes()){if(n){const t=this._editor.createDecorationsCollection();t.set([{range:n,options:DX._DECORATION_OPTIONS}]),o.add(Yi((()=>{t.clear()})))}this._widget.showAt(h,new OX(c,e,s,this._editor.getOption(60).above,this._computer.shouldFocus,this._computer.source,l,t.initialMousePosX,t.initialMousePosY,o))}else o.dispose()}static computeHoverRanges(t,i,e){let s=1;if(t.hasModel()){const e=t._getViewModel(),n=e.coordinatesConverter,o=n.convertModelRangeToViewRange(i),r=new As(o.startLineNumber,e.getLineMinColumn(o.startLineNumber));s=n.convertViewPositionToModelPosition(r).column}const n=i.startLineNumber;let o=i.startColumn,r=e[0].range,h=null;for(const t of e)r=Ms.plusRange(r,t.range),t.range.startLineNumber===n&&t.range.endLineNumber===n&&(o=Math.max(Math.min(o,t.range.startColumn),s)),t.forceShowAtRange&&(h=t.range);return{showAtPosition:h?h.getStartPosition():new As(n,i.startColumn),showAtSecondaryPosition:h?h.getStartPosition():new As(n,o),highlightRange:r}}focus(){this._widget.focus()}scrollUp(){this._widget.scrollUp()}scrollDown(){this._widget.scrollDown()}scrollLeft(){this._widget.scrollLeft()}scrollRight(){this._widget.scrollRight()}pageUp(){this._widget.pageUp()}pageDown(){this._widget.pageDown()}goToTop(){this._widget.goToTop()}goToBottom(){this._widget.goToBottom()}};FX._DECORATION_OPTIONS=AL.register({description:"content-hover-highlight",className:"hoverHighlight"}),FX=DX=AX([MX(1,ur),MX(2,oC)],FX);class TX{constructor(t,i,e){this.anchor=t,this.messages=i,this.isComplete=e}filter(t){const i=this.messages.filter((i=>i.isValidForHoverAnchor(t)));return i.length===this.messages.length?this:new RX(this,this.anchor,i,this.isComplete)}}class RX extends TX{constructor(t,i,e,s){super(i,e,s),this.original=t}filter(t){return this.original.filter(t)}}class OX{constructor(t,i,e,s,n,o,r,h,c,a){this.colorPicker=t,this.showAtPosition=i,this.showAtSecondaryPosition=e,this.preferAbove=s,this.stoleFocus=n,this.source=o,this.isBeforeContent=r,this.initialMousePosX=h,this.initialMousePosY=c,this.disposables=a,this.closestMouseDistance=void 0}}let IX=EX=class extends SX{get isColorPickerVisible(){var t;return Boolean(null===(t=this._visibleData)||void 0===t?void 0:t.colorPicker)}get isVisibleFromKeyboard(){var t;return 1===(null===(t=this._visibleData)||void 0===t?void 0:t.source)}get isVisible(){var t;return null!==(t=this._hoverVisibleKey.get())&&void 0!==t&&t}get isFocused(){var t;return null!==(t=this._hoverFocusedKey.get())&&void 0!==t&&t}constructor(t,i,e,s,n){const o=t.getOption(66)+8,r=new el(150,o);super(t,r),this._configurationService=e,this._accessibilityService=s,this._keybindingService=n,this._hover=this._register(new mX),this._minimumSize=r,this._hoverVisibleKey=YC.hoverVisible.bindTo(i),this._hoverFocusedKey=YC.hoverFocused.bindTo(i),Ol(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._register(this._editor.onDidLayoutChange((()=>{this.isVisible&&this._updateMaxDimensions()}))),this._register(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(50)&&this._updateFont()})));const h=this._register(Rl(this._resizableNode.domNode));this._register(h.onDidFocus((()=>{this._hoverFocusedKey.set(!0)}))),this._register(h.onDidBlur((()=>{this._hoverFocusedKey.set(!1)}))),this._setHoverData(void 0),this._editor.addContentWidget(this)}dispose(){var t;super.dispose(),null===(t=this._visibleData)||void 0===t||t.disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return EX.ID}static _applyDimensions(t,i,e){const s="number"==typeof e?`${e}px`:e;t.style.width="number"==typeof i?`${i}px`:i,t.style.height=s}_setContentsDomNodeDimensions(t,i){return EX._applyDimensions(this._hover.contentsDomNode,t,i)}_setContainerDomNodeDimensions(t,i){return EX._applyDimensions(this._hover.containerDomNode,t,i)}_setHoverWidgetDimensions(t,i){this._setContentsDomNodeDimensions(t,i),this._setContainerDomNodeDimensions(t,i),this._layoutContentWidget()}static _applyMaxDimensions(t,i,e){const s="number"==typeof e?`${e}px`:e;t.style.maxWidth="number"==typeof i?`${i}px`:i,t.style.maxHeight=s}_setHoverWidgetMaxDimensions(t,i){EX._applyMaxDimensions(this._hover.contentsDomNode,t,i),EX._applyMaxDimensions(this._hover.containerDomNode,t,i),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth","number"==typeof t?`${t}px`:t),this._layoutContentWidget()}_hasHorizontalScrollbar(){const t=this._hover.scrollbar.getScrollDimensions();return t.scrollWidth>t.width}_adjustContentsBottomPadding(){const t=this._hover.contentsDomNode,i=`${this._hover.scrollbar.options.horizontalScrollbarSize}px`;t.style.paddingBottom!==i&&(t.style.paddingBottom=i)}_setAdjustedHoverWidgetDimensions(t){this._setHoverWidgetMaxDimensions("none","none");const i=t.width,e=t.height;this._setHoverWidgetDimensions(i,e),this._hasHorizontalScrollbar()&&(this._adjustContentsBottomPadding(),this._setContentsDomNodeDimensions(i,e-10))}_updateResizableNodeMaxDimensions(){var t,i;const e=null!==(t=this._findMaximumRenderingWidth())&&void 0!==t?t:1/0,s=null!==(i=this._findMaximumRenderingHeight())&&void 0!==i?i:1/0;this._resizableNode.maxSize=new el(e,s),this._setHoverWidgetMaxDimensions(e,s)}_resize(t){var i,e;EX._lastDimensions=new el(t.width,t.height),this._setAdjustedHoverWidgetDimensions(t),this._resizableNode.layout(t.height,t.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),null===(e=null===(i=this._visibleData)||void 0===i?void 0:i.colorPicker)||void 0===e||e.layout()}_findAvailableSpaceVertically(){var t;const i=null===(t=this._visibleData)||void 0===t?void 0:t.showAtPosition;if(i)return 1===this._positionPreference?this._availableVerticalSpaceAbove(i):this._availableVerticalSpaceBelow(i)}_findMaximumRenderingHeight(){const t=this._findAvailableSpaceVertically();if(!t)return;let i=6;return Array.from(this._hover.contentsDomNode.children).forEach((t=>{i+=t.clientHeight})),this._hasHorizontalScrollbar()&&(i+=10),Math.min(t,i)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");const t=Array.from(this._hover.contentsDomNode.children).some((t=>t.scrollWidth>t.clientWidth));return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),t}_findMaximumRenderingWidth(){if(this._editor&&this._editor.hasModel())return this._isHoverTextOverflowing()||this._hover.containerDomNode.clientWidth<(void 0===this._contentWidth?0:this._contentWidth-2)?tl(this._hover.containerDomNode.ownerDocument.body).width-14:this._hover.containerDomNode.clientWidth+2}isMouseGettingCloser(t,i){if(!this._visibleData)return!1;if(void 0===this._visibleData.initialMousePosX||void 0===this._visibleData.initialMousePosY)return this._visibleData.initialMousePosX=t,this._visibleData.initialMousePosY=i,!1;const e=nl(this.getDomNode());void 0===this._visibleData.closestMouseDistance&&(this._visibleData.closestMouseDistance=BX(this._visibleData.initialMousePosX,this._visibleData.initialMousePosY,e.left,e.top,e.width,e.height));const s=BX(t,i,e.left,e.top,e.width,e.height);return!(s>this._visibleData.closestMouseDistance+4||(this._visibleData.closestMouseDistance=Math.min(this._visibleData.closestMouseDistance,s),0))}_setHoverData(t){var i;null===(i=this._visibleData)||void 0===i||i.disposables.dispose(),this._visibleData=t,this._hoverVisibleKey.set(!!t),this._hover.containerDomNode.classList.toggle("hidden",!t)}_updateFont(){const{fontSize:t,lineHeight:i}=this._editor.getOption(50),e=this._hover.contentsDomNode;e.style.fontSize=`${t}px`,e.style.lineHeight=""+i/t,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((t=>this._editor.applyFontInfo(t)))}_updateContent(t){const i=this._hover.contentsDomNode;i.style.paddingBottom="",i.textContent="",i.appendChild(t)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){const t=Math.max(this._editor.getLayoutInfo().height/4,250,EX._lastDimensions.height),i=Math.max(.66*this._editor.getLayoutInfo().width,500,EX._lastDimensions.width);this._setHoverWidgetMaxDimensions(i,t)}_render(t,i){this._setHoverData(i),this._updateFont(),this._updateContent(t),this._updateMaxDimensions(),this.onContentsChanged(),this._editor.render()}getPosition(){var t;return this._visibleData?{position:this._visibleData.showAtPosition,secondaryPosition:this._visibleData.showAtSecondaryPosition,positionAffinity:this._visibleData.isBeforeContent?3:void 0,preference:[null!==(t=this._positionPreference)&&void 0!==t?t:1]}:null}showAt(t,i){var e,s,n,o;if(!this._editor||!this._editor.hasModel())return;this._render(t,i);const r=cl(this._hover.containerDomNode);this._positionPreference=null!==(e=this._findPositionPreference(r,i.showAtPosition))&&void 0!==e?e:1,this.onContentsChanged(),i.stoleFocus&&this._hover.containerDomNode.focus(),null===(s=i.colorPicker)||void 0===s||s.layout();const h=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&(c=!0===this._configurationService.getValue("accessibility.verbosity.hover")&&this._accessibilityService.isScreenReaderOptimized(),a=null!==(o=null===(n=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))||void 0===n?void 0:n.getAriaLabel())&&void 0!==o?o:"",c&&a?ot(0,"Inspect this in the accessible view with {0}.",a):c?ot(0,"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding."):"");var c,a;h&&(this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+h)}hide(){if(!this._visibleData)return;const t=this._visibleData.stoleFocus||this._hoverFocusedKey.get();this._setHoverData(void 0),this._resizableNode.maxSize=new el(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),t&&this._editor.focus()}_removeConstraintsRenderNormally(){const t=this._editor.getLayoutInfo();this._resizableNode.layout(t.height,t.width),this._setHoverWidgetDimensions("auto","auto")}_adjustHoverHeightForScrollbar(t){var i;const e=this._hover.containerDomNode,s=this._hover.contentsDomNode,n=null!==(i=this._findMaximumRenderingHeight())&&void 0!==i?i:1/0;this._setContainerDomNodeDimensions(ol(e),Math.min(n,t)),this._setContentsDomNodeDimensions(ol(s),Math.min(n,t-10))}setMinimumDimensions(t){this._minimumSize=new el(Math.max(this._minimumSize.width,t.width),Math.max(this._minimumSize.height,t.height)),this._updateMinimumWidth()}_updateMinimumWidth(){const t=void 0===this._contentWidth?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new el(t,this._minimumSize.height)}onContentsChanged(){var t;this._removeConstraintsRenderNormally();const i=this._hover.containerDomNode;let e=cl(i),s=ol(i);if(this._resizableNode.layout(e,s),this._setHoverWidgetDimensions(s,e),e=cl(i),s=ol(i),this._contentWidth=s,this._updateMinimumWidth(),this._resizableNode.layout(e,s),this._hasHorizontalScrollbar()&&(this._adjustContentsBottomPadding(),this._adjustHoverHeightForScrollbar(e)),null===(t=this._visibleData)||void 0===t?void 0:t.showAtPosition){const t=cl(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(t,this._visibleData.showAtPosition)}this._layoutContentWidget()}focus(){this._hover.containerDomNode.focus()}scrollUp(){const t=this._hover.scrollbar.getScrollPosition().scrollTop,i=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:t-i.lineHeight})}scrollDown(){const t=this._hover.scrollbar.getScrollPosition().scrollTop,i=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:t+i.lineHeight})}scrollLeft(){const t=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:t-30})}scrollRight(){const t=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:t+30})}pageUp(){const t=this._hover.scrollbar.getScrollPosition().scrollTop,i=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:t-i})}pageDown(){const t=this._hover.scrollbar.getScrollPosition().scrollTop,i=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:t+i})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}};IX.ID="editor.contrib.resizableContentHoverWidget",IX._lastDimensions=new el(0,0),IX=EX=AX([MX(1,ah),MX(2,pd),MX(3,Zm),MX(4,oC)],IX);let _X=class extends te{get hasContent(){return this._hasContent}constructor(t){super(),this._keybindingService=t,this._hasContent=!1,this.hoverElement=LX("div.hover-row.status-bar"),this.actionsElement=Ol(this.hoverElement,LX("div.actions"))}addAction(t){const i=this._keybindingService.lookupKeybinding(t.commandId),e=i?i.getLabel():null;return this._hasContent=!0,this._register(wX.render(this.actionsElement,t,e))}append(t){const i=Ol(this.actionsElement,t);return this._hasContent=!0,i}};_X=AX([MX(0,oC)],_X);class NX{get anchor(){return this._anchor}set anchor(t){this._anchor=t}get shouldFocus(){return this._shouldFocus}set shouldFocus(t){this._shouldFocus=t}get source(){return this._source}set source(t){this._source=t}get insistOnKeepingHoverVisible(){return this._insistOnKeepingHoverVisible}set insistOnKeepingHoverVisible(t){this._insistOnKeepingHoverVisible=t}constructor(t,i){this._editor=t,this._participants=i,this._anchor=null,this._shouldFocus=!1,this._source=0,this._insistOnKeepingHoverVisible=!1}static _getLineDecorations(t,i){if(1!==i.type&&!i.supportsMarkerHover)return[];const e=t.getModel(),s=i.range.startLineNumber;if(s>e.getLineCount())return[];const n=e.getLineMaxColumn(s);return t.getLineDecorations(s).filter((t=>{if(t.options.isWholeLine)return!0;const e=t.range.startLineNumber===s?t.range.startColumn:1,o=t.range.endLineNumber===s?t.range.endColumn:n;if(t.options.showIfCollapsed){if(e>i.range.startColumn+1||i.range.endColumn-1>o)return!1}else if(e>i.range.startColumn||i.range.endColumn>o)return!1;return!0}))}computeAsync(t){const i=this._anchor;if(!this._editor.hasModel()||!i)return kc.EMPTY;const e=NX._getLineDecorations(this._editor,i);return kc.merge(this._participants.map((s=>s.computeAsync?s.computeAsync(i,e,t):kc.EMPTY)))}computeSync(){if(!this._editor.hasModel()||!this._anchor)return[];const t=NX._getLineDecorations(this._editor,this._anchor);let i=[];for(const e of this._participants)i=i.concat(e.computeSync(this._anchor,t));return m(i)}}function BX(t,i,e,s,n,o){const r=s+o/2,h=Math.max(Math.abs(t-(e+n/2))-n/2,0),c=Math.max(Math.abs(i-r)-o/2,0);return Math.sqrt(h*h+c*c)}const PX=$l;class $X extends te{constructor(t,i,e){super(),this._renderDisposeables=this._register(new Xi),this._editor=t,this._isVisible=!1,this._messages=[],this._hover=this._register(new mX),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._markdownRenderer=this._register(new lQ({editor:this._editor},i,e)),this._computer=new WX(this._editor),this._hoverOperation=this._register(new bX(this._editor,this._computer)),this._register(this._hoverOperation.onResult((t=>{this._withResult(t.value)}))),this._register(this._editor.onDidChangeModelDecorations((()=>this._onModelDecorationsChanged()))),this._register(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(50)&&this._updateFont()}))),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return $X.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((t=>this._editor.applyFontInfo(t)))}_onModelDecorationsChanged(){this._isVisible&&(this._hoverOperation.cancel(),this._hoverOperation.start(0))}startShowingAt(t){this._computer.lineNumber!==t&&(this._hoverOperation.cancel(),this.hide(),this._computer.lineNumber=t,this._hoverOperation.start(0))}hide(){this._computer.lineNumber=-1,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible))}_withResult(t){this._messages=t,this._messages.length>0?this._renderMessages(this._computer.lineNumber,this._messages):this.hide()}_renderMessages(t,i){this._renderDisposeables.clear();const e=document.createDocumentFragment();for(const t of i){const i=PX("div.hover-row.markdown-hover"),s=Ol(i,PX("div.hover-contents")),n=this._renderDisposeables.add(this._markdownRenderer.render(t.value));s.appendChild(n.element),e.appendChild(i)}this._updateContents(e),this._showAt(t)}_updateContents(t){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(t),this._updateFont()}_showAt(t){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible));const i=this._editor.getLayoutInfo(),e=this._editor.getTopForLineNumber(t),s=this._editor.getScrollTop(),n=this._editor.getOption(66),o=e-s-(this._hover.containerDomNode.clientHeight-n)/2;this._hover.containerDomNode.style.left=`${i.glyphMarginLeft+i.glyphMarginWidth}px`,this._hover.containerDomNode.style.top=`${Math.max(Math.round(o),0)}px`}}$X.ID="editor.contrib.modesGlyphHoverWidget";class WX{get lineNumber(){return this._lineNumber}set lineNumber(t){this._lineNumber=t}constructor(t){this._editor=t,this._lineNumber=-1}computeSync(){const t=t=>({value:t}),i=this._editor.getLineDecorations(this._lineNumber),e=[];if(!i)return e;for(const s of i){if(!s.options.glyphMarginClassName)continue;const i=s.options.glyphMarginHoverMessage;i&&!B_(i)&&e.push(...A(i).map(t))}return e}}class jX{constructor(t,i,e){this.provider=t,this.hover=i,this.ordinal=e}}function zX(t,i,e,s){const n=t.ordered(i).map(((t,n)=>async function(t,i,e,s,n){try{const o=await Promise.resolve(t.provideHover(e,s,n));if(o&&function(t){return void 0!==t.range&&void 0!==t.contents&&t.contents&&t.contents.length>0}(o))return new jX(t,o,i)}catch(t){Pi(t)}}(t,n,i,e,s)));return kc.fromPromises(n).coalesce()}ru("_executeHoverProvider",((t,i,e)=>function(t,i,e){return zX(t,i,e,ke.None).map((t=>t.hover)).toPromise()}(t.get(xg).hoverProvider,i,e)));var HX=function(t,i){return function(e,s){i(e,s,t)}};const VX=$l;class UX{constructor(t,i,e,s,n){this.owner=t,this.range=i,this.contents=e,this.isBeforeContent=s,this.ordinal=n}isValidForHoverAnchor(t){return 1===t.type&&this.range.startColumn<=t.range.startColumn&&this.range.endColumn>=t.range.endColumn}}let qX=class{constructor(t,i,e,s,n){this._editor=t,this._languageService=i,this._openerService=e,this._configurationService=s,this._languageFeaturesService=n,this.hoverOrdinal=3}createLoadingMessage(t){return new UX(this,t.range,[(new N_).appendText(ot(0,"Loading..."))],!1,2e3)}computeSync(t,i){if(!this._editor.hasModel()||1!==t.type)return[];const e=this._editor.getModel(),s=t.range.startLineNumber,n=e.getLineMaxColumn(s),o=[];let r=1e3;const h=e.getLineLength(s),c=e.getLanguageIdAtPosition(t.range.startLineNumber,t.range.startColumn),a=this._editor.getOption(116),l=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:c});let u=!1;a>=0&&h>a&&t.range.startColumn>=a&&(u=!0,o.push(new UX(this,t.range,[{value:ot(0,"Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.")}],!1,r++))),!u&&"number"==typeof l&&h>=l&&o.push(new UX(this,t.range,[{value:ot(0,"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.")}],!1,r++));let d=!1;for(const e of i){const i=e.range.startLineNumber===s?e.range.startColumn:1,h=e.range.endLineNumber===s?e.range.endColumn:n,c=e.options.hoverMessage;if(!c||B_(c))continue;e.options.beforeContentClassName&&(d=!0);const a=new Ms(t.range.startLineNumber,i,t.range.startLineNumber,h);o.push(new UX(this,a,A(c),d,r++))}return o}computeAsync(t,i,e){if(!this._editor.hasModel()||1!==t.type)return kc.EMPTY;const s=this._editor.getModel();if(!this._languageFeaturesService.hoverProvider.has(s))return kc.EMPTY;const n=new As(t.range.startLineNumber,t.range.startColumn);return zX(this._languageFeaturesService.hoverProvider,s,n,e).filter((t=>!B_(t.hover.contents))).map((i=>{const e=i.hover.range?Ms.lift(i.hover.range):t.range;return new UX(this,e,i.hover.contents,!1,i.ordinal)}))}renderHoverParts(t,i){return KX(t,i,this._editor,this._languageService,this._openerService)}};function KX(t,i,e,s,n){i.sort(((t,i)=>t.ordinal-i.ordinal));const o=new Xi;for(const r of i)for(const i of r.contents){if(B_(i))continue;const r=VX("div.hover-row.markdown-hover"),h=Ol(r,VX("div.hover-contents")),c=o.add(new lQ({editor:e},s,n));o.add(c.onDidRenderAsync((()=>{h.className="hover-contents code-hover-contents",t.onContentsChanged()})));const a=o.add(c.render(i));h.appendChild(a.element),t.fragment.appendChild(r)}return o}qX=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([HX(1,yd),HX(2,dP),HX(3,pd),HX(4,xg)],qX);var GX=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},ZX=function(t,i){return function(e,s){i(e,s,t)}};class QX{constructor(t,i,e){this.marker=t,this.index=i,this.total=e}}let JX=class{constructor(t,i,e){this._markerService=i,this._configService=e,this._onDidChange=new de,this.onDidChange=this._onDidChange.event,this._dispoables=new Xi,this._markers=[],this._nextIdx=-1,ms.isUri(t)?this._resourceFilter=i=>i.toString()===t.toString():t&&(this._resourceFilter=t);const s=this._configService.getValue("problems.sortOrder"),n=(t,i)=>{let e=so(t.resource.toString(),i.resource.toString());return 0===e&&(e="position"===s?Ms.compareRangesUsingStarts(t,i)||bP.compare(t.severity,i.severity):bP.compare(t.severity,i.severity)||Ms.compareRangesUsingStarts(t,i)),e},o=()=>{this._markers=this._markerService.read({resource:ms.isUri(t)?t:void 0,severities:bP.Error|bP.Warning|bP.Info}),"function"==typeof t&&(this._markers=this._markers.filter((t=>this._resourceFilter(t.resource)))),this._markers.sort(n)};o(),this._dispoables.add(i.onMarkerChanged((t=>{this._resourceFilter&&!t.some((t=>this._resourceFilter(t)))||(o(),this._nextIdx=-1,this._onDidChange.fire())})))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(t){return!this._resourceFilter&&!t||!(!this._resourceFilter||!t)&&this._resourceFilter(t)}get selected(){const t=this._markers[this._nextIdx];return t&&new QX(t,this._nextIdx+1,this._markers.length)}_initIdx(t,i,e){let s=!1,n=this._markers.findIndex((i=>i.resource.toString()===t.uri.toString()));n<0&&(n=u(this._markers,{resource:t.uri},((t,i)=>so(t.resource.toString(),i.resource.toString()))),n<0&&(n=~n));for(let e=n;ei.resource.toString()===t.toString()));if(!(e<0))for(;e{t.preventDefault();const i=this._relatedDiagnostics.get(t.target);i&&e(i)}))),this._scrollable=new Lk(o,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),t.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll((t=>{o.style.left=`-${t.scrollLeft}px`,o.style.top=`-${t.scrollTop}px`}))),this._disposables.add(this._scrollable)}dispose(){Qi(this._disposables)}update(t){const{source:i,message:e,relatedInformation:s,code:n}=t;let o=((null==i?void 0:i.length)||0)+2;n&&(o+="string"==typeof n?n.length:n.value.length);const r=Xn(e);this._lines=r.length,this._longestLineLength=0;for(const t of r)this._longestLineLength=Math.max(t.length+o,this._longestLineLength);za(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(t)),this._editor.applyFontInfo(this._messageBlock);let h=this._messageBlock;for(const t of r)h=document.createElement("div"),h.innerText=t,""===t&&(h.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(h);if(i||n){const t=document.createElement("span");if(t.classList.add("details"),h.appendChild(t),i){const e=document.createElement("span");e.innerText=i,e.classList.add("source"),t.appendChild(e)}if(n)if("string"==typeof n){const i=document.createElement("span");i.innerText=`(${n})`,i.classList.add("code"),t.appendChild(i)}else this._codeLink=$l("a.code-link"),this._codeLink.setAttribute("href",`${n.target.toString()}`),this._codeLink.onclick=t=>{this._openerService.open(n.target,{allowCommands:!0}),t.preventDefault(),t.stopPropagation()},Ol(this._codeLink,$l("span")).innerText=n.value,t.appendChild(this._codeLink)}if(za(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),b(s)){const t=this._relatedBlock.appendChild(document.createElement("div"));t.style.paddingTop=`${Math.floor(.66*this._editor.getOption(66))}px`,this._lines+=1;for(const i of s){const e=document.createElement("div"),s=document.createElement("a");s.classList.add("filename"),s.innerText=`${this._labelService.getUriBasenameLabel(i.resource)}(${i.startLineNumber}, ${i.startColumn}): `,s.title=this._labelService.getUriLabel(i.resource),this._relatedDiagnostics.set(s,i);const n=document.createElement("span");n.innerText=i.message,e.appendChild(s),e.appendChild(n),this._lines+=1,t.appendChild(e)}}const c=this._editor.getOption(50),a=Math.ceil(c.typicalFullwidthCharacterWidth*this._longestLineLength*.75);this._scrollable.setScrollDimensions({scrollWidth:a,scrollHeight:c.lineHeight*this._lines})}layout(t,i){this._scrollable.getDomNode().style.height=`${t}px`,this._scrollable.getDomNode().style.width=`${i}px`,this._scrollable.setScrollDimensions({width:i,height:t})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(t){let i="";switch(t.severity){case bP.Error:i=ot(0,"Error");break;case bP.Warning:i=ot(0,"Warning");break;case bP.Info:i=ot(0,"Info");break;case bP.Hint:i=ot(0,"Hint")}let e=ot(0,"{0} at {1}. ",i,t.startLineNumber+":"+t.startColumn);const s=this._editor.getModel();return s&&t.startLineNumber<=s.getLineCount()&&t.startLineNumber>=1&&(e=`${s.getLineContent(t.startLineNumber)}, ${e}`),e}}let n0=i0=class extends nY{constructor(t,i,e,s,n,o,r){super(t,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},n),this._themeService=i,this._openerService=e,this._menuService=s,this._contextKeyService=o,this._labelService=r,this._callOnDispose=new Xi,this._onDidSelectRelatedInformation=new de,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=bP.Warning,this._backgroundColor=lg.white,this._applyTheme(i.getColorTheme()),this._callOnDispose.add(i.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(t){this._backgroundColor=t.getColor(p0);let i=c0,e=a0;this._severity===bP.Warning?(i=l0,e=u0):this._severity===bP.Info&&(i=d0,e=f0);const s=t.getColor(i),n=t.getColor(e);this.style({arrowColor:s,frameColor:s,headerBackgroundColor:n,primaryHeadingColor:t.getColor(rY),secondaryHeadingColor:t.getColor(hY)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(t){super._fillHead(t),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun((()=>this.editor.focus())));const i=[],e=this._menuService.createMenu(i0.TitleMenu,this._contextKeyService);UB(e,void 0,i),this._actionbarWidget.push(i,{label:!1,icon:!0,index:0}),e.dispose()}_fillTitleIcon(t){this._icon=Ol(t,$l(""))}_fillBody(t){this._parentContainer=t,t.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),t.appendChild(this._container),this._message=new s0(this._container,this.editor,(t=>this._onDidSelectRelatedInformation.fire(t)),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw new Error("call showAtMarker")}showAtMarker(t,i,e){this._container.classList.remove("stale"),this._message.update(t),this._severity=t.severity,this._applyTheme(this._themeService.getColorTheme());const s=Ms.lift(t),n=this.editor.getPosition(),o=n&&s.containsPosition(n)?n:s.getStartPosition();super.show(o,this.computeRequiredHeight());const r=this.editor.getModel();if(r){const t=ot(0,e>1?"{0} of {1} problems":"{0} of {1} problem",i,e);this.setTitle(bA(r.uri),t)}this._icon.className=`codicon ${t0.className(bP.toSeverity(this._severity))}`,this.editor.revealPositionNearTop(o,0),this.editor.focus()}updateMarker(t){this._container.classList.remove("stale"),this._message.update(t)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(t,i){super._doLayoutBody(t,i),this._heightInPixel=t,this._message.layout(t,i),this._container.style.height=`${t}px`}_onWidth(t){this._message.layout(this._heightInPixel,t)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};n0.TitleMenu=new Rh("gotoErrorTitleMenu"),n0=i0=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([e0(1,Xk),e0(2,dP),e0(3,Oh),e0(4,ur),e0(5,ah),e0(6,$O)],n0);const o0=uy(ev,sv),r0=uy(nv,ov),h0=uy(rv,hv),c0=dw("editorMarkerNavigationError.background",{dark:o0,light:o0,hcDark:ww,hcLight:ww},ot(0,"Editor marker navigation widget error color.")),a0=dw("editorMarkerNavigationError.headerBackground",{dark:ly(c0,.1),light:ly(c0,.1),hcDark:null,hcLight:null},ot(0,"Editor marker navigation widget error heading background.")),l0=dw("editorMarkerNavigationWarning.background",{dark:r0,light:r0,hcDark:ww,hcLight:ww},ot(0,"Editor marker navigation widget warning color.")),u0=dw("editorMarkerNavigationWarning.headerBackground",{dark:ly(l0,.1),light:ly(l0,.1),hcDark:"#0C141F",hcLight:ly(l0,.2)},ot(0,"Editor marker navigation widget warning heading background.")),d0=dw("editorMarkerNavigationInfo.background",{dark:h0,light:h0,hcDark:ww,hcLight:ww},ot(0,"Editor marker navigation widget info color.")),f0=dw("editorMarkerNavigationInfo.headerBackground",{dark:ly(d0,.1),light:ly(d0,.1),hcDark:null,hcLight:null},ot(0,"Editor marker navigation widget info heading background.")),p0=dw("editorMarkerNavigation.background",{dark:av,light:av,hcDark:av,hcLight:av},ot(0,"Editor marker navigation widget background."));var g0,m0=function(t,i){return function(e,s){i(e,s,t)}};let w0=g0=class{static get(t){return t.getContribution(g0.ID)}constructor(t,i,e,s,n){this._markerNavigationService=i,this._contextKeyService=e,this._editorService=s,this._instantiationService=n,this._sessionDispoables=new Xi,this._editor=t,this._widgetVisible=k0.bindTo(this._contextKeyService)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(t){if(this._model&&this._model.matches(t))return this._model;let i=!1;return this._model&&(i=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(t),i&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(n0,this._editor),this._widget.onDidClose((()=>this.close()),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition((t=>{var i,e,s;(null===(i=this._model)||void 0===i?void 0:i.selected)&&Ms.containsPosition(null===(e=this._model)||void 0===e?void 0:e.selected.marker,t.position)||null===(s=this._model)||void 0===s||s.resetIndex()}))),this._sessionDispoables.add(this._model.onDidChange((()=>{if(!this._widget||!this._widget.position||!this._model)return;const t=this._model.find(this._editor.getModel().uri,this._widget.position);t?this._widget.updateMarker(t.marker):this._widget.showStale()}))),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation((t=>{this._editorService.openCodeEditor({resource:t.resource,options:{pinned:!0,revealIfOpened:!0,selection:Ms.lift(t).collapseToStart()}},this._editor),this.close(!1)}))),this._sessionDispoables.add(this._editor.onDidChangeModel((()=>this._cleanUp()))),this._model}close(t=!0){this._cleanUp(),t&&this._editor.focus()}showAtMarker(t){if(this._editor.hasModel()){const i=this._getOrCreateModel(this._editor.getModel().uri);i.resetIndex(),i.move(!0,this._editor.getModel(),new As(t.startLineNumber,t.startColumn)),i.selected&&this._widget.showAtMarker(i.selected.marker,i.selected.index,i.selected.total)}}async nagivate(t,i){var e,s;if(this._editor.hasModel()){const n=this._getOrCreateModel(i?void 0:this._editor.getModel().uri);if(n.move(t,this._editor.getModel(),this._editor.getPosition()),!n.selected)return;if(n.selected.marker.resource.toString()!==this._editor.getModel().uri.toString()){this._cleanUp();const o=await this._editorService.openCodeEditor({resource:n.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:n.selected.marker}},this._editor);o&&(null===(e=g0.get(o))||void 0===e||e.close(),null===(s=g0.get(o))||void 0===s||s.nagivate(t,i))}else this._widget.showAtMarker(n.selected.marker,n.selected.index,n.selected.total)}}};w0.ID="editor.contrib.markerController",w0=g0=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([m0(1,YX),m0(2,ah),m0(3,fr),m0(4,ur)],w0);class v0 extends su{constructor(t,i,e){super(e),this._next=t,this._multiFile=i}async run(t,i){var e;i.hasModel()&&(null===(e=w0.get(i))||void 0===e||e.nagivate(this._next,this._multiFile))}}class b0 extends v0{constructor(){super(!0,!1,{id:b0.ID,label:b0.LABEL,alias:"Go to Next Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:578,weight:100},menuOpts:{menuId:n0.TitleMenu,title:b0.LABEL,icon:Hz("marker-navigation-next",Os.arrowDown,ot(0,"Icon for goto next marker.")),group:"navigation",order:1}})}}b0.ID="editor.action.marker.next",b0.LABEL=ot(0,"Go to Next Problem (Error, Warning, Info)");class y0 extends v0{constructor(){super(!1,!1,{id:y0.ID,label:y0.LABEL,alias:"Go to Previous Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:1602,weight:100},menuOpts:{menuId:n0.TitleMenu,title:y0.LABEL,icon:Hz("marker-navigation-previous",Os.arrowUp,ot(0,"Icon for goto previous marker.")),group:"navigation",order:2}})}}y0.ID="editor.action.marker.prev",y0.LABEL=ot(0,"Go to Previous Problem (Error, Warning, Info)"),lu(w0.ID,w0,4),cu(b0),cu(y0),cu(class extends v0{constructor(){super(!0,!0,{id:"editor.action.marker.nextInFiles",label:ot(0,"Go to Next Problem in Files (Error, Warning, Info)"),alias:"Go to Next Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:66,weight:100},menuOpts:{menuId:Rh.MenubarGoMenu,title:ot(0,"Next &&Problem"),group:"6_problem_nav",order:1}})}}),cu(class extends v0{constructor(){super(!1,!0,{id:"editor.action.marker.prevInFiles",label:ot(0,"Go to Previous Problem in Files (Error, Warning, Info)"),alias:"Go to Previous Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:1090,weight:100},menuOpts:{menuId:Rh.MenubarGoMenu,title:ot(0,"Previous &&Problem"),group:"6_problem_nav",order:2}})}});const k0=new ch("markersNavigationVisible",!1);hu(new(eu.bindToContribution(w0.get))({id:"closeMarkersNavigation",precondition:k0,handler:t=>t.close(),kbOpts:{weight:150,kbExpr:YC.focus,primary:9,secondary:[1033]}}));var x0=function(t,i){return function(e,s){i(e,s,t)}};const C0=$l;class S0{constructor(t,i,e){this.owner=t,this.range=i,this.marker=e}isValidForHoverAnchor(t){return 1===t.type&&this.range.startColumn<=t.range.startColumn&&this.range.endColumn>=t.range.endColumn}}const D0={type:1,filter:{include:NZ.QuickFix},triggerAction:BZ.QuickFixHover};let E0=class{constructor(t,i,e,s){this._editor=t,this._markerDecorationsService=i,this._openerService=e,this._languageFeaturesService=s,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(t,i){if(!this._editor.hasModel()||1!==t.type&&!t.supportsMarkerHover)return[];const e=this._editor.getModel(),s=t.range.startLineNumber,n=e.getLineMaxColumn(s),o=[];for(const r of i){const i=r.range.startLineNumber===s?r.range.startColumn:1,h=r.range.endLineNumber===s?r.range.endColumn:n,c=this._markerDecorationsService.getMarker(e.uri,r);if(!c)continue;const a=new Ms(t.range.startLineNumber,i,t.range.startLineNumber,h);o.push(new S0(this,a,c))}return o}renderHoverParts(t,i){if(!i.length)return te.None;const e=new Xi;i.forEach((i=>t.fragment.appendChild(this.renderMarkerHover(i,e))));const s=1===i.length?i[0]:i.sort(((t,i)=>bP.compare(t.marker.severity,i.marker.severity)))[0];return this.renderMarkerStatusbar(t,s,e),e}renderMarkerHover(t,i){const e=C0("div.hover-row"),s=Ol(e,C0("div.marker.hover-contents")),{source:n,message:o,code:r,relatedInformation:h}=t.marker;this._editor.applyFontInfo(s);const c=Ol(s,C0("span"));if(c.style.whiteSpace="pre-wrap",c.innerText=o,n||r)if(r&&"string"!=typeof r){const t=C0("span");n&&(Ol(t,C0("span")).innerText=n);const e=Ol(t,C0("a.code-link"));e.setAttribute("href",r.target.toString()),i.add(Va(e,"click",(t=>{this._openerService.open(r.target,{allowCommands:!0}),t.preventDefault(),t.stopPropagation()}))),Ol(e,C0("span")).innerText=r.value;const o=Ol(s,t);o.style.opacity="0.6",o.style.paddingLeft="6px"}else{const t=Ol(s,C0("span"));t.style.opacity="0.6",t.style.paddingLeft="6px",t.innerText=n&&r?`${n}(${r})`:n||`(${r})`}if(b(h))for(const{message:t,resource:e,startLineNumber:n,startColumn:o}of h){const r=Ol(s,C0("div"));r.style.marginTop="8px";const h=Ol(r,C0("a"));h.innerText=`${bA(e)}(${n}, ${o}): `,h.style.cursor="pointer",i.add(Va(h,"click",(t=>{t.stopPropagation(),t.preventDefault(),this._openerService&&this._openerService.open(e,{fromUserGesture:!0,editorOptions:{selection:{startLineNumber:n,startColumn:o}}}).catch(Bi)})));const c=Ol(r,C0("span"));c.innerText=t,this._editor.applyFontInfo(c)}return e}renderMarkerStatusbar(t,i,e){if(i.marker.severity!==bP.Error&&i.marker.severity!==bP.Warning&&i.marker.severity!==bP.Info||t.statusBar.addAction({label:ot(0,"View Problem"),commandId:b0.ID,run:()=>{var e;t.hide(),null===(e=w0.get(this._editor))||void 0===e||e.showAtMarker(i.marker),this._editor.focus()}}),!this._editor.getOption(90)){const s=t.statusBar.append(C0("div"));this.recentMarkerCodeActionsInfo&&(yP.makeKey(this.recentMarkerCodeActionsInfo.marker)===yP.makeKey(i.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(s.textContent=ot(0,"No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);const n=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?te.None:e.add(lc((()=>s.textContent=ot(0,"Checking for quick fixes...")),200));s.textContent||(s.textContent=String.fromCharCode(160));const o=this.getCodeActions(i.marker);e.add(Yi((()=>o.cancel()))),o.then((o=>{if(n.dispose(),this.recentMarkerCodeActionsInfo={marker:i.marker,hasCodeActions:o.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions)return o.dispose(),void(s.textContent=ot(0,"No quick fixes available"));s.style.display="none";let r=!1;e.add(Yi((()=>{r||o.dispose()}))),t.statusBar.addAction({label:ot(0,"Quick Fix..."),commandId:zZ,run:i=>{r=!0;const e=WQ.get(this._editor),s=nl(i);t.hide(),null==e||e.showCodeActions(D0,o,{x:s.left,y:s.top,width:s.width,height:s.height})}})}),Bi)}}getCodeActions(t){return nc((i=>QZ(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new Ms(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn),D0,jO.None,i)))}};E0=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([x0(1,jm),x0(2,dP),x0(3,xg)],E0);const A0="editor.action.inlineSuggest.commit",M0="editor.action.inlineSuggest.showPrevious",L0="editor.action.inlineSuggest.showNext";var F0,T0=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},R0=function(t,i){return function(e,s){i(e,s,t)}};let O0=class extends te{constructor(t,i,e){super(),this.editor=t,this.model=i,this.instantiationService=e,this.alwaysShowToolbar=KV(this.editor.onDidChangeConfiguration,(()=>"always"===this.editor.getOption(62).showToolbar)),this.sessionPosition=void 0,this.position=_V(this,(t=>{var i,e,s;const n=null===(i=this.model.read(t))||void 0===i?void 0:i.ghostText.read(t);if(!this.alwaysShowToolbar.read(t)||!n||0===n.parts.length)return this.sessionPosition=void 0,null;const o=n.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==n.lineNumber&&(this.sessionPosition=void 0);const r=new As(n.lineNumber,Math.min(o,null!==(s=null===(e=this.sessionPosition)||void 0===e?void 0:e.column)&&void 0!==s?s:Number.MAX_SAFE_INTEGER));return this.sessionPosition=r,r})),this._register(HV(((i,e)=>{const s=this.model.read(i);if(!s||!this.alwaysShowToolbar.read(i))return;const n=e.add(this.instantiationService.createInstance(N0,this.editor,!0,this.position,s.selectedInlineCompletionIndex,s.inlineCompletionsCount,s.selectedInlineCompletion.map((t=>{var i;return null!==(i=null==t?void 0:t.inlineCompletion.source.inlineCompletions.commands)&&void 0!==i?i:[]}))));t.addContentWidget(n),e.add(Yi((()=>t.removeContentWidget(n)))),e.add(WV((t=>{this.position.read(t)&&s.lastTriggerKind.read(t)!==$s.Explicit&&s.triggerExplicitly()})))})))}};O0=T0([R0(2,ur)],O0);const I0=Hz("inline-suggestion-hints-next",Os.chevronRight,ot(0,"Icon for show next parameter hint.")),_0=Hz("inline-suggestion-hints-previous",Os.chevronLeft,ot(0,"Icon for show previous parameter hint."));let N0=F0=class extends te{static get dropDownVisible(){return this._dropDownVisible}createCommandAction(t,i,e){const s=new mr(t,i,e,!0,(()=>this._commandService.executeCommand(t))),n=this.keybindingService.lookupKeybinding(t,this._contextKeyService);let o=i;return n&&(o=ot(0,"{0} ({1})",i,n.getLabel())),s.tooltip=o,s}constructor(t,i,e,s,n,o,r,h,c,a,u){super(),this.editor=t,this.withBorder=i,this._position=e,this._currentSuggestionIdx=s,this._suggestionCount=n,this._extraCommands=o,this._commandService=r,this.keybindingService=c,this._contextKeyService=a,this._menuService=u,this.id="InlineSuggestionHintsContentWidget"+F0.id++,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=Jl("div.inlineSuggestionsHints",{className:this.withBorder?".withBorder":""},[Jl("div@toolBar")]),this.previousAction=this.createCommandAction(M0,ot(0,"Previous"),Cr.asClassName(_0)),this.availableSuggestionCountAction=new mr("inlineSuggestionHints.availableSuggestionCount","",void 0,!1),this.nextAction=this.createCommandAction(L0,ot(0,"Next"),Cr.asClassName(I0)),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(Rh.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new pc((()=>{this.availableSuggestionCountAction.label=""}),100)),this.disableButtonsDebounced=this._register(new pc((()=>{this.previousAction.enabled=this.nextAction.enabled=!1}),100)),this.lastCommands=[],this.toolBar=this._register(h.createInstance($0,this.nodes.toolBar,Rh.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:t=>t.startsWith("primary")},actionViewItemProvider:t=>{if(t instanceof Bh)return h.createInstance(P0,t,void 0);if(t===this.availableSuggestionCountAction){const i=new B0(void 0,t,{label:!0,icon:!1});return i.setClass("availableSuggestionCount"),i}},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility((t=>{F0._dropDownVisible=t}))),this._register(WV((t=>{this._position.read(t),this.editor.layoutContentWidget(this)}))),this._register(WV((t=>{const i=this._suggestionCount.read(t),e=this._currentSuggestionIdx.read(t);void 0!==i?(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${e+1}/${i}`):this.clearAvailableSuggestionCountLabelDebounced.schedule(),void 0!==i&&i>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()}))),this._register(WV((t=>{const i=this._extraCommands.read(t);if(l(this.lastCommands,i))return;this.lastCommands=i;const e=i.map((t=>({class:void 0,id:t.id,enabled:!0,tooltip:t.tooltip||"",label:t.title,run:()=>this._commandService.executeCommand(t.id)})));for(const[t,i]of this.inlineCompletionsActionsMenus.getActions())for(const t of i)t instanceof Bh&&e.push(t);e.length>0&&e.unshift(new vr),this.toolBar.setAdditionalSecondaryActions(e)})))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};N0._dropDownVisible=!1,N0.id=0,N0=F0=T0([R0(6,Sr),R0(7,ur),R0(8,oC),R0(9,ah),R0(10,Oh)],N0);class B0 extends wB{constructor(){super(...arguments),this._className=void 0}setClass(t){this._className=t}render(t){super.render(t),this._className&&t.classList.add(this._className)}}class P0 extends KB{updateLabel(){const t=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!t)return super.updateLabel();if(this.label){const i=Jl("div.keybinding").root;new Xj(i,It,{disableTitle:!0,...Yj}).set(t),this.label.textContent=this._action.label,this.label.appendChild(i),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}}let $0=class extends Gq{constructor(t,i,e,s,n,o,r,h){super(t,{resetMenu:i,...e},s,n,o,r,h),this.menuId=i,this.options2=e,this.menuService=s,this.contextKeyService=n,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange((()=>this.updateToolbar()))),this.updateToolbar()}updateToolbar(){var t,i,e,s,n,o,r;const h=[],c=[];UB(this.menu,null===(t=this.options2)||void 0===t?void 0:t.menuOptions,{primary:h,secondary:c},null===(e=null===(i=this.options2)||void 0===i?void 0:i.toolbarOptions)||void 0===e?void 0:e.primaryGroup,null===(n=null===(s=this.options2)||void 0===s?void 0:s.toolbarOptions)||void 0===n?void 0:n.shouldInlineSubmenu,null===(r=null===(o=this.options2)||void 0===o?void 0:o.toolbarOptions)||void 0===r?void 0:r.useSeparatorsInPrimaryActions),c.push(...this.additionalActions),h.unshift(...this.prependedPrimaryActions),this.setActions(h,c)}setPrependedPrimaryActions(t){l(this.prependedPrimaryActions,t,((t,i)=>t===i))||(this.prependedPrimaryActions=t,this.updateToolbar())}setAdditionalSecondaryActions(t){l(this.additionalActions,t,((t,i)=>t===i))||(this.additionalActions=t,this.updateToolbar())}};$0=T0([R0(3,Oh),R0(4,ah),R0(5,lI),R0(6,oC),R0(7,Wh)],$0);var W0,j0=function(t,i){return function(e,s){i(e,s,t)}};let z0=W0=class extends te{static get(t){return t.getContribution(W0.ID)}constructor(t,i,e,s,n){super(),this._editor=t,this._instantiationService=i,this._openerService=e,this._languageService=s,this._keybindingService=n,this._toUnhook=new Xi,this._hoverActivatedByColorDecoratorClick=!1,this._isMouseDown=!1,this._hoverClicked=!1,this._contentWidget=null,this._glyphWidget=null,this._reactToEditorMouseMoveRunner=this._register(new pc((()=>this._reactToEditorMouseMove(this._mouseMoveEvent)),0)),this._hookEvents(),this._register(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(60)&&(this._unhookEvents(),this._hookEvents())})))}_hookEvents(){const t=this._editor.getOption(60);this._isHoverEnabled=t.enabled,this._isHoverSticky=t.sticky,this._hidingDelay=t.hidingDelay,this._isHoverEnabled?(this._toUnhook.add(this._editor.onMouseDown((t=>this._onEditorMouseDown(t)))),this._toUnhook.add(this._editor.onMouseUp((t=>this._onEditorMouseUp(t)))),this._toUnhook.add(this._editor.onMouseMove((t=>this._onEditorMouseMove(t)))),this._toUnhook.add(this._editor.onKeyDown((t=>this._onKeyDown(t))))):(this._toUnhook.add(this._editor.onMouseMove((t=>this._onEditorMouseMove(t)))),this._toUnhook.add(this._editor.onKeyDown((t=>this._onKeyDown(t))))),this._toUnhook.add(this._editor.onMouseLeave((t=>this._onEditorMouseLeave(t)))),this._toUnhook.add(this._editor.onDidChangeModel((()=>{this._cancelScheduler(),this._hideWidgets()}))),this._toUnhook.add(this._editor.onDidChangeModelContent((()=>this._cancelScheduler()))),this._toUnhook.add(this._editor.onDidScrollChange((t=>this._onEditorScrollChanged(t))))}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_unhookEvents(){this._toUnhook.clear()}_onEditorScrollChanged(t){(t.scrollTopChanged||t.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(t){var i;this._isMouseDown=!0;const e=t.target;9!==e.type||e.detail!==IX.ID?12===e.type&&e.detail===$X.ID||(12!==e.type&&(this._hoverClicked=!1),(null===(i=this._contentWidget)||void 0===i?void 0:i.widget.isResizing)||this._hideWidgets()):this._hoverClicked=!0}_onEditorMouseUp(t){this._isMouseDown=!1}_onEditorMouseLeave(t){var i,e;this._cancelScheduler(),(null===(i=this._contentWidget)||void 0===i?void 0:i.widget.isResizing)||(null===(e=this._contentWidget)||void 0===e?void 0:e.containsNode(t.event.browserEvent.relatedTarget))||this._hideWidgets()}_isMouseOverWidget(t){var i,e,s,n,o;const r=t.target;return!((!this._isHoverSticky||9!==r.type||r.detail!==IX.ID)&&(!this._isHoverSticky||!(null===(i=this._contentWidget)||void 0===i?void 0:i.containsNode(null===(e=t.event.browserEvent.view)||void 0===e?void 0:e.document.activeElement))||(null===(n=null===(s=t.event.browserEvent.view)||void 0===s?void 0:s.getSelection())||void 0===n?void 0:n.isCollapsed))&&(this._isHoverSticky||9!==r.type||r.detail!==IX.ID||!(null===(o=this._contentWidget)||void 0===o?void 0:o.isColorPickerVisible))&&(!this._isHoverSticky||12!==r.type||r.detail!==$X.ID))}_onEditorMouseMove(t){var i,e,s,n;this._mouseMoveEvent=t,(null===(i=this._contentWidget)||void 0===i?void 0:i.isFocused)||(null===(e=this._contentWidget)||void 0===e?void 0:e.isResizing)||this._isMouseDown&&this._hoverClicked||this._isHoverSticky&&(null===(s=this._contentWidget)||void 0===s?void 0:s.isVisibleFromKeyboard)||(this._isMouseOverWidget(t)?this._reactToEditorMouseMoveRunner.cancel():(null===(n=this._contentWidget)||void 0===n?void 0:n.isVisible)&&this._isHoverSticky&&this._hidingDelay>0?this._reactToEditorMouseMoveRunner.isScheduled()||this._reactToEditorMouseMoveRunner.schedule(this._hidingDelay):this._reactToEditorMouseMove(t))}_reactToEditorMouseMove(t){var i,e,s;if(!t)return;const n=t.target,o=null===(i=n.element)||void 0===i?void 0:i.classList.contains("colorpicker-color-decoration"),r=this._editor.getOption(146);if((!o||("click"!==r||this._hoverActivatedByColorDecoratorClick)&&("hover"!==r||this._isHoverEnabled)&&("clickAndHover"!==r||this._isHoverEnabled||this._hoverActivatedByColorDecoratorClick))&&(o||this._isHoverEnabled||this._hoverActivatedByColorDecoratorClick))return this._getOrCreateContentWidget().maybeShowAt(t)?void(null===(e=this._glyphWidget)||void 0===e||e.hide()):2===n.type&&n.position?(null===(s=this._contentWidget)||void 0===s||s.hide(),this._glyphWidget||(this._glyphWidget=new $X(this._editor,this._languageService,this._openerService)),void this._glyphWidget.startShowingAt(n.position.lineNumber)):void this._hideWidgets();this._hideWidgets()}_onKeyDown(t){var i;if(!this._editor.hasModel())return;const e=this._keybindingService.softDispatch(t,this._editor.getDomNode()),s=1===e.kind||2===e.kind&&"editor.action.showHover"===e.commandId&&(null===(i=this._contentWidget)||void 0===i?void 0:i.isVisible);5===t.keyCode||6===t.keyCode||57===t.keyCode||4===t.keyCode||s||this._hideWidgets()}_hideWidgets(){var t,i,e;this._isMouseDown&&this._hoverClicked&&(null===(t=this._contentWidget)||void 0===t?void 0:t.isColorPickerVisible)||N0.dropDownVisible||(this._hoverActivatedByColorDecoratorClick=!1,this._hoverClicked=!1,null===(i=this._glyphWidget)||void 0===i||i.hide(),null===(e=this._contentWidget)||void 0===e||e.hide())}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(FX,this._editor)),this._contentWidget}showContentHover(t,i,e,s,n=!1){this._hoverActivatedByColorDecoratorClick=n,this._getOrCreateContentWidget().startShowingAtRange(t,i,e,s)}focus(){var t;null===(t=this._contentWidget)||void 0===t||t.focus()}scrollUp(){var t;null===(t=this._contentWidget)||void 0===t||t.scrollUp()}scrollDown(){var t;null===(t=this._contentWidget)||void 0===t||t.scrollDown()}scrollLeft(){var t;null===(t=this._contentWidget)||void 0===t||t.scrollLeft()}scrollRight(){var t;null===(t=this._contentWidget)||void 0===t||t.scrollRight()}pageUp(){var t;null===(t=this._contentWidget)||void 0===t||t.pageUp()}pageDown(){var t;null===(t=this._contentWidget)||void 0===t||t.pageDown()}goToTop(){var t;null===(t=this._contentWidget)||void 0===t||t.goToTop()}goToBottom(){var t;null===(t=this._contentWidget)||void 0===t||t.goToBottom()}get isColorPickerVisible(){var t;return null===(t=this._contentWidget)||void 0===t?void 0:t.isColorPickerVisible}get isHoverVisible(){var t;return null===(t=this._contentWidget)||void 0===t?void 0:t.isVisible}dispose(){var t,i;super.dispose(),this._unhookEvents(),this._toUnhook.dispose(),null===(t=this._glyphWidget)||void 0===t||t.dispose(),null===(i=this._contentWidget)||void 0===i||i.dispose()}};var H0;z0.ID="editor.contrib.hover",z0=W0=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([j0(1,ur),j0(2,dP),j0(3,yd),j0(4,oC)],z0),function(t){t.NoAutoFocus="noAutoFocus",t.FocusIfVisible="focusIfVisible",t.AutoFocusImmediately="autoFocusImmediately"}(H0||(H0={})),lu(z0.ID,z0,2),cu(class extends su{constructor(){super({id:"editor.action.showHover",label:ot(0,"Show or Focus Hover"),metadata:{description:"Show or Focus Hover",args:[{name:"args",schema:{type:"object",properties:{focus:{description:"Controls if and when the hover should take focus upon being triggered by this action.",enum:[H0.NoAutoFocus,H0.FocusIfVisible,H0.AutoFocusImmediately],enumDescriptions:[ot(0,"The hover will not automatically take focus."),ot(0,"The hover will take focus only if it is already visible."),ot(0,"The hover will automatically take focus when it appears.")],default:H0.FocusIfVisible}}}}]},alias:"Show or Focus Hover",precondition:void 0,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2087),weight:100}})}run(t,i,e){if(!i.hasModel())return;const s=z0.get(i);if(!s)return;const n=null==e?void 0:e.focus;let o=H0.FocusIfVisible;n in H0?o=n:"boolean"==typeof n&&n&&(o=H0.AutoFocusImmediately);const r=t=>{const e=i.getPosition(),n=new Ms(e.lineNumber,e.column,e.lineNumber,e.column);s.showContentHover(n,1,1,t)},h=2===i.getOption(2);s.isHoverVisible?o!==H0.NoAutoFocus?s.focus():r(h):r(h||o===H0.AutoFocusImmediately)}}),cu(class extends su{constructor(){super({id:"editor.action.showDefinitionPreviewHover",label:ot(0,"Show Definition Preview Hover"),alias:"Show Definition Preview Hover",precondition:void 0})}run(t,i){const e=z0.get(i);if(!e)return;const s=i.getPosition();if(!s)return;const n=new Ms(s.lineNumber,s.column,s.lineNumber,s.column),o=pX.get(i);o&&o.startFindDefinitionFromCursor(s).then((()=>{e.showContentHover(n,1,1,!0)}))}}),cu(class extends su{constructor(){super({id:"editor.action.scrollUpHover",label:ot(0,"Scroll Up Hover"),alias:"Scroll Up Hover",precondition:YC.hoverFocused,kbOpts:{kbExpr:YC.hoverFocused,primary:16,weight:100}})}run(t,i){const e=z0.get(i);e&&e.scrollUp()}}),cu(class extends su{constructor(){super({id:"editor.action.scrollDownHover",label:ot(0,"Scroll Down Hover"),alias:"Scroll Down Hover",precondition:YC.hoverFocused,kbOpts:{kbExpr:YC.hoverFocused,primary:18,weight:100}})}run(t,i){const e=z0.get(i);e&&e.scrollDown()}}),cu(class extends su{constructor(){super({id:"editor.action.scrollLeftHover",label:ot(0,"Scroll Left Hover"),alias:"Scroll Left Hover",precondition:YC.hoverFocused,kbOpts:{kbExpr:YC.hoverFocused,primary:15,weight:100}})}run(t,i){const e=z0.get(i);e&&e.scrollLeft()}}),cu(class extends su{constructor(){super({id:"editor.action.scrollRightHover",label:ot(0,"Scroll Right Hover"),alias:"Scroll Right Hover",precondition:YC.hoverFocused,kbOpts:{kbExpr:YC.hoverFocused,primary:17,weight:100}})}run(t,i){const e=z0.get(i);e&&e.scrollRight()}}),cu(class extends su{constructor(){super({id:"editor.action.pageUpHover",label:ot(0,"Page Up Hover"),alias:"Page Up Hover",precondition:YC.hoverFocused,kbOpts:{kbExpr:YC.hoverFocused,primary:11,secondary:[528],weight:100}})}run(t,i){const e=z0.get(i);e&&e.pageUp()}}),cu(class extends su{constructor(){super({id:"editor.action.pageDownHover",label:ot(0,"Page Down Hover"),alias:"Page Down Hover",precondition:YC.hoverFocused,kbOpts:{kbExpr:YC.hoverFocused,primary:12,secondary:[530],weight:100}})}run(t,i){const e=z0.get(i);e&&e.pageDown()}}),cu(class extends su{constructor(){super({id:"editor.action.goToTopHover",label:ot(0,"Go To Top Hover"),alias:"Go To Bottom Hover",precondition:YC.hoverFocused,kbOpts:{kbExpr:YC.hoverFocused,primary:14,secondary:[2064],weight:100}})}run(t,i){const e=z0.get(i);e&&e.goToTop()}}),cu(class extends su{constructor(){super({id:"editor.action.goToBottomHover",label:ot(0,"Go To Bottom Hover"),alias:"Go To Bottom Hover",precondition:YC.hoverFocused,kbOpts:{kbExpr:YC.hoverFocused,primary:13,secondary:[2066],weight:100}})}run(t,i){const e=z0.get(i);e&&e.goToBottom()}}),xX.register(qX),xX.register(E0),nx(((t,i)=>{const e=t.getColor(_v);e&&(i.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${e.transparent(.5)}; }`),i.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${e.transparent(.5)}; }`),i.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${e.transparent(.5)}; }`))}));class V0 extends te{constructor(t){super(),this._editor=t,this._register(t.onMouseDown((t=>this.onMouseDown(t))))}dispose(){super.dispose()}onMouseDown(t){const i=this._editor.getOption(146);if("click"!==i&&"clickAndHover"!==i)return;const e=t.target;if(6!==e.type)return;if(!e.detail.injectedText)return;if(e.detail.injectedText.options.attachedData!==pJ)return;if(!e.range)return;const s=this._editor.getContribution(z0.ID);if(s&&!s.isColorPickerVisible){const t=new Ms(e.range.startLineNumber,e.range.startColumn+1,e.range.endLineNumber,e.range.endColumn+1);s.showContentHover(t,1,0,!1,!0)}}}V0.ID="editor.contrib.colorContribution",lu(V0.ID,V0,2),xX.register(TJ);var U0,q0,K0=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},G0=function(t,i){return function(e,s){i(e,s,t)}};let Z0=U0=class extends te{constructor(t,i,e,s,n,o,r){super(),this._editor=t,this._modelService=e,this._keybindingService=s,this._instantiationService=n,this._languageFeatureService=o,this._languageConfigurationService=r,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=YC.standaloneColorPickerVisible.bindTo(i),this._standaloneColorPickerFocused=YC.standaloneColorPickerFocused.bindTo(i)}showOrFocus(){var t;this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||null===(t=this._standaloneColorPickerWidget)||void 0===t||t.focus():this._standaloneColorPickerWidget=new Q0(this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused,this._instantiationService,this._modelService,this._keybindingService,this._languageFeatureService,this._languageConfigurationService))}hide(){var t;this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),null===(t=this._standaloneColorPickerWidget)||void 0===t||t.hide(),this._editor.focus()}insertColor(){var t;null===(t=this._standaloneColorPickerWidget)||void 0===t||t.updateEditor(),this.hide()}static get(t){return t.getContribution(U0.ID)}};Z0.ID="editor.contrib.standaloneColorPickerController",Z0=U0=K0([G0(1,ah),G0(2,pr),G0(3,oC),G0(4,ur),G0(5,xg),G0(6,Xd)],Z0),lu(Z0.ID,Z0,1);let Q0=q0=class extends te{constructor(t,i,e,s,n,o,r,h){var c;super(),this._editor=t,this._standaloneColorPickerVisible=i,this._standaloneColorPickerFocused=e,this._modelService=n,this._keybindingService=o,this._languageFeaturesService=r,this._languageConfigurationService=h,this.allowEditorOverflow=!0,this._position=void 0,this._body=document.createElement("div"),this._colorHover=null,this._selectionSetInEditor=!1,this._onResult=this._register(new de),this.onResult=this._onResult.event,this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=s.createInstance(OJ,this._editor),this._position=null===(c=this._editor._getViewModel())||void 0===c?void 0:c.getPrimaryCursorState().modelState.position;const a=this._editor.getSelection(),l=a?{startLineNumber:a.startLineNumber,startColumn:a.startColumn,endLineNumber:a.endLineNumber,endColumn:a.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},u=this._register(Rl(this._body));this._register(u.onDidBlur((()=>{this.hide()}))),this._register(u.onDidFocus((()=>{this.focus()}))),this._register(this._editor.onDidChangeCursorPosition((()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()}))),this._register(this._editor.onMouseMove((t=>{var i;const e=null===(i=t.target.element)||void 0===i?void 0:i.classList;e&&e.contains("colorpicker-color-decoration")&&this.hide()}))),this._register(this.onResult((t=>{this._render(t.value,t.foundInEditor)}))),this._start(l),this._body.style.zIndex="50",this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return q0.ID}getDomNode(){return this._body}getPosition(){if(!this._position)return null;const t=this._editor.getOption(60).above;return{position:this._position,secondaryPosition:this._position,preference:t?[1,2]:[2,1],positionAffinity:2}}hide(){this.dispose(),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerFocused.set(!1),this._editor.removeContentWidget(this),this._editor.focus()}focus(){this._standaloneColorPickerFocused.set(!0),this._body.focus()}async _start(t){const i=await this._computeAsync(t);i&&this._onResult.fire(new J0(i.result,i.foundInEditor))}async _computeAsync(t){if(!this._editor.hasModel())return null;const i={range:t,color:{red:0,green:0,blue:0,alpha:1}},e=await this._standaloneColorPickerParticipant.createColorHover(i,new sJ(this._modelService,this._languageConfigurationService),this._languageFeaturesService.colorProvider);return e?{result:e.colorHover,foundInEditor:e.foundInEditor}:null}_render(t,i){const e=document.createDocumentFragment();let s;const n={fragment:e,statusBar:this._register(new _X(this._keybindingService)),setColorPicker:t=>s=t,onContentsChanged:()=>{},hide:()=>this.hide()};if(this._colorHover=t,this._register(this._standaloneColorPickerParticipant.renderHoverParts(n,[t])),void 0===s)return;this._body.classList.add("standalone-colorpicker-body"),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+"px",this._body.style.maxWidth=Math.max(.66*this._editor.getLayoutInfo().width,500)+"px",this._body.tabIndex=0,this._body.appendChild(e),s.layout();const o=s.body,r=o.saturationBox.domNode.clientWidth,h=o.domNode.clientWidth-r-22-8,c=s.body.enterButton;null==c||c.onClicked((()=>{this.updateEditor(),this.hide()}));const a=s.header;a.pickedColorNode.style.width=r+8+"px",a.originalColorNode.style.width=h+"px";const l=s.header.closeButton;null==l||l.onClicked((()=>{this.hide()})),i&&(c&&(c.button.textContent="Replace"),this._selectionSetInEditor=!0,this._editor.setSelection(t.range)),this._editor.layoutContentWidget(this)}};Q0.ID="editor.contrib.standaloneColorPickerWidget",Q0=q0=K0([G0(3,ur),G0(4,pr),G0(5,oC),G0(6,xg),G0(7,Xd)],Q0);class J0{constructor(t,i){this.value=t,this.foundInEditor=i}}cu(class extends su{constructor(){super({id:"editor.action.hideColorPicker",label:ot(0,"Hide the Color Picker"),alias:"Hide the Color Picker",precondition:YC.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100}})}run(t,i){var e;null===(e=Z0.get(i))||void 0===e||e.hide()}}),cu(class extends su{constructor(){super({id:"editor.action.insertColorWithStandaloneColorPicker",label:ot(0,"Insert Color with Standalone Color Picker"),alias:"Insert Color with Standalone Color Picker",precondition:YC.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100}})}run(t,i){var e;null===(e=Z0.get(i))||void 0===e||e.insertColor()}}),$h(class extends ou{constructor(){super({id:"editor.action.showOrFocusStandaloneColorPicker",title:{value:ot(0,"Show or Focus Standalone Color Picker"),mnemonicTitle:ot(0,"&&Show or Focus Standalone Color Picker"),original:"Show or Focus Standalone Color Picker"},precondition:void 0,menu:[{id:Rh.CommandPalette}]})}runEditorCommand(t,i){var e;null===(e=Z0.get(i))||void 0===e||e.showOrFocus()}});class Y0{constructor(t,i,e){this.languageConfigurationService=e,this._selection=t,this._insertSpace=i,this._usedEndToken=null}static _haystackHasNeedleAtOffset(t,i,e){if(e<0)return!1;const s=i.length;if(e+s>t.length)return!1;for(let n=0;n=65&&s<=90&&s+32===o||o>=65&&o<=90&&o+32===s))return!1}return!0}_createOperationsForBlockComment(t,i,e,s,n,o){const r=t.startLineNumber,h=t.startColumn,c=t.endLineNumber,a=t.endColumn,l=n.getLineContent(r),u=n.getLineContent(c);let d,f=l.lastIndexOf(i,h-1+i.length),p=u.indexOf(e,a-1-e.length);if(-1!==f&&-1!==p)if(r===c)l.substring(f+i.length,p).indexOf(e)>=0&&(f=-1,p=-1);else{const t=l.substring(f+i.length),s=u.substring(0,p);(t.indexOf(e)>=0||s.indexOf(e)>=0)&&(f=-1,p=-1)}-1!==f&&-1!==p?(s&&f+i.length0&&32===u.charCodeAt(p-1)&&(e=" "+e,p-=1),d=Y0._createRemoveBlockCommentOperations(new Ms(r,f+i.length+1,c,p+1),i,e)):(d=Y0._createAddBlockCommentOperations(t,i,e,this._insertSpace),this._usedEndToken=1===d.length?e:null);for(const t of d)o.addTrackedEditOperation(t.range,t.text)}static _createRemoveBlockCommentOperations(t,i,e){const s=[];return Ms.isEmpty(t)?s.push(pO.delete(new Ms(t.startLineNumber,t.startColumn-i.length,t.endLineNumber,t.endColumn+e.length))):(s.push(pO.delete(new Ms(t.startLineNumber,t.startColumn-i.length,t.startLineNumber,t.startColumn))),s.push(pO.delete(new Ms(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn+e.length)))),s}static _createAddBlockCommentOperations(t,i,e,s){const n=[];return Ms.isEmpty(t)?n.push(pO.replace(new Ms(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn),i+" "+e)):(n.push(pO.insert(new As(t.startLineNumber,t.startColumn),i+(s?" ":""))),n.push(pO.insert(new As(t.endLineNumber,t.endColumn),(s?" ":"")+e))),n}getEditOperations(t,i){const e=this._selection.startLineNumber,s=this._selection.startColumn;t.tokenization.tokenizeIfCheap(e);const n=t.getLanguageIdAtPosition(e,s),o=this.languageConfigurationService.getLanguageConfiguration(n).comments;o&&o.blockCommentStartToken&&o.blockCommentEndToken&&this._createOperationsForBlockComment(this._selection,o.blockCommentStartToken,o.blockCommentEndToken,this._insertSpace,t,i)}computeCursorState(t,i){const e=i.getInverseEditOperations();if(2===e.length){const t=e[0],i=e[1];return new Ls(t.range.endLineNumber,t.range.endColumn,i.range.startLineNumber,i.range.startColumn)}{const t=e[0].range,i=this._usedEndToken?-this._usedEndToken.length-1:0;return new Ls(t.endLineNumber,t.endColumn+i,t.endLineNumber,t.endColumn+i)}}}class X0{constructor(t,i,e,s,n,o,r){this.languageConfigurationService=t,this._selection=i,this._tabSize=e,this._type=s,this._insertSpace=n,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=o,this._ignoreFirstLine=r||!1}static _gatherPreflightCommentStrings(t,i,e,s){t.tokenization.tokenizeIfCheap(i);const n=t.getLanguageIdAtPosition(i,1),o=s.getLanguageConfiguration(n).comments,r=o?o.lineCommentToken:null;if(!r)return null;const h=[];for(let t=0,s=e-i+1;tr?n-1:n}}}class t1 extends su{constructor(t,i){super(i),this._type=t}run(t,i){const e=t.get(Xd);if(!i.hasModel())return;const s=[],n=i.getModel().getOptions(),o=i.getOption(23),r=i.getSelections().map(((t,i)=>({selection:t,index:i,ignoreFirstLine:!1})));r.sort(((t,i)=>Ms.compareRangesUsingStarts(t.selection,i.selection)));let h=r[0];for(let t=1;tthis._onContextMenu(t)))),this._toDispose.add(this._editor.onMouseWheel((t=>{if(this._contextMenuIsBeingShownCount>0){const i=this._contextViewService.getContextViewElement(),e=t.srcElement;e.shadowRoot&&fl(i)===e.shadowRoot||this._contextViewService.hideContextView()}}))),this._toDispose.add(this._editor.onKeyDown((t=>{this._editor.getOption(24)&&58===t.keyCode&&(t.preventDefault(),t.stopPropagation(),this.showContextMenu())})))}_onContextMenu(t){if(!this._editor.hasModel())return;if(!this._editor.getOption(24))return this._editor.focus(),void(t.target.position&&!this._editor.getSelection().containsPosition(t.target.position)&&this._editor.setPosition(t.target.position));if(12===t.target.type)return;if(6===t.target.type&&t.target.detail.injectedText)return;if(t.event.preventDefault(),t.event.stopPropagation(),11===t.target.type)return this._showScrollbarContextMenu(t.event);if(6!==t.target.type&&7!==t.target.type&&1!==t.target.type)return;if(this._editor.focus(),t.target.position){let i=!1;for(const e of this._editor.getSelections())if(e.containsPosition(t.target.position)){i=!0;break}i||this._editor.setPosition(t.target.position)}let i=null;1!==t.target.type&&(i=t.event),this.showContextMenu(i)}showContextMenu(t){if(!this._editor.getOption(24))return;if(!this._editor.hasModel())return;const i=this._getMenuActions(this._editor.getModel(),this._editor.isSimpleWidget?Rh.SimpleEditorContext:Rh.EditorContext);i.length>0&&this._doShowContextMenu(i,t)}_getMenuActions(t,i){const e=[],s=this._menuService.createMenu(i,this._contextKeyService),n=s.getActions({arg:t.uri});s.dispose();for(const i of n){const[,s]=i;let n=0;for(const i of s)if(i instanceof Nh){const s=this._getMenuActions(t,i.item.submenu);s.length>0&&(e.push(new br(i.id,i.label,s)),n++)}else e.push(i),n++;n&&e.push(new vr)}return e.length&&e.pop(),e}_doShowContextMenu(t,i=null){if(!this._editor.hasModel())return;const e=this._editor.getOption(60);this._editor.updateOptions({hover:{enabled:!1}});let s=i;if(!s){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const t=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),i=nl(this._editor.getDomNode());s={x:i.left+t.left,y:i.top+t.top+t.height}}const n=this._editor.getOption(126)&&!Mt;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:n?this._editor.getDomNode():void 0,getAnchor:()=>s,getActions:()=>t,getActionViewItem:t=>{const i=this._keybindingFor(t);return i?new wB(t,t,{label:!0,keybinding:i.getLabel(),isMenu:!0}):"function"==typeof t.getActionViewItem?t.getActionViewItem():new wB(t,t,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:t=>this._keybindingFor(t),onHide:()=>{this._contextMenuIsBeingShownCount--,this._editor.updateOptions({hover:e})}})}_showScrollbarContextMenu(t){if(!this._editor.hasModel())return;if(this._workspaceContextService.getWorkspace().id===XO)return;const i=this._editor.getOption(72);let e=0;const s=t=>({id:"menu-action-"+ ++e,label:t.label,tooltip:"",class:void 0,enabled:void 0===t.enabled||t.enabled,checked:t.checked,run:t.run}),n=(t,i,n,o,r)=>{if(!i)return s({label:t,enabled:i,run:()=>{}});const h=t=>()=>{this._configurationService.updateValue(n,t)},c=[];for(const t of r)c.push(s({label:t.label,checked:o===t.value,run:h(t.value)}));return((t,i)=>new br("menu-action-"+ ++e,t,i,void 0))(t,c)},o=[];o.push(s({label:ot(0,"Minimap"),checked:i.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!i.enabled)}})),o.push(new vr),o.push(s({label:ot(0,"Render Characters"),enabled:i.enabled,checked:i.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!i.renderCharacters)}})),o.push(n(ot(0,"Vertical size"),i.enabled,"editor.minimap.size",i.size,[{label:ot(0,"Proportional"),value:"proportional"},{label:ot(0,"Fill"),value:"fill"},{label:ot(0,"Fit"),value:"fit"}])),o.push(n(ot(0,"Slider"),i.enabled,"editor.minimap.showSlider",i.showSlider,[{label:ot(0,"Mouse Over"),value:"mouseover"},{label:ot(0,"Always"),value:"always"}]));const r=this._editor.getOption(126)&&!Mt;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:r?this._editor.getDomNode():void 0,getAnchor:()=>t,getActions:()=>o,onHide:()=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(t){return this._keybindingService.lookupKeybinding(t.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}};s1.ID="editor.contrib.contextmenu",s1=i1=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([e1(1,lI),e1(2,aI),e1(3,ah),e1(4,oC),e1(5,Oh),e1(6,pd),e1(7,ZO)],s1),lu(s1.ID,s1,2),cu(class extends su{constructor(){super({id:"editor.action.showContextMenu",label:ot(0,"Show Editor Context Menu"),alias:"Show Editor Context Menu",precondition:void 0,kbOpts:{kbExpr:YC.textInputFocus,primary:1092,weight:100}})}run(t,i){var e;null===(e=s1.get(i))||void 0===e||e.showContextMenu()}});class n1{constructor(t){this.selections=t}equals(t){const i=this.selections.length;if(i!==t.selections.length)return!1;for(let e=0;e{this._undoStack=[],this._redoStack=[]}))),this._register(t.onDidChangeModelContent((()=>{this._undoStack=[],this._redoStack=[]}))),this._register(t.onDidChangeCursorSelection((i=>{if(this._isCursorUndoRedo)return;if(!i.oldSelections)return;if(i.oldModelVersionId!==i.modelVersionId)return;const e=new n1(i.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(e)||(this._undoStack.push(new o1(e,t.getScrollTop(),t.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())})))}cursorUndo(){this._editor.hasModel()&&0!==this._undoStack.length&&(this._redoStack.push(new o1(new n1(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){this._editor.hasModel()&&0!==this._redoStack.length&&(this._undoStack.push(new o1(new n1(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(t){this._isCursorUndoRedo=!0,this._editor.setSelections(t.cursorState.selections),this._editor.setScrollPosition({scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),this._isCursorUndoRedo=!1}}r1.ID="editor.contrib.cursorUndoRedoController",lu(r1.ID,r1,0),cu(class extends su{constructor(){super({id:"cursorUndo",label:ot(0,"Cursor Undo"),alias:"Cursor Undo",precondition:void 0,kbOpts:{kbExpr:YC.textInputFocus,primary:2099,weight:100}})}run(t,i,e){var s;null===(s=r1.get(i))||void 0===s||s.cursorUndo()}}),cu(class extends su{constructor(){super({id:"cursorRedo",label:ot(0,"Cursor Redo"),alias:"Cursor Redo",precondition:void 0})}run(t,i,e){var s;null===(s=r1.get(i))||void 0===s||s.cursorRedo()}});class h1{constructor(t,i,e){this.selection=t,this.targetPosition=i,this.copy=e,this.targetSelection=null}getEditOperations(t,i){const e=t.getValueInRange(this.selection);this.copy||i.addEditOperation(this.selection,null),i.addEditOperation(new Ms(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),e),this.targetSelection=!this.selection.containsPosition(this.targetPosition)||this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition))?this.copy?new Ls(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumber>this.selection.endLineNumber?new Ls(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumberthis._onEditorMouseDown(t)))),this._register(this._editor.onMouseUp((t=>this._onEditorMouseUp(t)))),this._register(this._editor.onMouseDrag((t=>this._onEditorMouseDrag(t)))),this._register(this._editor.onMouseDrop((t=>this._onEditorMouseDrop(t)))),this._register(this._editor.onMouseDropCanceled((()=>this._onEditorMouseDropCanceled()))),this._register(this._editor.onKeyDown((t=>this.onEditorKeyDown(t)))),this._register(this._editor.onKeyUp((t=>this.onEditorKeyUp(t)))),this._register(this._editor.onDidBlurEditorWidget((()=>this.onEditorBlur()))),this._register(this._editor.onDidBlurEditorText((()=>this.onEditorBlur()))),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(t){this._editor.getOption(35)&&!this._editor.getOption(22)&&(c1(t)&&(this._modifierPressed=!0),this._mouseDown&&c1(t)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(t){this._editor.getOption(35)&&!this._editor.getOption(22)&&(c1(t)&&(this._modifierPressed=!1),this._mouseDown&&t.keyCode===a1.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))}_onEditorMouseDown(t){this._mouseDown=!0}_onEditorMouseUp(t){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(t){const i=t.target;if(null===this._dragSelection){const t=(this._editor.getSelections()||[]).filter((t=>i.position&&t.containsPosition(i.position)));if(1!==t.length)return;this._dragSelection=t[0]}c1(t.event)?this._editor.updateOptions({mouseStyle:"copy"}):this._editor.updateOptions({mouseStyle:"default"}),i.position&&(this._dragSelection.containsPosition(i.position)?this._removeDecoration():this.showAt(i.position))}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(t){if(t.target&&(this._hitContent(t.target)||this._hitMargin(t.target))&&t.target.position){const i=new As(t.target.position.lineNumber,t.target.position.column);if(null===this._dragSelection){let e=null;if(t.event.shiftKey){const t=this._editor.getSelection();if(t){const{selectionStartLineNumber:s,selectionStartColumn:n}=t;e=[new Ls(s,n,i.lineNumber,i.column)]}}else e=(this._editor.getSelections()||[]).map((t=>t.containsPosition(i)?new Ls(i.lineNumber,i.column,i.lineNumber,i.column):t));this._editor.setSelections(e||[],"mouse",3)}else(!this._dragSelection.containsPosition(i)||(c1(t.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(i)||this._dragSelection.getStartPosition().equals(i)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(a1.ID,new h1(this._dragSelection,i,c1(t.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}showAt(t){this._dndDecorationIds.set([{range:new Ms(t.lineNumber,t.column,t.lineNumber,t.column),options:a1._DECORATION_OPTIONS}]),this._editor.revealPosition(t,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(t){return 6===t.type||7===t.type}_hitMargin(t){return 2===t.type||3===t.type||4===t.type}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}a1.ID="editor.contrib.dragAndDrop",a1.TRIGGER_KEY_VALUE=Ct?6:5,a1._DECORATION_OPTIONS=AL.register({description:"dnd-target",className:"dnd-target"}),lu(a1.ID,a1,2);const l1=function(){if("object"==typeof crypto&&"function"==typeof crypto.randomUUID)return crypto.randomUUID.bind(crypto);let t;t="object"==typeof crypto&&"function"==typeof crypto.getRandomValues?crypto.getRandomValues.bind(crypto):function(t){for(let i=0;it,asFile:()=>{},value:"string"==typeof t?t:void 0}}class d1{constructor(){this._entries=new Map}get size(){let t=0;for(const i of this._entries)t++;return t}has(t){return this._entries.has(this.toKey(t))}matches(t){const i=[...this._entries.keys()];return Ht.some(this,(([t,i])=>i.asFile()))&&i.push("files"),g1(f1(t),i)}get(t){var i;return null===(i=this._entries.get(this.toKey(t)))||void 0===i?void 0:i[0]}append(t,i){const e=this._entries.get(t);e?e.push(i):this._entries.set(this.toKey(t),[i])}replace(t,i){this._entries.set(this.toKey(t),[i])}delete(t){this._entries.delete(this.toKey(t))}*[Symbol.iterator](){for(const[t,i]of this._entries)for(const e of i)yield[t,e]}toKey(t){return f1(t)}}function f1(t){return t.toLowerCase()}function p1(t,i){return g1(f1(t),i.map(f1))}function g1(t,i){if("*/*"===t)return i.length>0;if(i.includes(t))return!0;const e=t.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!e)return!1;const[s,n,o]=e;return"*"===o&&i.some((t=>t.startsWith(n+"/")))}const m1=Object.freeze({create:t=>y(t.map((t=>t.toString()))).join("\r\n"),split:t=>t.split("\r\n"),parse:t=>m1.split(t).filter((t=>!t.startsWith("#")))});Dh.add("workbench.contributions.dragAndDrop",new class{});class w1{constructor(){}static getInstance(){return w1.INSTANCE}hasData(t){return t&&t===this.proto}getData(t){if(this.hasData(t))return this.data}}function v1(t){const i=new d1;for(const e of t.items){const t=e.type;if("string"===e.kind){const s=new Promise((t=>e.getAsString(t)));i.append(t,u1(s))}else if("file"===e.kind){const s=e.getAsFile();s&&i.append(t,b1(s))}}return i}function b1(t){const i=t.path?ms.parse(t.path):void 0;return function(t,i,e){const s={id:l1(),name:t,uri:i,data:e};return{asString:async()=>"",asFile:()=>s,value:void 0}}(t.name,i,(async()=>new Uint8Array(await t.arrayBuffer())))}w1.INSTANCE=new w1;const y1=Object.freeze(["CodeEditors","CodeFiles",MI.RESOURCES,MI.INTERNAL_URI_LIST]);function k1(t,i=!1){const e=v1(t),s=e.get(MI.INTERNAL_URI_LIST);if(s)e.replace(Dd.uriList,s);else if(i||!e.has(Dd.uriList)){const i=[];for(const e of t.items){const t=e.getAsFile();if(t){const e=t.path;try{i.push(e?ms.file(e).toString():ms.parse(t.name,!0).toString())}catch(t){}}}i.length&&e.replace(Dd.uriList,u1(m1.create(i)))}for(const t of y1)e.delete(t);return e}function x1(t){var i;function e(t,i){return"providerId"in t&&t.providerId===i.providerId||"mimeType"in t&&t.mimeType===i.handledMimeType}const s=new Map;for(const n of t)for(const o of null!==(i=n.yieldTo)&&void 0!==i?i:[])for(const i of t)if(i!==n&&e(o,i)){let t=s.get(n);t||(t=[],s.set(n,t)),t.push(i)}if(!s.size)return Array.from(t);const n=new Set,o=[];return function t(i){if(!i.length)return[];const e=i[0];if(o.includes(e))return console.warn(`Yield to cycle detected for ${e.providerId}`),i;if(n.has(e))return t(i.slice(1));let r=[];const h=s.get(e);return h&&(o.push(e),r=t(h),o.pop()),n.add(e),[...r,e,...t(i.slice(1))]}(Array.from(t))}const C1=AL.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:" ",inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}});class S1 extends te{constructor(t,i,e,s,n){super(),this.typeId=t,this.editor=i,this.range=e,this.delegate=n,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(s),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(t){this.domNode=$l(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=t;const i=$l("span.icon");this.domNode.append(i),i.classList.add(...Cr.asClassNameArray(Os.loading),"codicon-modifier-spin");const e=()=>{const t=this.editor.getOption(66);this.domNode.style.height=`${t}px`,this.domNode.style.width=`${Math.ceil(.8*t)}px`};e(),this._register(this.editor.onDidChangeConfiguration((t=>{(t.hasChanged(52)||t.hasChanged(66))&&e()}))),this._register(Va(this.domNode,Ll.CLICK,(()=>{this.delegate.cancel()})))}getId(){return S1.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}}S1.baseId="editor.widget.inlineProgressWidget";let D1=class extends te{constructor(t,i,e){super(),this.id=t,this._editor=i,this._instantiationService=e,this._showDelay=500,this._showPromise=this._register(new ie),this._currentWidget=new ie,this._operationIdPool=0,this._currentDecorations=i.createDecorationsCollection()}async showWhile(t,i,e){const s=this._operationIdPool++;this._currentOperation=s,this.clear(),this._showPromise.value=lc((()=>{const s=Ms.fromPositions(t);this._currentDecorations.set([{range:s,options:C1}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(S1,this.id,this._editor,s,i,e))}),this._showDelay);try{return await e}finally{this._currentOperation===s&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};D1=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(2,ur)],D1);var E1,A1=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},M1=function(t,i){return function(e,s){i(e,s,t)}};let L1=E1=class extends te{constructor(t,i,e,s,n,o,r,h,c,a){super(),this.typeId=t,this.editor=i,this.showCommand=s,this.range=n,this.edits=o,this.onSelectNewEdit=r,this._contextMenuService=h,this._keybindingService=a,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=e.bindTo(c),this.visibleContext.set(!0),this._register(Yi((()=>this.visibleContext.reset()))),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(Yi((()=>this.editor.removeContentWidget(this)))),this._register(this.editor.onDidChangeCursorPosition((t=>{n.containsPosition(t.position)||this.dispose()}))),this._register(he.runAndSubscribe(a.onDidUpdateKeybindings,(()=>{this._updateButtonTitle()})))}_updateButtonTitle(){var t;const i=null===(t=this._keybindingService.lookupKeybinding(this.showCommand.id))||void 0===t?void 0:t.getLabel();this.button.element.title=this.showCommand.label+(i?` (${i})`:"")}create(){this.domNode=$l(".post-edit-widget"),this.button=this._register(new Nj(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(Va(this.domNode,Ll.CLICK,(()=>this.showSelector())))}getId(){return E1.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:()=>{const t=nl(this.button.element);return{x:t.left+t.width,y:t.top+t.height}},getActions:()=>this.edits.allEdits.map(((t,i)=>kr({id:"",label:t.label,checked:i===this.edits.activeEditIndex,run:()=>{if(i!==this.edits.activeEditIndex)return this.onSelectNewEdit(i)}})))})}};L1.baseId="editor.widget.postEditWidget",L1=E1=A1([M1(7,lI),M1(8,ah),M1(9,oC)],L1);let F1=class extends te{constructor(t,i,e,s,n,o){super(),this._id=t,this._editor=i,this._visibleContext=e,this._showCommand=s,this._instantiationService=n,this._bulkEditService=o,this._currentWidget=this._register(new ie),this._register(he.any(i.onDidChangeModel,i.onDidChangeModelContent)((()=>this.clear())))}async applyEditAndShowIfNeeded(t,i,e,s){var n,o;const r=this._editor.getModel();if(!r||!t.length)return;const h=i.allEdits[i.activeEditIndex];if(!h)return;let c=[];c=("string"==typeof h.insertText?""===h.insertText:""===h.insertText.snippet)?[]:t.map((t=>new rO(r.uri,"string"==typeof h.insertText?{range:t,text:h.insertText,insertAsSnippet:!1}:{range:t,text:h.insertText.snippet,insertAsSnippet:!0})));const a={edits:[...c,...null!==(o=null===(n=h.additionalEdit)||void 0===n?void 0:n.edits)&&void 0!==o?o:[]]},l=t[0],u=r.deltaDecorations([],[{range:l,options:{description:"paste-line-suffix",stickiness:0}}]);let d,f;try{d=await this._bulkEditService.apply(a,{editor:this._editor,token:s}),f=r.getDecorationRange(u[0])}finally{r.deltaDecorations(u,[])}e&&d.isApplied&&i.allEdits.length>1&&this.show(null!=f?f:l,i,(async n=>{const o=this._editor.getModel();o&&(await o.undo(),this.applyEditAndShowIfNeeded(t,{activeEditIndex:n,allEdits:i.allEdits},e,s))}))}show(t,i,e){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(L1,this._id,this._editor,this._visibleContext,this._showCommand,t,i,e))}clear(){this._currentWidget.clear()}tryShowSelector(){var t;null===(t=this._currentWidget.value)||void 0===t||t.showSelector()}};F1=A1([M1(4,ur),M1(5,nO)],F1);var T1,R1=function(t,i){return function(e,s){i(e,s,t)}};const O1="editor.changePasteType",I1=new ch("pasteWidgetVisible",!1,ot(0,"Whether the paste widget is showing")),_1="application/vnd.code.copyMetadata";let N1=T1=class extends te{static get(t){return t.getContribution(T1.ID)}constructor(t,i,e,s,n,o,r){super(),this._bulkEditService=e,this._clipboardService=s,this._languageFeaturesService=n,this._quickInputService=o,this._progressService=r,this._editor=t;const h=t.getContainerDomNode();this._register(Va(h,"copy",(t=>this.handleCopy(t)))),this._register(Va(h,"cut",(t=>this.handleCopy(t)))),this._register(Va(h,"paste",(t=>this.handlePaste(t)),!0)),this._pasteProgressManager=this._register(new D1("pasteIntoEditor",t,i)),this._postPasteWidgetManager=this._register(i.createInstance(F1,"pasteIntoEditor",t,I1,{id:O1,label:ot(0,"Show paste options...")}))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}pasteAs(t){this._editor.focus();try{this._pasteAsActionContext={preferredId:t},ml().execCommand("paste")}finally{this._pasteAsActionContext=void 0}}isPasteAsEnabled(){return this._editor.getOption(84).enabled&&!this._editor.getOption(90)}handleCopy(t){var i,e;if(!this._editor.hasTextFocus())return;if(Et&&this._clipboardService.writeResources([]),!t.clipboardData||!this.isPasteAsEnabled())return;const s=this._editor.getModel(),n=this._editor.getSelections();if(!s||!(null==n?void 0:n.length))return;const o=this._editor.getOption(37);let r=n;const h=1===n.length&&n[0].isEmpty();if(h){if(!o)return;r=[new Ms(r[0].startLineNumber,1,r[0].startLineNumber,1+s.getLineLength(r[0].startLineNumber))]}const c=null===(i=this._editor._getViewModel())||void 0===i?void 0:i.getPlainTextToCopy(n,o,xt),a={multicursorText:Array.isArray(c)?c:null,pasteOnNewLine:h,mode:null},l=this._languageFeaturesService.documentPasteEditProvider.ordered(s).filter((t=>!!t.prepareDocumentPaste));if(!l.length)return void this.setCopyMetadata(t.clipboardData,{defaultPastePayload:a});const u=v1(t.clipboardData),d=l.flatMap((t=>{var i;return null!==(i=t.copyMimeTypes)&&void 0!==i?i:[]})),f=l1();this.setCopyMetadata(t.clipboardData,{id:f,providerCopyMimeTypes:d,defaultPastePayload:a});const p=nc((async t=>{const i=m(await Promise.all(l.map((async i=>{try{return await i.prepareDocumentPaste(s,r,u,t)}catch(t){return void console.error(t)}}))));i.reverse();for(const t of i)for(const[i,e]of t)u.replace(i,e);return u}));null===(e=this._currentCopyOperation)||void 0===e||e.dataTransferPromise.cancel(),this._currentCopyOperation={handle:f,dataTransferPromise:p}}async handlePaste(t){var i,e;if(!t.clipboardData||!this._editor.hasTextFocus())return;null===(i=this._currentPasteOperation)||void 0===i||i.cancel(),this._currentPasteOperation=void 0;const s=this._editor.getModel(),n=this._editor.getSelections();if(!(null==n?void 0:n.length)||!s)return;if(!this.isPasteAsEnabled())return;const o=this.fetchCopyMetadata(t),r=k1(t.clipboardData);r.delete(_1);const h=[...t.clipboardData.types,...null!==(e=null==o?void 0:o.providerCopyMimeTypes)&&void 0!==e?e:[],Dd.uriList],c=this._languageFeaturesService.documentPasteEditProvider.ordered(s).filter((t=>{var i;return null===(i=t.pasteMimeTypes)||void 0===i?void 0:i.some((t=>p1(t,h)))}));c.length&&(t.preventDefault(),t.stopImmediatePropagation(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferredId,c,n,r,o):this.doPasteInline(c,n,r,o))}doPasteInline(t,i,e,s){const n=nc((async o=>{const r=this._editor;if(!r.hasModel())return;const h=r.getModel(),c=new CK(r,3,void 0,o);try{if(await this.mergeInDataFromCopy(e,s,c.token),c.token.isCancellationRequested)return;const n=t.filter((t=>B1(t,e)));if(!n.length||1===n.length&&"text"===n[0].id)return void await this.applyDefaultPasteHandler(e,s,c.token);const o=await this.getPasteEdits(n,e,h,i,c.token);if(c.token.isCancellationRequested)return;if(1===o.length&&"text"===o[0].providerId)return void await this.applyDefaultPasteHandler(e,s,c.token);if(o.length){const t="afterPaste"===r.getOption(84).showPasteSelector;return this._postPasteWidgetManager.applyEditAndShowIfNeeded(i,{activeEditIndex:0,allEdits:o},t,c.token)}await this.applyDefaultPasteHandler(e,s,c.token)}finally{c.dispose(),this._currentPasteOperation===n&&(this._currentPasteOperation=void 0)}}));this._pasteProgressManager.showWhile(i[0].getEndPosition(),ot(0,"Running paste handlers. Click to cancel"),n),this._currentPasteOperation=n}showPasteAsPick(t,i,e,s,n){const o=nc((async r=>{const h=this._editor;if(!h.hasModel())return;const c=h.getModel(),a=new CK(h,3,void 0,r);try{if(await this.mergeInDataFromCopy(s,n,a.token),a.token.isCancellationRequested)return;let o=i.filter((t=>B1(t,s)));t&&(o=o.filter((i=>i.id===t)));const r=await this.getPasteEdits(o,s,c,e,a.token);if(a.token.isCancellationRequested)return;if(!r.length)return;let h;if(t)h=r.at(0);else{const t=await this._quickInputService.pick(r.map((t=>({label:t.label,description:t.providerId,detail:t.detail,edit:t}))),{placeHolder:ot(0,"Select Paste Action")});h=null==t?void 0:t.edit}if(!h)return;const l=function(t,i,e){var s,n;return{edits:[...i.map((i=>new rO(t,"string"==typeof e.insertText?{range:i,text:e.insertText,insertAsSnippet:!1}:{range:i,text:e.insertText.snippet,insertAsSnippet:!0}))),...null!==(n=null===(s=e.additionalEdit)||void 0===s?void 0:s.edits)&&void 0!==n?n:[]]}}(c.uri,e,h);await this._bulkEditService.apply(l,{editor:this._editor})}finally{a.dispose(),this._currentPasteOperation===o&&(this._currentPasteOperation=void 0)}}));this._progressService.withProgress({location:10,title:ot(0,"Running paste handlers")},(()=>o))}setCopyMetadata(t,i){t.setData(_1,JSON.stringify(i))}fetchCopyMetadata(t){var i;if(!t.clipboardData)return;const e=t.clipboardData.getData(_1);if(e)try{return JSON.parse(e)}catch(t){return}const[s,n]=Kk.getTextData(t.clipboardData);return n?{defaultPastePayload:{mode:n.mode,multicursorText:null!==(i=n.multicursorText)&&void 0!==i?i:null,pasteOnNewLine:!!n.isFromEmptySelection}}:void 0}async mergeInDataFromCopy(t,i,e){var s;if((null==i?void 0:i.id)&&(null===(s=this._currentCopyOperation)||void 0===s?void 0:s.handle)===i.id){const i=await this._currentCopyOperation.dataTransferPromise;if(e.isCancellationRequested)return;for(const[e,s]of i)t.replace(e,s)}if(!t.has(Dd.uriList)){const i=await this._clipboardService.readResources();if(e.isCancellationRequested)return;i.length&&t.append(Dd.uriList,u1(m1.create(i)))}}async getPasteEdits(t,i,e,s,n){const o=await oc(Promise.all(t.map((async t=>{var o;try{const r=await(null===(o=t.provideDocumentPasteEdits)||void 0===o?void 0:o.call(t,e,s,i,n));if(r)return{...r,providerId:t.id}}catch(t){console.error(t)}}))),n);return x1(m(null!=o?o:[]))}async applyDefaultPasteHandler(t,i,e){var s,n,o;const r=null!==(s=t.get(Dd.text))&&void 0!==s?s:t.get("text");if(!r)return;const h=await r.asString();if(e.isCancellationRequested)return;const c={text:h,pasteOnNewLine:null!==(n=null==i?void 0:i.defaultPastePayload.pasteOnNewLine)&&void 0!==n&&n,multicursorText:null!==(o=null==i?void 0:i.defaultPastePayload.multicursorText)&&void 0!==o?o:null,mode:null};this._editor.trigger("keyboard","paste",c)}};function B1(t,i){var e;return Boolean(null===(e=t.pasteMimeTypes)||void 0===e?void 0:e.some((t=>i.matches(t))))}N1.ID="editor.contrib.copyPasteActionController",N1=T1=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([R1(1,ur),R1(2,nO),R1(3,yH),R1(4,xg),R1(5,Oj),R1(6,WO)],N1);var P1=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},$1=function(t,i){return function(e,s){i(e,s,t)}};const W1=ot(0,"Built-in");class j1{async provideDocumentPasteEdits(t,i,e,s){const n=await this.getEdit(e,s);return n?{insertText:n.insertText,label:n.label,detail:n.detail,handledMimeType:n.handledMimeType,yieldTo:n.yieldTo}:void 0}async provideDocumentOnDropEdits(t,i,e,s){const n=await this.getEdit(e,s);return n?{insertText:n.insertText,label:n.label,handledMimeType:n.handledMimeType,yieldTo:n.yieldTo}:void 0}}class z1 extends j1{constructor(){super(...arguments),this.id="text",this.dropMimeTypes=[Dd.text],this.pasteMimeTypes=[Dd.text]}async getEdit(t,i){const e=t.get(Dd.text);if(!e)return;if(t.has(Dd.uriList))return;const s=await e.asString();return{handledMimeType:Dd.text,label:ot(0,"Insert Plain Text"),detail:W1,insertText:s}}}class H1 extends j1{constructor(){super(...arguments),this.id="uri",this.dropMimeTypes=[Dd.uriList],this.pasteMimeTypes=[Dd.uriList]}async getEdit(t,i){const e=await U1(t);if(!e.length||i.isCancellationRequested)return;let s=0;const n=e.map((({uri:t,originalText:i})=>t.scheme===ka.file?t.fsPath:(s++,i))).join(" ");let o;return o=ot(0,s>0?e.length>1?"Insert Uris":"Insert Uri":e.length>1?"Insert Paths":"Insert Path"),{handledMimeType:Dd.uriList,insertText:n,label:o,detail:W1}}}let V1=class extends j1{constructor(t){super(),this._workspaceContextService=t,this.id="relativePath",this.dropMimeTypes=[Dd.uriList],this.pasteMimeTypes=[Dd.uriList]}async getEdit(t,i){const e=await U1(t);if(!e.length||i.isCancellationRequested)return;const s=m(e.map((({uri:t})=>{const i=this._workspaceContextService.getWorkspaceFolder(t);return i?SA(i.uri,t):void 0})));return s.length?{handledMimeType:Dd.uriList,insertText:s.join(" "),label:ot(0,e.length>1?"Insert Relative Paths":"Insert Relative Path"),detail:W1}:void 0}};async function U1(t){const i=t.get(Dd.uriList);if(!i)return[];const e=await i.asString(),s=[];for(const t of m1.parse(e))try{s.push({uri:ms.parse(t),originalText:t})}catch(t){}return s}V1=P1([$1(0,ZO)],V1);let q1=class extends te{constructor(t,i){super(),this._register(t.documentOnDropEditProvider.register("*",new z1)),this._register(t.documentOnDropEditProvider.register("*",new H1)),this._register(t.documentOnDropEditProvider.register("*",new V1(i)))}};q1=P1([$1(0,xg),$1(1,ZO)],q1);let K1=class extends te{constructor(t,i){super(),this._register(t.documentPasteEditProvider.register("*",new z1)),this._register(t.documentPasteEditProvider.register("*",new H1)),this._register(t.documentPasteEditProvider.register("*",new V1(i)))}};K1=P1([$1(0,xg),$1(1,ZO)],K1),lu(N1.ID,N1,0),GH(K1),hu(new class extends eu{constructor(){super({id:O1,precondition:I1,kbOpts:{weight:100,primary:2137}})}runEditorCommand(t,i,e){var s;return null===(s=N1.get(i))||void 0===s?void 0:s.changePasteType()}}),cu(class extends su{constructor(){super({id:"editor.action.pasteAs",label:ot(0,"Paste As..."),alias:"Paste As...",precondition:void 0,metadata:{description:"Paste as",args:[{name:"args",schema:{type:"object",properties:{id:{type:"string",description:ot(0,"The id of the paste edit to try applying. If not provided, the editor will show a picker.")}}}}]}})}run(t,i,e){var s;const n="string"==typeof(null==e?void 0:e.id)?e.id:void 0;return null===(s=N1.get(i))||void 0===s?void 0:s.pasteAs(n)}});class G1{constructor(t){this.identifier=t}}const Z1=dr("treeViewsDndService");Cd(Z1,class{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(t){if(t&&this._dragOperations.has(t)){const i=this._dragOperations.get(t);return this._dragOperations.delete(t),i}}},1);var Q1,J1=function(t,i){return function(e,s){i(e,s,t)}};const Y1="editor.experimental.dropIntoEditor.defaultProvider",X1="editor.changeDropType",t2=new ch("dropWidgetVisible",!1,ot(0,"Whether the drop widget is showing"));let i2=Q1=class extends te{static get(t){return t.getContribution(Q1.ID)}constructor(t,i,e,s,n){super(),this._configService=e,this._languageFeaturesService=s,this._treeViewsDragAndDropService=n,this.treeItemsTransfer=w1.getInstance(),this._dropProgressManager=this._register(i.createInstance(D1,"dropIntoEditor",t)),this._postDropWidgetManager=this._register(i.createInstance(F1,"dropIntoEditor",t,t2,{id:X1,label:ot(0,"Show drop options...")})),this._register(t.onDropIntoEditor((i=>this.onDropIntoEditor(t,i.position,i.event))))}changeDropType(){this._postDropWidgetManager.tryShowSelector()}async onDropIntoEditor(t,i,e){var s;if(!e.dataTransfer||!t.hasModel())return;null===(s=this._currentOperation)||void 0===s||s.cancel(),t.focus(),t.setPosition(i);const n=nc((async s=>{const o=new CK(t,1,void 0,s);try{const n=await this.extractDataTransferData(e);if(0===n.size||o.token.isCancellationRequested)return;const r=t.getModel();if(!r)return;const h=this._languageFeaturesService.documentOnDropEditProvider.ordered(r).filter((t=>!t.dropMimeTypes||t.dropMimeTypes.some((t=>n.matches(t))))),c=await this.getDropEdits(h,r,i,n,o);if(o.token.isCancellationRequested)return;if(c.length){const e=this.getInitialActiveEditIndex(r,c),n="afterDrop"===t.getOption(36).showDropSelector;await this._postDropWidgetManager.applyEditAndShowIfNeeded([Ms.fromPositions(i)],{activeEditIndex:e,allEdits:c},n,s)}}finally{o.dispose(),this._currentOperation===n&&(this._currentOperation=void 0)}}));this._dropProgressManager.showWhile(i,ot(0,"Running drop handlers. Click to cancel"),n),this._currentOperation=n}async getDropEdits(t,i,e,s,n){const o=await oc(Promise.all(t.map((async t=>{try{const o=await t.provideDocumentOnDropEdits(i,e,s,n.token);if(o)return{...o,providerId:t.id}}catch(t){console.error(t)}}))),n.token);return x1(m(null!=o?o:[]))}getInitialActiveEditIndex(t,i){const e=this._configService.getValue(Y1,{resource:t.uri});for(const[t,s]of Object.entries(e)){const e=i.findIndex((i=>s===i.providerId&&i.handledMimeType&&p1(t,[i.handledMimeType])));if(e>=0)return e}return 0}async extractDataTransferData(t){if(!t.dataTransfer)return new d1;const i=k1(t.dataTransfer);if(this.treeItemsTransfer.hasData(G1.prototype)){const t=this.treeItemsTransfer.getData(G1.prototype);if(Array.isArray(t))for(const e of t){const t=await this._treeViewsDragAndDropService.removeDragOperationTransfer(e.identifier);if(t)for(const[e,s]of t)i.replace(e,s)}}return i}};i2.ID="editor.contrib.dropIntoEditorController",i2=Q1=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([J1(1,ur),J1(2,pd),J1(3,xg),J1(4,Z1)],i2),lu(i2.ID,i2,2),hu(new class extends eu{constructor(){super({id:X1,precondition:t2,kbOpts:{weight:100,primary:2137}})}runEditorCommand(t,i,e){var s;null===(s=i2.get(i))||void 0===s||s.changeDropType()}}),GH(q1),Dh.as(Md).registerConfiguration({...aO,properties:{[Y1]:{type:"object",scope:5,description:ot(0,"Configures the default drop provider to use for content of a given mime type."),default:{},additionalProperties:{type:"string"}}}});class e2{constructor(t){this._editor=t,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const t=this._findScopeDecorationIds.map((t=>this._editor.getModel().getDecorationRange(t))).filter((t=>!!t));if(t.length)return t}return null}getStartPosition(){return this._startPosition}setStartPosition(t){this._startPosition=t,this.setCurrentFindMatch(null)}_getDecorationIndex(t){const i=this._decorations.indexOf(t);return i>=0?i+1:1}getDecorationRangeAt(t){const i=t{if(null!==this._highlightedDecorationId&&(t.changeDecorationOptions(this._highlightedDecorationId,e2._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),null!==i&&(this._highlightedDecorationId=i,t.changeDecorationOptions(this._highlightedDecorationId,e2._CURRENT_FIND_MATCH_DECORATION)),null!==this._rangeHighlightDecorationId&&(t.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),null!==i){let e=this._editor.getModel().getDecorationRange(i);if(e.startLineNumber!==e.endLineNumber&&1===e.endColumn){const t=e.endLineNumber-1,i=this._editor.getModel().getLineMaxColumn(t);e=new Ms(e.startLineNumber,e.startColumn,t,i)}this._rangeHighlightDecorationId=t.addDecoration(e,e2._RANGE_HIGHLIGHT_DECORATION)}})),e}set(t,i){this._editor.changeDecorations((e=>{let s=e2._FIND_MATCH_DECORATION;const n=[];if(t.length>1e3){s=e2._FIND_MATCH_NO_OVERVIEW_DECORATION;const i=this._editor.getModel().getLineCount(),e=this._editor.getLayoutInfo().height,o=Math.max(2,Math.ceil(3/(e/i)));let r=t[0].range.startLineNumber,h=t[0].range.endLineNumber;for(let i=1,e=t.length;i=e.startLineNumber?e.endLineNumber>h&&(h=e.endLineNumber):(n.push({range:new Ms(r,1,h,1),options:e2._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),r=e.startLineNumber,h=e.endLineNumber)}n.push({range:new Ms(r,1,h,1),options:e2._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const o=new Array(t.length);for(let i=0,e=t.length;ie.removeDecoration(t))),this._findScopeDecorationIds=[]),(null==i?void 0:i.length)&&(this._findScopeDecorationIds=i.map((t=>e.addDecoration(t,e2._FIND_SCOPE_DECORATION))))}))}matchBeforePosition(t){if(0===this._decorations.length)return null;for(let i=this._decorations.length-1;i>=0;i--){const e=this._decorations[i],s=this._editor.getModel().getDecorationRange(e);if(s&&!(s.endLineNumber>t.lineNumber)){if(s.endLineNumbert.column))return s}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(t){if(0===this._decorations.length)return null;for(let i=0,e=this._decorations.length;it.lineNumber)return s;if(!(s.startColumn0){const t=[];for(let i=0;iMs.compareRangesUsingStarts(t.range,i.range)));const e=[];let s=t[0];for(let i=1;i0?i[0].toUpperCase()+i.substr(1):t[0][0].toUpperCase()!==t[0][0]&&i.length>0?i[0].toLowerCase()+i.substr(1):i}return i}function o2(t,i,e){return-1!==t[0].indexOf(e)&&-1!==i.indexOf(e)&&t[0].split(e).length===i.split(e).length}function r2(t,i,e){const s=i.split(e),n=t[0].split(e);let o="";return s.forEach(((t,i)=>{o+=n2([n[i]],t)+e})),o.slice(0,-1)}class h2{constructor(t){this.staticValue=t,this.kind=0}}class c2{constructor(t){this.pieces=t,this.kind=1}}class a2{static fromStaticValue(t){return new a2([l2.staticValue(t)])}get hasReplacementPatterns(){return 1===this._state.kind}constructor(t){this._state=t&&0!==t.length?1===t.length&&null!==t[0].staticValue?new h2(t[0].staticValue):new c2(t):new h2("")}buildReplaceString(t,i){if(0===this._state.kind)return i?n2(t,this._state.staticValue):this._state.staticValue;let e="";for(let i=0,s=this._state.pieces.length;i0){const t=[],i=s.caseOps.length;let e=0;for(let o=0,r=n.length;o=i){t.push(n.slice(o));break}switch(s.caseOps[e]){case"U":t.push(n[o].toUpperCase());break;case"u":t.push(n[o].toUpperCase()),e++;break;case"L":t.push(n[o].toLowerCase());break;case"l":t.push(n[o].toLowerCase()),e++;break;default:t.push(n[o])}}n=t.join("")}e+=n}return e}static _substitute(t,i){if(null===i)return"";if(0===t)return i[0];let e="";for(;t>0;){if(tthis.research(!1)),100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition((t=>{3!==t.reason&&5!==t.reason&&6!==t.reason||this._decorations.setStartPosition(this._editor.getPosition())}))),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent((t=>{this._ignoreModelContentChanged||(t.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())}))),this._toDispose.add(this._state.onFindReplaceStateChange((t=>this._onStateChanged(t)))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,Qi(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(t){!this._isDisposed&&this._editor.hasModel()&&(t.searchString||t.isReplaceRevealed||t.isRegex||t.wholeWord||t.matchCase||t.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet((()=>{t.searchScope?this.research(t.moveCursor,this._state.searchScope):this.research(t.moveCursor)}),240)):t.searchScope?this.research(t.moveCursor,this._state.searchScope):this.research(t.moveCursor))}static _getSearchRange(t,i){return i||t.getFullModelRange()}research(t,i){let e=null;void 0!==i?null!==i&&(e=Array.isArray(i)?i:[i]):e=this._decorations.getFindScopes(),null!==e&&(e=e.map((t=>{if(t.startLineNumber!==t.endLineNumber){let i=t.endLineNumber;return 1===t.endColumn&&(i-=1),new Ms(t.startLineNumber,1,i,this._editor.getModel().getLineMaxColumn(i))}return t})));const s=this._findMatches(e,!1,F2);this._decorations.set(s,e);const n=this._editor.getSelection();let o=this._decorations.getCurrentMatchesPosition(n);if(0===o&&s.length>0){const t=ap(s.map((t=>t.range)),(t=>Ms.compareRangesUsingStarts(t,n)>=0));o=t>0?t-1+1:o}this._state.changeMatchInfo(o,this._decorations.getCount(),void 0),t&&this._editor.getOption(41).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){const t=this._decorations.getFindScope();return t&&this._editor.revealRangeInCenterIfOutsideViewport(t,0),!0}return!1}_setCurrentFindMatch(t){const i=this._decorations.setCurrentFindMatch(t);this._state.changeMatchInfo(i,this._decorations.getCount(),t),this._editor.setSelection(t),this._editor.revealRangeInCenterIfOutsideViewport(t,0)}_prevSearchPosition(t){const i=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:e,column:s}=t;const n=this._editor.getModel();return i||1===s?(1===e?e=n.getLineCount():e--,s=n.getLineMaxColumn(e)):s--,new As(e,s)}_moveToPrevMatch(t,i=!1){if(!this._state.canNavigateBack()){const i=this._decorations.matchAfterPosition(t);return void(i&&this._setCurrentFindMatch(i))}if(this._decorations.getCount()=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:e,column:s}=t;const n=this._editor.getModel();return i||s===n.getLineMaxColumn(e)?(e===n.getLineCount()?e=1:e++,s=1):s++,new As(e,s)}_moveToNextMatch(t){if(!this._state.canNavigateForward()){const i=this._decorations.matchBeforePosition(t);return void(i&&this._setCurrentFindMatch(i))}if(this._decorations.getCount()=n)break;const o=t.charCodeAt(s);if(36===o){e.emitUnchanged(s-1),e.emitStatic("$",s+1);continue}if(48===o||38===o){e.emitUnchanged(s-1),e.emitMatchIndex(0,s+1,i),i.length=0;continue}if(49<=o&&o<=57){let r=o-48;if(s+1=n)break;const o=t.charCodeAt(s);switch(o){case 92:e.emitUnchanged(s-1),e.emitStatic("\\",s+1);break;case 110:e.emitUnchanged(s-1),e.emitStatic("\n",s+1);break;case 116:e.emitUnchanged(s-1),e.emitStatic("\t",s+1);break;case 117:case 85:case 108:case 76:e.emitUnchanged(s-1),e.emitStatic("",s+1),i.push(String.fromCharCode(o))}}}return e.finalize()}(this._state.replaceString):a2.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;const t=this._getReplacePattern(),i=this._editor.getSelection(),e=this._getNextMatch(i.getStartPosition(),!0,!1);if(e)if(i.equalsRange(e.range)){const s=t.buildReplaceString(e.matches,this._state.preserveCase),n=new xC(i,s);this._executeEditorCommand("replace",n),this._decorations.setStartPosition(new As(i.startLineNumber,i.startColumn+s.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(e.range)}_findMatches(t,i,e){const s=(t||[null]).map((t=>T2._getSearchRange(this._editor.getModel(),t)));return this._editor.getModel().findMatches(this._state.searchString,s,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(129):null,i,e)}replaceAll(){if(!this._hasMatches())return;const t=this._decorations.getFindScopes();null===t&&this._state.matchesCount>=F2?this._largeReplaceAll():this._regularReplaceAll(t),this.research(!1)}_largeReplaceAll(){const t=new Kf(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(129):null).parseSearchRequest();if(!t)return;let i=t.regex;if(!i.multiline){let t="mu";i.ignoreCase&&(t+="i"),i.global&&(t+="g"),i=new RegExp(i.source,t)}const e=this._editor.getModel(),s=e.getValue(1),n=e.getFullModelRange(),o=this._getReplacePattern();let r;const h=this._state.preserveCase;r=s.replace(i,o.hasReplacementPatterns||h?function(){return o.buildReplaceString(arguments,h)}:o.buildReplaceString(null,h));const c=new EC(n,r,this._editor.getSelection());this._executeEditorCommand("replaceAll",c)}_regularReplaceAll(t){const i=this._getReplacePattern(),e=this._findMatches(t,i.hasReplacementPatterns||this._state.preserveCase,1073741824),s=[];for(let t=0,n=e.length;tt.range)),s);this._executeEditorCommand("replaceAll",n)}selectAllMatches(){if(!this._hasMatches())return;const t=this._decorations.getFindScopes();let i=this._findMatches(t,!1,1073741824).map((t=>new Ls(t.range.startLineNumber,t.range.startColumn,t.range.endLineNumber,t.range.endColumn)));const e=this._editor.getSelection();for(let t=0,s=i.length;tthis._hide()),2e3)),this._isVisible=!1,this._editor=t,this._state=i,this._keybindingService=e,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.style.zIndex="12",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");const s={inputActiveOptionBorder:aw(Dw),inputActiveOptionForeground:aw(Aw),inputActiveOptionBackground:aw(Ew)};this.caseSensitive=this._register(new o$({appendTitle:this._keybindingLabelFor(C2),isChecked:this._state.matchCase,...s})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange((()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)}))),this.wholeWords=this._register(new r$({appendTitle:this._keybindingLabelFor(S2),isChecked:this._state.wholeWord,...s})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange((()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)}))),this.regex=this._register(new h$({appendTitle:this._keybindingLabelFor(D2),isChecked:this._state.isRegex,...s})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange((()=>{this._state.change({isRegex:this.regex.checked},!1)}))),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange((t=>{let i=!1;t.isRegex&&(this.regex.checked=this._state.isRegex,i=!0),t.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,i=!0),t.matchCase&&(this.caseSensitive.checked=this._state.matchCase,i=!0),!this._state.isRevealed&&i&&this._revealTemporarily()}))),this._register(Va(this._domNode,Ll.MOUSE_LEAVE,(()=>this._onMouseLeave()))),this._register(Va(this._domNode,"mouseover",(()=>this._onMouseOver())))}_keybindingLabelFor(t){const i=this._keybindingService.lookupKeybinding(t);return i?` (${i.getLabel()})`:""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return R2.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}}function O2(t,i){return 1===t||2!==t&&i}R2.ID="editor.contrib.findOptionsWidget";class I2 extends te{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return O2(this._isRegexOverride,this._isRegex)}get wholeWord(){return O2(this._wholeWordOverride,this._wholeWord)}get matchCase(){return O2(this._matchCaseOverride,this._matchCase)}get preserveCase(){return O2(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}constructor(){super(),this._onFindReplaceStateChange=this._register(new de),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(t,i,e){const s={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let n=!1;0===i&&(t=0),t>i&&(t=i),this._matchesPosition!==t&&(this._matchesPosition=t,s.matchesPosition=!0,n=!0),this._matchesCount!==i&&(this._matchesCount=i,s.matchesCount=!0,n=!0),void 0!==e&&(Ms.equalsRange(this._currentMatch,e)||(this._currentMatch=e,s.currentMatch=!0,n=!0)),n&&this._onFindReplaceStateChange.fire(s)}change(t,i,e=!0){var s;const n={moveCursor:i,updateHistory:e,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let o=!1;const r=this.isRegex,h=this.wholeWord,c=this.matchCase,a=this.preserveCase;void 0!==t.searchString&&this._searchString!==t.searchString&&(this._searchString=t.searchString,n.searchString=!0,o=!0),void 0!==t.replaceString&&this._replaceString!==t.replaceString&&(this._replaceString=t.replaceString,n.replaceString=!0,o=!0),void 0!==t.isRevealed&&this._isRevealed!==t.isRevealed&&(this._isRevealed=t.isRevealed,n.isRevealed=!0,o=!0),void 0!==t.isReplaceRevealed&&this._isReplaceRevealed!==t.isReplaceRevealed&&(this._isReplaceRevealed=t.isReplaceRevealed,n.isReplaceRevealed=!0,o=!0),void 0!==t.isRegex&&(this._isRegex=t.isRegex),void 0!==t.wholeWord&&(this._wholeWord=t.wholeWord),void 0!==t.matchCase&&(this._matchCase=t.matchCase),void 0!==t.preserveCase&&(this._preserveCase=t.preserveCase),void 0!==t.searchScope&&((null===(s=t.searchScope)||void 0===s?void 0:s.every((t=>{var i;return null===(i=this._searchScope)||void 0===i?void 0:i.some((i=>!Ms.equalsRange(i,t)))})))||(this._searchScope=t.searchScope,n.searchScope=!0,o=!0)),void 0!==t.loop&&this._loop!==t.loop&&(this._loop=t.loop,n.loop=!0,o=!0),void 0!==t.isSearching&&this._isSearching!==t.isSearching&&(this._isSearching=t.isSearching,n.isSearching=!0,o=!0),void 0!==t.filters&&(this._filters?this._filters.update(t.filters):this._filters=t.filters,n.filters=!0,o=!0),this._isRegexOverride=void 0!==t.isRegexOverride?t.isRegexOverride:0,this._wholeWordOverride=void 0!==t.wholeWordOverride?t.wholeWordOverride:0,this._matchCaseOverride=void 0!==t.matchCaseOverride?t.matchCaseOverride:0,this._preserveCaseOverride=void 0!==t.preserveCaseOverride?t.preserveCaseOverride:0,r!==this.isRegex&&(o=!0,n.isRegex=!0),h!==this.wholeWord&&(o=!0,n.wholeWord=!0),c!==this.matchCase&&(o=!0,n.matchCase=!0),a!==this.preserveCase&&(o=!0,n.preserveCase=!0),o&&this._onFindReplaceStateChange.fire(n)}canNavigateBack(){return this.canNavigateInLoop()||1!==this.matchesPosition}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition=F2}}const _2=ot(0,"input"),N2=ot(0,"Preserve Case");class B2 extends i${constructor(t){super({icon:Os.preserveCase,title:N2+t.appendTitle,isChecked:t.isChecked,inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionForeground:t.inputActiveOptionForeground,inputActiveOptionBackground:t.inputActiveOptionBackground})}}class P2 extends pk{constructor(t,i,e,s){super(),this._showOptionButtons=e,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new de),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new de),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new de),this._onInput=this._register(new de),this._onKeyUp=this._register(new de),this._onPreserveCaseKeyDown=this._register(new de),this.onPreserveCaseKeyDown=this._onPreserveCaseKeyDown.event,this.contextViewProvider=i,this.placeholder=s.placeholder||"",this.validation=s.validation,this.label=s.label||_2;const n=s.appendPreserveCaseLabel||"",o=s.history||[],r=!!s.flexibleHeight,h=!!s.flexibleWidth,c=s.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new d$(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:o,showHistoryHint:s.showHistoryHint,flexibleHeight:r,flexibleWidth:h,flexibleMaxHeight:c,inputBoxStyles:s.inputBoxStyles})),this.preserveCase=this._register(new B2({appendTitle:n,isChecked:!1,...s.toggleStyles})),this._register(this.preserveCase.onChange((t=>{this._onDidOptionChange.fire(t),!t&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()}))),this._register(this.preserveCase.onKeyDown((t=>{this._onPreserveCaseKeyDown.fire(t)}))),this.cachedOptionsWidth=this._showOptionButtons?this.preserveCase.width():0;const a=[this.preserveCase.domNode];this.onkeydown(this.domNode,(t=>{if(t.equals(15)||t.equals(17)||t.equals(9)){const i=a.indexOf(this.domNode.ownerDocument.activeElement);if(i>=0){let e=-1;t.equals(17)?e=(i+1)%a.length:t.equals(15)&&(e=0===i?a.length-1:i-1),t.equals(9)?(a[i].blur(),this.inputBox.focus()):e>=0&&a[e].focus(),Fl(t,!0)}}}));const l=document.createElement("div");l.className="controls",l.style.display=this._showOptionButtons?"block":"none",l.appendChild(this.preserveCase.domNode),this.domNode.appendChild(l),null==t||t.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,(t=>this._onKeyDown.fire(t))),this.onkeyup(this.inputBox.inputElement,(t=>this._onKeyUp.fire(t))),this.oninput(this.inputBox.inputElement,(()=>this._onInput.fire())),this.onmousedown(this.inputBox.inputElement,(t=>this._onMouseDown.fire(t)))}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(t){t?this.enable():this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(t){this.preserveCase.checked=t}focusOnPreserve(){this.preserveCase.focus()}validate(){var t;null===(t=this.inputBox)||void 0===t||t.validate()}set width(t){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=t+"px"}dispose(){super.dispose()}}var $2=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},W2=function(t,i){return function(e,s){i(e,s,t)}};const j2=new ch("suggestWidgetVisible",!1,ot(0,"Whether suggestion are visible")),z2="historyNavigationWidgetFocus",H2="historyNavigationForwardsEnabled",V2="historyNavigationBackwardsEnabled";let U2;const q2=[];function K2(t,i){if(q2.includes(i))throw new Error("Cannot register the same widget multiple times");q2.push(i);const e=new Xi,s=new ch(z2,!1).bindTo(t),n=new ch(H2,!0).bindTo(t),o=new ch(V2,!0).bindTo(t),r=()=>{s.set(!0),U2=i},h=()=>{s.set(!1),U2===i&&(U2=void 0)};return gl(i.element)&&r(),e.add(i.onDidFocus((()=>r()))),e.add(i.onDidBlur((()=>h()))),e.add(Yi((()=>{q2.splice(q2.indexOf(i),1),h()}))),{historyNavigationForwardsEnablement:n,historyNavigationBackwardsEnablement:o,dispose(){e.dispose()}}}let G2=class extends p${constructor(t,i,e,s){super(t,i,e);const n=this._register(s.createScoped(this.inputBox.element));this._register(K2(n,this.inputBox))}};G2=$2([W2(3,ah)],G2);let Z2=class extends P2{constructor(t,i,e,s,n=!1){super(t,i,n,e);const o=this._register(s.createScoped(this.inputBox.element));this._register(K2(o,this.inputBox))}};function Q2(t){var i,e;return"Up"===(null===(i=t.lookupKeybinding("history.showPrevious"))||void 0===i?void 0:i.getElectronAccelerator())&&"Down"===(null===(e=t.lookupKeybinding("history.showNext"))||void 0===e?void 0:e.getElectronAccelerator())}Z2=$2([W2(3,ah)],Z2),Ah.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:zr.and(zr.has(z2),zr.equals(V2,!0),zr.not("isComposing"),j2.isEqualTo(!1)),primary:16,secondary:[528],handler:()=>{null==U2||U2.showPreviousValue()}}),Ah.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:zr.and(zr.has(z2),zr.equals(H2,!0),zr.not("isComposing"),j2.isEqualTo(!1)),primary:18,secondary:[530],handler:()=>{null==U2||U2.showNextValue()}});const J2=Hz("find-selection",Os.selection,ot(0,"Icon for 'Find in Selection' in the editor find widget.")),Y2=Hz("find-collapsed",Os.chevronRight,ot(0,"Icon to indicate that the editor find widget is collapsed.")),X2=Hz("find-expanded",Os.chevronDown,ot(0,"Icon to indicate that the editor find widget is expanded.")),t4=Hz("find-replace",Os.replace,ot(0,"Icon for 'Replace' in the editor find widget.")),i4=Hz("find-replace-all",Os.replaceAll,ot(0,"Icon for 'Replace All' in the editor find widget.")),e4=Hz("find-previous-match",Os.arrowUp,ot(0,"Icon for 'Find Previous' in the editor find widget.")),s4=Hz("find-next-match",Os.arrowDown,ot(0,"Icon for 'Find Next' in the editor find widget.")),n4=ot(0,"Find / Replace"),o4=ot(0,"Find"),r4=ot(0,"Find"),h4=ot(0,"Previous Match"),c4=ot(0,"Next Match"),a4=ot(0,"Find in Selection"),l4=ot(0,"Close"),u4=ot(0,"Replace"),d4=ot(0,"Replace"),f4=ot(0,"Replace"),p4=ot(0,"Replace All"),g4=ot(0,"Toggle Replace"),m4=ot(0,"Only the first {0} results are highlighted, but all find operations work on the entire text.",F2),w4=ot(0,"{0} of {1}"),v4=ot(0,"No results"),b4=419;let y4=69;const k4="ctrlEnterReplaceAll.windows.donotask",x4=Ct?256:2048;class C4{constructor(t){this.afterLineNumber=t,this.heightInPx=33,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function S4(t,i,e){const s=!!i.match(/\n/);e&&s&&e.selectionStart>0&&t.stopPropagation()}function D4(t,i,e){const s=!!i.match(/\n/);e&&s&&e.selectionEndthis._updateHistoryDelayer.cancel()))),this._register(this._state.onFindReplaceStateChange((t=>this._onStateChanged(t)))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration((t=>{if(t.hasChanged(90)&&(this._codeEditor.getOption(90)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),t.hasChanged(143)&&this._tryUpdateWidgetWidth(),t.hasChanged(2)&&this.updateAccessibilitySupport(),t.hasChanged(41)){const t=this._codeEditor.getOption(41).loop;this._state.change({loop:t},!1);const i=this._codeEditor.getOption(41).addExtraSpaceOnTop;i&&!this._viewZone&&(this._viewZone=new C4(0),this._showViewZone()),!i&&this._viewZone&&this._removeViewZone()}}))),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection((()=>{this._isVisible&&this._updateToggleSelectionFindButton()}))),this._register(this._codeEditor.onDidFocusEditorWidget((async()=>{if(this._isVisible){const t=await this._controller.getGlobalBufferTerm();t&&t!==this._state.searchString&&(this._state.change({searchString:t},!1),this._findInput.select())}}))),this._findInputFocused=f2.bindTo(o),this._findFocusTracker=this._register(Rl(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus((()=>{this._findInputFocused.set(!0),this._updateSearchScope()}))),this._register(this._findFocusTracker.onDidBlur((()=>{this._findInputFocused.set(!1)}))),this._replaceInputFocused=p2.bindTo(o),this._replaceFocusTracker=this._register(Rl(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus((()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()}))),this._register(this._replaceFocusTracker.onDidBlur((()=>{this._replaceInputFocused.set(!1)}))),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(41).addExtraSpaceOnTop&&(this._viewZone=new C4(0)),this._register(this._codeEditor.onDidChangeModel((()=>{this._isVisible&&(this._viewZoneId=void 0)}))),this._register(this._codeEditor.onDidScrollChange((t=>{t.scrollTopChanged?this._layoutViewZone():setTimeout((()=>{this._layoutViewZone()}),0)})))}getId(){return E4.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(t){if(t.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}t.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),t.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),t.isReplaceRevealed&&(this._state.isReplaceRevealed?this._codeEditor.getOption(90)||this._isReplaceVisible||(this._isReplaceVisible=!0,this._replaceInput.width=ol(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(t.isRevealed||t.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),t.isRegex&&this._findInput.setRegex(this._state.isRegex),t.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),t.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),t.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),t.searchScope&&(this._toggleSelectionFind.checked=!!this._state.searchScope,this._updateToggleSelectionFindButton()),(t.searchString||t.matchesCount||t.matchesPosition)&&(this._domNode.classList.toggle("no-results",this._state.searchString.length>0&&0===this._state.matchesCount),this._updateMatchesCount(),this._updateButtons()),(t.searchString||t.currentMatch)&&this._layoutViewZone(),t.updateHistory&&this._delayedUpdateHistory(),t.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,Bi)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){let t;if(this._matchesCount.style.minWidth=y4+"px",this._matchesCount.title=this._state.matchesCount>=F2?m4:"",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild),this._state.matchesCount>0){let i=String(this._state.matchesCount);this._state.matchesCount>=F2&&(i+="+");let e=String(this._state.matchesPosition);"0"===e&&(e="?"),t=qn(w4,e,i)}else t=v4;this._matchesCount.appendChild(document.createTextNode(t)),Pm(this._getAriaLabel(t,this._state.currentMatch,this._state.searchString)),y4=Math.max(y4,this._matchesCount.clientWidth)}_getAriaLabel(t,i,e){if(t===v4)return""===e?ot(0,"{0} found",t):ot(0,"{0} found for '{1}'",t,e);if(i){const s=ot(0,"{0} found for '{1}', at {2}",t,e,i.startLineNumber+":"+i.startColumn),n=this._codeEditor.getModel();return n&&i.startLineNumber<=n.getLineCount()&&i.startLineNumber>=1?`${n.getLineContent(i.startLineNumber)}, ${s}`:s}return ot(0,"{0} found for '{1}'",t,e)}_updateToggleSelectionFindButton(){const t=this._codeEditor.getSelection();this._isVisible&&(this._toggleSelectionFind.checked||t&&(t.startLineNumber!==t.endLineNumber||t.startColumn!==t.endColumn))?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);const t=this._state.searchString.length>0,i=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&t&&i&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&t&&i&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&t),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&t),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);const e=!this._codeEditor.getOption(90);this._toggleReplaceBtn.setEnabled(this._isVisible&&e)}_reveal(){if(this._revealTimeouts.forEach((t=>{clearTimeout(t)})),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const t=this._codeEditor.getSelection();switch(this._codeEditor.getOption(41).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":this._toggleSelectionFind.checked=!!t&&t.startLineNumber!==t.endLineNumber}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout((()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false")}),0)),this._revealTimeouts.push(setTimeout((()=>{this._findInput.validate()}),200)),this._codeEditor.layoutOverlayWidget(this);let i=!0;if(this._codeEditor.getOption(41).seedSearchStringFromSelection&&t){const e=this._codeEditor.getDomNode();if(e){const s=nl(e),n=this._codeEditor.getScrolledVisiblePosition(t.getStartPosition()),o=s.left+(n?n.left:0);if(this._viewZone&&(n?n.top:0)t.startLineNumber&&(i=!1);const e=sl(this._domNode).left;o>e&&(i=!1);const n=this._codeEditor.getScrolledVisiblePosition(t.getEndPosition());s.left+(n?n.left:0)>e&&(i=!1)}}}this._showViewZone(i)}}_hide(t){this._revealTimeouts.forEach((t=>{clearTimeout(t)})),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),t&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(t){if(!this._codeEditor.getOption(41).addExtraSpaceOnTop)return void this._removeViewZone();if(!this._isVisible)return;const i=this._viewZone;void 0===this._viewZoneId&&i&&this._codeEditor.changeViewZones((e=>{i.heightInPx=this._getHeight(),this._viewZoneId=e.addZone(i),this._codeEditor.setScrollTop(t||this._codeEditor.getScrollTop()+i.heightInPx)}))}_showViewZone(t=!0){if(!this._isVisible)return;if(!this._codeEditor.getOption(41).addExtraSpaceOnTop)return;void 0===this._viewZone&&(this._viewZone=new C4(0));const i=this._viewZone;this._codeEditor.changeViewZones((e=>{if(void 0!==this._viewZoneId){const s=this._getHeight();if(s===i.heightInPx)return;const n=s-i.heightInPx;return i.heightInPx=s,e.layoutZone(this._viewZoneId),void(t&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+n))}{let s=this._getHeight();if(s-=this._codeEditor.getOption(83).top,s<=0)return;i.heightInPx=s,this._viewZoneId=e.addZone(i),t&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+s)}}))}_removeViewZone(){this._codeEditor.changeViewZones((t=>{void 0!==this._viewZoneId&&(t.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))}))}_tryUpdateWidgetWidth(){if(!this._isVisible)return;if(!this._domNode.isConnected)return;const t=this._codeEditor.getLayoutInfo();if(t.contentWidth<=0)return void this._domNode.classList.add("hiddenEditor");this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");const i=t.width,e=t.minimap.minimapWidth;let s=!1,n=!1,o=!1;if(this._resized&&ol(this._domNode)>b4)return this._domNode.style.maxWidth=i-28-e-15+"px",void(this._replaceInput.width=ol(this._findInput.domNode));if(447+e>=i&&(n=!0),447+e-y4>=i&&(o=!0),447+e-y4>=i+50&&(s=!0),this._domNode.classList.toggle("collapsed-find-widget",s),this._domNode.classList.toggle("narrow-find-widget",o),this._domNode.classList.toggle("reduced-find-widget",n),o||s||(this._domNode.style.maxWidth=i-28-e-15+"px"),this._findInput.layout({collapsedFindWidget:s,narrowFindWidget:o,reducedFindWidget:n}),this._resized){const t=this._findInput.inputBox.element.clientWidth;t>0&&(this._replaceInput.width=t)}else this._isReplaceVisible&&(this._replaceInput.width=ol(this._findInput.domNode))}_getHeight(){let t=0;return t+=4,t+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(t+=4,t+=this._replaceInput.inputBox.height+2),t+=4,t}_tryUpdateHeight(){const t=this._getHeight();return(null===this._cachedHeight||this._cachedHeight!==t)&&(this._cachedHeight=t,this._domNode.style.height=`${t}px`,!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){const t=this._codeEditor.getSelections();t.map((t=>(1===t.endColumn&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.startLineNumber===t.endLineNumber||Ms.equalsRange(t,this._state.currentMatch)?null:t))).filter((t=>!!t)),t.length&&this._state.change({searchScope:t},!0)}}_onFindInputMouseDown(t){t.middleButton&&t.stopPropagation()}_onFindInputKeyDown(t){return t.equals(3|x4)?(this._keybindingService.dispatchEvent(t,t.target)||this._findInput.inputBox.insertAtCursor("\n"),void t.preventDefault()):t.equals(2)?(this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),void t.preventDefault()):t.equals(2066)?(this._codeEditor.focus(),void t.preventDefault()):t.equals(16)?S4(t,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):t.equals(18)?D4(t,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):void 0}_onReplaceInputKeyDown(t){return t.equals(3|x4)?(this._keybindingService.dispatchEvent(t,t.target)||(xt&&Dt&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(ot(0,"Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.")),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(k4,!0,0,0)),this._replaceInput.inputBox.insertAtCursor("\n")),void t.preventDefault()):t.equals(2)?(this._findInput.focusOnCaseSensitive(),void t.preventDefault()):t.equals(1026)?(this._findInput.focus(),void t.preventDefault()):t.equals(2066)?(this._codeEditor.focus(),void t.preventDefault()):t.equals(16)?S4(t,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):t.equals(18)?D4(t,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):void 0}getVerticalSashLeft(t){return 0}_keybindingLabelFor(t){const i=this._keybindingService.lookupKeybinding(t);return i?` (${i.getLabel()})`:""}_buildDomNode(){const t=!0,i=!0;this._findInput=this._register(new G2(null,this._contextViewProvider,{width:221,label:o4,placeholder:r4,appendCaseSensitiveLabel:this._keybindingLabelFor(C2),appendWholeWordsLabel:this._keybindingLabelFor(S2),appendRegexLabel:this._keybindingLabelFor(D2),validation:t=>{if(0===t.length||!this._findInput.getRegex())return null;try{return null}catch(t){return{content:t.message}}},flexibleHeight:t,flexibleWidth:i,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>Q2(this._keybindingService),inputBoxStyles:IB,toggleStyles:OB},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown((t=>this._onFindInputKeyDown(t)))),this._register(this._findInput.inputBox.onDidChange((()=>{this._ignoreChangeEvent||this._state.change({searchString:this._findInput.getValue()},!0)}))),this._register(this._findInput.onDidOptionChange((()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)}))),this._register(this._findInput.onCaseSensitiveKeyDown((t=>{t.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),t.preventDefault())}))),this._register(this._findInput.onRegexKeyDown((t=>{t.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),t.preventDefault())}))),this._register(this._findInput.inputBox.onDidHeightChange((()=>{this._tryUpdateHeight()&&this._showViewZone()}))),St&&this._register(this._findInput.onMouseDown((t=>this._onFindInputMouseDown(t)))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount(),this._prevBtn=this._register(new A4({label:h4+this._keybindingLabelFor(k2),icon:e4,onTrigger:()=>{K(this._codeEditor.getAction(k2)).run().then(void 0,Bi)}})),this._nextBtn=this._register(new A4({label:c4+this._keybindingLabelFor(y2),icon:s4,onTrigger:()=>{K(this._codeEditor.getAction(y2)).run().then(void 0,Bi)}}));const e=document.createElement("div");e.className="find-part",e.appendChild(this._findInput.domNode);const s=document.createElement("div");s.className="find-actions",e.appendChild(s),s.appendChild(this._matchesCount),s.appendChild(this._prevBtn.domNode),s.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new i$({icon:J2,title:a4+this._keybindingLabelFor(E2),isChecked:!1,inputActiveOptionBackground:aw(Ew),inputActiveOptionBorder:aw(Dw),inputActiveOptionForeground:aw(Aw)})),this._register(this._toggleSelectionFind.onChange((()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){const t=this._codeEditor.getSelections();t.map((t=>(1===t.endColumn&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()?null:t))).filter((t=>!!t)),t.length&&this._state.change({searchScope:t},!0)}}else this._state.change({searchScope:null},!0)}))),s.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new A4({label:l4+this._keybindingLabelFor(x2),icon:Gz,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:t=>{t.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),t.preventDefault())}})),this._replaceInput=this._register(new Z2(null,void 0,{label:u4,placeholder:d4,appendPreserveCaseLabel:this._keybindingLabelFor(A2),history:[],flexibleHeight:t,flexibleWidth:i,flexibleMaxHeight:118,showHistoryHint:()=>Q2(this._keybindingService),inputBoxStyles:IB,toggleStyles:OB},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown((t=>this._onReplaceInputKeyDown(t)))),this._register(this._replaceInput.inputBox.onDidChange((()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)}))),this._register(this._replaceInput.inputBox.onDidHeightChange((()=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()}))),this._register(this._replaceInput.onDidOptionChange((()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)}))),this._register(this._replaceInput.onPreserveCaseKeyDown((t=>{t.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),t.preventDefault())}))),this._replaceBtn=this._register(new A4({label:f4+this._keybindingLabelFor(M2),icon:t4,onTrigger:()=>{this._controller.replace()},onKeyDown:t=>{t.equals(1026)&&(this._closeBtn.focus(),t.preventDefault())}})),this._replaceAllBtn=this._register(new A4({label:p4+this._keybindingLabelFor(L2),icon:i4,onTrigger:()=>{this._controller.replaceAll()}}));const n=document.createElement("div");n.className="replace-part",n.appendChild(this._replaceInput.domNode);const o=document.createElement("div");o.className="replace-actions",n.appendChild(o),o.appendChild(this._replaceBtn.domNode),o.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new A4({label:g4,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=ol(this._findInput.domNode),this._replaceInput.inputBox.layout()),this._showViewZone()}})),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.ariaLabel=n4,this._domNode.role="dialog",this._domNode.style.width="419px",this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(e),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(n),this._resizeSash=new VP(this._domNode,this,{orientation:0,size:2}),this._resized=!1;let r=b4;this._register(this._resizeSash.onDidStart((()=>{r=ol(this._domNode)}))),this._register(this._resizeSash.onDidChange((t=>{this._resized=!0;const i=r+t.startX-t.currentX;i(parseFloat(Xa(this._domNode).maxWidth)||0)||(this._domNode.style.width=`${i}px`,this._isReplaceVisible&&(this._replaceInput.width=ol(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())}))),this._register(this._resizeSash.onDidReset((()=>{const t=ol(this._domNode);if(t{this._opts.onTrigger(),t.preventDefault()})),this.onkeydown(this._domNode,(t=>{var i,e;if(t.equals(10)||t.equals(3))return this._opts.onTrigger(),void t.preventDefault();null===(e=(i=this._opts).onKeyDown)||void 0===e||e.call(i,t)}))}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(t){this._domNode.classList.toggle("disabled",!t),this._domNode.setAttribute("aria-disabled",String(!t)),this._domNode.tabIndex=t?0:-1}setExpanded(t){this._domNode.setAttribute("aria-expanded",String(!!t)),t?(this._domNode.classList.remove(...Cr.asClassNameArray(Y2)),this._domNode.classList.add(...Cr.asClassNameArray(X2))):(this._domNode.classList.remove(...Cr.asClassNameArray(X2)),this._domNode.classList.add(...Cr.asClassNameArray(Y2)))}}nx(((t,i)=>{const e=(t,e)=>{e&&i.addRule(`.monaco-editor ${t} { background-color: ${e}; }`)};e(".findMatch",t.getColor(Lv)),e(".currentFindMatch",t.getColor(Mv)),e(".findScope",t.getColor(Fv)),e(".find-widget",t.getColor(uv));const s=t.getColor(yw);s&&i.addRule(`.monaco-editor .find-widget { box-shadow: 0 0 8px 2px ${s}; }`);const n=t.getColor(kw);n&&i.addRule(`.monaco-editor .find-widget { border-left: 1px solid ${n}; border-right: 1px solid ${n}; border-bottom: 1px solid ${n}; }`);const o=t.getColor(Rv);o&&i.addRule(`.monaco-editor .findMatch { border: 1px ${zy(t.type)?"dotted":"solid"} ${o}; box-sizing: border-box; }`);const r=t.getColor(Tv);r&&i.addRule(`.monaco-editor .currentFindMatch { border: 2px solid ${r}; padding: 1px; box-sizing: border-box; }`);const h=t.getColor(Ov);h&&i.addRule(`.monaco-editor .findScope { border: 1px ${zy(t.type)?"dashed":"solid"} ${h}; }`);const c=t.getColor(ww);c&&i.addRule(`.monaco-editor .find-widget { border: 1px solid ${c}; }`);const a=t.getColor(dv);a&&i.addRule(`.monaco-editor .find-widget { color: ${a}; }`);const l=t.getColor(pw);l&&i.addRule(`.monaco-editor .find-widget.no-results .matchesCount { color: ${l}; }`);const u=t.getColor(pv);if(u)i.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${u}; }`);else{const e=t.getColor(fv);e&&i.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${e}; }`)}const d=t.getColor(Nb);d&&i.addRule(`\n\t\t.monaco-editor .find-widget .button:not(.disabled):hover,\n\t\t.monaco-editor .find-widget .codicon-find-selection:hover {\n\t\t\tbackground-color: ${d} !important;\n\t\t}\n\t`);const f=t.getColor(mw);f&&i.addRule(`.monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: ${f}; }`)}));var M4,L4=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},F4=function(t,i){return function(e,s){i(e,s,t)}};function T4(t,i="single",e=!1){if(!t.hasModel())return null;const s=t.getSelection();if("single"===i&&s.startLineNumber===s.endLineNumber||"multiple"===i)if(s.isEmpty()){const i=t.getConfiguredWordAtPosition(s.getStartPosition());if(i&&!1===e)return i.word}else if(t.getModel().getValueLengthInRange(s)<524288)return t.getModel().getValueInRange(s);return null}let R4=M4=class extends te{get editor(){return this._editor}static get(t){return t.getContribution(M4.ID)}constructor(t,i,e,s,n){super(),this._editor=t,this._findWidgetVisible=d2.bindTo(i),this._contextKeyService=i,this._storageService=e,this._clipboardService=s,this._notificationService=n,this._updateHistoryDelayer=new hc(500),this._state=this._register(new I2),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange((t=>this._onStateChanged(t)))),this._model=null,this._register(this._editor.onDidChangeModel((()=>{const t=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),t&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(41).loop})})))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(t){this.saveQueryState(t),t.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),t.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(t){t.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1),t.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1),t.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1),t.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,1)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!f2.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){const t=this._editor.getSelections();t.map((t=>(1===t.endColumn&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._editor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()?null:t))).filter((t=>!!t)),t.length&&this._state.change({searchScope:t},!0)}}setSearchString(t){this._state.isRegex&&(t=Gn(t)),this._state.change({searchString:t},!1)}highlightFindOptions(t=!1){}async _start(t,i){if(this.disposeModel(),!this._editor.hasModel())return;const e={...i,isRevealed:!0};if("single"===t.seedSearchStringFromSelection){const i=T4(this._editor,t.seedSearchStringFromSelection,t.seedSearchStringFromNonEmptySelection);i&&(e.searchString=this._state.isRegex?Gn(i):i)}else if("multiple"===t.seedSearchStringFromSelection&&!t.updateSearchScope){const i=T4(this._editor,t.seedSearchStringFromSelection);i&&(e.searchString=i)}if(!e.searchString&&t.seedSearchStringFromGlobalClipboard){const t=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;t&&(e.searchString=t)}if(t.forceRevealReplace||e.isReplaceRevealed?e.isReplaceRevealed=!0:this._findWidgetVisible.get()||(e.isReplaceRevealed=!1),t.updateSearchScope){const t=this._editor.getSelections();t.some((t=>!t.isEmpty()))&&(e.searchScope=t)}e.loop=t.loop,this._state.change(e,!1),this._model||(this._model=new T2(this._editor,this._state))}start(t,i){return this._start(t,i)}moveToNextMatch(){return!!this._model&&(this._model.moveToNextMatch(),!0)}moveToPrevMatch(){return!!this._model&&(this._model.moveToPrevMatch(),!0)}goToMatch(t){return!!this._model&&(this._model.moveToMatch(t),!0)}replace(){return!!this._model&&(this._model.replace(),!0)}replaceAll(){var t;return!!this._model&&((null===(t=this._editor.getModel())||void 0===t?void 0:t.isTooLargeForHeapOperation())?(this._notificationService.warn(ot(0,"The file is too large to perform a replace all operation.")),!1):(this._model.replaceAll(),!0))}selectAllMatches(){return!!this._model&&(this._model.selectAllMatches(),this._editor.focus(),!0)}async getGlobalBufferTerm(){return this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""}setGlobalBufferTerm(t){this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(t)}};R4.ID="editor.contrib.findController",R4=M4=L4([F4(1,ah),F4(2,AB),F4(3,yH),F4(4,oT)],R4);let O4=class extends R4{constructor(t,i,e,s,n,o,r,h){super(t,e,r,h,o),this._contextViewService=i,this._keybindingService=s,this._themeService=n,this._widget=null,this._findOptionsWidget=null}async _start(t,i){this._widget||this._createFindWidget();const e=this._editor.getSelection();let s=!1;switch(this._editor.getOption(41).autoFindInSelection){case"always":s=!0;break;case"never":s=!1;break;case"multiline":s=!!e&&e.startLineNumber!==e.endLineNumber}t.updateSearchScope=t.updateSearchScope||s,await super._start(t,i),this._widget&&(2===t.shouldFocus?this._widget.focusReplaceInput():1===t.shouldFocus&&this._widget.focusFindInput())}highlightFindOptions(t=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!t?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new E4(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService)),this._findOptionsWidget=this._register(new R2(this._editor,this._state,this._keybindingService))}};O4=L4([F4(1,aI),F4(2,ah),F4(3,oC),F4(4,Xk),F4(5,oT),F4(6,AB),F4(7,yH)],O4),au(new nu({id:"actions.find",label:ot(0,"Find"),alias:"Find",precondition:zr.or(YC.focus,zr.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:Rh.MenubarEditMenu,group:"3_find",title:ot(0,"&&Find"),order:1}})).addImplementation(0,((t,i)=>{const e=R4.get(i);return!!e&&e.start({forceRevealReplace:!1,seedSearchStringFromSelection:"never"!==i.getOption(41).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===i.getOption(41).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:i.getOption(41).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:i.getOption(41).loop})}));const I4={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},regex:{type:"boolean"},regexOverride:{type:"number",description:ot(0,'Overrides "Use Regular Expression" flag.\nThe flag will not be saved for the future.\n0: Do Nothing\n1: True\n2: False')},wholeWord:{type:"boolean"},wholeWordOverride:{type:"number",description:ot(0,'Overrides "Match Whole Word" flag.\nThe flag will not be saved for the future.\n0: Do Nothing\n1: True\n2: False')},matchCase:{type:"boolean"},matchCaseOverride:{type:"number",description:ot(0,'Overrides "Math Case" flag.\nThe flag will not be saved for the future.\n0: Do Nothing\n1: True\n2: False')},preserveCase:{type:"boolean"},preserveCaseOverride:{type:"number",description:ot(0,'Overrides "Preserve Case" flag.\nThe flag will not be saved for the future.\n0: Do Nothing\n1: True\n2: False')},findInSelection:{type:"boolean"}}}}]};class _4 extends su{async run(t,i){const e=R4.get(i);e&&!this._run(e)&&(await e.start({forceRevealReplace:!1,seedSearchStringFromSelection:0===e.getState().searchString.length&&"never"!==i.getOption(41).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===i.getOption(41).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:i.getOption(41).loop}),this._run(e))}}class N4 extends su{async run(t,i){const e=R4.get(i);if(!e)return;const s=T4(i,"single",!1);s&&e.setSearchString(s),this._run(e)||(await e.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:i.getOption(41).loop}),this._run(e))}}au(new nu({id:"editor.action.startFindReplaceAction",label:ot(0,"Replace"),alias:"Replace",precondition:zr.or(YC.focus,zr.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:Rh.MenubarEditMenu,group:"3_find",title:ot(0,"&&Replace"),order:2}})).addImplementation(0,((t,i)=>{if(!i.hasModel()||i.getOption(90))return!1;const e=R4.get(i);if(!e)return!1;const s=i.getSelection(),n=e.isFindInputFocused(),o=!s.isEmpty()&&s.startLineNumber===s.endLineNumber&&"never"!==i.getOption(41).seedSearchStringFromSelection&&!n,r=n||o?2:1;return e.start({forceRevealReplace:!0,seedSearchStringFromSelection:o?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===i.getOption(41).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:"never"!==i.getOption(41).seedSearchStringFromSelection,shouldFocus:r,shouldAnimate:!0,updateSearchScope:!1,loop:i.getOption(41).loop})})),lu(R4.ID,O4,0),cu(class extends su{constructor(){super({id:"editor.actions.findWithArgs",label:ot(0,"Find With Arguments"),alias:"Find With Arguments",precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:I4})}async run(t,i,e){const s=R4.get(i);if(s){const t=e?{searchString:e.searchString,replaceString:e.replaceString,isReplaceRevealed:void 0!==e.replaceString,isRegex:e.isRegex,wholeWord:e.matchWholeWord,matchCase:e.isCaseSensitive,preserveCase:e.preserveCase}:{};await s.start({forceRevealReplace:!1,seedSearchStringFromSelection:0===s.getState().searchString.length&&"never"!==i.getOption(41).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===i.getOption(41).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:(null==e?void 0:e.findInSelection)||!1,loop:i.getOption(41).loop},t),s.setGlobalBufferTerm(s.getState().searchString)}}}),cu(class extends su{constructor(){super({id:"actions.findWithSelection",label:ot(0,"Find With Selection"),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(t,i){const e=R4.get(i);e&&(await e.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:i.getOption(41).loop}),e.setGlobalBufferTerm(e.getState().searchString))}}),cu(class extends _4{constructor(){super({id:y2,label:ot(0,"Find Next"),alias:"Find Next",precondition:void 0,kbOpts:[{kbExpr:YC.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:zr.and(YC.focus,f2),primary:3,weight:100}]})}_run(t){return!!t.moveToNextMatch()&&(t.editor.pushUndoStop(),!0)}}),cu(class extends _4{constructor(){super({id:k2,label:ot(0,"Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:[{kbExpr:YC.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:zr.and(YC.focus,f2),primary:1027,weight:100}]})}_run(t){return t.moveToPrevMatch()}}),cu(class extends su{constructor(){super({id:"editor.action.goToMatchFindAction",label:ot(0,"Go to Match..."),alias:"Go to Match...",precondition:d2}),this._highlightDecorations=[]}run(t,i,e){const s=R4.get(i);if(!s)return;const n=s.getState().matchesCount;if(n<1)return void t.get(oT).notify({severity:nT.Warning,message:ot(0,"No matches. Try searching for something else.")});const o=t.get(Oj).createInputBox();o.placeholder=ot(0,"Type a number to go to a specific match (between 1 and {0})",n);const r=t=>{const i=parseInt(t);if(isNaN(i))return;const e=s.getState().matchesCount;return i>0&&i<=e?i-1:i<0&&i>=-e?e+i:void 0},h=t=>{const e=r(t);if("number"==typeof e){o.validationMessage=void 0,s.goToMatch(e);const t=s.getState().currentMatch;t&&this.addDecorations(i,t)}else o.validationMessage=ot(0,"Please type a number between 1 and {0}",s.getState().matchesCount),this.clearDecorations(i)};o.onDidChangeValue((t=>{h(t)})),o.onDidAccept((()=>{const t=r(o.value);"number"==typeof t?(s.goToMatch(t),o.hide()):o.validationMessage=ot(0,"Please type a number between 1 and {0}",s.getState().matchesCount)})),o.onDidHide((()=>{this.clearDecorations(i),o.dispose()})),o.show()}clearDecorations(t){t.changeDecorations((t=>{this._highlightDecorations=t.deltaDecorations(this._highlightDecorations,[])}))}addDecorations(t,i){t.changeDecorations((t=>{this._highlightDecorations=t.deltaDecorations(this._highlightDecorations,[{range:i,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:i,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:tx(Rx),position:_f.Full}}}])}))}}),cu(class extends N4{constructor(){super({id:"editor.action.nextSelectionMatchFindAction",label:ot(0,"Find Next Selection"),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:2109,weight:100}})}_run(t){return t.moveToNextMatch()}}),cu(class extends N4{constructor(){super({id:"editor.action.previousSelectionMatchFindAction",label:ot(0,"Find Previous Selection"),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:3133,weight:100}})}_run(t){return t.moveToPrevMatch()}});const B4=eu.bindToContribution(R4.get);hu(new B4({id:x2,precondition:d2,handler:t=>t.closeFindWidget(),kbOpts:{weight:105,kbExpr:zr.and(YC.focus,zr.not("isComposing")),primary:9,secondary:[1033]}})),hu(new B4({id:C2,precondition:void 0,handler:t=>t.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:YC.focus,primary:g2.primary,mac:g2.mac,win:g2.win,linux:g2.linux}})),hu(new B4({id:S2,precondition:void 0,handler:t=>t.toggleWholeWords(),kbOpts:{weight:105,kbExpr:YC.focus,primary:m2.primary,mac:m2.mac,win:m2.win,linux:m2.linux}})),hu(new B4({id:D2,precondition:void 0,handler:t=>t.toggleRegex(),kbOpts:{weight:105,kbExpr:YC.focus,primary:w2.primary,mac:w2.mac,win:w2.win,linux:w2.linux}})),hu(new B4({id:E2,precondition:void 0,handler:t=>t.toggleSearchScope(),kbOpts:{weight:105,kbExpr:YC.focus,primary:v2.primary,mac:v2.mac,win:v2.win,linux:v2.linux}})),hu(new B4({id:A2,precondition:void 0,handler:t=>t.togglePreserveCase(),kbOpts:{weight:105,kbExpr:YC.focus,primary:b2.primary,mac:b2.mac,win:b2.win,linux:b2.linux}})),hu(new B4({id:M2,precondition:d2,handler:t=>t.replace(),kbOpts:{weight:105,kbExpr:YC.focus,primary:3094}})),hu(new B4({id:M2,precondition:d2,handler:t=>t.replace(),kbOpts:{weight:105,kbExpr:zr.and(YC.focus,p2),primary:3}})),hu(new B4({id:L2,precondition:d2,handler:t=>t.replaceAll(),kbOpts:{weight:105,kbExpr:YC.focus,primary:2563}})),hu(new B4({id:L2,precondition:d2,handler:t=>t.replaceAll(),kbOpts:{weight:105,kbExpr:zr.and(YC.focus,p2),primary:void 0,mac:{primary:2051}}})),hu(new B4({id:"editor.action.selectAllMatches",precondition:d2,handler:t=>t.selectAllMatches(),kbOpts:{weight:105,kbExpr:YC.focus,primary:515}}));const P4={0:" ",1:"u",2:"r"},$4=16777215,W4=4278190080;class j4{constructor(t){const i=Math.ceil(t/32);this._states=new Uint32Array(i)}get(t){return!!(this._states[t/32|0]&1<65535)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=t,this._endIndexes=i,this._collapseStates=new j4(t.length),this._userDefinedStates=new j4(t.length),this._recoveredStates=new j4(t.length),this._types=e,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const t=[],i=(i,e)=>{const s=t[t.length-1];return this.getStartLineNumber(s)<=i&&this.getEndLineNumber(s)>=e};for(let e=0,s=this._startIndexes.length;e$4||n>$4)throw new Error("startLineNumber or endLineNumber must not exceed "+$4);for(;t.length>0&&!i(s,n);)t.pop();const o=t.length>0?t[t.length-1]:-1;t.push(e),this._startIndexes[e]=s+((255&o)<<24),this._endIndexes[e]=n+((65280&o)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(t){return this._startIndexes[t]&$4}getEndLineNumber(t){return this._endIndexes[t]&$4}getType(t){return this._types?this._types[t]:void 0}hasTypes(){return!!this._types}isCollapsed(t){return this._collapseStates.get(t)}setCollapsed(t,i){this._collapseStates.set(t,i)}isUserDefined(t){return this._userDefinedStates.get(t)}setUserDefined(t,i){return this._userDefinedStates.set(t,i)}isRecovered(t){return this._recoveredStates.get(t)}setRecovered(t,i){return this._recoveredStates.set(t,i)}getSource(t){return this.isUserDefined(t)?1:this.isRecovered(t)?2:0}setSource(t,i){1===i?(this.setUserDefined(t,!0),this.setRecovered(t,!1)):2===i?(this.setUserDefined(t,!1),this.setRecovered(t,!0)):(this.setUserDefined(t,!1),this.setRecovered(t,!1))}setCollapsedAllOfType(t,i){let e=!1;if(this._types)for(let s=0;s>>24)+((this._endIndexes[t]&W4)>>>16);return 65535===i?-1:i}contains(t,i){return this.getStartLineNumber(t)<=i&&this.getEndLineNumber(t)>=i}findIndex(t){let i=0,e=this._startIndexes.length;if(0===e)return-1;for(;i=0){if(this.getEndLineNumber(i)>=t)return i;for(i=this.getParentIndex(i);-1!==i;){if(this.contains(i,t))return i;i=this.getParentIndex(i)}}return-1}toString(){const t=[];for(let i=0;iArray.isArray(t)?e=>ee=a.startLineNumber))c&&c.startLineNumber===a.startLineNumber?(1===a.source?t=a:(t=c,t.isCollapsed=a.isCollapsed&&c.endLineNumber===a.endLineNumber,t.source=0),c=n(++r)):(t=a,a.isCollapsed&&0===a.source&&(t.source=2)),a=o(++h);else{let i=h,e=a;for(;;){if(!e||e.startLineNumber>c.endLineNumber){t=c;break}if(1===e.source&&e.endLineNumber>c.endLineNumber)break;e=o(++i)}c=n(++r)}if(t){for(;u&&u.endLineNumbert.startLineNumber&&t.startLineNumber>d&&t.endLineNumber<=e&&(!u||u.endLineNumber>=t.endLineNumber)&&(f.push(t),d=t.startLineNumber,u&&l.push(u),u=t)}}return f}}class H4{constructor(t,i){this.ranges=t,this.index=i}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(t){return t.startLineNumber<=this.startLineNumber&&t.endLineNumber>=this.endLineNumber}containsLine(t){return this.startLineNumber<=t&&t<=this.endLineNumber}}class V4{get regions(){return this._regions}get textModel(){return this._textModel}constructor(t,i){this._updateEventEmitter=new de,this.onDidChange=this._updateEventEmitter.event,this._textModel=t,this._decorationProvider=i,this._regions=new z4(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(t){if(!t.length)return;t=t.sort(((t,i)=>t.regionIndex-i.regionIndex));const i={};this._decorationProvider.changeDecorations((e=>{let s=0,n=-1,o=-1;const r=t=>{for(;so&&(o=t),s++}};for(const e of t){const t=e.regionIndex,s=this._editorDecorationIds[t];if(s&&!i[s]){i[s]=!0,r(t);const e=!this._regions.isCollapsed(t);this._regions.setCollapsed(t,e),n=Math.max(n,this._regions.getEndLineNumber(t))}}r(this._regions.length)})),this._updateEventEmitter.fire({model:this,collapseStateChanged:t})}removeManualRanges(t){const i=new Array,e=i=>{for(const e of t)if(!(e.startLineNumber>i.endLineNumber||i.startLineNumber>e.endLineNumber))return!0;return!1};for(let t=0;te&&(e=o)}this._decorationProvider.changeDecorations((t=>this._editorDecorationIds=t.deltaDecorations(this._editorDecorationIds,i))),this._regions=t,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(t=[]){const i=(i,e)=>{for(const s of t)if(i=n.endLineNumber||n.startLineNumber<1||n.endLineNumber>e)continue;const o=this._getLinesChecksum(n.startLineNumber+1,n.endLineNumber);i.push({startLineNumber:n.startLineNumber,endLineNumber:n.endLineNumber,isCollapsed:n.isCollapsed,source:n.source,checksum:o})}return i.length>0?i:void 0}applyMemento(t){var i,e;if(!Array.isArray(t))return;const s=[],n=this._textModel.getLineCount();for(const o of t){if(o.startLineNumber>=o.endLineNumber||o.startLineNumber<1||o.endLineNumber>n)continue;const t=this._getLinesChecksum(o.startLineNumber+1,o.endLineNumber);o.checksum&&t!==o.checksum||s.push({startLineNumber:o.startLineNumber,endLineNumber:o.endLineNumber,type:void 0,isCollapsed:null===(i=o.isCollapsed)||void 0===i||i,source:null!==(e=o.source)&&void 0!==e?e:0})}const o=z4.sanitizeAndMerge(this._regions,s,n);this.updatePost(z4.fromFoldRanges(o))}_getLinesChecksum(t,i){return Ma(this._textModel.getLineContent(t)+this._textModel.getLineContent(i))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds)}getAllRegionsAtLine(t,i){const e=[];if(this._regions){let s=this._regions.findRange(t),n=1;for(;s>=0;){const t=this._regions.toRegion(s);i&&!i(t,n)||e.push(t),n++,s=t.parentIndex}}return e}getRegionAtLine(t){if(this._regions){const i=this._regions.findRange(t);if(i>=0)return this._regions.toRegion(i)}return null}getRegionsInside(t,i){const e=[],s=t?t.regionIndex+1:0,n=t?t.endLineNumber:Number.MAX_VALUE;if(i&&2===i.length){const t=[];for(let o=s,r=this._regions.length;o0&&!s.containedBy(t[t.length-1]);)t.pop();t.push(s),i(s,t.length)&&e.push(s)}}else for(let t=s,o=this._regions.length;t1){const o=t.getRegionsInside(e,((t,e)=>t.isCollapsed!==n&&e0)for(const o of s){const s=t.getRegionAtLine(o);if(s&&(s.isCollapsed!==i&&n.push(s),e>1)){const o=t.getRegionsInside(s,((t,s)=>t.isCollapsed!==i&&st.isCollapsed!==i&&st.isCollapsed!==i&&s<=e));n.push(...s)}t.toggleCollapseState(n)}function G4(t,i,e){const s=[];for(const i of e){const e=t.getAllRegionsAtLine(i,void 0);e.length>0&&s.push(e[0])}const n=t.getRegionsInside(null,(t=>s.every((i=>!i.containedBy(t)&&!t.containedBy(i)))&&t.isCollapsed!==i));t.toggleCollapseState(n)}function Z4(t,i,e){const s=t.textModel,n=t.regions,o=[];for(let t=n.length-1;t>=0;t--)if(e!==n.isCollapsed(t)){const e=n.getStartLineNumber(t);i.test(s.getLineContent(e))&&o.push(n.toRegion(t))}t.toggleCollapseState(o)}function Q4(t,i,e){const s=t.regions,n=[];for(let t=s.length-1;t>=0;t--)e!==s.isCollapsed(t)&&i===s.getType(t)&&n.push(s.toRegion(t));t.toggleCollapseState(n)}class J4{get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}constructor(t){this._updateEventEmitter=new de,this._hasLineChanges=!1,this._foldingModel=t,this._foldingModelListener=t.onDidChange((()=>this.updateHiddenRanges())),this._hiddenRanges=[],t.regions.length&&this.updateHiddenRanges()}notifyChangeModelContent(t){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=t.changes.some((t=>t.range.endLineNumber!==t.range.startLineNumber||0!==KD(t.text)[0])))}updateHiddenRanges(){let t=!1;const i=[];let e=0,s=0,n=Number.MAX_VALUE,o=-1;const r=this._foldingModel.regions;for(;e0}isHidden(t){return null!==Y4(this._hiddenRanges,t)}adjustSelections(t){let i=!1;const e=this._foldingModel.textModel;let s=null;const n=t=>(s&&function(t,i){return t>=i.startLineNumber&&t<=i.endLineNumber}(t,s)||(s=Y4(this._hiddenRanges,t)),s?s.startLineNumber-1:null);for(let s=0,o=t.length;s0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}function Y4(t,i){const e=ap(t,(t=>i=0&&t[e].endLineNumber>=i?t[e]:null}class X4{constructor(t,i,e){this.editorModel=t,this.languageConfigurationService=i,this.foldingRangesLimit=e,this.id="indent"}dispose(){}compute(t){const i=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules;return Promise.resolve(function(t,i,e,s=i5){const n=t.getOptions().tabSize,o=new t5(s);let r;e&&(r=new RegExp(`(${e.start.source})|(?:${e.end.source})`));const h=[],c=t.getLineCount()+1;h.push({indent:-1,endAbove:c,line:c});for(let e=t.getLineCount();e>0;e--){const s=t.getLineContent(e),c=RS(s,n);let a,l=h[h.length-1];if(-1!==c){if(r&&(a=s.match(r))){if(!a[1]){h.push({indent:-2,endAbove:e,line:e});continue}{let t=h.length-1;for(;t>0&&-2!==h[t].indent;)t--;if(t>0){h.length=t+1,l=h[t],o.insertFirst(e,l.line,c),l.line=e,l.indent=c,l.endAbove=e;continue}}}if(l.indent>c){do{h.pop(),l=h[h.length-1]}while(l.indent>c);const t=l.endAbove-1;t-e>=1&&o.insertFirst(e,t,c)}l.indent===c?l.endAbove=e:h.push({indent:c,endAbove:e,line:e})}else i&&(l.endAbove=e)}return o.toIndentRanges(t)}(this.editorModel,i&&!!i.offSide,i&&i.markers,this.foldingRangesLimit))}}class t5{constructor(t){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=t}insertFirst(t,i,e){if(t>$4||i>$4)return;const s=this._length;this._startIndexes[s]=t,this._endIndexes[s]=i,this._length++,e<1e3&&(this._indentOccurrences[e]=(this._indentOccurrences[e]||0)+1)}toIndentRanges(t){const i=this._foldingRangesLimit.limit;if(this._length<=i){this._foldingRangesLimit.update(this._length,!1);const t=new Uint32Array(this._length),i=new Uint32Array(this._length);for(let e=this._length-1,s=0;e>=0;e--,s++)t[s]=this._startIndexes[e],i[s]=this._endIndexes[e];return new z4(t,i)}{this._foldingRangesLimit.update(this._length,i);let e=0,s=this._indentOccurrences.length;for(let t=0;ti){s=t;break}e+=n}}const n=t.getOptions().tabSize,o=new Uint32Array(i),r=new Uint32Array(i);for(let h=this._length-1,c=0;h>=0;h--){const a=this._startIndexes[h],l=RS(t.getLineContent(a),n);(l{}},e5=dw("editor.foldBackground",{light:ly(Sv,.3),dark:ly(Sv,.3),hcDark:null,hcLight:null},ot(0,"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);dw("editorGutter.foldingControlForeground",{dark:gw,light:gw,hcDark:gw,hcLight:gw},ot(0,"Color of the folding control in the editor gutter."));const s5=Hz("folding-expanded",Os.chevronDown,ot(0,"Icon for expanded ranges in the editor glyph margin.")),n5=Hz("folding-collapsed",Os.chevronRight,ot(0,"Icon for collapsed ranges in the editor glyph margin.")),o5=Hz("folding-manual-collapsed",n5,ot(0,"Icon for manually collapsed ranges in the editor glyph margin.")),r5=Hz("folding-manual-expanded",s5,ot(0,"Icon for manually expanded ranges in the editor glyph margin.")),h5={color:tx(e5),position:Bf.Inline};class c5{constructor(t){this.editor=t,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(t,i,e){return i?c5.HIDDEN_RANGE_DECORATION:"never"===this.showFoldingControls?t?this.showFoldingHighlights?c5.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:c5.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:c5.NO_CONTROLS_EXPANDED_RANGE_DECORATION:t?e?this.showFoldingHighlights?c5.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:c5.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?c5.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:c5.COLLAPSED_VISUAL_DECORATION:"mouseover"===this.showFoldingControls?e?c5.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:c5.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:e?c5.MANUALLY_EXPANDED_VISUAL_DECORATION:c5.EXPANDED_VISUAL_DECORATION}changeDecorations(t){return this.editor.changeDecorations(t)}removeDecorations(t){this.editor.removeDecorations(t)}}c5.COLLAPSED_VISUAL_DECORATION=AL.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,firstLineDecorationClassName:Cr.asClassName(n5)}),c5.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=AL.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:h5,isWholeLine:!0,firstLineDecorationClassName:Cr.asClassName(n5)}),c5.MANUALLY_COLLAPSED_VISUAL_DECORATION=AL.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,firstLineDecorationClassName:Cr.asClassName(o5)}),c5.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=AL.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:h5,isWholeLine:!0,firstLineDecorationClassName:Cr.asClassName(o5)}),c5.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=AL.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0}),c5.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=AL.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:h5,isWholeLine:!0}),c5.EXPANDED_VISUAL_DECORATION=AL.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+Cr.asClassName(s5)}),c5.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=AL.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:Cr.asClassName(s5)}),c5.MANUALLY_EXPANDED_VISUAL_DECORATION=AL.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+Cr.asClassName(r5)}),c5.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=AL.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:Cr.asClassName(r5)}),c5.NO_CONTROLS_EXPANDED_RANGE_DECORATION=AL.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0}),c5.HIDDEN_RANGE_DECORATION=AL.register({description:"folding-hidden-range-decoration",stickiness:1});const a5={};class l5{constructor(t,i,e,s,n){this.editorModel=t,this.providers=i,this.handleFoldingRangesChange=e,this.foldingRangesLimit=s,this.fallbackRangeProvider=n,this.id="syntax",this.disposables=new Xi,n&&this.disposables.add(n);for(const t of i)"function"==typeof t.onDidChange&&this.disposables.add(t.onDidChange(e))}compute(t){return function(t,i,e){let s=null;const n=t.map(((t,n)=>Promise.resolve(t.provideFoldingRanges(i,a5,e)).then((t=>{if(!e.isCancellationRequested&&Array.isArray(t)){Array.isArray(s)||(s=[]);const e=i.getLineCount();for(const i of t)i.start>0&&i.end>i.start&&i.end<=e&&s.push({start:i.start,end:i.end,rank:n,kind:i.kind})}}),Pi)));return Promise.all(n).then((()=>s))}(this.providers,this.editorModel,t).then((i=>{var e,s;return i?function(t,i){const e=t.sort(((t,i)=>{let e=t.start-i.start;return 0===e&&(e=t.rank-i.rank),e})),s=new u5(i);let n;const o=[];for(const t of e)if(n){if(t.start>n.start)if(t.end<=n.end)o.push(n),n=t,s.add(t.start,t.end,t.kind&&t.kind.value,o.length);else{if(t.start>n.end){do{n=o.pop()}while(n&&t.start>n.end);n&&o.push(n),n=t}s.add(t.start,t.end,t.kind&&t.kind.value,o.length)}}else n=t,s.add(t.start,t.end,t.kind&&t.kind.value,o.length);return s.toIndentRanges()}(i,this.foldingRangesLimit):null!==(s=null===(e=this.fallbackRangeProvider)||void 0===e?void 0:e.compute(t))&&void 0!==s?s:null}))}dispose(){this.disposables.dispose()}}class u5{constructor(t){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=t}add(t,i,e,s){if(t>$4||i>$4)return;const n=this._length;this._startIndexes[n]=t,this._endIndexes[n]=i,this._nestingLevels[n]=s,this._types[n]=e,this._length++,s<30&&(this._nestingLevelCounts[s]=(this._nestingLevelCounts[s]||0)+1)}toIndentRanges(){const t=this._foldingRangesLimit.limit;if(this._length<=t){this._foldingRangesLimit.update(this._length,!1);const t=new Uint32Array(this._length),i=new Uint32Array(this._length);for(let e=0;et){e=s;break}i+=n}}const s=new Uint32Array(t),n=new Uint32Array(t),o=[];for(let r=0,h=0;rthis.onModelChanged()))),this._register(this.editor.onDidChangeConfiguration((t=>{if(t.hasChanged(43)&&(this._isEnabled=this.editor.getOptions().get(43),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),t.hasChanged(47)&&this.onModelChanged(),t.hasChanged(109)||t.hasChanged(45)){const t=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=t.get(109),this.foldingDecorationProvider.showFoldingHighlights=t.get(45),this.triggerFoldingModelChanged()}t.hasChanged(44)&&(this._useFoldingProviders="indentation"!==this.editor.getOptions().get(44),this.onFoldingStrategyChanged()),t.hasChanged(48)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(48)),t.hasChanged(46)&&(this._foldingImportsByDefault=this.editor.getOptions().get(46))}))),this.onModelChanged()}saveViewState(){const t=this.editor.getModel();if(!t||!this._isEnabled||t.isTooLargeForTokenization())return{};if(this.foldingModel){const i=this.foldingModel.getMemento(),e=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:i,lineCount:t.getLineCount(),provider:e,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(t){const i=this.editor.getModel();if(i&&this._isEnabled&&!i.isTooLargeForTokenization()&&this.hiddenRangeModel&&t&&(this._currentModelHasFoldedImports=!!t.foldedImports,t.collapsedRegions&&t.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(t.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();const t=this.editor.getModel();this._isEnabled&&t&&!t.isTooLargeForTokenization()&&(this._currentModelHasFoldedImports=!1,this.foldingModel=new V4(t,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new J4(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange((t=>this.onHiddenRangesChanges(t)))),this.updateScheduler=new hc(this.updateDebounceInfo.get(t)),this.cursorChangedScheduler=new pc((()=>this.revealCursor()),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange((()=>this.onFoldingStrategyChanged()))),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration((()=>this.onFoldingStrategyChanged()))),this.localToDispose.add(this.editor.onDidChangeModelContent((t=>this.onDidChangeModelContent(t)))),this.localToDispose.add(this.editor.onDidChangeCursorPosition((()=>this.onCursorPositionChanged()))),this.localToDispose.add(this.editor.onMouseDown((t=>this.onEditorMouseDown(t)))),this.localToDispose.add(this.editor.onMouseUp((t=>this.onEditorMouseUp(t)))),this.localToDispose.add({dispose:()=>{var t,i;this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),null===(t=this.updateScheduler)||void 0===t||t.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,null===(i=this.rangeProvider)||void 0===i||i.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){var t;null===(t=this.rangeProvider)||void 0===t||t.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(t){if(this.rangeProvider)return this.rangeProvider;const i=new X4(t,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=i,this._useFoldingProviders&&this.foldingModel){const e=d5.getFoldingRangeProviders(this.languageFeaturesService,t);e.length>0&&(this.rangeProvider=new l5(t,e,(()=>this.triggerFoldingModelChanged()),this._foldingLimitReporter,i))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(t){var i;null===(i=this.hiddenRangeModel)||void 0===i||i.notifyChangeModelContent(t),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger((()=>{const t=this.foldingModel;if(!t)return null;const i=new re,e=this.getRangeProvider(t.textModel),s=this.foldingRegionPromise=nc((t=>e.compute(t)));return s.then((e=>{if(e&&s===this.foldingRegionPromise){let s;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const t=e.setCollapsedAllOfType(Ks.Imports.value,!0);t&&(s=iU.capture(this.editor),this._currentModelHasFoldedImports=t)}const n=this.editor.getSelections(),o=n?n.map((t=>t.startLineNumber)):[];t.update(e,o),null==s||s.restore(this.editor);const r=this.updateDebounceInfo.update(t.textModel,i.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=r)}return t}))})).then(void 0,(t=>(Bi(t),null))))}onHiddenRangesChanges(t){if(this.hiddenRangeModel&&t.length&&!this._restoringViewState){const t=this.editor.getSelections();t&&this.hiddenRangeModel.adjustSelections(t)&&this.editor.setSelections(t)}this.editor.setHiddenAreas(t,this)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const t=this.getFoldingModel();t&&t.then((t=>{if(t){const i=this.editor.getSelections();if(i&&i.length>0){const e=[];for(const s of i){const i=s.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(i)&&e.push(...t.getAllRegionsAtLine(i,(t=>t.isCollapsed&&i>t.startLineNumber)))}e.length&&(t.toggleCollapseState(e),this.reveal(i[0].getPosition()))}}})).then(void 0,Bi)}onEditorMouseDown(t){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!t.target||!t.target.range)return;if(!t.event.leftButton&&!t.event.middleButton)return;const i=t.target.range;let e=!1;switch(t.target.type){case 4:if(t.target.detail.offsetX-t.target.element.offsetLeft<4)return;e=!0;break;case 7:if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()&&!t.target.detail.isAfterLines)break;return;case 6:if(this.hiddenRangeModel.hasRanges()){const t=this.editor.getModel();if(t&&i.startColumn===t.getLineMaxColumn(i.startLineNumber))break}return;default:return}this.mouseDownInfo={lineNumber:i.startLineNumber,iconClicked:e}}onEditorMouseUp(t){const i=this.foldingModel;if(!i||!this.mouseDownInfo||!t.target)return;const e=this.mouseDownInfo.lineNumber,s=this.mouseDownInfo.iconClicked,n=t.target.range;if(!n||n.startLineNumber!==e)return;if(s){if(4!==t.target.type)return}else{const t=this.editor.getModel();if(!t||n.startColumn!==t.getLineMaxColumn(e))return}const o=i.getRegionAtLine(e);if(o&&o.startLineNumber===e){const n=o.isCollapsed;if(s||n){let s=[];if(t.event.altKey){const t=i.getRegionsInside(null,(t=>!t.containedBy(o)&&!o.containedBy(t)));for(const i of t)i.isCollapsed&&s.push(i);0===s.length&&(s=t)}else{const e=t.event.middleButton||t.event.shiftKey;if(e)for(const t of i.getRegionsInside(o))t.isCollapsed===n&&s.push(t);!n&&e&&0!==s.length||s.push(o)}i.toggleCollapseState(s),this.reveal({lineNumber:e,column:1})}}}reveal(t){this.editor.revealPositionInCenterIfOutsideViewport(t,0)}};g5.ID="editor.contrib.folding",g5=d5=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([f5(1,ah),f5(2,Xd),f5(3,oT),f5(4,gR),f5(5,xg)],g5);class m5{constructor(t){this.editor=t,this._onDidChange=new de,this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(47)}update(t,i){t===this._computed&&i===this._limited||(this._computed=t,this._limited=i,this._onDidChange.fire())}}class w5 extends su{runEditorCommand(t,i,e){const s=t.get(Xd),n=g5.get(i);if(!n)return;const o=n.getFoldingModel();return o?(this.reportTelemetry(t,i),o.then((t=>{if(t){this.invoke(n,t,i,e,s);const o=i.getSelection();o&&n.reveal(o.getStartPosition())}}))):void 0}getSelectedLines(t){const i=t.getSelections();return i?i.map((t=>t.startLineNumber)):[]}getLineNumbers(t,i){return t&&t.selectionLines?t.selectionLines.map((t=>t+1)):this.getSelectedLines(i)}run(t,i){}}function v5(t){if(!H(t)){if(!P(t))return!1;const i=t;if(!H(i.levels)&&!W(i.levels))return!1;if(!H(i.direction)&&!B(i.direction))return!1;if(!(H(i.selectionLines)||Array.isArray(i.selectionLines)&&i.selectionLines.every(W)))return!1}return!0}class b5 extends w5{getFoldingLevel(){return parseInt(this.id.substr(b5.ID_PREFIX.length))}invoke(t,i,e){!function(t,i,e,s){const n=t.getRegionsInside(null,((t,e)=>e===i&&true!==t.isCollapsed&&!s.some((i=>t.containsLine(i)))));t.toggleCollapseState(n)}(i,this.getFoldingLevel(),0,this.getSelectedLines(e))}}b5.ID_PREFIX="editor.foldLevel",b5.ID=t=>b5.ID_PREFIX+t,lu(g5.ID,g5,0),cu(class extends w5{constructor(){super({id:"editor.unfold",label:ot(0,"Unfold"),alias:"Unfold",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t* 'levels': Number of levels to unfold. If not set, defaults to 1.\n\t\t\t\t\t\t* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\n\t\t\t\t\t\t* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t",constraint:v5,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(t,i,e,s){const n=s&&s.levels||1,o=this.getLineNumbers(s,e);s&&"up"===s.direction?K4(i,!1,n,o):q4(i,!1,n,o)}}),cu(class extends w5{constructor(){super({id:"editor.unfoldRecursively",label:ot(0,"Unfold Recursively"),alias:"Unfold Recursively",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2142),weight:100}})}invoke(t,i,e,s){q4(i,!1,Number.MAX_VALUE,this.getSelectedLines(e))}}),cu(class extends w5{constructor(){super({id:"editor.fold",label:ot(0,"Fold"),alias:"Fold",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:3164,mac:{primary:2652},weight:100},metadata:{description:"Fold the content in the editor",args:[{name:"Fold editor argument",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t\t* 'levels': Number of levels to fold.\n\t\t\t\t\t\t\t* 'direction': If 'up', folds given number of levels up otherwise folds down.\n\t\t\t\t\t\t\t* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t\tIf no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\n\t\t\t\t\t\t",constraint:v5,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(t,i,e,s){const n=this.getLineNumbers(s,e),o=s&&s.levels,r=s&&s.direction;"number"!=typeof o&&"string"!=typeof r?function(t,i,e){const s=[];for(const i of e){const e=t.getAllRegionsAtLine(i,(t=>true!==t.isCollapsed));e.length>0&&s.push(e[0])}t.toggleCollapseState(s)}(i,0,n):"up"===r?K4(i,!0,o||1,n):q4(i,!0,o||1,n)}}),cu(class extends w5{constructor(){super({id:"editor.foldRecursively",label:ot(0,"Fold Recursively"),alias:"Fold Recursively",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2140),weight:100}})}invoke(t,i,e){const s=this.getSelectedLines(e);q4(i,!0,Number.MAX_VALUE,s)}}),cu(class extends w5{constructor(){super({id:"editor.foldAll",label:ot(0,"Fold All"),alias:"Fold All",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2069),weight:100}})}invoke(t,i,e){q4(i,!0)}}),cu(class extends w5{constructor(){super({id:"editor.unfoldAll",label:ot(0,"Unfold All"),alias:"Unfold All",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2088),weight:100}})}invoke(t,i,e){q4(i,!1)}}),cu(class extends w5{constructor(){super({id:"editor.foldAllBlockComments",label:ot(0,"Fold All Block Comments"),alias:"Fold All Block Comments",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2138),weight:100}})}invoke(t,i,e,s,n){if(i.regions.hasTypes())Q4(i,Ks.Comment.value,!0);else{const t=e.getModel();if(!t)return;const s=n.getLanguageConfiguration(t.getLanguageId()).comments;s&&s.blockCommentStartToken&&Z4(i,new RegExp("^\\s*"+Gn(s.blockCommentStartToken)),!0)}}}),cu(class extends w5{constructor(){super({id:"editor.foldAllMarkerRegions",label:ot(0,"Fold All Regions"),alias:"Fold All Regions",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2077),weight:100}})}invoke(t,i,e,s,n){if(i.regions.hasTypes())Q4(i,Ks.Region.value,!0);else{const t=e.getModel();if(!t)return;const s=n.getLanguageConfiguration(t.getLanguageId()).foldingRules;s&&s.markers&&s.markers.start&&Z4(i,new RegExp(s.markers.start),!0)}}}),cu(class extends w5{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:ot(0,"Unfold All Regions"),alias:"Unfold All Regions",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2078),weight:100}})}invoke(t,i,e,s,n){if(i.regions.hasTypes())Q4(i,Ks.Region.value,!1);else{const t=e.getModel();if(!t)return;const s=n.getLanguageConfiguration(t.getLanguageId()).foldingRules;s&&s.markers&&s.markers.start&&Z4(i,new RegExp(s.markers.start),!1)}}}),cu(class extends w5{constructor(){super({id:"editor.foldAllExcept",label:ot(0,"Fold All Except Selected"),alias:"Fold All Except Selected",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2136),weight:100}})}invoke(t,i,e){G4(i,!0,this.getSelectedLines(e))}}),cu(class extends w5{constructor(){super({id:"editor.unfoldAllExcept",label:ot(0,"Unfold All Except Selected"),alias:"Unfold All Except Selected",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2134),weight:100}})}invoke(t,i,e){G4(i,!1,this.getSelectedLines(e))}}),cu(class extends w5{constructor(){super({id:"editor.toggleFold",label:ot(0,"Toggle Fold"),alias:"Toggle Fold",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2090),weight:100}})}invoke(t,i,e){U4(i,1,this.getSelectedLines(e))}}),cu(class extends w5{constructor(){super({id:"editor.gotoParentFold",label:ot(0,"Go to Parent Fold"),alias:"Go to Parent Fold",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,weight:100}})}invoke(t,i,e){const s=this.getSelectedLines(e);if(s.length>0){const t=function(t,i){let e=null;const s=i.getRegionAtLine(t);if(null!==s&&(e=s.startLineNumber,t===e)){const t=s.parentIndex;e=-1!==t?i.regions.getStartLineNumber(t):null}return e}(s[0],i);null!==t&&e.setSelection({startLineNumber:t,startColumn:1,endLineNumber:t,endColumn:1})}}}),cu(class extends w5{constructor(){super({id:"editor.gotoPreviousFold",label:ot(0,"Go to Previous Folding Range"),alias:"Go to Previous Folding Range",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,weight:100}})}invoke(t,i,e){const s=this.getSelectedLines(e);if(s.length>0){const t=function(t,i){let e=i.getRegionAtLine(t);if(null!==e&&e.startLineNumber===t){if(t!==e.startLineNumber)return e.startLineNumber;{const t=e.parentIndex;let s=0;for(-1!==t&&(s=i.regions.getStartLineNumber(e.parentIndex));null!==e;){if(!(e.regionIndex>0))return null;if(e=i.regions.toRegion(e.regionIndex-1),e.startLineNumber<=s)return null;if(e.parentIndex===t)return e.startLineNumber}}}else if(i.regions.length>0)for(e=i.regions.toRegion(i.regions.length-1);null!==e;){if(e.startLineNumber0?i.regions.toRegion(e.regionIndex-1):null}return null}(s[0],i);null!==t&&e.setSelection({startLineNumber:t,startColumn:1,endLineNumber:t,endColumn:1})}}}),cu(class extends w5{constructor(){super({id:"editor.gotoNextFold",label:ot(0,"Go to Next Folding Range"),alias:"Go to Next Folding Range",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,weight:100}})}invoke(t,i,e){const s=this.getSelectedLines(e);if(s.length>0){const t=function(t,i){let e=i.getRegionAtLine(t);if(null!==e&&e.startLineNumber===t){const t=e.parentIndex;let s=0;if(-1!==t)s=i.regions.getEndLineNumber(e.parentIndex);else{if(0===i.regions.length)return null;s=i.regions.getEndLineNumber(i.regions.length-1)}for(;null!==e;){if(!(e.regionIndex=s)return null;if(e.parentIndex===t)return e.startLineNumber}}else if(i.regions.length>0)for(e=i.regions.toRegion(0);null!==e;){if(e.startLineNumber>t)return e.startLineNumber;e=e.regionIndext.startLineNumber&&(n.push({startLineNumber:t.startLineNumber,endLineNumber:i,type:void 0,isCollapsed:!0,source:1}),e.setSelection({startLineNumber:t.startLineNumber,startColumn:1,endLineNumber:t.startLineNumber,endColumn:1}))}if(n.length>0){n.sort(((t,i)=>t.startLineNumber-i.startLineNumber));const t=z4.sanitizeAndMerge(i.regions,n,null===(s=e.getModel())||void 0===s?void 0:s.getLineCount());i.updatePost(z4.fromFoldRanges(t))}}}}),cu(class extends w5{constructor(){super({id:"editor.removeManualFoldingRanges",label:ot(0,"Remove Manual Folding Ranges"),alias:"Remove Manual Folding Ranges",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2137),weight:100}})}invoke(t,i,e){const s=e.getSelections();if(s){const e=[];for(const t of s){const{startLineNumber:i,endLineNumber:s}=t;e.push(s>=i?{startLineNumber:i,endLineNumber:s}:{endLineNumber:s,startLineNumber:i})}i.removeManualRanges(e),t.triggerFoldingModelChanged()}}});for(let t=1;t<=7;t++)y5=new b5({id:b5.ID(t),label:ot(0,"Fold Level {0}",t),alias:`Fold Level ${t}`,precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2048|21+t),weight:100}}),du.INSTANCE.registerEditorAction(y5);var y5;Dr.registerCommand("_executeFoldingRangeProvider",(async function(t,...i){const[e]=i;if(!(e instanceof ms))throw Hi();const s=t.get(xg),n=t.get(pr).getModel(e);if(!n)throw Hi();const o=t.get(pd);if(!o.getValue("editor.folding",{resource:e}))return[];const r=t.get(Xd),h=o.getValue("editor.foldingStrategy",{resource:e}),c={get limit(){return o.getValue("editor.foldingMaximumRegions",{resource:e})},update:()=>{}},a=new X4(n,r,c);let l=a;if("indentation"!==h){const t=g5.getFoldingRangeProviders(s,n);t.length&&(l=new l5(n,t,(()=>{}),c,a))}const u=await l.compute(ke.None),d=[];try{if(u)for(let t=0;t=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},x5=function(t,i){return function(e,s){i(e,s,t)}};let C5=class{constructor(t,i,e,s){this._editor=t,this._languageFeaturesService=i,this._workerService=e,this._accessibleNotificationService=s,this._disposables=new Xi,this._sessionDisposables=new Xi,this._disposables.add(i.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(t.onDidChangeModel((()=>this._update()))),this._disposables.add(t.onDidChangeModelLanguage((()=>this._update()))),this._disposables.add(t.onDidChangeConfiguration((t=>{t.hasChanged(56)&&this._update()}))),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(56))return;if(!this._editor.hasModel())return;const t=this._editor.getModel(),[i]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(t);if(!i||!i.autoFormatTriggerCharacters)return;const e=new Ef;for(const t of i.autoFormatTriggerCharacters)e.add(t.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType((t=>{const i=t.charCodeAt(t.length-1);e.has(i)&&this._trigger(String.fromCharCode(i))})))}_trigger(t){if(!this._editor.hasModel())return;if(this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const i=this._editor.getModel(),e=this._editor.getPosition(),s=new Ce,n=this._editor.onDidChangeModelContent((t=>{if(t.isFlush)return s.cancel(),void n.dispose();for(let i=0,o=t.changes.length;i{s.token.isCancellationRequested||b(t)&&(this._accessibleNotificationService.notify("format",!1),MK.execute(this._editor,t,!0))})).finally((()=>{n.dispose()}))}};C5.ID="editor.contrib.autoFormat",C5=k5([x5(1,xg),x5(2,vP),x5(3,Jm)],C5);let S5=class{constructor(t,i,e){this.editor=t,this._languageFeaturesService=i,this._instantiationService=e,this._callOnDispose=new Xi,this._callOnModel=new Xi,this._callOnDispose.add(t.onDidChangeConfiguration((()=>this._update()))),this._callOnDispose.add(t.onDidChangeModel((()=>this._update()))),this._callOnDispose.add(t.onDidChangeModelLanguage((()=>this._update()))),this._callOnDispose.add(i.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(55)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste((({range:t})=>this._trigger(t))))}_trigger(t){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(OK,this.editor,t,2,jO.None,ke.None,!1).catch(Bi))}};S5.ID="editor.contrib.formatOnPaste",S5=k5([x5(1,xg),x5(2,ur)],S5),lu(C5.ID,C5,2),lu(S5.ID,S5,2),cu(class extends su{constructor(){super({id:"editor.action.formatDocument",label:ot(0,"Format Document"),alias:"Format Document",precondition:zr.and(YC.notInCompositeEditor,YC.writable,YC.hasDocumentFormattingProvider),kbOpts:{kbExpr:YC.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(t,i){if(i.hasModel()){const e=t.get(ur),s=t.get(zO);await s.showWhile(e.invokeFunction(_K,i,1,jO.None,ke.None,!0),250)}}}),cu(class extends su{constructor(){super({id:"editor.action.formatSelection",label:ot(0,"Format Selection"),alias:"Format Selection",precondition:zr.and(YC.writable,YC.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2084),weight:100},contextMenuOpts:{when:YC.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(t,i){if(!i.hasModel())return;const e=t.get(ur),s=i.getModel(),n=i.getSelections().map((t=>t.isEmpty()?new Ms(t.startLineNumber,1,t.startLineNumber,s.getLineMaxColumn(t.startLineNumber)):t)),o=t.get(zO);await o.showWhile(e.invokeFunction(OK,i,n,1,jO.None,ke.None,!0),250)}}),Dr.registerCommand("editor.action.format",(async t=>{const i=t.get(fr).getFocusedCodeEditor();if(!i||!i.hasModel())return;const e=t.get(Sr);i.getSelection().isEmpty()?await e.executeCommand("editor.action.formatDocument"):await e.executeCommand("editor.action.formatSelection")}));var D5=function(t,i){return function(e,s){i(e,s,t)}};class E5{remove(){var t;null===(t=this.parent)||void 0===t||t.children.delete(this.id)}static findId(t,i){let e;"string"==typeof t?e=`${i.id}/${t}`:(e=`${i.id}/${t.name}`,void 0!==i.children.get(e)&&(e=`${i.id}/${t.name}_${t.range.startLineNumber}_${t.range.startColumn}`));let s=e;for(let t=0;void 0!==i.children.get(s);t++)s=`${e}_${t}`;return s}static empty(t){return 0===t.children.size}}class A5 extends E5{constructor(t,i,e){super(),this.id=t,this.parent=i,this.symbol=e,this.children=new Map}}class M5 extends E5{constructor(t,i,e,s){super(),this.id=t,this.parent=i,this.label=e,this.order=s,this.children=new Map}}class L5 extends E5{static create(t,i,e){const s=new Ce(e),n=new L5(i.uri),o=t.ordered(i),r=o.map(((t,e)=>{var o;const r=E5.findId(`provider_${e}`,n),h=new M5(r,n,null!==(o=t.displayName)&&void 0!==o?o:"Unknown Outline Provider",e);return Promise.resolve(t.provideDocumentSymbols(i,s.token)).then((t=>{for(const i of t||[])L5._makeOutlineElement(i,h);return h}),(t=>(Pi(t),h))).then((t=>{E5.empty(t)?t.remove():n._groups.set(r,t)}))})),h=t.onDidChange((()=>{l(t.ordered(i),o)||s.cancel()}));return Promise.all(r).then((()=>s.token.isCancellationRequested&&!e.isCancellationRequested?L5.create(t,i,e):n._compact())).finally((()=>{s.dispose(),h.dispose(),s.dispose()}))}static _makeOutlineElement(t,i){const e=E5.findId(t,i),s=new A5(e,i,t);if(t.children)for(const i of t.children)L5._makeOutlineElement(i,s);i.children.set(s.id,s)}constructor(t){super(),this.uri=t,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let t=0;for(const[i,e]of this._groups)0===e.children.size?this._groups.delete(i):t+=1;if(1!==t)this.children=this._groups;else{const t=Ht.first(this._groups.values());for(const[,i]of t.children)i.parent=this,this.children.set(i.id,i)}return this}getTopLevelSymbols(){const t=[];for(const i of this.children.values())i instanceof A5?t.push(i.symbol):t.push(...Ht.map(i.children.values(),(t=>t.symbol)));return t.sort(((t,i)=>Ms.compareRangesUsingStarts(t.range,i.range)))}asListOfDocumentSymbols(){const t=this.getTopLevelSymbols(),i=[];return L5._flattenDocumentSymbols(i,t,""),i.sort(((t,i)=>As.compare(Ms.getStartPosition(t.range),Ms.getStartPosition(i.range))||As.compare(Ms.getEndPosition(i.range),Ms.getEndPosition(t.range))))}static _flattenDocumentSymbols(t,i,e){for(const s of i)t.push({kind:s.kind,tags:s.tags,name:s.name,detail:s.detail,containerName:s.containerName||e,range:s.range,selectionRange:s.selectionRange,children:void 0}),s.children&&L5._flattenDocumentSymbols(t,s.children,s.name)}}const F5=dr("IOutlineModelService");let T5=class{constructor(t,i,e){this._languageFeaturesService=t,this._disposables=new Xi,this._cache=new Vp(10,.7),this._debounceInformation=i.for(t.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(e.onModelRemoved((t=>{this._cache.delete(t.id)})))}dispose(){this._disposables.dispose()}async getOrCreate(t,i){const e=this._languageFeaturesService.documentSymbolProvider,s=e.ordered(t);let n=this._cache.get(t.id);if(!n||n.versionId!==t.getVersionId()||!l(n.provider,s)){const i=new Ce;n={versionId:t.getVersionId(),provider:s,promiseCnt:0,source:i,promise:L5.create(e,t,i.token),model:void 0},this._cache.set(t.id,n);const o=Date.now();n.promise.then((i=>{n.model=i,this._debounceInformation.update(t,Date.now()-o)})).catch((()=>{this._cache.delete(t.id)}))}if(n.model)return n.model;n.promiseCnt+=1;const o=i.onCancellationRequested((()=>{0==--n.promiseCnt&&(n.source.cancel(),this._cache.delete(t.id))}));try{return await n.promise}finally{o.dispose()}}};T5=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([D5(0,xg),D5(1,gR),D5(2,pr)],T5),Cd(F5,T5,1),Dr.registerCommand("_executeDocumentSymbolProvider",(async function(t,...i){const[e]=i;q(ms.isUri(e));const s=t.get(F5),n=t.get(gr),o=await n.createModelReference(e);try{return(await s.getOrCreate(o.object.textEditorModel,ke.None)).getTopLevelSymbols()}finally{o.dispose()}}));class R5 extends te{constructor(t,i){super(),this.contextKeyService=t,this.model=i,this.inlineCompletionVisible=R5.inlineSuggestionVisible.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentation=R5.inlineSuggestionHasIndentation.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentationLessThanTabSize=R5.inlineSuggestionHasIndentationLessThanTabSize.bindTo(this.contextKeyService),this.suppressSuggestions=R5.suppressSuggestions.bindTo(this.contextKeyService),this._register(WV((t=>{const i=this.model.read(t),e=null==i?void 0:i.state.read(t),s=!!(null==e?void 0:e.inlineCompletion)&&void 0!==(null==e?void 0:e.ghostText)&&!(null==e?void 0:e.ghostText.isEmpty());this.inlineCompletionVisible.set(s),(null==e?void 0:e.ghostText)&&(null==e?void 0:e.inlineCompletion)&&this.suppressSuggestions.set(e.inlineCompletion.inlineCompletion.source.inlineCompletions.suppressSuggestions)}))),this._register(WV((t=>{const i=this.model.read(t);let e=!1,s=!0;const n=null==i?void 0:i.ghostText.read(t);if((null==i?void 0:i.selectedSuggestItem)&&n&&n.parts.length>0){const{column:t,lines:o}=n.parts[0],r=o[0];if(t<=i.textModel.getLineIndentColumn(n.lineNumber)){let t=to(r);-1===t&&(t=r.length-1),e=t>0;const n=i.textModel.getOptions().tabSize;s=Xy.visibleColumnFromColumn(r,t+1,n)i)throw new Ki(`startColumn ${t} cannot be after endColumnExclusive ${i}`)}toRange(t){return new Ms(t,this.startColumn,t,this.endColumnExclusive)}equals(t){return this.startColumn===t.startColumn&&this.endColumnExclusive===t.endColumnExclusive}}function N5(t,i){return new As(t.lineNumber+i.lineNumber-1,1===i.lineNumber?t.column+i.column-1:i.column)}function B5(t){let i=1,e=1;for(const s of t)"\n"===s?(i++,e=1):e++;return new As(i,e)}class P5{constructor(t,i){this.lineNumber=t,this.parts=i}equals(t){return this.lineNumber===t.lineNumber&&this.parts.length===t.parts.length&&this.parts.every(((i,e)=>i.equals(t.parts[e])))}renderForScreenReader(t){if(0===this.parts.length)return"";const i=function(t,i){const e=new O5(t),s=i.map((t=>{const i=Ms.lift(t.range);return{startOffset:e.getOffset(i.getStartPosition()),endOffset:e.getOffset(i.getEndPosition()),text:t.text}}));s.sort(((t,i)=>i.startOffset-t.startOffset));for(const i of s)t=t.substring(0,i.startOffset)+i.text+t.substring(i.endOffset);return t}(t.substr(0,this.parts[this.parts.length-1].column-1),this.parts.map((t=>({range:{startLineNumber:1,endLineNumber:1,startColumn:t.column,endColumn:t.column},text:t.lines.join("\n")}))));return i.substring(this.parts[0].column-1)}isEmpty(){return this.parts.every((t=>0===t.lines.length))}get lineCount(){return 1+this.parts.reduce(((t,i)=>t+i.lines.length-1),0)}}class $5{constructor(t,i,e){this.column=t,this.lines=i,this.preview=e}equals(t){return this.column===t.column&&this.lines.length===t.lines.length&&this.lines.every(((i,e)=>i===t.lines[e]))}}class W5{constructor(t,i,e,s=0){this.lineNumber=t,this.columnRange=i,this.newLines=e,this.additionalReservedLineCount=s,this.parts=[new $5(this.columnRange.endColumnExclusive,this.newLines,!1)]}renderForScreenReader(t){return this.newLines.join("\n")}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every((t=>0===t.lines.length))}equals(t){return this.lineNumber===t.lineNumber&&this.columnRange.equals(t.columnRange)&&this.newLines.length===t.newLines.length&&this.newLines.every(((i,e)=>i===t.newLines[e]))&&this.additionalReservedLineCount===t.additionalReservedLineCount}}function j5(t,i){return t===i||!(!t||!i)&&(t instanceof P5&&i instanceof P5||t instanceof W5&&i instanceof W5)&&t.equals(i)}const z5="ghost-text";let H5=class extends te{constructor(t,i,e){super(),this.editor=t,this.model=i,this.languageService=e,this.isDisposed=FV(this,!1),this.currentTextModel=KV(this.editor.onDidChangeModel,(()=>this.editor.getModel())),this.uiState=_V(this,(t=>{if(this.isDisposed.read(t))return;const i=this.currentTextModel.read(t);if(i!==this.model.targetTextModel.read(t))return;const e=this.model.ghostText.read(t);if(!e)return;const s=e instanceof W5?e.columnRange:void 0,n=[],o=[];function r(t,i){if(o.length>0){const e=o[o.length-1];i&&e.decorations.push(new Wg(e.content.length+1,e.content.length+1+t[0].length,i,0)),e.content+=t[0],t=t.slice(1)}for(const e of t)o.push({content:e,decorations:i?[new Wg(1,e.length+1,i,0)]:[]})}const h=i.getLineContent(e.lineNumber);let c,a=0;for(const t of e.parts){let i=t.lines;void 0===c?(n.push({column:t.column,text:i[0],preview:t.preview}),i=i.slice(1)):r([h.substring(a,t.column-1)],void 0),i.length>0&&(r(i,z5),void 0===c&&t.column<=h.length&&(c=t.column)),a=t.column-1}void 0!==c&&r([h.substring(a)],void 0);const l=void 0!==c?new _5(c,h.length+1):void 0;return{replacedRange:s,inlineTexts:n,additionalLines:o,hiddenRange:l,lineNumber:e.lineNumber,additionalReservedLineCount:this.model.minReservedLineCount.read(t),targetTextModel:i}})),this.decorations=_V(this,(t=>{const i=this.uiState.read(t);if(!i)return[];const e=[];i.replacedRange&&e.push({range:i.replacedRange.toRange(i.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace",description:"GhostTextReplacement"}}),i.hiddenRange&&e.push({range:i.hiddenRange.toRange(i.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(const t of i.inlineTexts)e.push({range:Ms.fromPositions(new As(i.lineNumber,t.column)),options:{description:z5,after:{content:t.text,inlineClassName:t.preview?"ghost-text-decoration-preview":"ghost-text-decoration",cursorStops:Pf.Left},showIfCollapsed:!0}});return e})),this.additionalLinesWidget=this._register(new V5(this.editor,this.languageService.languageIdCodec,_V((t=>{const i=this.uiState.read(t);return i?{lineNumber:i.lineNumber,additionalLines:i.additionalLines,minReservedLineCount:i.additionalReservedLineCount,targetTextModel:i.targetTextModel}:void 0})))),this._register(Yi((()=>{this.isDisposed.set(!0,void 0)}))),this._register(function(t,i){const e=new Xi,s=t.createDecorationsCollection();return e.add(jV({debugName:()=>`Apply decorations from ${i.debugName}`},(t=>{const e=i.read(t);s.set(e)}))),e.add({dispose:()=>{s.clear()}}),e}(this.editor,this.decorations))}ownsViewZone(t){return this.additionalLinesWidget.viewZoneId===t}};H5=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(2,yd)],H5);class V5 extends te{get viewZoneId(){return this._viewZoneId}constructor(t,i,e){super(),this.editor=t,this.languageIdCodec=i,this.lines=e,this._viewZoneId=void 0,this.editorOptionsChanged=ZV("editorOptionChanged",he.filter(this.editor.onDidChangeConfiguration,(t=>t.hasChanged(33)||t.hasChanged(116)||t.hasChanged(98)||t.hasChanged(93)||t.hasChanged(51)||t.hasChanged(50)||t.hasChanged(66)))),this._register(WV((t=>{const i=this.lines.read(t);this.editorOptionsChanged.read(t),i?this.updateLines(i.lineNumber,i.additionalLines,i.minReservedLineCount):this.clear()})))}dispose(){super.dispose(),this.clear()}clear(){this.editor.changeViewZones((t=>{this._viewZoneId&&(t.removeZone(this._viewZoneId),this._viewZoneId=void 0)}))}updateLines(t,i,e){const s=this.editor.getModel();if(!s)return;const{tabSize:n}=s.getOptions();this.editor.changeViewZones((s=>{this._viewZoneId&&(s.removeZone(this._viewZoneId),this._viewZoneId=void 0);const o=Math.max(i.length,e);if(o>0){const e=document.createElement("div");!function(t,i,e,s,n){const o=s.get(33),r=s.get(116),h=s.get(93),c=s.get(51),a=s.get(50),l=s.get(66),u=new td(1e4);u.appendString('
      ');for(let t=0,s=e.length;t');const f=Eo(d),p=So(d),g=Pg.createEmpty(d,n);Qg(new qg(a.isMonospace&&!o,a.canUseHalfwidthRightwardsArrow,d,!1,f,p,0,g,s.decorations,i,0,a.spaceWidth,a.middotWidth,a.wsmiddotWidth,r,"none",h,c!==wi.OFF,null),u),u.appendString("
      ")}u.appendString(""),ir(t,a);const d=u.build(),f=U5?U5.createHTML(d):d;t.innerHTML=f}(e,n,i,this.editor.getOptions(),this.languageIdCodec),this._viewZoneId=s.addZone({afterLineNumber:t,heightInLines:o,domNode:e,afterColumnAffinity:1})}}))}}const U5=Mu("editorGhostText",{createHTML:t=>t});class q5{constructor(t){this.lines=t,this.tokenization={getLineTokens:t=>this.lines[t-1]}}getLineCount(){return this.lines.length}getLineLength(t){return this.lines[t-1].getLineContent().length}}class K5{constructor(){this.value="",this.pos=0}static isDigitCharacter(t){return t>=48&&t<=57}static isVariableCharacter(t){return 95===t||t>=97&&t<=122||t>=65&&t<=90}text(t){this.value=t,this.pos=0}tokenText(t){return this.value.substr(t.pos,t.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};const t=this.pos;let i,e=0,s=this.value.charCodeAt(t);if(i=K5._table[s],"number"==typeof i)return this.pos+=1,{type:i,pos:t,len:1};if(K5.isDigitCharacter(s)){i=8;do{e+=1,s=this.value.charCodeAt(t+e)}while(K5.isDigitCharacter(s));return this.pos+=e,{type:i,pos:t,len:e}}if(K5.isVariableCharacter(s)){i=9;do{s=this.value.charCodeAt(t+ ++e)}while(K5.isVariableCharacter(s)||K5.isDigitCharacter(s));return this.pos+=e,{type:i,pos:t,len:e}}i=10;do{e+=1,s=this.value.charCodeAt(t+e)}while(!isNaN(s)&&void 0===K5._table[s]&&!K5.isDigitCharacter(s)&&!K5.isVariableCharacter(s));return this.pos+=e,{type:i,pos:t,len:e}}}K5._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};class G5{constructor(){this._children=[]}appendChild(t){return t instanceof Z5&&this._children[this._children.length-1]instanceof Z5?this._children[this._children.length-1].value+=t.value:(t.parent=this,this._children.push(t)),this}replace(t,i){const{parent:e}=t,s=e.children.indexOf(t),n=e.children.slice(0);n.splice(s,1,...i),e._children=n,function t(i,e){for(const s of i)s.parent=e,t(s.children,s)}(i,e)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let t=this;for(;;){if(!t)return;if(t instanceof s3)return t;t=t.parent}}toString(){return this.children.reduce(((t,i)=>t+i.toString()),"")}len(){return 0}}class Z5 extends G5{constructor(t){super(),this.value=t}toString(){return this.value}len(){return this.value.length}clone(){return new Z5(this.value)}}class Q5 extends G5{}class J5 extends Q5{static compareByIndex(t,i){return t.index===i.index?0:t.isFinalTabstop?1:i.isFinalTabstop||t.indexi.index?1:0}constructor(t){super(),this.index=t}get isFinalTabstop(){return 0===this.index}get choice(){return 1===this._children.length&&this._children[0]instanceof Y5?this._children[0]:void 0}clone(){const t=new J5(this.index);return this.transform&&(t.transform=this.transform.clone()),t._children=this.children.map((t=>t.clone())),t}}class Y5 extends G5{constructor(){super(...arguments),this.options=[]}appendChild(t){return t instanceof Z5&&(t.parent=this,this.options.push(t)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const t=new Y5;return this.options.forEach(t.appendChild,t),t}}class X5 extends G5{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(t){const i=this;let e=!1,s=t.replace(this.regexp,(function(){return e=!0,i._replace(Array.prototype.slice.call(arguments,0,-2))}));return!e&&this._children.some((t=>t instanceof t3&&Boolean(t.elseValue)))&&(s=this._replace([])),s}_replace(t){let i="";for(const e of this._children)if(e instanceof t3){let s=t[e.index]||"";s=e.resolve(s),i+=s}else i+=e.toString();return i}toString(){return""}clone(){const t=new X5;return t.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),t._children=this.children.map((t=>t.clone())),t}}class t3 extends G5{constructor(t,i,e,s){super(),this.index=t,this.shorthandName=i,this.ifValue=e,this.elseValue=s}resolve(t){return"upcase"===this.shorthandName?t?t.toLocaleUpperCase():"":"downcase"===this.shorthandName?t?t.toLocaleLowerCase():"":"capitalize"===this.shorthandName?t?t[0].toLocaleUpperCase()+t.substr(1):"":"pascalcase"===this.shorthandName?t?this._toPascalCase(t):"":"camelcase"===this.shorthandName?t?this._toCamelCase(t):"":Boolean(t)&&"string"==typeof this.ifValue?this.ifValue:Boolean(t)||"string"!=typeof this.elseValue?t||"":this.elseValue}_toPascalCase(t){const i=t.match(/[a-z0-9]+/gi);return i?i.map((t=>t.charAt(0).toUpperCase()+t.substr(1))).join(""):t}_toCamelCase(t){const i=t.match(/[a-z0-9]+/gi);return i?i.map(((t,i)=>0===i?t.charAt(0).toLowerCase()+t.substr(1):t.charAt(0).toUpperCase()+t.substr(1))).join(""):t}clone(){return new t3(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class i3 extends Q5{constructor(t){super(),this.name=t}resolve(t){let i=t.resolve(this);return this.transform&&(i=this.transform.resolve(i||"")),void 0!==i&&(this._children=[new Z5(i)],!0)}clone(){const t=new i3(this.name);return this.transform&&(t.transform=this.transform.clone()),t._children=this.children.map((t=>t.clone())),t}}function e3(t,i){const e=[...t];for(;e.length>0;){const t=e.shift();if(!i(t))break;e.unshift(...t.children)}}class s3 extends G5{get placeholderInfo(){if(!this._placeholders){const t=[];let i;this.walk((function(e){return e instanceof J5&&(t.push(e),i=!i||i.indexs===t?(e=!0,!1):(i+=s.len(),!0))),e?i:-1}fullLen(t){let i=0;return e3([t],(t=>(i+=t.len(),!0))),i}enclosingPlaceholders(t){const i=[];let{parent:e}=t;for(;e;)e instanceof J5&&i.push(e),e=e.parent;return i}resolveVariables(t){return this.walk((i=>(i instanceof i3&&i.resolve(t)&&(this._placeholders=void 0),!0))),this}appendChild(t){return this._placeholders=void 0,super.appendChild(t)}replace(t,i){return this._placeholders=void 0,super.replace(t,i)}clone(){const t=new s3;return this._children=this.children.map((t=>t.clone())),t}walk(t){e3(this.children,t)}}class n3{constructor(){this._scanner=new K5,this._token={type:14,pos:0,len:0}}static escape(t){return t.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(t){return/\${?CLIPBOARD/.test(t)}parse(t,i,e){const s=new s3;return this.parseFragment(t,s),this.ensureFinalTabstop(s,null!=e&&e,null!=i&&i),s}parseFragment(t,i){const e=i.children.length;for(this._scanner.text(t),this._token=this._scanner.next();this._parse(i););const s=new Map,n=[];i.walk((t=>(t instanceof J5&&(t.isFinalTabstop?s.set(0,void 0):!s.has(t.index)&&t.children.length>0?s.set(t.index,t.children):n.push(t)),!0)));const o=(t,e)=>{const n=s.get(t.index);if(!n)return;const r=new J5(t.index);r.transform=t.transform;for(const t of n){const i=t.clone();r.appendChild(i),i instanceof J5&&s.has(i.index)&&!e.has(i.index)&&(e.add(i.index),o(i,e),e.delete(i.index))}i.replace(t,[r])},r=new Set;for(const t of n)o(t,r);return i.children.slice(e)}ensureFinalTabstop(t,i,e){(i||e&&t.placeholders.length>0)&&(t.placeholders.find((t=>0===t.index))||t.appendChild(new J5(0)))}_accept(t,i){if(void 0===t||this._token.type===t){const t=!i||this._scanner.tokenText(this._token);return this._token=this._scanner.next(),t}return!1}_backTo(t){return this._scanner.pos=t.pos+t.len,this._token=t,!1}_until(t){const i=this._token;for(;this._token.type!==t;){if(14===this._token.type)return!1;if(5===this._token.type){const t=this._scanner.next();if(0!==t.type&&4!==t.type&&5!==t.type)return!1}this._token=this._scanner.next()}const e=this._scanner.value.substring(i.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),e}_parse(t){return this._parseEscaped(t)||this._parseTabstopOrVariableName(t)||this._parseComplexPlaceholder(t)||this._parseComplexVariable(t)||this._parseAnything(t)}_parseEscaped(t){let i;return!!(i=this._accept(5,!0))&&(i=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||i,t.appendChild(new Z5(i)),!0)}_parseTabstopOrVariableName(t){let i;const e=this._token;return this._accept(0)&&(i=this._accept(9,!0)||this._accept(8,!0))?(t.appendChild(/^\d+$/.test(i)?new J5(Number(i)):new i3(i)),!0):this._backTo(e)}_parseComplexPlaceholder(t){let i;const e=this._token;if(!(this._accept(0)&&this._accept(3)&&(i=this._accept(8,!0))))return this._backTo(e);const s=new J5(Number(i));if(this._accept(1))for(;;){if(this._accept(4))return t.appendChild(s),!0;if(!this._parse(s))return t.appendChild(new Z5("${"+i+":")),s.children.forEach(t.appendChild,t),!0}else{if(!(s.index>0&&this._accept(7)))return this._accept(6)?this._parseTransform(s)?(t.appendChild(s),!0):(this._backTo(e),!1):this._accept(4)?(t.appendChild(s),!0):this._backTo(e);{const i=new Y5;for(;;){if(this._parseChoiceElement(i)){if(this._accept(2))continue;if(this._accept(7)&&(s.appendChild(i),this._accept(4)))return t.appendChild(s),!0}return this._backTo(e),!1}}}}_parseChoiceElement(t){const i=this._token,e=[];for(;2!==this._token.type&&7!==this._token.type;){let t;if(t=(t=this._accept(5,!0))?this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||t:this._accept(void 0,!0),!t)return this._backTo(i),!1;e.push(t)}return 0===e.length?(this._backTo(i),!1):(t.appendChild(new Z5(e.join(""))),!0)}_parseComplexVariable(t){let i;const e=this._token;if(!(this._accept(0)&&this._accept(3)&&(i=this._accept(9,!0))))return this._backTo(e);const s=new i3(i);if(!this._accept(1))return this._accept(6)?this._parseTransform(s)?(t.appendChild(s),!0):(this._backTo(e),!1):this._accept(4)?(t.appendChild(s),!0):this._backTo(e);for(;;){if(this._accept(4))return t.appendChild(s),!0;if(!this._parse(s))return t.appendChild(new Z5("${"+i+":")),s.children.forEach(t.appendChild,t),!0}}_parseTransform(t){const i=new X5;let e="",s="";for(;!this._accept(6);){let t;if(t=this._accept(5,!0))t=this._accept(6,!0)||t,e+=t;else{if(14===this._token.type)return!1;e+=this._accept(void 0,!0)}}for(;!this._accept(6);){let t;if(t=this._accept(5,!0))t=this._accept(5,!0)||this._accept(6,!0)||t,i.appendChild(new Z5(t));else if(!this._parseFormatString(i)&&!this._parseAnything(i))return!1}for(;!this._accept(4);){if(14===this._token.type)return!1;s+=this._accept(void 0,!0)}try{i.regexp=new RegExp(e,s)}catch(t){return!1}return t.transform=i,!0}_parseFormatString(t){const i=this._token;if(!this._accept(0))return!1;let e=!1;this._accept(3)&&(e=!0);const s=this._accept(8,!0);if(!s)return this._backTo(i),!1;if(!e)return t.appendChild(new t3(Number(s))),!0;if(this._accept(4))return t.appendChild(new t3(Number(s))),!0;if(!this._accept(1))return this._backTo(i),!1;if(this._accept(6)){const e=this._accept(9,!0);return e&&this._accept(4)?(t.appendChild(new t3(Number(s),e)),!0):(this._backTo(i),!1)}if(this._accept(11)){const i=this._until(4);if(i)return t.appendChild(new t3(Number(s),void 0,i,void 0)),!0}else if(this._accept(12)){const i=this._until(4);if(i)return t.appendChild(new t3(Number(s),void 0,void 0,i)),!0}else if(this._accept(13)){const i=this._until(1);if(i){const e=this._until(4);if(e)return t.appendChild(new t3(Number(s),void 0,i,e)),!0}}else{const i=this._until(4);if(i)return t.appendChild(new t3(Number(s),void 0,void 0,i)),!0}return this._backTo(i),!1}_parseAnything(t){return 14!==this._token.type&&(t.appendChild(new Z5(this._scanner.tokenText(this._token))),this._accept(void 0),!0)}}async function o3(t,i,e,s,n=ke.None,o){const r=function(t,i){const e=i.getWordAtPosition(t),s=i.getLineMaxColumn(t.lineNumber);return e?new Ms(t.lineNumber,e.startColumn,t.lineNumber,s):Ms.fromPositions(t,t.with(void 0,s))}(i,e),h=t.all(e),c=new qp;for(const t of h)t.groupId&&c.add(t.groupId,t);function a(t){if(!t.yieldsToGroupIds)return[];const i=[];for(const e of t.yieldsToGroupIds||[]){const t=c.get(e);for(const e of t)i.push(e)}return i}const l=new Map,u=new Set;function d(t,i){if(i=[...i,t],u.has(t))return i;u.add(t);try{const e=a(t);for(const t of e){const e=d(t,i);if(e)return e}}finally{u.delete(t)}}function f(t){const o=l.get(t);if(o)return o;const r=d(t,[]);r&&Pi(new Error(`Inline completions: cyclic yield-to dependency detected. Path: ${r.map((t=>t.toString?t.toString():""+t)).join(" -> ")}`));const h=new bc;return l.set(t,h.p),(async()=>{if(!r){const i=a(t);for(const t of i){const i=await f(t);if(i&&i.items.length>0)return}}try{return await t.provideInlineCompletions(e,i,s,n)}catch(t){return void Pi(t)}})().then((t=>h.complete(t)),(t=>h.error(t))),h.p}const p=await Promise.all(h.map((async t=>({provider:t,completions:await f(t)})))),g=new Map,m=[];for(const t of p){const i=t.completions;if(!i)continue;const s=new h3(i,t.provider);m.push(s);for(const t of i.items){const i=c3.from(t,s,r,e,o);g.set(i.hash(),i)}}return new r3(Array.from(g.values()),new Set(g.keys()),m)}class r3{constructor(t,i,e){this.completions=t,this.hashs=i,this.providerResults=e}has(t){return this.hashs.has(t.hash())}dispose(){for(const t of this.providerResults)t.removeRef()}}class h3{constructor(t,i){this.inlineCompletions=t,this.provider=i,this.refCount=1}addRef(){this.refCount++}removeRef(){this.refCount--,0===this.refCount&&this.provider.freeInlineCompletions(this.inlineCompletions)}}class c3{static from(t,i,e,s,n){let o,r,h=t.range?Ms.lift(t.range):e;if("string"==typeof t.insertText){if(o=t.insertText,n&&t.completeBracketPairs){o=a3(o,h.getStartPosition(),s,n);const i=o.length-t.insertText.length;0!==i&&(h=new Ms(h.startLineNumber,h.startColumn,h.endLineNumber,h.endColumn+i))}r=void 0}else if("snippet"in t.insertText){const i=t.insertText.snippet.length;if(n&&t.completeBracketPairs){t.insertText.snippet=a3(t.insertText.snippet,h.getStartPosition(),s,n);const e=t.insertText.snippet.length-i;0!==e&&(h=new Ms(h.startLineNumber,h.startColumn,h.endLineNumber,h.endColumn+e))}const e=(new n3).parse(t.insertText.snippet);1===e.children.length&&e.children[0]instanceof Z5?(o=e.children[0].value,r=void 0):(o=e.toString(),r={snippet:t.insertText.snippet,range:h})}else xh();return new c3(o,t.command,h,o,r,t.additionalTextEdits||I5,t,i)}constructor(t,i,e,s,n,o,r,h){this.filterText=t,this.command=i,this.range=e,this.insertText=s,this.snippetInfo=n,this.additionalTextEdits=o,this.sourceInlineCompletion=r,this.source=h,s=(t=t.replace(/\r\n|\r/g,"\n")).replace(/\r\n|\r/g,"\n")}withRange(t){return new c3(this.filterText,this.command,t,this.insertText,this.snippetInfo,this.additionalTextEdits,this.sourceInlineCompletion,this.source)}hash(){return JSON.stringify({insertText:this.insertText,range:this.range.toString()})}}function a3(t,i,e,s){const n=e.getLineContent(i.lineNumber).substring(0,i.column-1)+t,o=e.tokenization.tokenizeLineWithEdit(i,n.length-(i.column-1),t),r=null==o?void 0:o.sliceAndInflate(i.column-1,n.length,0);if(!r)return t;const h=function(t,i){const e=new vE,s=new NE(e,(t=>i.getLanguageConfiguration(t))),n=HE(new RE(new q5([t]),s),[],void 0,!0);let o="";const r=t.getLineContent();return function t(i,e){if(2===i.kind)if(t(i.openingBracket,e),e=sE(e,i.openingBracket.length),i.child&&(t(i.child,e),e=sE(e,i.child.length)),i.closingBracket)t(i.closingBracket,e),e=sE(e,i.closingBracket.length);else{const t=s.getSingleLanguageBracketTokens(i.openingBracket.languageId).findClosingTokenText(i.openingBracket.bracketIds);o+=t}else if(3===i.kind);else if(0===i.kind||1===i.kind)o+=r.substring(e,sE(e,i.length));else if(4===i.kind)for(const s of i.children)t(s,e),e=sE(e,s.length)}(n,YD),o}(r,s);return h}class l3{constructor(t,i){this.range=t,this.text=i}removeCommonPrefix(t,i){const e=i?this.range.intersectRanges(i):this.range;if(!e)return this;const s=t.getValueInRange(e,1),n=fo(s,this.text),o=N5(this.range.getStartPosition(),B5(s.substring(0,n))),r=this.text.substring(n),h=Ms.fromPositions(o,this.range.getEndPosition());return new l3(h,r)}augments(t){return this.text.startsWith(t.text)&&(i=this.range,(e=t.range).getStartPosition().equals(i.getStartPosition())&&e.getEndPosition().isBeforeOrEqual(i.getEndPosition()));var i,e}computeGhostText(t,i,e,s=0){let n=this.removeCommonPrefix(t);if(n.range.endLineNumber!==n.range.startLineNumber)return;const o=t.getLineContent(n.range.startLineNumber),r=io(o).length;if(n.range.startColumn-1<=r){const t=io(n.text).length,i=o.substring(n.range.startColumn-1,r),[e,s]=[n.range.getStartPosition(),n.range.getEndPosition()],h=e.column+i.length<=s.column?e.delta(0,i.length):s,c=Ms.fromPositions(h,s),a=n.text.startsWith(i)?n.text.substring(i.length):n.text.substring(t);n=new l3(c,a)}const h=t.getValueInRange(n.range),c=function(t,i){if((null==u3?void 0:u3.originalValue)===t&&(null==u3?void 0:u3.newValue)===i)return null==u3?void 0:u3.changes;{let e=f3(t,i,!0);if(e){const s=d3(e);if(s>0){const n=f3(t,i,!1);n&&d3(n)0===t.originalLength));if(t.length>1||1===t.length&&t[0].originalStart!==h.length)return}const u=n.text.length-s;for(const t of c){const s=n.range.startColumn+t.originalStart+t.originalLength;if("subwordSmart"===i&&e&&e.lineNumber===n.range.startLineNumber&&s0)return;if(0===t.modifiedLength)continue;const o=t.modifiedStart+t.modifiedLength,r=Math.max(t.modifiedStart,Math.min(o,u)),h=n.text.substring(t.modifiedStart,r),c=n.text.substring(r,Math.max(t.modifiedStart,o));if(h.length>0){const t=Xn(h);l.push(new $5(s,t,!1))}if(c.length>0){const t=Xn(c);l.push(new $5(s,t,!0))}}return new P5(a,l)}}let u3;function d3(t){let i=0;for(const e of t)i+=e.originalLength;return i}function f3(t,i,e){if(t.length>5e3||i.length>5e3)return;function s(t){let i=0;for(let e=0,s=t.length;ei&&(i=s)}return i}const n=Math.max(s(t),s(i));function o(t){if(t<0)throw new Error("unexpected");return n+t+1}function r(t){let i=0,s=0;const n=new Int32Array(t.length);for(let r=0,h=t.length;rh},{getElements:()=>c}).ComputeDiff(!1).changes}var p3=function(t,i){return function(e,s){i(e,s,t)}};let g3=class extends te{constructor(t,i,e,s,n){super(),this.textModel=t,this.versionId=i,this._debounceValue=e,this.languageFeaturesService=s,this.languageConfigurationService=n,this._updateOperation=this._register(new ie),this.inlineCompletions=RV("inlineCompletions",void 0),this.suggestWidgetInlineCompletions=RV("suggestWidgetInlineCompletions",void 0),this._register(this.textModel.onDidChangeContent((()=>{this._updateOperation.clear()})))}fetch(t,i,e){var s,n;const o=new m3(t,i,this.textModel.getVersionId()),r=i.selectedSuggestionInfo?this.suggestWidgetInlineCompletions:this.inlineCompletions;if(null===(s=this._updateOperation.value)||void 0===s?void 0:s.request.satisfies(o))return this._updateOperation.value.promise;if(null===(n=r.get())||void 0===n?void 0:n.request.satisfies(o))return Promise.resolve(!0);const h=!!this._updateOperation.value;this._updateOperation.clear();const c=new Ce,a=(async()=>{var s;if((h||i.triggerKind===$s.Automatic)&&await(s=this._debounceValue.get(this.textModel),new Promise((t=>{let i;setTimeout((()=>{i&&i.dispose(),t()}),s)}))),c.token.isCancellationRequested||this.textModel.getVersionId()!==o.versionId)return!1;const n=new Date,a=await o3(this.languageFeaturesService.inlineCompletionsProvider,t,this.textModel,i,c.token,this.languageConfigurationService);if(c.token.isCancellationRequested||this.textModel.getVersionId()!==o.versionId)return!1;const l=new Date;this._debounceValue.update(this.textModel,l.getTime()-n.getTime());const u=new v3(a,o,this.textModel,this.versionId);if(e){const i=e.toInlineCompletion(void 0);e.canBeReused(this.textModel,t)&&!a.has(i)&&u.prepend(e.inlineCompletion,i.range,!0)}return this._updateOperation.clear(),yV((t=>{r.set(u,t)})),!0})(),l=new w3(o,c,a);return this._updateOperation.value=l,a}clear(t){this._updateOperation.clear(),this.inlineCompletions.set(void 0,t),this.suggestWidgetInlineCompletions.set(void 0,t)}clearSuggestWidgetInlineCompletions(t){var i;(null===(i=this._updateOperation.value)||void 0===i?void 0:i.request.context.selectedSuggestionInfo)&&this._updateOperation.clear(),this.suggestWidgetInlineCompletions.set(void 0,t)}cancelUpdate(){this._updateOperation.clear()}};g3=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([p3(3,xg),p3(4,Xd)],g3);class m3{constructor(t,i,e){this.position=t,this.context=i,this.versionId=e}satisfies(t){return this.position.equals(t.position)&&(e=t.context.selectedSuggestionInfo,(i=this.context.selectedSuggestionInfo)&&e?((t,i)=>t.equals(i))(i,e):i===e)&&(t.context.triggerKind===$s.Automatic||this.context.triggerKind===$s.Explicit)&&this.versionId===t.versionId;var i,e}}class w3{constructor(t,i,e){this.request=t,this.cancellationTokenSource=i,this.promise=e}dispose(){this.cancellationTokenSource.cancel()}}class v3{get inlineCompletions(){return this._inlineCompletions}constructor(t,i,e,s){this.inlineCompletionProviderResult=t,this.request=i,this.textModel=e,this.versionId=s,this._refCount=1,this._prependedInlineCompletionItems=[],this._rangeVersionIdValue=0,this._rangeVersionId=_V(this,(t=>{this.versionId.read(t);let i=!1;for(const t of this._inlineCompletions)i=i||t._updateRange(this.textModel);return i&&this._rangeVersionIdValue++,this._rangeVersionIdValue}));const n=e.deltaDecorations([],t.completions.map((t=>({range:t.range,options:{description:"inline-completion-tracking-range"}}))));this._inlineCompletions=t.completions.map(((t,i)=>new b3(t,n[i],this._rangeVersionId)))}clone(){return this._refCount++,this}dispose(){if(this._refCount--,0===this._refCount){setTimeout((()=>{this.textModel.isDisposed()||this.textModel.deltaDecorations(this._inlineCompletions.map((t=>t.decorationId)),[])}),0),this.inlineCompletionProviderResult.dispose();for(const t of this._prependedInlineCompletionItems)t.source.removeRef()}}prepend(t,i,e){e&&t.source.addRef();const s=this.textModel.deltaDecorations([],[{range:i,options:{description:"inline-completion-tracking-range"}}])[0];this._inlineCompletions.unshift(new b3(t,s,this._rangeVersionId,i)),this._prependedInlineCompletionItems.push(t)}}class b3{get forwardStable(){var t;return null!==(t=this.inlineCompletion.source.inlineCompletions.enableForwardStability)&&void 0!==t&&t}constructor(t,i,e,s){this.inlineCompletion=t,this.decorationId=i,this.rangeVersion=e,this.semanticId=JSON.stringify([this.inlineCompletion.filterText,this.inlineCompletion.insertText,this.inlineCompletion.range.getStartPosition().toString()]),this._isValid=!0,this._updatedRange=null!=s?s:t.range}toInlineCompletion(t){return this.inlineCompletion.withRange(this._getUpdatedRange(t))}toSingleTextEdit(t){return new l3(this._getUpdatedRange(t),this.inlineCompletion.insertText)}isVisible(t,i,e){const s=this._toFilterTextReplacement(e).removeCommonPrefix(t);if(!this._isValid||!this.inlineCompletion.range.getStartPosition().equals(this._getUpdatedRange(e).getStartPosition())||i.lineNumber!==s.range.startLineNumber)return!1;const n=t.getValueInRange(s.range,1),o=s.text,r=Math.max(0,i.column-s.range.startColumn);let h=o.substring(0,r),c=o.substring(r),a=n.substring(0,r),l=n.substring(r);const u=t.getLineIndentColumn(s.range.startLineNumber);return s.range.startColumn<=u&&(a=a.trimStart(),0===a.length&&(l=l.trimStart()),h=h.trimStart(),0===h.length&&(c=c.trimStart())),h.startsWith(a)&&!!WI(l,c)}canBeReused(t,i){return this._isValid&&this._getUpdatedRange(void 0).containsPosition(i)&&this.isVisible(t,i,void 0)&&!this._isSmallerThanOriginal(void 0)}_toFilterTextReplacement(t){return new l3(this._getUpdatedRange(t),this.inlineCompletion.filterText)}_isSmallerThanOriginal(t){return y3(this._getUpdatedRange(t)).isBefore(y3(this.inlineCompletion.range))}_getUpdatedRange(t){return this.rangeVersion.read(t),this._updatedRange}_updateRange(t){const i=t.getDecorationRange(this.decorationId);return i?!this._updatedRange.equalsRange(i)&&(this._updatedRange=i,!0):(this._isValid=!1,!0)}}function y3(t){return t.startLineNumber===t.endLineNumber?new As(1,1+t.endColumn-t.startColumn):new As(1+t.endLineNumber-t.startLineNumber,t.endColumn)}const k3={Visible:j2,HasFocusedSuggestion:new ch("suggestWidgetHasFocusedSuggestion",!1,ot(0,"Whether any suggestion is focused")),DetailsVisible:new ch("suggestWidgetDetailsVisible",!1,ot(0,"Whether suggestion details are visible")),MultipleSuggestions:new ch("suggestWidgetMultipleSuggestions",!1,ot(0,"Whether there are multiple suggestions to pick from")),MakesTextEdit:new ch("suggestionMakesTextEdit",!0,ot(0,"Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new ch("acceptSuggestionOnEnter",!0,ot(0,"Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new ch("suggestionHasInsertAndReplaceRange",!1,ot(0,"Whether the current suggestion has insert and replace behaviour")),InsertMode:new ch("suggestionInsertMode",void 0,{type:"string",description:ot(0,"Whether the default behaviour is to insert or replace")}),CanResolve:new ch("suggestionCanResolve",!1,ot(0,"Whether the current suggestion supports to resolve further details"))},x3=new Rh("suggestWidgetStatusBar");class C3{constructor(t,i,e,s){var n;this.position=t,this.completion=i,this.container=e,this.provider=s,this.isInvalid=!1,this.score=x_.Default,this.distance=0,this.textLabel="string"==typeof i.label?i.label:null===(n=i.label)||void 0===n?void 0:n.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=i.sortText&&i.sortText.toLowerCase(),this.filterTextLow=i.filterText&&i.filterText.toLowerCase(),this.extensionId=i.extensionId,Ms.isIRange(i.range)?(this.editStart=new As(i.range.startLineNumber,i.range.startColumn),this.editInsertEnd=new As(i.range.endLineNumber,i.range.endColumn),this.editReplaceEnd=new As(i.range.endLineNumber,i.range.endColumn),this.isInvalid=this.isInvalid||Ms.spansMultipleLines(i.range)||i.range.startLineNumber!==t.lineNumber):(this.editStart=new As(i.range.insert.startLineNumber,i.range.insert.startColumn),this.editInsertEnd=new As(i.range.insert.endLineNumber,i.range.insert.endColumn),this.editReplaceEnd=new As(i.range.replace.endLineNumber,i.range.replace.endColumn),this.isInvalid=this.isInvalid||Ms.spansMultipleLines(i.range.insert)||Ms.spansMultipleLines(i.range.replace)||i.range.insert.startLineNumber!==t.lineNumber||i.range.replace.startLineNumber!==t.lineNumber||i.range.insert.startColumn!==i.range.replace.startColumn),"function"!=typeof s.resolveCompletionItem&&(this._resolveCache=Promise.resolve(),this._resolveDuration=0)}get isResolved(){return void 0!==this._resolveDuration}get resolveDuration(){return void 0!==this._resolveDuration?this._resolveDuration:-1}async resolve(t){if(!this._resolveCache){const i=t.onCancellationRequested((()=>{this._resolveCache=void 0,this._resolveDuration=void 0})),e=new re(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,t)).then((t=>{Object.assign(this.completion,t),this._resolveDuration=e.elapsed()}),(t=>{ji(t)&&(this._resolveCache=void 0,this._resolveDuration=void 0)})).finally((()=>{i.dispose()}))}return this._resolveCache}}class S3{constructor(t=2,i=new Set,e=new Set,s=new Map,n=!0){this.snippetSortOrder=t,this.kindFilter=i,this.providerFilter=e,this.providerItemsToReuse=s,this.showDeprecated=n}}S3.default=new S3;class D3{constructor(t,i,e,s){this.items=t,this.needsClipboard=i,this.durations=e,this.disposable=s}}async function E3(t,i,e,s=S3.default,n={triggerKind:0},o=ke.None){const r=new re;e=e.clone();const h=i.getWordAtPosition(e),c=h?new Ms(e.lineNumber,h.startColumn,e.lineNumber,h.endColumn):Ms.fromPositions(e),a={replace:c,insert:c.setEndPosition(e.lineNumber,e.column)},l=[],u=new Xi,d=[];let f=!1;const p=(t,i,n)=>{var o,r,h;let c=!1;if(!i)return c;for(const n of i.suggestions)if(!s.kindFilter.has(n.kind)){if(!s.showDeprecated&&(null===(o=null==n?void 0:n.tags)||void 0===o?void 0:o.includes(1)))continue;n.range||(n.range=a),n.sortText||(n.sortText="string"==typeof n.label?n.label:n.label.label),!f&&n.insertTextRules&&4&n.insertTextRules&&(f=n3.guessNeedsClipboard(n.insertText)),l.push(new C3(e,n,i,t)),c=!0}return Zi(i)&&u.add(i),d.push({providerName:null!==(r=t._debugDisplayName)&&void 0!==r?r:"unknown_provider",elapsedProvider:null!==(h=i.duration)&&void 0!==h?h:-1,elapsedOverall:n.elapsed()}),c},g=(async()=>{})();for(const r of t.orderedGroups(i)){let t=!1;if(await Promise.all(r.map((async r=>{if(s.providerItemsToReuse.has(r)){const i=s.providerItemsToReuse.get(r);return i.forEach((t=>l.push(t))),void(t=t||i.length>0)}if(!(s.providerFilter.size>0)||s.providerFilter.has(r))try{const s=new re,h=await r.provideCompletionItems(i,e,n,o);t=p(r,h,s)||t}catch(t){Pi(t)}}))),t||o.isCancellationRequested)break}return await g,o.isCancellationRequested?(u.dispose(),Promise.reject(new zi)):new D3(l.sort(M3.get(s.snippetSortOrder)),f,{entries:d,elapsed:r.elapsed()},u)}function A3(t,i){if(t.sortTextLow&&i.sortTextLow){if(t.sortTextLowi.sortTextLow)return 1}return t.textLabeli.textLabel?1:t.completion.kind-i.completion.kind}const M3=new Map;M3.set(0,(function(t,i){if(t.completion.kind!==i.completion.kind){if(27===t.completion.kind)return-1;if(27===i.completion.kind)return 1}return A3(t,i)})),M3.set(2,(function(t,i){if(t.completion.kind!==i.completion.kind){if(27===t.completion.kind)return 1;if(27===i.completion.kind)return-1}return A3(t,i)})),M3.set(1,A3),Dr.registerCommand("_executeCompletionItemProvider",(async(t,...i)=>{const[e,s,n,o]=i;q(ms.isUri(e)),q(As.isIPosition(s)),q("string"==typeof n||!n),q("number"==typeof o||!o);const{completionProvider:r}=t.get(xg),h=await t.get(gr).createModelReference(e);try{const t={incomplete:!1,suggestions:[]},i=[],e=h.object.textEditorModel.validatePosition(s),c=await E3(r,h.object.textEditorModel,e,void 0,{triggerCharacter:null!=n?n:void 0,triggerKind:n?1:0});for(const e of c.items)i.length<(null!=o?o:0)&&i.push(e.resolve(ke.None)),t.incomplete=t.incomplete||e.container.incomplete,t.suggestions.push(e.completion);try{return await Promise.all(i),t}finally{setTimeout((()=>c.disposable.dispose()),100)}}finally{h.dispose()}}));class L3{static isAllOff(t){return"off"===t.other&&"off"===t.comments&&"off"===t.strings}static isAllOn(t){return"on"===t.other&&"on"===t.comments&&"on"===t.strings}static valueFor(t,i){switch(i){case 1:return t.comments;case 2:return t.strings;default:return t.other}}}function F3(t,i=xt){return function(t,i=xt){return!!i&&fA(t.charCodeAt(0))&&58===t.charCodeAt(1)}(t,i)?t.charAt(0).toUpperCase()+t.slice(1):t}Object.freeze({CURRENT_YEAR:!0,CURRENT_YEAR_SHORT:!0,CURRENT_MONTH:!0,CURRENT_DATE:!0,CURRENT_HOUR:!0,CURRENT_MINUTE:!0,CURRENT_SECOND:!0,CURRENT_DAY_NAME:!0,CURRENT_DAY_NAME_SHORT:!0,CURRENT_MONTH_NAME:!0,CURRENT_MONTH_NAME_SHORT:!0,CURRENT_SECONDS_UNIX:!0,CURRENT_TIMEZONE_OFFSET:!0,SELECTION:!0,CLIPBOARD:!0,TM_SELECTED_TEXT:!0,TM_CURRENT_LINE:!0,TM_CURRENT_WORD:!0,TM_LINE_INDEX:!0,TM_LINE_NUMBER:!0,TM_FILENAME:!0,TM_FILENAME_BASE:!0,TM_DIRECTORY:!0,TM_FILEPATH:!0,CURSOR_INDEX:!0,CURSOR_NUMBER:!0,RELATIVE_FILEPATH:!0,BLOCK_COMMENT_START:!0,BLOCK_COMMENT_END:!0,LINE_COMMENT:!0,WORKSPACE_NAME:!0,WORKSPACE_FOLDER:!0,RANDOM:!0,RANDOM_HEX:!0,UUID:!0});class T3{constructor(t){this._delegates=t}resolve(t){for(const i of this._delegates){const e=i.resolve(t);if(void 0!==e)return e}}}class R3{constructor(t,i,e,s){this._model=t,this._selection=i,this._selectionIdx=e,this._overtypingCapturer=s}resolve(t){const{name:i}=t;if("SELECTION"===i||"TM_SELECTED_TEXT"===i){let i=this._model.getValueInRange(this._selection)||void 0,e=this._selection.startLineNumber!==this._selection.endLineNumber;if(!i&&this._overtypingCapturer){const t=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);t&&(i=t.value,e=t.multiline)}if(i&&e&&t.snippet){const e=io(this._model.getLineContent(this._selection.startLineNumber),0,this._selection.startColumn-1);let s=e;t.snippet.walk((i=>i!==t&&(i instanceof Z5&&(s=io(Xn(i.value).pop())),!0)));const n=fo(s,e);i=i.replace(/(\r\n|\r|\n)(.*)/g,((t,i,e)=>`${i}${s.substr(n)}${e}`))}return i}if("TM_CURRENT_LINE"===i)return this._model.getLineContent(this._selection.positionLineNumber);if("TM_CURRENT_WORD"===i){const t=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return t&&t.word||void 0}return"TM_LINE_INDEX"===i?String(this._selection.positionLineNumber-1):"TM_LINE_NUMBER"===i?String(this._selection.positionLineNumber):"CURSOR_INDEX"===i?String(this._selectionIdx):"CURSOR_NUMBER"===i?String(this._selectionIdx+1):void 0}}class O3{constructor(t,i){this._labelService=t,this._model=i}resolve(t){const{name:i}=t;if("TM_FILENAME"===i)return hs(this._model.uri.fsPath);if("TM_FILENAME_BASE"===i){const t=hs(this._model.uri.fsPath),i=t.lastIndexOf(".");return i<=0?t:t.slice(0,i)}return"TM_DIRECTORY"===i?"."===rs(this._model.uri.fsPath)?"":this._labelService.getUriLabel(kA(this._model.uri)):"TM_FILEPATH"===i?this._labelService.getUriLabel(this._model.uri):"RELATIVE_FILEPATH"===i?this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0}):void 0}}class I3{constructor(t,i,e,s){this._readClipboardText=t,this._selectionIdx=i,this._selectionCount=e,this._spread=s}resolve(t){if("CLIPBOARD"!==t.name)return;const i=this._readClipboardText();if(i){if(this._spread){const t=i.split(/\r\n|\n|\r/).filter((t=>!Vn(t)));if(t.length===this._selectionCount)return t[this._selectionIdx]}return i}}}let _3=class{constructor(t,i,e){this._model=t,this._selection=i,this._languageConfigurationService=e}resolve(t){const{name:i}=t,e=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),s=this._languageConfigurationService.getLanguageConfiguration(e).comments;if(s)return"LINE_COMMENT"===i?s.lineCommentToken||void 0:"BLOCK_COMMENT_START"===i?s.blockCommentStartToken||void 0:"BLOCK_COMMENT_END"===i&&s.blockCommentEndToken||void 0}};_3=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(2,Xd)],_3);class N3{constructor(){this._date=new Date}resolve(t){const{name:i}=t;if("CURRENT_YEAR"===i)return String(this._date.getFullYear());if("CURRENT_YEAR_SHORT"===i)return String(this._date.getFullYear()).slice(-2);if("CURRENT_MONTH"===i)return String(this._date.getMonth().valueOf()+1).padStart(2,"0");if("CURRENT_DATE"===i)return String(this._date.getDate().valueOf()).padStart(2,"0");if("CURRENT_HOUR"===i)return String(this._date.getHours().valueOf()).padStart(2,"0");if("CURRENT_MINUTE"===i)return String(this._date.getMinutes().valueOf()).padStart(2,"0");if("CURRENT_SECOND"===i)return String(this._date.getSeconds().valueOf()).padStart(2,"0");if("CURRENT_DAY_NAME"===i)return N3.dayNames[this._date.getDay()];if("CURRENT_DAY_NAME_SHORT"===i)return N3.dayNamesShort[this._date.getDay()];if("CURRENT_MONTH_NAME"===i)return N3.monthNames[this._date.getMonth()];if("CURRENT_MONTH_NAME_SHORT"===i)return N3.monthNamesShort[this._date.getMonth()];if("CURRENT_SECONDS_UNIX"===i)return String(Math.floor(this._date.getTime()/1e3));if("CURRENT_TIMEZONE_OFFSET"===i){const t=this._date.getTimezoneOffset(),i=t>0?"-":"+",e=Math.trunc(Math.abs(t/60)),s=e<10?"0"+e:e,n=Math.abs(t)-60*e;return i+s+":"+(n<10?"0"+n:n)}}}N3.dayNames=[ot(0,"Sunday"),ot(0,"Monday"),ot(0,"Tuesday"),ot(0,"Wednesday"),ot(0,"Thursday"),ot(0,"Friday"),ot(0,"Saturday")],N3.dayNamesShort=[ot(0,"Sun"),ot(0,"Mon"),ot(0,"Tue"),ot(0,"Wed"),ot(0,"Thu"),ot(0,"Fri"),ot(0,"Sat")],N3.monthNames=[ot(0,"January"),ot(0,"February"),ot(0,"March"),ot(0,"April"),ot(0,"May"),ot(0,"June"),ot(0,"July"),ot(0,"August"),ot(0,"September"),ot(0,"October"),ot(0,"November"),ot(0,"December")],N3.monthNamesShort=[ot(0,"Jan"),ot(0,"Feb"),ot(0,"Mar"),ot(0,"Apr"),ot(0,"May"),ot(0,"Jun"),ot(0,"Jul"),ot(0,"Aug"),ot(0,"Sep"),ot(0,"Oct"),ot(0,"Nov"),ot(0,"Dec")];class B3{constructor(t){this._workspaceService=t}resolve(t){if(!this._workspaceService)return;const i="string"==typeof(e=this._workspaceService.getWorkspace())||void 0===e?"string"==typeof e?{id:hs(e)}:JO:e.configuration?{id:e.id,configPath:e.configuration}:1===e.folders.length?{id:e.id,uri:e.folders[0].uri}:{id:e.id};var e,s;return"string"!=typeof(null==(s=i)?void 0:s.id)||QO(s)||function(t){return"string"==typeof(null==t?void 0:t.id)&&ms.isUri(t.configPath)}(s)?"WORKSPACE_NAME"===t.name?this._resolveWorkspaceName(i):"WORKSPACE_FOLDER"===t.name?this._resoveWorkspacePath(i):void 0:void 0}_resolveWorkspaceName(t){if(QO(t))return hs(t.uri.path);let i=hs(t.configPath.path);return i.endsWith("code-workspace")&&(i=i.substr(0,i.length-14-1)),i}_resoveWorkspacePath(t){if(QO(t))return F3(t.uri.fsPath);const i=hs(t.configPath.path);let e=t.configPath.fsPath;return e.endsWith(i)&&(e=e.substr(0,e.length-i.length-1)),e?F3(e):"/"}}class P3{resolve(t){const{name:i}=t;return"RANDOM"===i?Math.random().toString().slice(-6):"RANDOM_HEX"===i?Math.random().toString(16).slice(-6):"UUID"===i?l1():void 0}}var $3;class W3{constructor(t,i,e){this._editor=t,this._snippet=i,this._snippetLineLeadingWhitespace=e,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=f(i.placeholders,J5.compareByIndex),this._placeholderGroupsIdx=-1}initialize(t){this._offset=t.newPosition}dispose(){this._placeholderDecorations&&this._editor.removeDecorations([...this._placeholderDecorations.values()]),this._placeholderGroups.length=0}_initDecorations(){if(-1===this._offset)throw new Error("Snippet not initialized!");if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;const t=this._editor.getModel();this._editor.changeDecorations((i=>{for(const e of this._snippet.placeholders){const s=this._snippet.offset(e),n=this._snippet.fullLen(e),o=Ms.fromPositions(t.getPositionAt(this._offset+s),t.getPositionAt(this._offset+s+n)),r=i.addDecoration(o,e.isFinalTabstop?W3._decor.inactiveFinal:W3._decor.inactive);this._placeholderDecorations.set(e,r)}}))}move(t){if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){const t=[];for(const i of this._placeholderGroups[this._placeholderGroupsIdx])if(i.transform){const e=this._placeholderDecorations.get(i),s=this._editor.getModel().getDecorationRange(e),n=this._editor.getModel().getValueInRange(s),o=i.transform.resolve(n).split(/\r\n|\r|\n/);for(let t=1;t0&&this._editor.executeEdits("snippet.placeholderTransform",t)}let i=!1;!0===t&&this._placeholderGroupsIdx0&&(this._placeholderGroupsIdx-=1,i=!0);const e=this._editor.getModel().changeDecorations((t=>{const e=new Set,s=[];for(const n of this._placeholderGroups[this._placeholderGroupsIdx]){const o=this._placeholderDecorations.get(n),r=this._editor.getModel().getDecorationRange(o);s.push(new Ls(r.startLineNumber,r.startColumn,r.endLineNumber,r.endColumn)),i=i&&this._hasPlaceholderBeenCollapsed(n),t.changeDecorationOptions(o,n.isFinalTabstop?W3._decor.activeFinal:W3._decor.active),e.add(n);for(const i of this._snippet.enclosingPlaceholders(n)){const s=this._placeholderDecorations.get(i);t.changeDecorationOptions(s,i.isFinalTabstop?W3._decor.activeFinal:W3._decor.active),e.add(i)}}for(const[i,s]of this._placeholderDecorations)e.has(i)||t.changeDecorationOptions(s,i.isFinalTabstop?W3._decor.inactiveFinal:W3._decor.inactive);return s}));return i?this.move(t):null!=e?e:[]}_hasPlaceholderBeenCollapsed(t){let i=t;for(;i;){if(i instanceof J5){const t=this._placeholderDecorations.get(i);if(this._editor.getModel().getDecorationRange(t).isEmpty()&&i.toString().length>0)return!0}i=i.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||0===this._placeholderGroups.length}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){if(0===this._snippet.placeholders.length)return!0;if(1===this._snippet.placeholders.length){const[t]=this._snippet.placeholders;if(t.isFinalTabstop&&this._snippet.rightMostDescendant===t)return!0}return!1}computePossibleSelections(){const t=new Map;for(const i of this._placeholderGroups){let e;for(const s of i){if(s.isFinalTabstop)break;e||(e=[],t.set(s.index,e));const i=this._placeholderDecorations.get(s),n=this._editor.getModel().getDecorationRange(i);if(!n){t.delete(s.index);break}e.push(n)}}return t}get activeChoice(){if(!this._placeholderDecorations)return;const t=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!(null==t?void 0:t.choice))return;const i=this._placeholderDecorations.get(t);if(!i)return;const e=this._editor.getModel().getDecorationRange(i);return e?{range:e,choice:t.choice}:void 0}get hasChoice(){let t=!1;return this._snippet.walk((i=>(t=i instanceof Y5,!t))),t}merge(t){const i=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations((e=>{for(const s of this._placeholderGroups[this._placeholderGroupsIdx]){const n=t.shift();console.assert(-1!==n._offset),console.assert(!n._placeholderDecorations);const o=n._snippet.placeholderInfo.last.index;for(const t of n._snippet.placeholderInfo.all)t.index=t.isFinalTabstop?s.index+(o+1)/this._nestingLevel:s.index+t.index/this._nestingLevel;this._snippet.replace(s,n._snippet.children);const r=this._placeholderDecorations.get(s);e.removeDecoration(r),this._placeholderDecorations.delete(s);for(const t of n._snippet.placeholders){const s=n._snippet.offset(t),o=n._snippet.fullLen(t),r=Ms.fromPositions(i.getPositionAt(n._offset+s),i.getPositionAt(n._offset+s+o)),h=e.addDecoration(r,W3._decor.inactive);this._placeholderDecorations.set(t,h)}}this._placeholderGroups=f(this._snippet.placeholders,J5.compareByIndex)}))}}W3._decor={active:AL.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:AL.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:AL.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:AL.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})};const j3={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let z3=$3=class{static adjustWhitespace(t,i,e,s,n){const o=io(t.getLineContent(i.lineNumber),0,i.column-1);let r;return s.walk((i=>{if(!(i instanceof Z5)||i.parent instanceof Y5)return!0;if(n&&!n.has(i))return!0;const h=i.value.split(/\r\n|\r|\n/);if(e){const e=s.offset(i);if(0===e)h[0]=t.normalizeIndentation(h[0]);else{r=null!=r?r:s.toString();const i=r.charCodeAt(e-1);10!==i&&13!==i||(h[0]=t.normalizeIndentation(o+h[0]))}for(let i=1;it.get(ZO))),f=t.invokeWithinContext((t=>new O3(t.get($O),u))),p=()=>r,g=u.getValueInRange($3.adjustSelection(u,t.getSelection(),e,0)),m=u.getValueInRange($3.adjustSelection(u,t.getSelection(),0,s)),w=u.getLineFirstNonWhitespaceColumn(t.getSelection().positionLineNumber),v=t.getSelections().map(((t,i)=>({selection:t,idx:i}))).sort(((t,i)=>Ms.compareRangesUsingStarts(t.selection,i.selection)));for(const{selection:r,idx:b}of v){let y=$3.adjustSelection(u,r,e,0),k=$3.adjustSelection(u,r,0,s);g!==u.getValueInRange(y)&&(y=r),m!==u.getValueInRange(k)&&(k=r);const x=r.setStartPosition(y.startLineNumber,y.startColumn).setEndPosition(k.endLineNumber,k.endColumn),C=(new n3).parse(i,!0,n),S=x.getStartPosition(),D=$3.adjustWhitespace(u,S,o||b>0&&w!==u.getLineFirstNonWhitespaceColumn(r.positionLineNumber),C);C.resolveVariables(new T3([f,new I3(p,b,v.length,"spread"===t.getOption(78)),new R3(u,r,b,h),new _3(u,r,c),new N3,new B3(d),new P3])),a[b]=pO.replace(x,C.toString()),a[b].identifier={major:b,minor:0},a[b]._isTracked=!0,l[b]=new W3(t,C,D)}return{edits:a,snippets:l}}static createEditsAndSnippetsFromEdits(t,i,e,s,n,o,r){if(!t.hasModel()||0===i.length)return{edits:[],snippets:[]};const h=[],c=t.getModel(),a=new n3,l=new s3,u=new T3([t.invokeWithinContext((t=>new O3(t.get($O),c))),new I3((()=>n),0,t.getSelections().length,"spread"===t.getOption(78)),new R3(c,t.getSelection(),0,o),new _3(c,t.getSelection(),r),new N3,new B3(t.invokeWithinContext((t=>t.get(ZO)))),new P3]);i=i.sort(((t,i)=>Ms.compareRangesUsingStarts(t.range,i.range)));let d=0;for(let t=0;t0){const s=Ms.fromPositions(i[t-1].range.getEndPosition(),e.getStartPosition()),n=new Z5(c.getValueInRange(s));l.appendChild(n),d+=n.value.length}const n=a.parseFragment(s,l);$3.adjustWhitespace(c,e.getStartPosition(),!0,l,new Set(n)),l.resolveVariables(u);const o=l.toString(),r=o.slice(d);d=o.length;const f=pO.replace(e,r);f.identifier={major:t,minor:0},f._isTracked=!0,h.push(f)}return a.ensureFinalTabstop(l,e,!0),{edits:h,snippets:[new W3(t,l,"")]}}constructor(t,i,e=j3,s){this._editor=t,this._template=i,this._options=e,this._languageConfigurationService=s,this._templateMerges=[],this._snippets=[]}dispose(){Qi(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(){if(!this._editor.hasModel())return;const{edits:t,snippets:i}="string"==typeof this._template?$3.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):$3.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=i,this._editor.executeEdits("snippet",t,(t=>{const e=t.filter((t=>!!t.identifier));for(let t=0;tLs.fromPositions(t.range.getEndPosition())))})),this._editor.revealRange(this._editor.getSelections()[0])}merge(t,i=j3){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,t]);const{edits:e,snippets:s}=$3.createEditsAndSnippetsFromSelections(this._editor,t,i.overwriteBefore,i.overwriteAfter,!0,i.adjustWhitespace,i.clipboardText,i.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",e,(t=>{const i=t.filter((t=>!!t.identifier));for(let t=0;tLs.fromPositions(t.range.getEndPosition())))}))}next(){const t=this._move(!0);this._editor.setSelections(t),this._editor.revealPositionInCenterIfOutsideViewport(t[0].getPosition())}prev(){const t=this._move(!1);this._editor.setSelections(t),this._editor.revealPositionInCenterIfOutsideViewport(t[0].getPosition())}_move(t){const i=[];for(const e of this._snippets){const s=e.move(t);i.push(...s)}return i}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;const t=this._editor.getSelections();if(t.length{t.push(...s.get(i))}))}t.sort(Ms.compareRangesUsingStarts);for(const[e,s]of i)if(s.length===t.length){s.sort(Ms.compareRangesUsingStarts);for(let n=0;n0}};z3=$3=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(3,Xd)],z3);var H3,V3=function(t,i){return function(e,s){i(e,s,t)}};const U3={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let q3=H3=class{static get(t){return t.getContribution(H3.ID)}constructor(t,i,e,s,n){this._editor=t,this._logService=i,this._languageFeaturesService=e,this._languageConfigurationService=n,this._snippetListener=new Xi,this._modelVersionId=-1,this._inSnippet=H3.InSnippetMode.bindTo(s),this._hasNextTabstop=H3.HasNextTabstop.bindTo(s),this._hasPrevTabstop=H3.HasPrevTabstop.bindTo(s)}dispose(){var t;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),null===(t=this._session)||void 0===t||t.dispose(),this._snippetListener.dispose()}insert(t,i){try{this._doInsert(t,void 0===i?U3:{...U3,...i})}catch(i){this.cancel(),this._logService.error(i),this._logService.error("snippet_error"),this._logService.error("insert_template=",t),this._logService.error("existing_template=",this._session?this._session._logInfo():"")}}_doInsert(t,i){var e;if(this._editor.hasModel()){if(this._snippetListener.clear(),i.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session&&"string"!=typeof t&&this.cancel(),this._session?(q("string"==typeof t),this._session.merge(t,i)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new z3(this._editor,t,i,this._languageConfigurationService),this._session.insert()),i.undoStopAfter&&this._editor.getModel().pushStackElement(),null===(e=this._session)||void 0===e?void 0:e.hasChoice){const t={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(t,i)=>{if(!this._session||t!==this._editor.getModel()||!As.equals(this._editor.getPosition(),i))return;const{activeChoice:e}=this._session;if(!e||0===e.choice.options.length)return;const s=t.getValueInRange(e.range),n=Boolean(e.choice.options.find((t=>t.value===s))),o=[];for(let t=0;t{s||(e=this._languageFeaturesService.completionProvider.register({language:i.getLanguageId(),pattern:i.uri.fsPath,scheme:i.uri.scheme,exclusive:!0},t),this._snippetListener.add(e),s=!0)},disable:()=>{null==e||e.dispose(),s=!1}}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent((t=>t.isFlush&&this.cancel()))),this._snippetListener.add(this._editor.onDidChangeModel((()=>this.cancel()))),this._snippetListener.add(this._editor.onDidChangeCursorSelection((()=>this._updateState())))}}_updateState(){if(this._session&&this._editor.hasModel()){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){var t;if(!this._session||!this._editor.hasModel())return void(this._currentChoice=void 0);const{activeChoice:i}=this._session;if(!i||!this._choiceCompletions)return null===(t=this._choiceCompletions)||void 0===t||t.disable(),void(this._currentChoice=void 0);this._currentChoice!==i.choice&&(this._currentChoice=i.choice,this._choiceCompletions.enable(),queueMicrotask((()=>{!function(t,i){var e;null===(e=t.getContribution("editor.contrib.suggestController"))||void 0===e||e.triggerSuggest((new Set).add(i),void 0,!0)}(this._editor,this._choiceCompletions.provider)})))}finish(){for(;this._inSnippet.get();)this.next()}cancel(t=!1){var i;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),this._currentChoice=void 0,null===(i=this._session)||void 0===i||i.dispose(),this._session=void 0,this._modelVersionId=-1,t&&this._editor.setSelections([this._editor.getSelection()])}prev(){var t;null===(t=this._session)||void 0===t||t.prev(),this._updateState()}next(){var t;null===(t=this._session)||void 0===t||t.next(),this._updateState()}isInSnippet(){return Boolean(this._inSnippet.get())}};q3.ID="snippetController2",q3.InSnippetMode=new ch("inSnippetMode",!1,ot(0,"Whether the editor in current in snippet mode")),q3.HasNextTabstop=new ch("hasNextTabstop",!1,ot(0,"Whether there is a next tab stop when in snippet mode")),q3.HasPrevTabstop=new ch("hasPrevTabstop",!1,ot(0,"Whether there is a previous tab stop when in snippet mode")),q3=H3=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([V3(1,jh),V3(2,xg),V3(3,ah),V3(4,Xd)],q3),lu(q3.ID,q3,4);const K3=eu.bindToContribution(q3.get);hu(new K3({id:"jumpToNextSnippetPlaceholder",precondition:zr.and(q3.InSnippetMode,q3.HasNextTabstop),handler:t=>t.next(),kbOpts:{weight:130,kbExpr:YC.editorTextFocus,primary:2}})),hu(new K3({id:"jumpToPrevSnippetPlaceholder",precondition:zr.and(q3.InSnippetMode,q3.HasPrevTabstop),handler:t=>t.prev(),kbOpts:{weight:130,kbExpr:YC.editorTextFocus,primary:1026}})),hu(new K3({id:"leaveSnippet",precondition:q3.InSnippetMode,handler:t=>t.cancel(!0),kbOpts:{weight:130,kbExpr:YC.editorTextFocus,primary:9,secondary:[1033]}})),hu(new K3({id:"acceptSnippet",precondition:q3.InSnippetMode,handler:t=>t.finish()}));var G3,Z3=function(t,i){return function(e,s){i(e,s,t)}};!function(t){t[t.Undo=0]="Undo",t[t.Redo=1]="Redo",t[t.AcceptWord=2]="AcceptWord",t[t.Other=3]="Other"}(G3||(G3={}));let Q3=class extends te{get isAcceptingPartially(){return this._isAcceptingPartially}constructor(t,i,e,s,n,o,r,h,c,a,l,u){let d;super(),this.textModel=t,this.selectedSuggestItem=i,this.cursorPosition=e,this.textModelVersionId=s,this._debounceValue=n,this._suggestPreviewEnabled=o,this._suggestPreviewMode=r,this._inlineSuggestMode=h,this._enabled=c,this._instantiationService=a,this._commandService=l,this._languageConfigurationService=u,this._source=this._register(this._instantiationService.createInstance(g3,this.textModel,this.textModelVersionId,this._debounceValue)),this._isActive=FV(this,!1),this._forceUpdateSignal=JV("forceUpdate"),this._selectedInlineCompletionId=FV(this,void 0),this._isAcceptingPartially=!1,this._preserveCurrentCompletionReasons=new Set([G3.Redo,G3.Undo,G3.AcceptWord]),this._fetchInlineCompletions=function(t,i){var e;return new $V(t.owner,t.debugName,i,t.createEmptyChangeSummary,t.handleChange,void 0,null!==(e=t.equalityComparer)&&void 0!==e?e:IV)}({owner:this,createEmptyChangeSummary:()=>({preserveCurrentCompletion:!1,inlineCompletionTriggerKind:$s.Automatic}),handleChange:(t,i)=>(t.didChange(this.textModelVersionId)&&this._preserveCurrentCompletionReasons.has(t.change)?i.preserveCurrentCompletion=!0:t.didChange(this._forceUpdateSignal)&&(i.inlineCompletionTriggerKind=t.change),!0)},((t,i)=>{if(this._forceUpdateSignal.read(t),!(this._enabled.read(t)&&this.selectedSuggestItem.read(t)||this._isActive.read(t)))return void this._source.cancelUpdate();this.textModelVersionId.read(t);const e=this.selectedInlineCompletion.get(),s=i.preserveCurrentCompletion||(null==e?void 0:e.forwardStable)?e:void 0,n=this._source.suggestWidgetInlineCompletions.get(),o=this.selectedSuggestItem.read(t);if(n&&!o){const t=this._source.inlineCompletions.get();yV((i=>{(!t||n.request.versionId>t.request.versionId)&&this._source.inlineCompletions.set(n.clone(),i),this._source.clearSuggestWidgetInlineCompletions(i)}))}const r=this.cursorPosition.read(t),h={triggerKind:i.inlineCompletionTriggerKind,selectedSuggestionInfo:null==o?void 0:o.toSelectedSuggestionInfo()};return this._source.fetch(r,h,s)})),this._filteredInlineCompletionItems=_V(this,(t=>{const i=this._source.inlineCompletions.read(t);if(!i)return[];const e=this.cursorPosition.read(t),s=i.inlineCompletions.filter((i=>i.isVisible(this.textModel,e,t)));return s})),this.selectedInlineCompletionIndex=_V(this,(t=>{const i=this._selectedInlineCompletionId.read(t),e=this._filteredInlineCompletionItems.read(t),s=void 0===this._selectedInlineCompletionId?-1:e.findIndex((t=>t.semanticId===i));return-1===s?(this._selectedInlineCompletionId.set(void 0,void 0),0):s})),this.selectedInlineCompletion=_V(this,(t=>this._filteredInlineCompletionItems.read(t)[this.selectedInlineCompletionIndex.read(t)])),this.lastTriggerKind=this._source.inlineCompletions.map(this,(t=>null==t?void 0:t.request.context.triggerKind)),this.inlineCompletionsCount=_V(this,(t=>this.lastTriggerKind.read(t)===$s.Explicit?this._filteredInlineCompletionItems.read(t).length:void 0)),this.state=NV({owner:this,equalityComparer:(t,i)=>t&&i?j5(t.ghostText,i.ghostText)&&t.inlineCompletion===i.inlineCompletion&&t.suggestItem===i.suggestItem:t===i},(t=>{var i;const e=this.textModel,s=this.selectedSuggestItem.read(t);if(s){const n=s.toSingleTextEdit().removeCommonPrefix(e),o=this._computeAugmentedCompletion(n,t);if(!this._suggestPreviewEnabled.read(t)&&!o)return;const r=null!==(i=null==o?void 0:o.edit)&&void 0!==i?i:n,h=o?o.edit.text.length-n.text.length:0,c=this._suggestPreviewMode.read(t),a=this.cursorPosition.read(t),l=r.computeGhostText(e,c,a,h);return{ghostText:null!=l?l:new P5(r.range.endLineNumber,[]),inlineCompletion:null==o?void 0:o.completion,suggestItem:s}}{if(!this._isActive.read(t))return;const i=this.selectedInlineCompletion.read(t);if(!i)return;const s=i.toSingleTextEdit(t),n=this._inlineSuggestMode.read(t),o=this.cursorPosition.read(t),r=s.computeGhostText(e,n,o);return r?{ghostText:r,inlineCompletion:i,suggestItem:void 0}:void 0}})),this.ghostText=NV({owner:this,equalityComparer:j5},(t=>{const i=this.state.read(t);if(i)return i.ghostText})),this._register(XV(this._fetchInlineCompletions)),this._register(WV((t=>{var i,e;const s=this.state.read(t),n=null==s?void 0:s.inlineCompletion;if((null==n?void 0:n.semanticId)!==(null==d?void 0:d.semanticId)&&(d=n,n)){const t=n.inlineCompletion,s=t.source;null===(e=(i=s.provider).handleItemDidShow)||void 0===e||e.call(i,s.inlineCompletions,t.sourceInlineCompletion,t.insertText)}})))}async trigger(t){this._isActive.set(!0,t),await this._fetchInlineCompletions.get()}async triggerExplicitly(t){xV(t,(t=>{this._isActive.set(!0,t),this._forceUpdateSignal.trigger(t,$s.Explicit)})),await this._fetchInlineCompletions.get()}stop(t){xV(t,(t=>{this._isActive.set(!1,t),this._source.clear(t)}))}_computeAugmentedCompletion(t,i){const e=this.textModel,s=this._source.suggestWidgetInlineCompletions.read(i);return function(t,i){for(const e of t){const t=i(e);if(void 0!==t)return t}}(s?s.inlineCompletions:[this.selectedInlineCompletion.read(i)].filter(V),(s=>{let n=s.toSingleTextEdit(i);return n=n.removeCommonPrefix(e,Ms.fromPositions(n.range.getStartPosition(),t.range.getEndPosition())),n.augments(t)?{edit:n,completion:s}:void 0}))}async _deltaSelectedInlineCompletionIndex(t){await this.triggerExplicitly();const i=this._filteredInlineCompletionItems.get()||[];if(i.length>0){const e=(this.selectedInlineCompletionIndex.get()+t+i.length)%i.length;this._selectedInlineCompletionId.set(i[e].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}async accept(t){var i;if(t.getModel()!==this.textModel)throw new Ki;const e=this.state.get();if(!e||e.ghostText.isEmpty()||!e.inlineCompletion)return;const s=e.inlineCompletion.toInlineCompletion(void 0);t.pushUndoStop(),s.snippetInfo?(t.executeEdits("inlineSuggestion.accept",[pO.replaceMove(s.range,""),...s.additionalTextEdits]),t.setPosition(s.snippetInfo.range.getStartPosition()),null===(i=q3.get(t))||void 0===i||i.insert(s.snippetInfo.snippet,{undoStopBefore:!1})):t.executeEdits("inlineSuggestion.accept",[pO.replaceMove(s.range,s.insertText),...s.additionalTextEdits]),s.command&&s.source.addRef(),yV((t=>{this._source.clear(t),this._isActive.set(!1,t)})),s.command&&(await this._commandService.executeCommand(s.command.id,...s.command.arguments||[]).then(void 0,Pi),s.source.removeRef())}async acceptNextWord(t){await this._acceptNext(t,((t,i)=>{const e=this.textModel.getLanguageIdAtPosition(t.lineNumber,t.column),s=this._languageConfigurationService.getLanguageConfiguration(e),n=new RegExp(s.wordDefinition.source,s.wordDefinition.flags.replace("g","")),o=i.match(n);let r=0;r=o&&void 0!==o.index?0===o.index?o[0].length:o.index:i.length;const h=/\s+/g.exec(i);return h&&void 0!==h.index&&h.index+h[0].length{const e=i.match(/\n/);return e&&void 0!==e.index?e.index+1:i.length}))}async _acceptNext(t,i){if(t.getModel()!==this.textModel)throw new Ki;const e=this.state.get();if(!e||e.ghostText.isEmpty()||!e.inlineCompletion)return;const s=e.ghostText,n=e.inlineCompletion.toInlineCompletion(void 0);if(n.snippetInfo||n.filterText!==n.insertText)return void await this.accept(t);const o=s.parts[0],r=new As(s.lineNumber,o.column),h=o.lines.join("\n"),c=i(r,h);if(c===h.length&&1===s.parts.length)return void this.accept(t);const a=h.substring(0,c);n.source.addRef();try{this._isAcceptingPartially=!0;try{t.pushUndoStop(),t.executeEdits("inlineSuggestion.accept",[pO.replace(Ms.fromPositions(r),a)]);const i=B5(a);t.setPosition(N5(r,i))}finally{this._isAcceptingPartially=!1}if(n.source.provider.handlePartialAccept){const i=Ms.fromPositions(n.range.getStartPosition(),N5(r,B5(a))),e=t.getModel().getValueInRange(i,1);n.source.provider.handlePartialAccept(n.source.inlineCompletions,n.sourceInlineCompletion,e.length)}}finally{n.source.removeRef()}}handleSuggestAccepted(t){var i,e;const s=t.toSingleTextEdit().removeCommonPrefix(this.textModel),n=this._computeAugmentedCompletion(s,void 0);if(!n)return;const o=n.completion.inlineCompletion;null===(e=(i=o.source.provider).handlePartialAccept)||void 0===e||e.call(i,o.source.inlineCompletions,o.sourceInlineCompletion,s.text.length)}};Q3=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Z3(9,ur),Z3(10,Sr),Z3(11,Xd)],Q3);var J3,Y3=function(t,i){return function(e,s){i(e,s,t)}};class X3{constructor(t){this.name=t}select(t,i,e){if(0===e.length)return 0;const s=e[0].score[0];for(let t=0;tthis._saveState()),500),this._disposables.add(t.onWillSaveState((t=>{t.reason===MB.SHUTDOWN&&this._saveState()})))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(t,i,e){this._withStrategy(t,i).memorize(t,i,e),this._persistSoon.schedule()}select(t,i,e){return this._withStrategy(t,i).select(t,i,e)}_withStrategy(t,i){var e;const s=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:t.getLanguageIdAtPosition(i.lineNumber,i.column),resource:t.uri});if((null===(e=this._strategy)||void 0===e?void 0:e.name)!==s){this._saveState();const t=J3._strategyCtors.get(s)||t6;this._strategy=new t;try{const t=this._configService.getValue("editor.suggest.shareSuggestSelections"),i=this._storageService.get(`${J3._storagePrefix}/${s}`,t?0:1);i&&this._strategy.fromJSON(JSON.parse(i))}catch(t){}}return this._strategy}_saveState(){if(this._strategy){const t=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,i=JSON.stringify(this._strategy);this._storageService.store(`${J3._storagePrefix}/${this._strategy.name}`,i,t,1)}}};i6._strategyCtors=new Map([["recentlyUsedByPrefix",class extends X3{constructor(){super("recentlyUsedByPrefix"),this._trie=GO.forStrings(),this._seq=0}memorize(t,i,e){const{word:s}=t.getWordUntilPosition(i),n=`${t.getLanguageId()}/${s}`;this._trie.set(n,{type:e.completion.kind,insertText:e.completion.insertText,touch:this._seq++})}select(t,i,e){const{word:s}=t.getWordUntilPosition(i);if(!s)return super.select(t,i,e);const n=`${t.getLanguageId()}/${s}`;let o=this._trie.get(n);if(o||(o=this._trie.findSubstr(n)),o)for(let t=0;tt.push([e,i]))),t.sort(((t,i)=>-(t[1].touch-i[1].touch))).forEach(((t,i)=>t[1].touch=i)),t.slice(0,200)}fromJSON(t){if(this._trie.clear(),t.length>0){this._seq=t[0][1].touch+1;for(const[i,e]of t)e.type="number"==typeof e.type?e.type:Ps.fromString(e.type),this._trie.set(i,e)}}}],["recentlyUsed",class extends X3{constructor(){super("recentlyUsed"),this._cache=new Vp(300,.66),this._seq=0}memorize(t,i,e){const s=`${t.getLanguageId()}/${e.textLabel}`;this._cache.set(s,{touch:this._seq++,type:e.completion.kind,insertText:e.completion.insertText})}select(t,i,e){if(0===e.length)return 0;const s=t.getLineContent(i.lineNumber).substr(i.column-10,i.column-1);if(/\s$/.test(s))return super.select(t,i,e);const n=e[0].score[0];let o=-1,r=-1;for(let i=0;ir&&n.type===e[i].completion.kind&&n.insertText===e[i].completion.insertText&&(r=n.touch,o=i),e[i].completion.preselect)return i}return-1!==o?o:0}toJSON(){return this._cache.toJSON()}fromJSON(t){this._cache.clear();for(const[i,e]of t)e.touch=0,e.type="number"==typeof e.type?e.type:Ps.fromString(e.type),this._cache.set(i,e);this._seq=this._cache.size}}],["first",t6]]),i6._storagePrefix="suggest/memories",i6=J3=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Y3(0,AB),Y3(1,pd)],i6);const e6=dr("ISuggestMemories");Cd(e6,i6,1);var s6;let n6=s6=class{constructor(t,i){this._editor=t,this._enabled=!1,this._ckAtEnd=s6.AtEnd.bindTo(i),this._configListener=this._editor.onDidChangeConfiguration((t=>t.hasChanged(122)&&this._update())),this._update()}dispose(){var t;this._configListener.dispose(),null===(t=this._selectionListener)||void 0===t||t.dispose(),this._ckAtEnd.reset()}_update(){const t="on"===this._editor.getOption(122);if(this._enabled!==t)if(this._enabled=t,this._enabled){const t=()=>{if(!this._editor.hasModel())return void this._ckAtEnd.set(!1);const t=this._editor.getModel(),i=this._editor.getSelection(),e=t.getWordAtPosition(i.getStartPosition());this._ckAtEnd.set(!!e&&e.endColumn===i.getStartPosition().column)};this._selectionListener=this._editor.onDidChangeCursorSelection(t),t()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}};n6.AtEnd=new ch("atEndOfWord",!1),n6=s6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,ah)],n6);var o6;let r6=o6=class{constructor(t,i){this._editor=t,this._index=0,this._ckOtherSuggestions=o6.OtherSuggestions.bindTo(i)}dispose(){this.reset()}reset(){var t;this._ckOtherSuggestions.reset(),null===(t=this._listener)||void 0===t||t.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:t,index:i},e){0!==t.items.length&&o6._moveIndex(!0,t,i)!==i?(this._acceptNext=e,this._model=t,this._index=i,this._listener=this._editor.onDidChangeCursorPosition((()=>{this._ignore||this.reset()})),this._ckOtherSuggestions.set(!0)):this.reset()}static _moveIndex(t,i,e){let s=e;for(let n=i.items.length;n>0&&(s=(s+i.items.length+(t?1:-1))%i.items.length,s!==e)&&i.items[s].completion.additionalTextEdits;n--);return s}next(){this._move(!0)}prev(){this._move(!1)}_move(t){if(this._model)try{this._ignore=!0,this._index=o6._moveIndex(t,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};r6.OtherSuggestions=new ch("hasOtherSuggestions",!1),r6=o6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,ah)],r6);class h6{constructor(t,i,e,s){this._disposables=new Xi,this._disposables.add(e.onDidSuggest((t=>{0===t.completionModel.items.length&&this.reset()}))),this._disposables.add(e.onDidCancel((()=>{this.reset()}))),this._disposables.add(i.onDidShow((()=>this._onItem(i.getFocusedItem())))),this._disposables.add(i.onDidFocus(this._onItem,this)),this._disposables.add(i.onDidHide(this.reset,this)),this._disposables.add(t.onWillType((n=>{if(this._active&&!i.isFrozen()&&0!==e.state){const i=n.charCodeAt(n.length-1);this._active.acceptCharacters.has(i)&&t.getOption(0)&&s(this._active.item)}})))}_onItem(t){if(!t||!b(t.item.completion.commitCharacters))return void this.reset();if(this._active&&this._active.item.item===t.item)return;const i=new Ef;for(const e of t.item.completion.commitCharacters)e.length>0&&i.add(e.charCodeAt(0));this._active={acceptCharacters:i,item:t}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}class c6{async provideSelectionRanges(t,i){const e=[];for(const s of i){const i=[];e.push(i);const n=new Map;await new Promise((i=>c6._bracketsRightYield(i,0,t,s,n))),await new Promise((e=>c6._bracketsLeftYield(e,0,t,s,n,i)))}return e}static _bracketsRightYield(t,i,e,s,n){const o=new Map,r=Date.now();for(;;){if(i>=c6._maxRounds){t();break}if(!s){t();break}const h=e.bracketPairs.findNextBracket(s);if(!h){t();break}if(Date.now()-r>c6._maxDuration){setTimeout((()=>c6._bracketsRightYield(t,i+1,e,s,n)));break}if(h.bracketInfo.isOpeningBracket){const t=h.bracketInfo.bracketText,i=o.has(t)?o.get(t):0;o.set(t,i+1)}else{const t=h.bracketInfo.getOpeningBrackets()[0].bracketText;let i=o.has(t)?o.get(t):0;if(i-=1,o.set(t,Math.max(0,i)),i<0){let i=n.get(t);i||(i=new Ut,n.set(t,i)),i.push(h.range)}}s=h.range.getEndPosition()}}static _bracketsLeftYield(t,i,e,s,n,o){const r=new Map,h=Date.now();for(;;){if(i>=c6._maxRounds&&0===n.size){t();break}if(!s){t();break}const c=e.bracketPairs.findPrevBracket(s);if(!c){t();break}if(Date.now()-h>c6._maxDuration){setTimeout((()=>c6._bracketsLeftYield(t,i+1,e,s,n,o)));break}if(c.bracketInfo.isOpeningBracket){const t=c.bracketInfo.bracketText;let i=r.has(t)?r.get(t):0;if(i-=1,r.set(t,Math.max(0,i)),i<0){const i=n.get(t);if(i){const s=i.shift();0===i.size&&n.delete(t);const r=Ms.fromPositions(c.range.getEndPosition(),s.getStartPosition()),h=Ms.fromPositions(c.range.getStartPosition(),s.getEndPosition());o.push({range:r}),o.push({range:h}),c6._addBracketLeading(e,h,o)}}}else{const t=c.bracketInfo.getOpeningBrackets()[0].bracketText,i=r.has(t)?r.get(t):0;r.set(t,i+1)}s=c.range.getStartPosition()}}static _addBracketLeading(t,i,e){if(i.startLineNumber===i.endLineNumber)return;const s=i.startLineNumber,n=t.getLineFirstNonWhitespaceColumn(s);0!==n&&n!==i.startColumn&&(e.push({range:Ms.fromPositions(new As(s,n),i.getEndPosition())}),e.push({range:Ms.fromPositions(new As(s,1),i.getEndPosition())}));const o=s-1;if(o>0){const s=t.getLineFirstNonWhitespaceColumn(o);s===i.startColumn&&s!==t.getLineLastNonWhitespaceColumn(o)&&(e.push({range:Ms.fromPositions(new As(o,s),i.getEndPosition())}),e.push({range:Ms.fromPositions(new As(o,1),i.getEndPosition())}))}}}c6._maxDuration=30,c6._maxRounds=2;class a6{static async create(t,i){if(!i.getOption(117).localityBonus)return a6.None;if(!i.hasModel())return a6.None;const e=i.getModel(),s=i.getPosition();if(!t.canComputeWordRanges(e.uri))return a6.None;const[n]=await(new c6).provideSelectionRanges(e,[s]);if(0===n.length)return a6.None;const o=await t.computeWordRanges(e.uri,n[0].range);if(!o)return a6.None;const r=e.getWordUntilPosition(s);return delete o[r.word],new class extends a6{distance(t,e){if(!s.equals(i.getPosition()))return 0;if(17===e.kind)return 2<<20;const r=o["string"==typeof e.label?e.label:e.label.label];if(v(r))return 2<<20;const h=u(r,Ms.fromPositions(t),Ms.compareRangesUsingStarts),c=h>=0?r[h]:r[Math.max(0,~h-1)];let a=n.length;for(const t of n){if(!Ms.containsRange(t.range,c))break;a-=1}return a}}}}a6.None=new class extends a6{distance(){return 0}};class l6{constructor(t,i){this.leadingLineContent=t,this.characterCountDelta=i}}class u6{constructor(t,i,e,s,n,o,r=C_.default,h){this.clipboardText=h,this._snippetCompareFn=u6._compareCompletionItems,this._items=t,this._column=i,this._wordDistance=s,this._options=n,this._refilterKind=1,this._lineContext=e,this._fuzzyScoreOptions=r,"top"===o?this._snippetCompareFn=u6._compareCompletionItemsSnippetsUp:"bottom"===o&&(this._snippetCompareFn=u6._compareCompletionItemsSnippetsDown)}get lineContext(){return this._lineContext}set lineContext(t){this._lineContext.leadingLineContent===t.leadingLineContent&&this._lineContext.characterCountDelta===t.characterCountDelta||(this._refilterKind=this._lineContext.characterCountDelta0&&e[0].container.incomplete&&t.add(i);return t}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){0!==this._refilterKind&&this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;const t=[],{leadingLineContent:i,characterCountDelta:e}=this._lineContext;let s="",n="";const o=1===this._refilterKind?this._items:this._filteredItems,r=[],h=!this._options.filterGraceful||o.length>2e3?S_:E_;for(let c=0;c=d)a.score=x_.Default;else if("string"==typeof a.completion.filterText){const i=h(s,n,t,a.completion.filterText,a.filterTextLow,0,this._fuzzyScoreOptions);if(!i)continue;0===oo(a.completion.filterText,a.textLabel)?a.score=i:(a.score=a_(s,n,t,a.textLabel,a.labelLow,0),a.score[0]=i[0])}else{const i=h(s,n,t,a.textLabel,a.labelLow,0,this._fuzzyScoreOptions);if(!i)continue;a.score=i}}a.idx=c,a.distance=this._wordDistance.distance(a.position,a.completion),r.push(a),t.push(a.textLabel.length)}this._filteredItems=r.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:t.length?d(t.length-.85,t,((t,i)=>t-i)):0}}static _compareCompletionItems(t,i){return t.score[0]>i.score[0]?-1:t.score[0]i.distance?1:t.idxi.idx?1:0}static _compareCompletionItemsSnippetsDown(t,i){if(t.completion.kind!==i.completion.kind){if(27===t.completion.kind)return 1;if(27===i.completion.kind)return-1}return u6._compareCompletionItems(t,i)}static _compareCompletionItemsSnippetsUp(t,i){if(t.completion.kind!==i.completion.kind){if(27===t.completion.kind)return-1;if(27===i.completion.kind)return 1}return u6._compareCompletionItems(t,i)}}var d6,f6=function(t,i){return function(e,s){i(e,s,t)}};class p6{static shouldAutoTrigger(t){if(!t.hasModel())return!1;const i=t.getModel(),e=t.getPosition();i.tokenization.tokenizeIfCheap(e.lineNumber);const s=i.getWordAtPosition(e);return!(!s||s.endColumn!==e.column&&s.startColumn+1!==e.column||!isNaN(Number(s.word)))}constructor(t,i,e){this.leadingLineContent=t.getLineContent(i.lineNumber).substr(0,i.column-1),this.leadingWord=t.getWordUntilPosition(i),this.lineNumber=i.lineNumber,this.column=i.column,this.triggerOptions=e}}let g6=d6=class{constructor(t,i,e,s,n,o,r,h,c){this._editor=t,this._editorWorkerService=i,this._clipboardService=e,this._telemetryService=s,this._logService=n,this._contextKeyService=o,this._configurationService=r,this._languageFeaturesService=h,this._envService=c,this._toDispose=new Xi,this._triggerCharacterListener=new Xi,this._triggerQuickSuggest=new dc,this._triggerState=void 0,this._completionDisposables=new Xi,this._onDidCancel=new de,this._onDidTrigger=new de,this._onDidSuggest=new de,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._telemetryGate=0,this._currentSelection=this._editor.getSelection()||new Ls(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel((()=>{this._updateTriggerCharacters(),this.cancel()}))),this._toDispose.add(this._editor.onDidChangeModelLanguage((()=>{this._updateTriggerCharacters(),this.cancel()}))),this._toDispose.add(this._editor.onDidChangeConfiguration((()=>{this._updateTriggerCharacters()}))),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange((()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()})));let a=!1;this._toDispose.add(this._editor.onDidCompositionStart((()=>{a=!0}))),this._toDispose.add(this._editor.onDidCompositionEnd((()=>{a=!1,this._onCompositionEnd()}))),this._toDispose.add(this._editor.onDidChangeCursorSelection((t=>{a||this._onCursorChange(t)}))),this._toDispose.add(this._editor.onDidChangeModelContent((()=>{a||void 0===this._triggerState||this._refilterCompletionItems()}))),this._updateTriggerCharacters()}dispose(){Qi(this._triggerCharacterListener),Qi([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(90)||!this._editor.hasModel()||!this._editor.getOption(120))return;const t=new Map;for(const i of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(const e of i.triggerCharacters||[]){let s=t.get(e);s||(s=new Set,s.add(void 0),t.set(e,s)),s.add(i)}const i=i=>{var e;if(!function(t,i){if(!Boolean(i.getContextKeyValue("inlineSuggestionVisible")))return!0;const e=i.getContextKeyValue(R5.suppressSuggestions.key);return void 0!==e?!e:!t.getOption(62).suppressSuggestions}(this._editor,this._contextKeyService))return;if(p6.shouldAutoTrigger(this._editor))return;if(!i){const t=this._editor.getPosition();i=this._editor.getModel().getLineContent(t.lineNumber).substr(0,t.column-1)}let s="";mo(i.charCodeAt(i.length-1))?go(i.charCodeAt(i.length-2))&&(s=i.substr(i.length-2)):s=i.charAt(i.length-1);const n=t.get(s);if(n){const t=new Map;if(this._completionModel)for(const[i,e]of this._completionModel.getItemsByProvider())n.has(i)||t.set(i,e);this.trigger({auto:!0,triggerKind:1,triggerCharacter:s,retrigger:Boolean(this._completionModel),clipboardText:null===(e=this._completionModel)||void 0===e?void 0:e.clipboardText,completionOptions:{providerFilter:n,providerItemsToReuse:t}})}};this._triggerCharacterListener.add(this._editor.onDidType(i)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd((()=>i())))}get state(){return this._triggerState?this._triggerState.auto?2:1:0}cancel(t=!1){var i;void 0!==this._triggerState&&(this._triggerQuickSuggest.cancel(),null===(i=this._requestToken)||void 0===i||i.cancel(),this._requestToken=void 0,this._triggerState=void 0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:t}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){void 0!==this._triggerState&&(this._editor.hasModel()&&this._languageFeaturesService.completionProvider.has(this._editor.getModel())?this.trigger({auto:this._triggerState.auto,retrigger:!0}):this.cancel())}_onCursorChange(t){if(!this._editor.hasModel())return;const i=this._currentSelection;this._currentSelection=this._editor.getSelection(),!t.selection.isEmpty()||0!==t.reason&&3!==t.reason||"keyboard"!==t.source&&"deleteLeft"!==t.source?this.cancel():void 0===this._triggerState&&0===t.reason?(i.containsRange(this._currentSelection)||i.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))&&this._doTriggerQuickSuggest():void 0!==this._triggerState&&3===t.reason&&this._refilterCompletionItems()}_onCompositionEnd(){void 0===this._triggerState?this._doTriggerQuickSuggest():this._refilterCompletionItems()}_doTriggerQuickSuggest(){var t;L3.isAllOff(this._editor.getOption(88))||this._editor.getOption(117).snippetsPreventQuickSuggestions&&(null===(t=q3.get(this._editor))||void 0===t?void 0:t.isInSnippet())||(this.cancel(),this._triggerQuickSuggest.cancelAndSet((()=>{if(void 0!==this._triggerState)return;if(!p6.shouldAutoTrigger(this._editor))return;if(!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;const t=this._editor.getModel(),i=this._editor.getPosition(),e=this._editor.getOption(88);if(!L3.isAllOff(e)){if(!L3.isAllOn(e)){t.tokenization.tokenizeIfCheap(i.lineNumber);const s=t.tokenization.getLineTokens(i.lineNumber),n=s.getStandardTokenType(s.findTokenIndexAtOffset(Math.max(i.column-1-1,0)));if("on"!==L3.valueFor(e,n))return}(function(t,i){if(!Boolean(i.getContextKeyValue(R5.inlineSuggestionVisible.key)))return!0;const e=i.getContextKeyValue(R5.suppressSuggestions.key);return void 0!==e?!e:!t.getOption(62).suppressSuggestions})(this._editor,this._contextKeyService)&&this._languageFeaturesService.completionProvider.has(t)&&this.trigger({auto:!0})}}),this._editor.getOption(89)))}_refilterCompletionItems(){q(this._editor.hasModel()),q(void 0!==this._triggerState);const t=this._editor.getModel(),i=this._editor.getPosition(),e=new p6(t,i,{...this._triggerState,refilter:!0});this._onNewContext(e)}trigger(t){var i,e,s,n,o,r;if(!this._editor.hasModel())return;const h=this._editor.getModel(),c=new p6(h,this._editor.getPosition(),t);this.cancel(t.retrigger),this._triggerState=t,this._onDidTrigger.fire({auto:t.auto,shy:null!==(i=t.shy)&&void 0!==i&&i,position:this._editor.getPosition()}),this._context=c;let a={triggerKind:null!==(e=t.triggerKind)&&void 0!==e?e:0};t.triggerCharacter&&(a={triggerKind:1,triggerCharacter:t.triggerCharacter}),this._requestToken=new Ce;let l=1;switch(this._editor.getOption(111)){case"top":l=0;break;case"bottom":l=2}const{itemKind:u,showDeprecated:d}=d6._createSuggestFilter(this._editor),f=new S3(l,null!==(n=null===(s=t.completionOptions)||void 0===s?void 0:s.kindFilter)&&void 0!==n?n:u,null===(o=t.completionOptions)||void 0===o?void 0:o.providerFilter,null===(r=t.completionOptions)||void 0===r?void 0:r.providerItemsToReuse,d),p=a6.create(this._editorWorkerService,this._editor),g=E3(this._languageFeaturesService.completionProvider,h,this._editor.getPosition(),f,a,this._requestToken.token);Promise.all([g,p]).then((async([i,e])=>{var s;if(null===(s=this._requestToken)||void 0===s||s.dispose(),!this._editor.hasModel())return;let n=null==t?void 0:t.clipboardText;if(!n&&i.needsClipboard&&(n=await this._clipboardService.readText()),void 0===this._triggerState)return;const o=this._editor.getModel(),r=new p6(o,this._editor.getPosition(),t),h={...C_.default,firstMatchCanBeWeak:!this._editor.getOption(117).matchOnWordStartOnly};if(this._completionModel=new u6(i.items,this._context.column,{leadingLineContent:r.leadingLineContent,characterCountDelta:r.column-this._context.column},e,this._editor.getOption(117),this._editor.getOption(111),h,n),this._completionDisposables.add(i.disposable),this._onNewContext(r),this._reportDurationsTelemetry(i.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment)for(const t of i.items)t.isInvalid&&this._logService.warn(`[suggest] did IGNORE invalid completion item from ${t.provider._debugDisplayName}`,t.completion)})).catch(Bi)}_reportDurationsTelemetry(t){this._telemetryGate++%230==0&&setTimeout((()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(t)}),this._logService.debug("suggest.durations.json",t)}))}static _createSuggestFilter(t){const i=new Set;"none"===t.getOption(111)&&i.add(27);const e=t.getOption(117);return e.showMethods||i.add(0),e.showFunctions||i.add(1),e.showConstructors||i.add(2),e.showFields||i.add(3),e.showVariables||i.add(4),e.showClasses||i.add(5),e.showStructs||i.add(6),e.showInterfaces||i.add(7),e.showModules||i.add(8),e.showProperties||i.add(9),e.showEvents||i.add(10),e.showOperators||i.add(11),e.showUnits||i.add(12),e.showValues||i.add(13),e.showConstants||i.add(14),e.showEnums||i.add(15),e.showEnumMembers||i.add(16),e.showKeywords||i.add(17),e.showWords||i.add(18),e.showColors||i.add(19),e.showFiles||i.add(20),e.showReferences||i.add(21),e.showColors||i.add(22),e.showFolders||i.add(23),e.showTypeParameters||i.add(24),e.showSnippets||i.add(27),e.showUsers||i.add(25),e.showIssues||i.add(26),{itemKind:i,showDeprecated:e.showDeprecated}}_onNewContext(t){if(this._context)if(t.lineNumber===this._context.lineNumber)if(io(t.leadingLineContent)===io(this._context.leadingLineContent)){if(t.columnthis._context.leadingWord.startColumn){if(p6.shouldAutoTrigger(this._editor)&&this._context){const t=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:t}})}}else if(t.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&0!==t.leadingWord.word.length){const t=new Map,i=new Set;for(const[e,s]of this._completionModel.getItemsByProvider())s.length>0&&s[0].container.incomplete?i.add(e):t.set(e,s);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:i,providerItemsToReuse:t}})}else{const i=this._completionModel.lineContext;let e=!1;if(this._completionModel.lineContext={leadingLineContent:t.leadingLineContent,characterCountDelta:t.column-this._context.column},0===this._completionModel.items.length){const s=p6.shouldAutoTrigger(this._editor);if(!this._context)return void this.cancel();if(s&&this._context.leadingWord.endColumn0,e&&0===t.leadingWord.word.length)return void this.cancel()}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:t.triggerOptions,isFrozen:e})}}else this.cancel();else this.cancel()}};g6=d6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([f6(1,vP),f6(2,yH),f6(3,Wh),f6(4,jh),f6(5,ah),f6(6,pd),f6(7,xg),f6(8,fR)],g6);class m6{constructor(t,i){this._disposables=new Xi,this._lastOvertyped=[],this._locked=!1,this._disposables.add(t.onWillType((()=>{if(this._locked||!t.hasModel())return;const i=t.getSelections(),e=i.length;let s=!1;for(let t=0;tm6._maxSelectionLength)return;this._lastOvertyped[t]={value:n.getValueInRange(e),multiline:e.startLineNumber!==e.endLineNumber}}}))),this._disposables.add(i.onDidTrigger((()=>{this._locked=!0}))),this._disposables.add(i.onDidCancel((()=>{this._locked=!1})))}getLastOvertypedInfo(t){if(t>=0&&tt instanceof Bh?e.createInstance(v6,t,void 0):void 0;this._leftActions=new YB(this.element,{actionViewItemProvider:o}),this._rightActions=new YB(this.element,{actionViewItemProvider:o}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}dispose(){this._menuDisposables.dispose(),this._leftActions.dispose(),this._rightActions.dispose(),this.element.remove()}show(){const t=this._menuService.createMenu(this._menuId,this._contextKeyService),i=()=>{const i=[],e=[];for(const[s,n]of t.getActions())"left"===s?i.push(...n):e.push(...n);this._leftActions.clear(),this._leftActions.push(i),this._rightActions.clear(),this._rightActions.push(e)};this._menuDisposables.add(t.onDidChange((()=>i()))),this._menuDisposables.add(t)}hide(){this._menuDisposables.clear()}};b6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([w6(2,ur),w6(3,Oh),w6(4,ah)],b6);function y6(t){return!!t&&Boolean(t.completion.documentation||t.completion.detail&&t.completion.detail!==t.completion.label)}let k6=class{constructor(t,i){this._editor=t,this._onDidClose=new de,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new de,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new Xi,this._renderDisposeable=new Xi,this._borderWidth=1,this._size=new el(330,0),this.domNode=$l(".suggest-details"),this.domNode.classList.add("no-docs"),this._markdownRenderer=i.createInstance(lQ,{editor:t}),this._body=$l(".body"),this._scrollbar=new Tk(this._body,{alwaysConsumeMouseWheel:!0}),Ol(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=Ol(this._body,$l(".header")),this._close=Ol(this._header,$l("span"+Cr.asCSSSelector(Os.close))),this._close.title=ot(0,"Close"),this._type=Ol(this._header,$l("p.type")),this._docs=Ol(this._body,$l("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(50)&&this._configureFont()})))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose()}_configureFont(){const t=this._editor.getOptions(),i=t.get(50),e=i.getMassagedFontFamily(),s=t.get(118)||i.fontSize,n=t.get(119)||i.lineHeight,o=i.fontWeight,r=`${n}px`;this.domNode.style.fontSize=`${s}px`,this.domNode.style.lineHeight=""+n/s,this.domNode.style.fontWeight=o,this.domNode.style.fontFeatureSettings=i.fontFeatureSettings,this._type.style.fontFamily=e,this._close.style.height=r,this._close.style.width=r}getLayoutInfo(){const t=this._editor.getOption(119)||this._editor.getOption(50).lineHeight,i=this._borderWidth;return{lineHeight:t,borderWidth:i,borderHeight:2*i,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=ot(0,"Loading..."),this._docs.textContent="",this.domNode.classList.remove("no-docs","no-type"),this.layout(this.size.width,2*this.getLayoutInfo().lineHeight),this._onDidChangeContents.fire(this)}renderItem(t,i){var e,s;this._renderDisposeable.clear();let{detail:n,documentation:o}=t.completion;if(i){let i="";i+=`score: ${t.score[0]}\n`,i+=`prefix: ${null!==(e=t.word)&&void 0!==e?e:"(no prefix)"}\n`,i+=`word: ${t.completion.filterText?t.completion.filterText+" (filterText)":t.textLabel}\n`,i+=`distance: ${t.distance} (localityBonus-setting)\n`,i+=`index: ${t.idx}, based on ${t.completion.sortText&&`sortText: "${t.completion.sortText}"`||"label"}\n`,i+=`commit_chars: ${null===(s=t.completion.commitCharacters)||void 0===s?void 0:s.join("")}\n`,o=(new N_).appendCodeblock("empty",i),n=`Provider: ${t.provider._debugDisplayName}`}if(i||y6(t)){if(this.domNode.classList.remove("no-docs","no-type"),n){const t=n.length>1e5?`${n.substr(0,1e5)}…`:n;this._type.textContent=t,this._type.title=t,Wl(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gim.test(t))}else za(this._type),this._type.title="",jl(this._type),this.domNode.classList.add("no-type");if(za(this._docs),"string"==typeof o)this._docs.classList.remove("markdown-docs"),this._docs.textContent=o;else if(o){this._docs.classList.add("markdown-docs"),za(this._docs);const t=this._markdownRenderer.render(o);this._docs.appendChild(t.element),this._renderDisposeable.add(t),this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync((()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)})))}this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=t=>{t.preventDefault(),t.stopPropagation()},this._close.onclick=t=>{t.preventDefault(),t.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}else this.clearContents()}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get size(){return this._size}layout(t,i){const e=new el(t,i);el.equals(e,this._size)||(this._size=e,function(t,i,e){"number"==typeof i&&(t.style.width=`${i}px`),"number"==typeof e&&(t.style.height=`${e}px`)}(this.domNode,t,i)),this._scrollbar.scanDomNode()}scrollDown(t=8){this._body.scrollTop+=t}scrollUp(t=8){this._body.scrollTop-=t}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}set borderWidth(t){this._borderWidth=t}get borderWidth(){return this._borderWidth}};k6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,ur)],k6);class x6{constructor(t,i){let e,s;this.widget=t,this._editor=i,this._disposables=new Xi,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new CX,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(t.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let n=0,o=0;this._disposables.add(this._resizable.onDidWillResize((()=>{e=this._topLeft,s=this._resizable.size}))),this._disposables.add(this._resizable.onDidResize((t=>{if(e&&s){this.widget.layout(t.dimension.width,t.dimension.height);let i=!1;t.west&&(o=s.width-t.dimension.width,i=!0),t.north&&(n=s.height-t.dimension.height,i=!0),i&&this._applyTopLeft({top:e.top+n,left:e.left+o})}t.done&&(e=void 0,s=void 0,n=0,o=0,this._userSize=t.dimension)}))),this._disposables.add(this.widget.onDidChangeContents((()=>{var t;this._anchorBox&&this._placeAtAnchor(this._anchorBox,null!==(t=this._userSize)&&void 0!==t?t:this.widget.size,this._preferAlignAtTop)})))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return null}show(){this._added||(this._editor.addOverlayWidget(this),this.getDomNode().style.position="fixed",this._added=!0)}hide(t=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),t&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(t,i){var e;const s=t.getBoundingClientRect();this._anchorBox=s,this._preferAlignAtTop=i,this._placeAtAnchor(this._anchorBox,null!==(e=this._userSize)&&void 0!==e?e:this.widget.size,i)}_placeAtAnchor(t,i,e){var s;const n=tl(this.getDomNode().ownerDocument.body),o=this.widget.getLayoutInfo(),r=new el(220,2*o.lineHeight),h=t.top,c=function(){const e=n.width-(t.left+t.width+o.borderWidth+o.horizontalPadding),s=-o.borderWidth+t.left+t.width,c=new el(e,n.height-t.top-o.borderHeight-o.verticalPadding),a=c.with(void 0,t.top+t.height-o.borderHeight-o.verticalPadding);return{top:h,left:s,fit:e-i.width,maxSizeTop:c,maxSizeBottom:a,minSize:r.with(Math.min(e,r.width))}}(),a=[c,function(){const e=t.left-o.borderWidth-o.horizontalPadding,s=Math.max(o.horizontalPadding,t.left-i.width-o.borderWidth),c=new el(e,n.height-t.top-o.borderHeight-o.verticalPadding),a=c.with(void 0,t.top+t.height-o.borderHeight-o.verticalPadding);return{top:h,left:s,fit:e-i.width,maxSizeTop:c,maxSizeBottom:a,minSize:r.with(Math.min(e,r.width))}}(),function(){const e=t.left,s=-o.borderWidth+t.top+t.height,h=new el(t.width-o.borderHeight,n.height-t.top-t.height-o.verticalPadding);return{top:s,left:e,fit:h.height-i.height,maxSizeBottom:h,maxSizeTop:h,minSize:r.with(h.width)}}()],l=null!==(s=a.find((t=>t.fit>=0)))&&void 0!==s?s:a.sort(((t,i)=>i.fit-t.fit))[0],u=t.top+t.height-o.borderHeight;let d,f=i.height;const p=Math.max(l.maxSizeTop.height,l.maxSizeBottom.height);let g;f>p&&(f=p),e?f<=l.maxSizeTop.height?(d=!0,g=l.maxSizeTop):(d=!1,g=l.maxSizeBottom):f<=l.maxSizeBottom.height?(d=!1,g=l.maxSizeBottom):(d=!0,g=l.maxSizeTop),this._applyTopLeft({left:l.left,top:d?l.top:u-f}),this.getDomNode().style.position="fixed",this._resizable.enableSashes(!d,l===c,d,l!==c),this._resizable.minSize=l.minSize,this._resizable.maxSize=g,this._resizable.layout(f,Math.min(g.width,i.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(t){this._topLeft=t,this.getDomNode().style.left=`${this._topLeft.left}px`,this.getDomNode().style.top=`${this._topLeft.top}px`}}var C6;!function(t){t[t.FILE=0]="FILE",t[t.FOLDER=1]="FOLDER",t[t.ROOT_FOLDER=2]="ROOT_FOLDER"}(C6||(C6={}));const S6=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function D6(t,i,e,s){const n=s===C6.ROOT_FOLDER?["rootfolder-icon"]:s===C6.FOLDER?["folder-icon"]:["file-icon"];if(e){let o;if(e.scheme===ka.data)o=MA.parseMetaData(e).get(MA.META_DATA_LABEL);else{const t=e.path.match(S6);t?(o=E6(t[2].toLowerCase()),t[1]&&n.push(`${E6(t[1].toLowerCase())}-name-dir-icon`)):o=E6(e.authority.toLowerCase())}if(s===C6.ROOT_FOLDER)n.push(`${o}-root-name-folder-icon`);else if(s===C6.FOLDER)n.push(`${o}-name-folder-icon`);else{if(o){if(n.push(`${o}-name-file-icon`),n.push("name-file-icon"),o.length<=255){const t=o.split(".");for(let i=1;i{const t=this._editor.getOptions(),i=t.get(50),n=i.getMassagedFontFamily(),o=i.fontFeatureSettings,h=t.get(118)||i.fontSize,c=t.get(119)||i.lineHeight,a=i.fontWeight,l=`${c}px`,u=`${i.letterSpacing}px`;e.style.fontSize=`${h}px`,e.style.fontWeight=a,e.style.letterSpacing=u,r.style.fontFamily=n,r.style.fontFeatureSettings=o,r.style.lineHeight=l,s.style.height=l,s.style.width=l,p.style.height=l,p.style.width=l};return g(),i.add(this._editor.onDidChangeConfiguration((t=>{(t.hasChanged(50)||t.hasChanged(118)||t.hasChanged(119))&&g()}))),{root:e,left:c,right:a,icon:s,colorspan:n,iconLabel:l,iconContainer:h,parametersLabel:u,qualifierLabel:d,detailsLabel:f,readMore:p,disposables:i}}renderElement(t,i,e){const{completion:s}=t;e.root.id=L6(i),e.colorspan.style.backgroundColor="";const n={labelEscapeNewLines:!0,matches:l_(t.score)},o=[];if(19===s.kind&&T6.extract(t,o))e.icon.className="icon customcolor",e.iconContainer.className="icon hide",e.colorspan.style.backgroundColor=o[0];else if(20===s.kind&&this._themeService.getFileIconTheme().hasFileIcons){e.icon.className="icon hide",e.iconContainer.className="icon hide";const i=D6(this._modelService,this._languageService,ms.from({scheme:"fake",path:t.textLabel}),C6.FILE),o=D6(this._modelService,this._languageService,ms.from({scheme:"fake",path:s.detail}),C6.FILE);n.extraClasses=i.length>o.length?i:o}else 23===s.kind&&this._themeService.getFileIconTheme().hasFolderIcons?(e.icon.className="icon hide",e.iconContainer.className="icon hide",n.extraClasses=[D6(this._modelService,this._languageService,ms.from({scheme:"fake",path:t.textLabel}),C6.FOLDER),D6(this._modelService,this._languageService,ms.from({scheme:"fake",path:s.detail}),C6.FOLDER)].flat()):(e.icon.className="icon hide",e.iconContainer.className="",e.iconContainer.classList.add("suggest-icon",...Cr.asClassNameArray(Ps.toIcon(s.kind))));s.tags&&s.tags.indexOf(1)>=0&&(n.extraClasses=(n.extraClasses||[]).concat(["deprecated"]),n.matches=[]),e.iconLabel.setLabel(t.textLabel,void 0,n),"string"==typeof s.label?(e.parametersLabel.textContent="",e.detailsLabel.textContent=O6(s.detail||""),e.root.classList.add("string-label")):(e.parametersLabel.textContent=O6(s.label.detail||""),e.detailsLabel.textContent=O6(s.label.description||""),e.root.classList.remove("string-label")),this._editor.getOption(117).showInlineDetails?Wl(e.detailsLabel):jl(e.detailsLabel),y6(t)?(e.right.classList.add("can-expand-details"),Wl(e.readMore),e.readMore.onmousedown=t=>{t.stopPropagation(),t.preventDefault()},e.readMore.onclick=t=>{t.stopPropagation(),t.preventDefault(),this._onDidToggleDetails.fire()}):(e.right.classList.remove("can-expand-details"),jl(e.readMore),e.readMore.onmousedown=null,e.readMore.onclick=null)}disposeTemplate(t){t.disposables.dispose()}};function O6(t){return t.replace(/\r\n|\r|\n/g,"")}R6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([M6(1,pr),M6(2,yd),M6(3,Xk)],R6);var I6,_6=function(t,i){return function(e,s){i(e,s,t)}};dw("editorSuggestWidget.background",{dark:uv,light:uv,hcDark:uv,hcLight:uv},ot(0,"Background color of the suggest widget.")),dw("editorSuggestWidget.border",{dark:fv,light:fv,hcDark:fv,hcLight:fv},ot(0,"Border color of the suggest widget."));const N6=dw("editorSuggestWidget.foreground",{dark:lv,light:lv,hcDark:lv,hcLight:lv},ot(0,"Foreground color of the suggest widget."));dw("editorSuggestWidget.selectedForeground",{dark:Eb,light:Eb,hcDark:Eb,hcLight:Eb},ot(0,"Foreground color of the selected entry in the suggest widget.")),dw("editorSuggestWidget.selectedIconForeground",{dark:Ab,light:Ab,hcDark:Ab,hcLight:Ab},ot(0,"Icon foreground color of the selected entry in the suggest widget."));const B6=dw("editorSuggestWidget.selectedBackground",{dark:Mb,light:Mb,hcDark:Mb,hcLight:Mb},ot(0,"Background color of the selected entry in the suggest widget."));dw("editorSuggestWidget.highlightForeground",{dark:lb,light:lb,hcDark:lb,hcLight:lb},ot(0,"Color of the match highlights in the suggest widget.")),dw("editorSuggestWidget.focusHighlightForeground",{dark:ub,light:ub,hcDark:ub,hcLight:ub},ot(0,"Color of the match highlights in the suggest widget when an item is focused.")),dw("editorSuggestWidgetStatus.foreground",{dark:ly(N6,.5),light:ly(N6,.5),hcDark:ly(N6,.5),hcLight:ly(N6,.5)},ot(0,"Foreground color of the suggest widget status."));class P6{constructor(t,i){this._service=t,this._key=`suggestWidget.size/${i.getEditorType()}/${i instanceof UJ}`}restore(){var t;const i=null!==(t=this._service.get(this._key,0))&&void 0!==t?t:"";try{const t=JSON.parse(i);if(el.is(t))return el.lift(t)}catch(t){}}store(t){this._service.store(this._key,JSON.stringify(t),0,1)}reset(){this._service.remove(this._key,0)}}let $6=I6=class{constructor(t,i,e,s,n){this.editor=t,this._storageService=i,this._state=0,this._isAuto=!1,this._pendingLayout=new ie,this._pendingShowDetails=new ie,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new dc,this._disposables=new Xi,this._onDidSelect=new pe,this._onDidFocus=new pe,this._onDidHide=new de,this._onDidShow=new de,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new de,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new CX,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new W6(this,t),this._persistedSize=new P6(i,t);class o{constructor(t,i,e=!1,s=!1){this.persistedSize=t,this.currentSize=i,this.persistHeight=e,this.persistWidth=s}}let r;this._disposables.add(this.element.onDidWillResize((()=>{this._contentWidget.lockPreference(),r=new o(this._persistedSize.restore(),this.element.size)}))),this._disposables.add(this.element.onDidResize((t=>{var i,e,s,n;if(this._resize(t.dimension.width,t.dimension.height),r&&(r.persistHeight=r.persistHeight||!!t.north||!!t.south,r.persistWidth=r.persistWidth||!!t.east||!!t.west),t.done){if(r){const{itemHeight:t,defaultSize:o}=this.getLayoutInfo(),h=Math.round(t/2);let{width:c,height:a}=this.element.size;(!r.persistHeight||Math.abs(r.currentSize.height-a)<=h)&&(a=null!==(e=null===(i=r.persistedSize)||void 0===i?void 0:i.height)&&void 0!==e?e:o.height),(!r.persistWidth||Math.abs(r.currentSize.width-c)<=h)&&(c=null!==(n=null===(s=r.persistedSize)||void 0===s?void 0:s.width)&&void 0!==n?n:o.width),this._persistedSize.store(new el(c,a))}this._contentWidget.unlockPreference(),r=void 0}}))),this._messageElement=Ol(this.element.domNode,$l(".message")),this._listElement=Ol(this.element.domNode,$l(".tree"));const h=this._disposables.add(n.createInstance(k6,this.editor));h.onDidClose(this.toggleDetails,this,this._disposables),this._details=new x6(h,this.editor);const c=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(117).showIcons);c();const a=n.createInstance(R6,this.editor);this._disposables.add(a),this._disposables.add(a.onDidToggleDetails((()=>this.toggleDetails()))),this._list=new aB("SuggestWidget",this._listElement,{getHeight:()=>this.getLayoutInfo().itemHeight,getTemplateId:()=>"suggestion"},[a],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>"option",getWidgetAriaLabel:()=>ot(0,"Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:t=>{let i=t.textLabel;if("string"!=typeof t.completion.label){const{detail:e,description:s}=t.completion.label;e&&s?i=ot(0,"{0} {1}, {2}",i,e,s):e?i=ot(0,"{0} {1}",i,e):s&&(i=ot(0,"{0}, {1}",i,s))}if(!t.isResolved||!this._isDetailsVisible())return i;const{documentation:e,detail:s}=t.completion;return ot(0,"{0}, docs: {1}",i,qn("{0}{1}",s||"",e?"string"==typeof e?e:e.value:""))}}}),this._list.style(PB({listInactiveFocusBackground:B6,listInactiveFocusOutline:vw})),this._status=n.createInstance(b6,this.element.domNode,x3);const l=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(117).showStatusBar);l(),this._disposables.add(s.onDidColorThemeChange((t=>this._onThemeChange(t)))),this._onThemeChange(s.getColorTheme()),this._disposables.add(this._list.onMouseDown((t=>this._onListMouseDownOrTap(t)))),this._disposables.add(this._list.onTap((t=>this._onListMouseDownOrTap(t)))),this._disposables.add(this._list.onDidChangeSelection((t=>this._onListSelection(t)))),this._disposables.add(this._list.onDidChangeFocus((t=>this._onListFocus(t)))),this._disposables.add(this.editor.onDidChangeCursorSelection((()=>this._onCursorSelectionChanged()))),this._disposables.add(this.editor.onDidChangeConfiguration((t=>{t.hasChanged(117)&&(l(),c())}))),this._ctxSuggestWidgetVisible=k3.Visible.bindTo(e),this._ctxSuggestWidgetDetailsVisible=k3.DetailsVisible.bindTo(e),this._ctxSuggestWidgetMultipleSuggestions=k3.MultipleSuggestions.bindTo(e),this._ctxSuggestWidgetHasFocusedSuggestion=k3.HasFocusedSuggestion.bindTo(e),this._disposables.add(qa(this._details.widget.domNode,"keydown",(t=>{this._onDetailsKeydown.fire(t)}))),this._disposables.add(this.editor.onMouseDown((t=>this._onEditorMouseDown(t))))}dispose(){var t;this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),null===(t=this._loadingTimeout)||void 0===t||t.dispose(),this._pendingLayout.dispose(),this._pendingShowDetails.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}_onEditorMouseDown(t){this._details.widget.domNode.contains(t.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(t.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){0!==this._state&&this._contentWidget.layout()}_onListMouseDownOrTap(t){void 0!==t.element&&void 0!==t.index&&(t.browserEvent.preventDefault(),t.browserEvent.stopPropagation(),this._select(t.element,t.index))}_onListSelection(t){t.elements.length&&this._select(t.elements[0],t.indexes[0])}_select(t,i){const e=this._completionModel;e&&(this._onDidSelect.fire({item:t,index:i,model:e}),this.editor.focus())}_onThemeChange(t){this._details.widget.borderWidth=zy(t.type)?2:1}_onListFocus(t){var i;if(this._ignoreFocusEvents)return;if(!t.elements.length)return this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),void this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);const e=t.elements[0],s=t.indexes[0];e!==this._focusedItem&&(null===(i=this._currentSuggestionDetails)||void 0===i||i.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=e,this._list.reveal(s),this._currentSuggestionDetails=nc((async t=>{const i=lc((()=>{this._isDetailsVisible()&&this.showDetails(!0)}),250),s=t.onCancellationRequested((()=>i.dispose()));try{return await e.resolve(t)}finally{i.dispose(),s.dispose()}})),this._currentSuggestionDetails.then((()=>{s>=this._list.length||e!==this._list.element(s)||(this._ignoreFocusEvents=!0,this._list.splice(s,1,[e]),this._list.setFocus([s]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this.showDetails(!1):this.element.domNode.classList.remove("docs-side"),this.editor.setAriaOptions({activeDescendant:L6(s)}))})).catch(Bi)),this._onDidFocus.fire({item:e,index:s,model:this._completionModel})}_setState(t){if(this._state!==t)switch(this._state=t,this.element.domNode.classList.toggle("frozen",4===t),this.element.domNode.classList.remove("message"),t){case 0:jl(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=I6.LOADING_MESSAGE,jl(this._listElement,this._status.element),Wl(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,$m(I6.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=I6.NO_SUGGESTIONS_MESSAGE,jl(this._listElement,this._status.element),Wl(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,$m(I6.NO_SUGGESTIONS_MESSAGE);break;case 3:case 4:jl(this._messageElement),Wl(this._listElement,this._status.element),this._show();break;case 5:jl(this._messageElement),Wl(this._listElement,this._status.element),this._details.show(),this._show()}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet((()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)}),100)}showTriggered(t,i){0===this._state&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!t,this._isAuto||(this._loadingTimeout=lc((()=>this._setState(1)),i)))}showSuggestions(t,i,e,s,n){var o,r;if(this._contentWidget.setPosition(this.editor.getPosition()),null===(o=this._loadingTimeout)||void 0===o||o.dispose(),null===(r=this._currentSuggestionDetails)||void 0===r||r.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==t&&(this._completionModel=t),e&&2!==this._state&&0!==this._state)return void this._setState(4);const h=this._completionModel.items.length,c=0===h;if(this._ctxSuggestWidgetMultipleSuggestions.set(h>1),c)return this._setState(s?0:2),void(this._completionModel=void 0);this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(e?4:3),this._list.reveal(i,0),this._list.setFocus(n?[]:[i])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=Za(Na(this.element.domNode),(()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")}))}focusSelected(){this._list.length>0&&this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(0!==this._state&&2!==this._state&&1!==this._state&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){5===this._state?(this._setState(3),this._details.widget.domNode.classList.remove("focused")):3===this._state&&this._isDetailsVisible()&&(this._setState(5),this._details.widget.domNode.classList.add("focused"))}toggleDetails(){this._isDetailsVisible()?(this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):!y6(this._list.getFocusedElements()[0])&&!this._explainMode||3!==this._state&&5!==this._state&&4!==this._state||(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this.showDetails(!1))}showDetails(t){this._pendingShowDetails.value=Za(Na(this.element.domNode),(()=>{this._pendingShowDetails.clear(),this._details.show(),t?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._positionDetails(),this.editor.focus(),this.element.domNode.classList.add("shows-details")}))}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this.showDetails(!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){var t;this._pendingLayout.clear(),this._pendingShowDetails.clear(),null===(t=this._loadingTimeout)||void 0===t||t.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const i=this._persistedSize.restore(),e=Math.ceil(4.3*this.getLayoutInfo().itemHeight);i&&i.heightc&&(h=c);const a=this._completionModel?this._completionModel.stats.pLabelLen*o.typicalHalfwidthCharacterWidth:h,l=o.statusBarHeight+this._list.contentHeight+o.borderHeight,u=o.itemHeight+o.statusBarHeight,d=nl(this.editor.getDomNode()),f=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),p=Math.min(n.height-(d.top+f.top+f.height)-o.verticalPadding,l),g=d.top+f.top-o.verticalPadding,m=Math.min(g,l);let w=Math.min(Math.max(m,p)+o.borderHeight,l);r===(null===(i=this._cappedHeight)||void 0===i?void 0:i.capped)&&(r=this._cappedHeight.wanted),rw&&(r=w),r>p||this._forceRenderingAbove&&g>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),w=m):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),w=p),this.element.preferredSize=new el(a,o.defaultSize.height),this.element.maxSize=new el(c,w),this.element.minSize=new el(220,u),this._cappedHeight=r===l?{wanted:null!==(s=null===(e=this._cappedHeight)||void 0===e?void 0:e.wanted)&&void 0!==s?s:t.height,capped:r}:void 0}this._resize(h,r)}_resize(t,i){const{width:e,height:s}=this.element.maxSize;t=Math.min(e,t),i=Math.min(s,i);const{statusBarHeight:n}=this.getLayoutInfo();this._list.layout(i-n,t),this._listElement.style.height=i-n+"px",this.element.layout(i,t),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){var t;this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,2===(null===(t=this._contentWidget.getPosition())||void 0===t?void 0:t.preference[0]))}getLayoutInfo(){const t=this.editor.getOption(50),i=lR(this.editor.getOption(119)||t.lineHeight,8,1e3),e=this.editor.getOption(117).showStatusBar&&2!==this._state&&1!==this._state?i:0,s=this._details.widget.borderWidth,n=2*s;return{itemHeight:i,statusBarHeight:e,borderWidth:s,borderHeight:n,typicalHalfwidthCharacterWidth:t.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new el(430,e+12*i+n)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(t){this._storageService.store("expandSuggestionDocs",t,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};$6.LOADING_MESSAGE=ot(0,"Loading..."),$6.NO_SUGGESTIONS_MESSAGE=ot(0,"No suggestions."),$6=I6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([_6(1,AB),_6(2,ah),_6(3,Xk),_6(4,ur)],$6);class W6{constructor(t,i){this._widget=t,this._editor=i,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return!this._hidden&&this._position&&this._preference?{position:this._position,preference:[this._preference]}:null}beforeRender(){const{height:t,width:i}=this._widget.element.size,{borderWidth:e,horizontalPadding:s}=this._widget.getLayoutInfo();return new el(i+2*e+s,t+2*e)}afterRender(t){this._widget._afterRender(t)}setPreference(t){this._preferenceLocked||(this._preference=t)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(t){this._position=t}}var j6,z6=function(t,i){return function(e,s){i(e,s,t)}};class H6{constructor(t,i){if(this._model=t,this._position=i,t.getLineMaxColumn(i.lineNumber)!==i.column){const e=t.getOffsetAt(i),s=t.getPositionAt(e+1);this._marker=t.deltaDecorations([],[{range:Ms.fromPositions(i,s),options:{description:"suggest-line-suffix",stickiness:1}}])}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.deltaDecorations(this._marker,[])}delta(t){if(this._model.isDisposed()||this._position.lineNumber!==t.lineNumber)return 0;if(this._marker){const i=this._model.getDecorationRange(this._marker[0]);return this._model.getOffsetAt(i.getStartPosition())-this._model.getOffsetAt(t)}return this._model.getLineMaxColumn(t.lineNumber)-t.column}}let V6=j6=class{static get(t){return t.getContribution(j6.ID)}constructor(t,i,e,s,n,o,r){this._memoryService=i,this._commandService=e,this._contextKeyService=s,this._instantiationService=n,this._logService=o,this._telemetryService=r,this._lineSuffix=new ie,this._toDispose=new Xi,this._selectors=new U6((t=>t.priority)),this._onWillInsertSuggestItem=new de,this.onWillInsertSuggestItem=this._onWillInsertSuggestItem.event,this.editor=t,this.model=n.createInstance(g6,this.editor),this._selectors.register({priority:0,select:(t,i,e)=>this._memoryService.select(t,i,e)});const h=k3.InsertMode.bindTo(s);h.set(t.getOption(117).insertMode),this._toDispose.add(this.model.onDidTrigger((()=>h.set(t.getOption(117).insertMode)))),this.widget=this._toDispose.add(new Ga(Na(t.getDomNode()),(()=>{const t=this._instantiationService.createInstance($6,this.editor);this._toDispose.add(t),this._toDispose.add(t.onDidSelect((t=>this._insertSuggestion(t,0)),this));const i=new h6(this.editor,t,this.model,(t=>this._insertSuggestion(t,2)));this._toDispose.add(i);const e=k3.MakesTextEdit.bindTo(this._contextKeyService),s=k3.HasInsertAndReplaceRange.bindTo(this._contextKeyService),n=k3.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add(Yi((()=>{e.reset(),s.reset(),n.reset()}))),this._toDispose.add(t.onDidFocus((({item:t})=>{const i=this.editor.getPosition(),o=t.editStart.column,r=i.column;let h=!0;"smart"!==this.editor.getOption(1)||2!==this.model.state||t.completion.additionalTextEdits||4&t.completion.insertTextRules||r-o!==t.completion.insertText.length||(h=this.editor.getModel().getValueInRange({startLineNumber:i.lineNumber,startColumn:o,endLineNumber:i.lineNumber,endColumn:r})!==t.completion.insertText),e.set(h),s.set(!As.equals(t.editInsertEnd,t.editReplaceEnd)),n.set(Boolean(t.provider.resolveCompletionItem)||Boolean(t.completion.documentation)||t.completion.detail!==t.completion.label)}))),this._toDispose.add(t.onDetailsKeyDown((t=>{t.toKeyCodeChord().equals(new wh(!0,!1,!1,!1,33))||Ct&&t.toKeyCodeChord().equals(new wh(!1,!1,!1,!0,33))?t.stopPropagation():t.toKeyCodeChord().isModifierKey()||this.editor.focus()}))),t}))),this._overtypingCapturer=this._toDispose.add(new Ga(Na(t.getDomNode()),(()=>this._toDispose.add(new m6(this.editor,this.model))))),this._alternatives=this._toDispose.add(new Ga(Na(t.getDomNode()),(()=>this._toDispose.add(new r6(this.editor,this._contextKeyService))))),this._toDispose.add(n.createInstance(n6,t)),this._toDispose.add(this.model.onDidTrigger((t=>{this.widget.value.showTriggered(t.auto,t.shy?250:50),this._lineSuffix.value=new H6(this.editor.getModel(),t.position)}))),this._toDispose.add(this.model.onDidSuggest((t=>{if(t.triggerOptions.shy)return;let i=-1;for(const e of this._selectors.itemsOrderedByPriorityDesc)if(i=e.select(this.editor.getModel(),this.editor.getPosition(),t.completionModel.items),-1!==i)break;-1===i&&(i=0);let e=!1;if(t.triggerOptions.auto){const i=this.editor.getOption(117);"never"===i.selectionMode||"always"===i.selectionMode?e="never"===i.selectionMode:"whenTriggerCharacter"===i.selectionMode?e=1!==t.triggerOptions.triggerKind:"whenQuickSuggestion"===i.selectionMode&&(e=1===t.triggerOptions.triggerKind&&!t.triggerOptions.refilter)}this.widget.value.showSuggestions(t.completionModel,i,t.isFrozen,t.triggerOptions.auto,e)}))),this._toDispose.add(this.model.onDidCancel((t=>{t.retrigger||this.widget.value.hideWidget()}))),this._toDispose.add(this.editor.onDidBlurEditorWidget((()=>{this.model.cancel(),this.model.clear()})));const c=k3.AcceptSuggestionsOnEnter.bindTo(s),a=()=>{const t=this.editor.getOption(1);c.set("on"===t||"smart"===t)};this._toDispose.add(this.editor.onDidChangeConfiguration((()=>a()))),a()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(t,i){if(!t||!t.item)return this._alternatives.value.reset(),this.model.cancel(),void this.model.clear();if(!this.editor.hasModel())return;const e=q3.get(this.editor);if(!e)return;this._onWillInsertSuggestItem.fire({item:t.item});const s=this.editor.getModel(),n=s.getAlternativeVersionId(),{item:o}=t,r=[],h=new Ce;1&i||this.editor.pushUndoStop();const c=this.getOverwriteInfo(o,Boolean(8&i));this._memoryService.memorize(s,this.editor.getPosition(),o);const a=o.isResolved;let l=-1,u=-1;if(Array.isArray(o.completion.additionalTextEdits)){this.model.cancel();const t=iU.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",o.completion.additionalTextEdits.map((t=>pO.replaceMove(Ms.lift(t.range),t.text)))),t.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!a){const t=new re;let e;const n=s.onDidChangeContent((t=>{if(t.isFlush)return h.cancel(),void n.dispose();for(const i of t.changes){const t=Ms.getEndPosition(i.range);e&&!As.isBefore(t,e)||(e=t)}})),c=i;i|=2;let a=!1;const l=this.editor.onWillType((()=>{l.dispose(),a=!0,2&c||this.editor.pushUndoStop()}));r.push(o.resolve(h.token).then((()=>{if(!o.completion.additionalTextEdits||h.token.isCancellationRequested)return;if(e&&o.completion.additionalTextEdits.some((t=>As.isBefore(e,Ms.getStartPosition(t.range)))))return!1;a&&this.editor.pushUndoStop();const t=iU.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",o.completion.additionalTextEdits.map((t=>pO.replaceMove(Ms.lift(t.range),t.text)))),t.restoreRelativeVerticalPositionOfCursor(this.editor),!a&&2&c||this.editor.pushUndoStop(),!0})).then((i=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",t.elapsed(),i),u=!0===i?1:!1===i?0:-2})).finally((()=>{n.dispose(),l.dispose()})))}let{insertText:d}=o.completion;if(4&o.completion.insertTextRules||(d=n3.escape(d)),this.model.cancel(),e.insert(d,{overwriteBefore:c.overwriteBefore,overwriteAfter:c.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(1&o.completion.insertTextRules),clipboardText:t.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),2&i||this.editor.pushUndoStop(),o.completion.command)if(o.completion.command.id===q6.id)this.model.trigger({auto:!0,retrigger:!0});else{const t=new re;r.push(this._commandService.executeCommand(o.completion.command.id,...o.completion.command.arguments?[...o.completion.command.arguments]:[]).catch((t=>{o.completion.extensionId?Pi(t):Bi(t)})).finally((()=>{l=t.elapsed()})))}4&i&&this._alternatives.value.set(t,(t=>{for(h.cancel();s.canUndo();){n!==s.getAlternativeVersionId()&&s.undo(),this._insertSuggestion(t,3|(8&i?8:0));break}})),this._alertCompletionItem(o),Promise.all(r).finally((()=>{this._reportSuggestionAcceptedTelemetry(o,s,a,l,u),this.model.clear(),h.dispose()}))}_reportSuggestionAcceptedTelemetry(t,i,e,s,n){var o,r,h;0!==Math.floor(100*Math.random())&&this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:null!==(r=null===(o=t.extensionId)||void 0===o?void 0:o.value)&&void 0!==r?r:"unknown",providerId:null!==(h=t.provider._debugDisplayName)&&void 0!==h?h:"unknown",kind:t.completion.kind,basenameHash:Ma(bA(i.uri)).toString(16),languageId:i.getLanguageId(),fileExtension:yA(i.uri),resolveInfo:t.provider.resolveCompletionItem?e?1:0:-1,resolveDuration:t.resolveDuration,commandDuration:s,additionalEditsAsync:n})}getOverwriteInfo(t,i){q(this.editor.hasModel());let e="replace"===this.editor.getOption(117).insertMode;i&&(e=!e);const s=(e?t.editReplaceEnd.column:t.editInsertEnd.column)-t.position.column;return{overwriteBefore:t.position.column-t.editStart.column+(this.editor.getPosition().column-t.position.column),overwriteAfter:s+(this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0)}}_alertCompletionItem(t){b(t.completion.additionalTextEdits)&&Pm(ot(0,"Accepting '{0}' made {1} additional edits",t.textLabel,t.completion.additionalTextEdits.length))}triggerSuggest(t,i,e){this.editor.hasModel()&&(this.model.trigger({auto:null!=i&&i,completionOptions:{providerFilter:t,kindFilter:e?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(t){if(!this.editor.hasModel())return;const i=this.editor.getPosition(),e=()=>{i.equals(this.editor.getPosition())&&this._commandService.executeCommand(t.fallback)},s=t=>{if(4&t.completion.insertTextRules||t.completion.additionalTextEdits)return!0;const i=this.editor.getPosition(),e=t.editStart.column,s=i.column;return s-e!==t.completion.insertText.length||this.editor.getModel().getValueInRange({startLineNumber:i.lineNumber,startColumn:e,endLineNumber:i.lineNumber,endColumn:s})!==t.completion.insertText};he.once(this.model.onDidTrigger)((()=>{const t=[];he.any(this.model.onDidTrigger,this.model.onDidCancel)((()=>{Qi(t),e()}),void 0,t),this.model.onDidSuggest((({completionModel:i})=>{if(Qi(t),0===i.items.length)return void e();const n=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),i.items),o=i.items[n];s(o)?(this.editor.pushUndoStop(),this._insertSuggestion({index:n,item:o,model:i},7)):e()}),void 0,t)})),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(i,0),this.editor.focus()}acceptSelectedSuggestion(t,i){const e=this.widget.value.getFocusedItem();let s=0;t&&(s|=4),i&&(s|=8),this._insertSuggestion(e,s)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.value.forceRenderingAbove()}stopForceRenderingAbove(){this.widget.isInitialized&&this.widget.value.stopForceRenderingAbove()}registerSelector(t){return this._selectors.register(t)}};V6.ID="editor.contrib.suggestController",V6=j6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([z6(1,e6),z6(2,Sr),z6(3,ah),z6(4,ur),z6(5,jh),z6(6,Wh)],V6);class U6{constructor(t){this.prioritySelector=t,this._items=new Array}register(t){if(-1!==this._items.indexOf(t))throw new Error("Value is already registered");return this._items.push(t),this._items.sort(((t,i)=>this.prioritySelector(i)-this.prioritySelector(t))),{dispose:()=>{const i=this._items.indexOf(t);i>=0&&this._items.splice(i,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class q6 extends su{constructor(){super({id:q6.id,label:ot(0,"Trigger Suggest"),alias:"Trigger Suggest",precondition:zr.and(YC.writable,YC.hasCompletionItemProvider,k3.Visible.toNegated()),kbOpts:{kbExpr:YC.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(t,i,e){const s=V6.get(i);if(!s)return;let n;e&&"object"==typeof e&&!0===e.auto&&(n=!0),s.triggerSuggest(void 0,n,void 0)}}q6.id="editor.action.triggerSuggest",lu(V6.ID,V6,2),cu(q6);const K6=190,G6=eu.bindToContribution(V6.get);hu(new G6({id:"acceptSelectedSuggestion",precondition:zr.and(k3.Visible,k3.HasFocusedSuggestion),handler(t){t.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:zr.and(k3.Visible,YC.textInputFocus),weight:K6},{primary:3,kbExpr:zr.and(k3.Visible,YC.textInputFocus,k3.AcceptSuggestionsOnEnter,k3.MakesTextEdit),weight:K6}],menuOpts:[{menuId:x3,title:ot(0,"Insert"),group:"left",order:1,when:k3.HasInsertAndReplaceRange.toNegated()},{menuId:x3,title:ot(0,"Insert"),group:"left",order:1,when:zr.and(k3.HasInsertAndReplaceRange,k3.InsertMode.isEqualTo("insert"))},{menuId:x3,title:ot(0,"Replace"),group:"left",order:1,when:zr.and(k3.HasInsertAndReplaceRange,k3.InsertMode.isEqualTo("replace"))}]})),hu(new G6({id:"acceptAlternativeSelectedSuggestion",precondition:zr.and(k3.Visible,YC.textInputFocus,k3.HasFocusedSuggestion),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:1027,secondary:[1026]},handler(t){t.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:x3,group:"left",order:2,when:zr.and(k3.HasInsertAndReplaceRange,k3.InsertMode.isEqualTo("insert")),title:ot(0,"Replace")},{menuId:x3,group:"left",order:2,when:zr.and(k3.HasInsertAndReplaceRange,k3.InsertMode.isEqualTo("replace")),title:ot(0,"Insert")}]})),Dr.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion"),hu(new G6({id:"hideSuggestWidget",precondition:k3.Visible,handler:t=>t.cancelSuggestWidget(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:9,secondary:[1033]}})),hu(new G6({id:"selectNextSuggestion",precondition:zr.and(k3.Visible,zr.or(k3.MultipleSuggestions,k3.HasFocusedSuggestion.negate())),handler:t=>t.selectNextSuggestion(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),hu(new G6({id:"selectNextPageSuggestion",precondition:zr.and(k3.Visible,zr.or(k3.MultipleSuggestions,k3.HasFocusedSuggestion.negate())),handler:t=>t.selectNextPageSuggestion(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:12,secondary:[2060]}})),hu(new G6({id:"selectLastSuggestion",precondition:zr.and(k3.Visible,zr.or(k3.MultipleSuggestions,k3.HasFocusedSuggestion.negate())),handler:t=>t.selectLastSuggestion()})),hu(new G6({id:"selectPrevSuggestion",precondition:zr.and(k3.Visible,zr.or(k3.MultipleSuggestions,k3.HasFocusedSuggestion.negate())),handler:t=>t.selectPrevSuggestion(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),hu(new G6({id:"selectPrevPageSuggestion",precondition:zr.and(k3.Visible,zr.or(k3.MultipleSuggestions,k3.HasFocusedSuggestion.negate())),handler:t=>t.selectPrevPageSuggestion(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:11,secondary:[2059]}})),hu(new G6({id:"selectFirstSuggestion",precondition:zr.and(k3.Visible,zr.or(k3.MultipleSuggestions,k3.HasFocusedSuggestion.negate())),handler:t=>t.selectFirstSuggestion()})),hu(new G6({id:"focusSuggestion",precondition:zr.and(k3.Visible,k3.HasFocusedSuggestion.negate()),handler:t=>t.focusSuggestion(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}})),hu(new G6({id:"focusAndAcceptSuggestion",precondition:zr.and(k3.Visible,k3.HasFocusedSuggestion.negate()),handler:t=>{t.focusSuggestion(),t.acceptSelectedSuggestion(!0,!1)}})),hu(new G6({id:"toggleSuggestionDetails",precondition:zr.and(k3.Visible,k3.HasFocusedSuggestion),handler:t=>t.toggleSuggestionDetails(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:x3,group:"right",order:1,when:zr.and(k3.DetailsVisible,k3.CanResolve),title:ot(0,"show less")},{menuId:x3,group:"right",order:1,when:zr.and(k3.DetailsVisible.toNegated(),k3.CanResolve),title:ot(0,"show more")}]})),hu(new G6({id:"toggleExplainMode",precondition:k3.Visible,handler:t=>t.toggleExplainMode(),kbOpts:{weight:100,primary:2138}})),hu(new G6({id:"toggleSuggestionFocus",precondition:k3.Visible,handler:t=>t.toggleSuggestionFocus(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:2570,mac:{primary:778}}})),hu(new G6({id:"insertBestCompletion",precondition:zr.and(YC.textInputFocus,zr.equals("config.editor.tabCompletion","on"),n6.AtEnd,k3.Visible.toNegated(),r6.OtherSuggestions.toNegated(),q3.InSnippetMode.toNegated()),handler:(t,i)=>{t.triggerSuggestAndAcceptBest(P(i)?{fallback:"tab",...i}:{fallback:"tab"})},kbOpts:{weight:K6,primary:2}})),hu(new G6({id:"insertNextSuggestion",precondition:zr.and(YC.textInputFocus,zr.equals("config.editor.tabCompletion","on"),r6.OtherSuggestions,k3.Visible.toNegated(),q3.InSnippetMode.toNegated()),handler:t=>t.acceptNextSuggestion(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:2}})),hu(new G6({id:"insertPrevSuggestion",precondition:zr.and(YC.textInputFocus,zr.equals("config.editor.tabCompletion","on"),r6.OtherSuggestions,k3.Visible.toNegated(),q3.InSnippetMode.toNegated()),handler:t=>t.acceptPrevSuggestion(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:1026}})),cu(class extends su{constructor(){super({id:"editor.action.resetSuggestSize",label:ot(0,"Reset Suggest Widget Size"),alias:"Reset Suggest Widget Size",precondition:void 0})}run(t,i){var e;null===(e=V6.get(i))||void 0===e||e.resetWidgetSize()}});class Z6 extends te{get selectedItem(){return this._selectedItem}constructor(t,i,e,s){super(),this.editor=t,this.suggestControllerPreselector=i,this.checkModelVersion=e,this.onWillAccept=s,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._selectedItem=FV(this,void 0),this._register(t.onKeyDown((t=>{t.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))}))),this._register(t.onKeyUp((t=>{t.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))})));const n=V6.get(this.editor);if(n){this._register(n.registerSelector({priority:100,select:(t,i,e)=>{var s;yV((t=>this.checkModelVersion(t)));const o=this.editor.getModel();if(!o)return-1;const r=null===(s=this.suggestControllerPreselector())||void 0===s?void 0:s.removeCommonPrefix(o);if(!r)return-1;const h=As.lift(i),c=up(e.map(((t,i)=>{const e=Q6.fromSuggestion(n,o,h,t,this.isShiftKeyPressed).toSingleTextEdit().removeCommonPrefix(o);return{index:i,valid:r.augments(e),prefixLength:e.text.length,suggestItem:t}})).filter((t=>t&&t.valid&&t.prefixLength>0)),T((t=>t.prefixLength),R));return c?c.index:-1}}));let t=!1;const i=()=>{t||(t=!0,this._register(n.widget.value.onDidShow((()=>{this.isSuggestWidgetVisible=!0,this.update(!0)}))),this._register(n.widget.value.onDidHide((()=>{this.isSuggestWidgetVisible=!1,this.update(!1)}))),this._register(n.widget.value.onDidFocus((()=>{this.isSuggestWidgetVisible=!0,this.update(!0)}))))};this._register(he.once(n.model.onDidTrigger)((()=>{i()}))),this._register(n.onWillInsertSuggestItem((t=>{const i=this.editor.getPosition(),e=this.editor.getModel();if(!i||!e)return;const s=Q6.fromSuggestion(n,e,i,t.item,this.isShiftKeyPressed);this.onWillAccept(s)})))}this.update(this._isActive)}update(t){const i=this.getSuggestItemInfo();var e,s;this._isActive===t&&((e=this._currentSuggestItemInfo)===(s=i)||e&&s&&e.equals(s))||(this._isActive=t,this._currentSuggestItemInfo=i,yV((t=>{this.checkModelVersion(t),this._selectedItem.set(this._isActive?this._currentSuggestItemInfo:void 0,t)})))}getSuggestItemInfo(){const t=V6.get(this.editor);if(!t||!this.isSuggestWidgetVisible)return;const i=t.widget.value.getFocusedItem(),e=this.editor.getPosition(),s=this.editor.getModel();return i&&e&&s?Q6.fromSuggestion(t,s,e,i.item,this.isShiftKeyPressed):void 0}stopForceRenderingAbove(){const t=V6.get(this.editor);null==t||t.stopForceRenderingAbove()}forceRenderingAbove(){const t=V6.get(this.editor);null==t||t.forceRenderingAbove()}}class Q6{static fromSuggestion(t,i,e,s,n){let{insertText:o}=s.completion,r=!1;if(4&s.completion.insertTextRules){const t=(new n3).parse(o);t.children.length<100&&z3.adjustWhitespace(i,e,!0,t),o=t.toString(),r=!0}const h=t.getOverwriteInfo(s,n);return new Q6(Ms.fromPositions(e.delta(0,-h.overwriteBefore),e.delta(0,Math.max(h.overwriteAfter,0))),o,s.completion.kind,r)}constructor(t,i,e,s){this.range=t,this.insertText=i,this.completionItemKind=e,this.isSnippetText=s}equals(t){return this.range.equalsRange(t.range)&&this.insertText===t.insertText&&this.completionItemKind===t.completionItemKind&&this.isSnippetText===t.isSnippetText}toSelectedSuggestionInfo(){return new zs(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}toSingleTextEdit(){return new l3(this.range,this.insertText)}}var J6,Y6=function(t,i){return function(e,s){i(e,s,t)}};let X6=J6=class extends te{static get(t){return t.getContribution(J6.ID)}constructor(t,i,e,s,n,o,r,h,c){super(),this.editor=t,this._instantiationService=i,this._contextKeyService=e,this._configurationService=s,this._commandService=n,this._debounceService=o,this._languageFeaturesService=r,this._audioCueService=h,this._keybindingService=c,this.model=RV("inlineCompletionModel",void 0),this._textModelVersionId=FV(this,-1),this._cursorPosition=FV(this,new As(1,1)),this._suggestWidgetAdaptor=this._register(new Z6(this.editor,(()=>{var t,i;return null===(i=null===(t=this.model.get())||void 0===t?void 0:t.selectedInlineCompletion.get())||void 0===i?void 0:i.toSingleTextEdit(void 0)}),(t=>this.updateObservables(t,G3.Other)),(t=>{yV((i=>{var e;this.updateObservables(i,G3.Other),null===(e=this.model.get())||void 0===e||e.handleSuggestAccepted(t)}))}))),this._enabled=KV(this.editor.onDidChangeConfiguration,(()=>this.editor.getOption(62).enabled)),this._ghostTextWidget=this._register(this._instantiationService.createInstance(H5,this.editor,{ghostText:this.model.map(((t,i)=>null==t?void 0:t.ghostText.read(i))),minReservedLineCount:UV(0),targetTextModel:this.model.map((t=>null==t?void 0:t.textModel))})),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineCompletionsDebounce",{min:50,max:50}),this._playAudioCueSignal=JV(this),this._isReadonly=KV(this.editor.onDidChangeConfiguration,(()=>this.editor.getOption(90))),this._textModel=KV(this.editor.onDidChangeModel,(()=>this.editor.getModel())),this._textModelIfWritable=_V((t=>this._isReadonly.read(t)?void 0:this._textModel.read(t))),this._register(new R5(this._contextKeyService,this.model)),this._register(WV((e=>{const s=this._textModelIfWritable.read(e);yV((e=>{if(this.model.set(void 0,e),this.updateObservables(e,G3.Other),s){const n=i.createInstance(Q3,s,this._suggestWidgetAdaptor.selectedItem,this._cursorPosition,this._textModelVersionId,this._debounceValue,KV(t.onDidChangeConfiguration,(()=>t.getOption(117).preview)),KV(t.onDidChangeConfiguration,(()=>t.getOption(117).previewMode)),KV(t.onDidChangeConfiguration,(()=>t.getOption(62).mode)),this._enabled);this.model.set(n,e)}}))})));const a=t=>{var i;return t.isUndoing?G3.Undo:t.isRedoing?G3.Redo:(null===(i=this.model.get())||void 0===i?void 0:i.isAcceptingPartially)?G3.AcceptWord:G3.Other};let l;this._register(t.onDidChangeModelContent((t=>yV((i=>this.updateObservables(i,a(t))))))),this._register(t.onDidChangeCursorPosition((t=>yV((i=>{var e;this.updateObservables(i,G3.Other),3!==t.reason&&"api"!==t.source||null===(e=this.model.get())||void 0===e||e.stop(i)}))))),this._register(t.onDidType((()=>yV((t=>{var i;this.updateObservables(t,G3.Other),this._enabled.get()&&(null===(i=this.model.get())||void 0===i||i.trigger(t))}))))),this._register(this._commandService.onDidExecuteCommand((i=>{new Set([hS.Tab.id,hS.DeleteLeft.id,hS.DeleteRight.id,A0,"acceptSelectedSuggestion"]).has(i.commandId)&&t.hasTextFocus()&&this._enabled.get()&&yV((t=>{var i;null===(i=this.model.get())||void 0===i||i.trigger(t)}))}))),this._register(this.editor.onDidBlurEditorWidget((()=>{this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||t.getOption(62).keepOnBlur||N0.dropDownVisible||yV((t=>{var i;null===(i=this.model.get())||void 0===i||i.stop(t)}))}))),this._register(WV((t=>{var i;const e=null===(i=this.model.read(t))||void 0===i?void 0:i.state.read(t);(null==e?void 0:e.suggestItem)?e.ghostText.lineCount>=2&&this._suggestWidgetAdaptor.forceRenderingAbove():this._suggestWidgetAdaptor.stopForceRenderingAbove()}))),this._register(Yi((()=>{this._suggestWidgetAdaptor.stopForceRenderingAbove()}))),this._register(zV({handleChange:t=>(t.didChange(this._playAudioCueSignal)&&(l=void 0),!0)},(async t=>{this._playAudioCueSignal.read(t);const i=this.model.read(t),e=null==i?void 0:i.state.read(t);if(i&&e&&e.inlineCompletion){if(e.inlineCompletion.semanticId!==l){l=e.inlineCompletion.semanticId;const t=i.textModel.getLineContent(e.ghostText.lineNumber);this._audioCueService.playAudioCue(UH.inlineSuggestion).then((()=>{this.editor.getOption(8)&&this.provideScreenReaderUpdate(e.ghostText.renderForScreenReader(t))}))}}else l=void 0}))),this._register(new O0(this.editor,this.model,this._instantiationService)),this._register(this._configurationService.onDidChangeConfiguration((t=>{t.affectsConfiguration("accessibility.verbosity.inlineCompletions")&&this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})}))),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})}playAudioCue(t){this._playAudioCueSignal.trigger(t)}provideScreenReaderUpdate(t){const i=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),e=this._keybindingService.lookupKeybinding("editor.action.accessibleView");let s;!i&&e&&this.editor.getOption(147)&&(s=ot(0,"Inspect this in the accessible view ({0})",e.getAriaLabel())),Pm(s?t+", "+s:t)}updateObservables(t,i){var e,s;const n=this.editor.getModel();this._textModelVersionId.set(null!==(e=null==n?void 0:n.getVersionId())&&void 0!==e?e:-1,t,i),this._cursorPosition.set(null!==(s=this.editor.getPosition())&&void 0!==s?s:new As(1,1),t)}shouldShowHoverAt(t){var i;const e=null===(i=this.model.get())||void 0===i?void 0:i.ghostText.get();return!!e&&e.parts.some((i=>t.containsPosition(new As(e.lineNumber,i.column))))}shouldShowHoverAtViewZone(t){return this._ghostTextWidget.ownsViewZone(t)}};X6.ID="editor.contrib.inlineCompletionsController",X6=J6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Y6(1,ur),Y6(2,ah),Y6(3,pd),Y6(4,Sr),Y6(5,gR),Y6(6,xg),Y6(7,zH),Y6(8,oC)],X6);class t9 extends su{constructor(){super({id:t9.ID,label:ot(0,"Show Next Inline Suggestion"),alias:"Show Next Inline Suggestion",precondition:zr.and(YC.writable,R5.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(t,i){var e;const s=X6.get(i);null===(e=null==s?void 0:s.model.get())||void 0===e||e.next()}}t9.ID=L0;class i9 extends su{constructor(){super({id:i9.ID,label:ot(0,"Show Previous Inline Suggestion"),alias:"Show Previous Inline Suggestion",precondition:zr.and(YC.writable,R5.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(t,i){var e;const s=X6.get(i);null===(e=null==s?void 0:s.model.get())||void 0===e||e.previous()}}i9.ID=M0;class e9 extends su{constructor(){super({id:e9.ID,label:ot(0,"Hide Inline Suggestion"),alias:"Hide Inline Suggestion",precondition:R5.inlineSuggestionVisible,kbOpts:{weight:100,primary:9}})}async run(t,i){const e=X6.get(i);yV((t=>{var i;null===(i=null==e?void 0:e.model.get())||void 0===i||i.stop(t)}))}}e9.ID="editor.action.inlineSuggest.hide";class s9 extends Ph{constructor(){super({id:s9.ID,title:ot(0,"Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:Rh.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:zr.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(t,i){const e=t.get(pd),s=e.getValue("editor.inlineSuggest.showToolbar");e.updateValue("editor.inlineSuggest.showToolbar","always"===s?"onHover":"always")}}s9.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar";var n9=function(t,i){return function(e,s){i(e,s,t)}};class o9{constructor(t,i,e){this.owner=t,this.range=i,this.controller=e}isValidForHoverAnchor(t){return 1===t.type&&this.range.startColumn<=t.range.startColumn&&this.range.endColumn>=t.range.endColumn}}let r9=class{constructor(t,i,e,s,n,o){this._editor=t,this._languageService=i,this._openerService=e,this.accessibilityService=s,this._instantiationService=n,this._telemetryService=o,this.hoverOrdinal=4}suggestHoverAnchor(t){const i=X6.get(this._editor);if(!i)return null;const e=t.target;if(8===e.type){const s=e.detail;if(i.shouldShowHoverAtViewZone(s.viewZoneId))return new kX(1e3,this,Ms.fromPositions(this._editor.getModel().validatePosition(s.positionBefore||s.position)),t.event.posx,t.event.posy,!1)}return 7===e.type&&i.shouldShowHoverAt(e.range)||6===e.type&&e.detail.mightBeForeignElement&&i.shouldShowHoverAt(e.range)?new kX(1e3,this,e.range,t.event.posx,t.event.posy,!1):null}computeSync(t,i){if("onHover"!==this._editor.getOption(62).showToolbar)return[];const e=X6.get(this._editor);return e&&e.shouldShowHoverAt(t.range)?[new o9(this,t.range,e)]:[]}renderHoverParts(t,i){const e=new Xi,s=i[0];this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(8)&&this.renderScreenReaderText(t,s,e);const n=s.controller.model.get(),o=this._instantiationService.createInstance(N0,this._editor,!1,UV(null),n.selectedInlineCompletionIndex,n.inlineCompletionsCount,n.selectedInlineCompletion.map((t=>{var i;return null!==(i=null==t?void 0:t.inlineCompletion.source.inlineCompletions.commands)&&void 0!==i?i:[]})));return t.fragment.appendChild(o.getDomNode()),n.triggerExplicitly(),e.add(o),e}renderScreenReaderText(t,i,e){const s=$l,n=s("div.hover-row.markdown-hover"),o=Ol(n,s("div.hover-contents",{"aria-live":"assertive"})),r=e.add(new lQ({editor:this._editor},this._languageService,this._openerService));e.add(WV((s=>{var n;const h=null===(n=i.controller.model.read(s))||void 0===n?void 0:n.ghostText.read(s);if(h){const i=this._editor.getModel().getLineContent(h.lineNumber);(i=>{e.add(r.onDidRenderAsync((()=>{o.className="hover-contents code-hover-contents",t.onContentsChanged()})));const s=ot(0,"Suggestion:"),n=e.add(r.render((new N_).appendText(s).appendCodeblock("text",i)));o.replaceChildren(n.element)})(h.renderForScreenReader(i))}else _l(o)}))),t.fragment.appendChild(n)}};function h9(t,i){let e=0;for(let s=0;s=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([n9(1,yd),n9(2,dP),n9(3,Zm),n9(4,ur),n9(5,Wh)],r9),lu(X6.ID,X6,3),cu(class extends su{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:ot(0,"Trigger Inline Suggestion"),alias:"Trigger Inline Suggestion",precondition:YC.writable})}async run(t,i){const e=X6.get(i);await async function(t){const i=new CV(t,void 0);try{await t(i)}finally{i.finish()}}((async t=>{var i;await(null===(i=null==e?void 0:e.model.get())||void 0===i?void 0:i.triggerExplicitly(t)),null==e||e.playAudioCue(t)}))}}),cu(t9),cu(i9),cu(class extends su{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:ot(0,"Accept Next Word Of Inline Suggestion"),alias:"Accept Next Word Of Inline Suggestion",precondition:zr.and(YC.writable,R5.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:zr.and(YC.writable,R5.inlineSuggestionVisible)},menuOpts:[{menuId:Rh.InlineSuggestionToolbar,title:ot(0,"Accept Word"),group:"primary",order:2}]})}async run(t,i){var e;const s=X6.get(i);await(null===(e=null==s?void 0:s.model.get())||void 0===e?void 0:e.acceptNextWord(s.editor))}}),cu(class extends su{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:ot(0,"Accept Next Line Of Inline Suggestion"),alias:"Accept Next Line Of Inline Suggestion",precondition:zr.and(YC.writable,R5.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:Rh.InlineSuggestionToolbar,title:ot(0,"Accept Line"),group:"secondary",order:2}]})}async run(t,i){var e;const s=X6.get(i);await(null===(e=null==s?void 0:s.model.get())||void 0===e?void 0:e.acceptNextLine(s.editor))}}),cu(class extends su{constructor(){super({id:A0,label:ot(0,"Accept Inline Suggestion"),alias:"Accept Inline Suggestion",precondition:R5.inlineSuggestionVisible,menuOpts:[{menuId:Rh.InlineSuggestionToolbar,title:ot(0,"Accept"),group:"primary",order:1}],kbOpts:{primary:2,weight:200,kbExpr:zr.and(R5.inlineSuggestionVisible,YC.tabMovesFocus.toNegated(),R5.inlineSuggestionHasIndentationLessThanTabSize,k3.Visible.toNegated(),YC.hoverFocused.toNegated())}})}async run(t,i){var e;const s=X6.get(i);s&&(null===(e=s.model.get())||void 0===e||e.accept(s.editor),s.editor.focus())}}),cu(e9),$h(s9),xX.register(r9);function a9(t,i,e,s,n){if(1===t.getLineCount()&&1===t.getLineMaxColumn(1))return[];const o=i.getLanguageConfiguration(t.getLanguageId()).indentationRules;if(!o)return[];for(s=Math.min(s,t.getLineCount());e<=s&&o.unIndentedLinePattern;){const i=t.getLineContent(e);if(!o.unIndentedLinePattern.test(i))break;e++}if(e>s-1)return[];const{tabSize:r,indentSize:h,insertSpaces:c}=t.getOptions(),a=(t,i)=>$C.shiftIndent(t,t.length+(i=i||1),r,h,c),l=(t,i)=>$C.unshiftIndent(t,t.length+(i=i||1),r,h,c),u=[];let d;const f=t.getLineContent(e);let p=f;if(null!=n){d=n;const t=io(f);p=d+f.substring(t.length),o.decreaseIndentPattern&&o.decreaseIndentPattern.test(p)&&(d=l(d),p=d+f.substring(t.length)),f!==p&&u.push(pO.replaceMove(new Ls(e,1,e,t.length+1),lC(d,h,c)))}else d=io(f);let g=d;o.increaseIndentPattern&&o.increaseIndentPattern.test(p)?(g=a(g),d=a(d)):o.indentNextLinePattern&&o.indentNextLinePattern.test(p)&&(g=a(g));for(let i=++e;i<=s;i++){const e=t.getLineContent(i),s=io(e),n=g+e.substring(s.length);o.decreaseIndentPattern&&o.decreaseIndentPattern.test(n)&&(g=l(g),d=l(d)),s!==g&&u.push(pO.replaceMove(new Ls(i,1,i,s.length+1),lC(g,h,c))),o.unIndentedLinePattern&&o.unIndentedLinePattern.test(e)||(o.increaseIndentPattern&&o.increaseIndentPattern.test(n)?(d=a(d),g=d):g=o.indentNextLinePattern&&o.indentNextLinePattern.test(n)?a(g):d)}return u}class l9 extends su{constructor(){super({id:l9.ID,label:ot(0,"Convert Indentation to Spaces"),alias:"Convert Indentation to Spaces",precondition:YC.writable})}run(t,i){const e=i.getModel();if(!e)return;const s=e.getOptions(),n=i.getSelection();if(!n)return;const o=new y9(n,s.tabSize);i.pushUndoStop(),i.executeCommands(this.id,[o]),i.pushUndoStop(),e.updateOptions({insertSpaces:!0})}}l9.ID="editor.action.indentationToSpaces";class u9 extends su{constructor(){super({id:u9.ID,label:ot(0,"Convert Indentation to Tabs"),alias:"Convert Indentation to Tabs",precondition:YC.writable})}run(t,i){const e=i.getModel();if(!e)return;const s=e.getOptions(),n=i.getSelection();if(!n)return;const o=new k9(n,s.tabSize);i.pushUndoStop(),i.executeCommands(this.id,[o]),i.pushUndoStop(),e.updateOptions({insertSpaces:!1})}}u9.ID="editor.action.indentationToTabs";class d9 extends su{constructor(t,i,e){super(e),this.insertSpaces=t,this.displaySizeOnly=i}run(t,i){const e=t.get(Oj),s=t.get(pr),n=i.getModel();if(!n)return;const o=s.getCreationOptions(n.getLanguageId(),n.uri,n.isForSimpleWidget),r=n.getOptions(),h=[1,2,3,4,5,6,7,8].map((t=>({id:t.toString(),label:t.toString(),description:t===o.tabSize&&t===r.tabSize?ot(0,"Configured Tab Size"):t===o.tabSize?ot(0,"Default Tab Size"):t===r.tabSize?ot(0,"Current Tab Size"):void 0}))),c=Math.min(n.getOptions().tabSize-1,7);setTimeout((()=>{e.pick(h,{placeHolder:ot(0,"Select Tab Size for Current File"),activeItem:h[c]}).then((t=>{if(t&&n&&!n.isDisposed()){const i=parseInt(t.label,10);n.updateOptions(this.displaySizeOnly?{tabSize:i}:{tabSize:i,indentSize:i,insertSpaces:this.insertSpaces})}}))}),50)}}class f9 extends d9{constructor(){super(!1,!1,{id:f9.ID,label:ot(0,"Indent Using Tabs"),alias:"Indent Using Tabs",precondition:void 0})}}f9.ID="editor.action.indentUsingTabs";class p9 extends d9{constructor(){super(!0,!1,{id:p9.ID,label:ot(0,"Indent Using Spaces"),alias:"Indent Using Spaces",precondition:void 0})}}p9.ID="editor.action.indentUsingSpaces";class g9 extends d9{constructor(){super(!0,!0,{id:g9.ID,label:ot(0,"Change Tab Display Size"),alias:"Change Tab Display Size",precondition:void 0})}}g9.ID="editor.action.changeTabDisplaySize";class m9 extends su{constructor(){super({id:m9.ID,label:ot(0,"Detect Indentation from Content"),alias:"Detect Indentation from Content",precondition:void 0})}run(t,i){const e=t.get(pr),s=i.getModel();if(!s)return;const n=e.getCreationOptions(s.getLanguageId(),s.uri,s.isForSimpleWidget);s.detectIndentation(n.insertSpaces,n.tabSize)}}m9.ID="editor.action.detectIndentation";class w9{constructor(t,i){this._initialSelection=i,this._edits=[],this._selectionId=null;for(const i of t)i.range&&"string"==typeof i.text&&this._edits.push(i)}getEditOperations(t,i){for(const t of this._edits)i.addEditOperation(Ms.lift(t.range),t.text);let e=!1;Array.isArray(this._edits)&&1===this._edits.length&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(e=!0,this._selectionId=i.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(e=!0,this._selectionId=i.trackSelection(this._initialSelection,!1))),e||(this._selectionId=i.trackSelection(this._initialSelection))}computeCursorState(t,i){return i.getTrackedSelection(this._selectionId)}}let v9=class{constructor(t,i){this.editor=t,this._languageConfigurationService=i,this.callOnDispose=new Xi,this.callOnModel=new Xi,this.callOnDispose.add(t.onDidChangeConfiguration((()=>this.update()))),this.callOnDispose.add(t.onDidChangeModel((()=>this.update()))),this.callOnDispose.add(t.onDidChangeModelLanguage((()=>this.update())))}update(){this.callOnModel.clear(),this.editor.getOption(12)<4||this.editor.getOption(55)||this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste((({range:t})=>{this.trigger(t)})))}trigger(t){const i=this.editor.getSelections();if(null===i||i.length>1)return;const e=this.editor.getModel();if(!e)return;if(!e.tokenization.isCheapToTokenize(t.getStartPosition().lineNumber))return;const s=this.editor.getOption(12),{tabSize:n,indentSize:o,insertSpaces:r}=e.getOptions(),h=[],c={shiftIndent:t=>$C.shiftIndent(t,t.length+1,n,o,r),unshiftIndent:t=>$C.unshiftIndent(t,t.length+1,n,o,r)};let a=t.startLineNumber;for(;a<=t.endLineNumber&&this.shouldIgnoreLine(e,a);)a++;if(a>t.endLineNumber)return;let l=e.getLineContent(a);if(!/\S/.test(l.substring(0,t.startColumn-1))){const t=HC(s,e,e.getLanguageId(),a,c,this._languageConfigurationService);if(null!==t){const i=io(l),s=h9(t,n);if(s!==h9(i,n)){const t=c9(s,n,r);h.push({range:new Ms(a,1,a,i.length+1),text:t}),l=t+l.substr(i.length)}else{const t=VC(e,a,this._languageConfigurationService);if(0===t||8===t)return}}}const u=a;for(;ae.tokenization.getLineTokens(t),getLanguageId:()=>e.getLanguageId(),getLanguageIdAtPosition:(t,i)=>e.getLanguageIdAtPosition(t,i)},getLineContent:t=>t===u?l:e.getLineContent(t)},e.getLanguageId(),a+1,c,this._languageConfigurationService);if(null!==i){const s=h9(i,n),o=h9(io(e.getLineContent(a+1)),n);if(s!==o){const i=s-o;for(let s=a+1;s<=t.endLineNumber;s++){const t=io(e.getLineContent(s)),o=c9(h9(t,n)+i,n,r);o!==t&&h.push({range:new Ms(s,1,s,t.length+1),text:o})}}}}if(h.length>0){this.editor.pushUndoStop();const t=new w9(h,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",t),this.editor.pushUndoStop()}}shouldIgnoreLine(t,i){t.tokenization.forceTokenization(i);const e=t.getLineFirstNonWhitespaceColumn(i);if(0===e)return!0;const s=t.tokenization.getLineTokens(i);if(s.getCount()>0){const t=s.findTokenIndexAtOffset(e);if(t>=0&&1===s.getStandardTokenType(t))return!0}return!1}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};function b9(t,i,e,s){if(1===t.getLineCount()&&1===t.getLineMaxColumn(1))return;let n="";for(let t=0;t=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,Xd)],v9);class y9{constructor(t,i){this.selection=t,this.tabSize=i,this.selectionId=null}getEditOperations(t,i){this.selectionId=i.trackSelection(this.selection),b9(t,i,this.tabSize,!0)}computeCursorState(t,i){return i.getTrackedSelection(this.selectionId)}}class k9{constructor(t,i){this.selection=t,this.tabSize=i,this.selectionId=null}getEditOperations(t,i){this.selectionId=i.trackSelection(this.selection),b9(t,i,this.tabSize,!1)}computeCursorState(t,i){return i.getTrackedSelection(this.selectionId)}}lu(v9.ID,v9,2),cu(l9),cu(u9),cu(f9),cu(p9),cu(g9),cu(m9),cu(class extends su{constructor(){super({id:"editor.action.reindentlines",label:ot(0,"Reindent Lines"),alias:"Reindent Lines",precondition:YC.writable})}run(t,i){const e=t.get(Xd),s=i.getModel();if(!s)return;const n=a9(s,e,1,s.getLineCount());n.length>0&&(i.pushUndoStop(),i.executeEdits(this.id,n),i.pushUndoStop())}}),cu(class extends su{constructor(){super({id:"editor.action.reindentselectedlines",label:ot(0,"Reindent Selected Lines"),alias:"Reindent Selected Lines",precondition:YC.writable})}run(t,i){const e=t.get(Xd),s=i.getModel();if(!s)return;const n=i.getSelections();if(null===n)return;const o=[];for(const t of n){let i=t.startLineNumber,n=t.endLineNumber;if(i!==n&&1===t.endColumn&&n--,1===i){if(i===n)continue}else i--;const r=a9(s,e,i,n);o.push(...r)}o.length>0&&(i.pushUndoStop(),i.executeEdits(this.id,o),i.pushUndoStop())}});class x9{constructor(t,i){this.range=t,this.direction=i}}class C9{constructor(t,i,e){this.hint=t,this.anchor=i,this.provider=e,this._isResolved=!1}with(t){const i=new C9(this.hint,t.anchor,this.provider);return i._isResolved=this._isResolved,i._currentResolve=this._currentResolve,i}async resolve(t){if("function"==typeof this.provider.resolveInlayHint){if(this._currentResolve){if(await this._currentResolve,t.isCancellationRequested)return;return this.resolve(t)}this._isResolved||(this._currentResolve=this._doResolve(t).finally((()=>this._currentResolve=void 0))),await this._currentResolve}}async _doResolve(t){var i,e;try{const s=await Promise.resolve(this.provider.resolveInlayHint(this.hint,t));this.hint.tooltip=null!==(i=null==s?void 0:s.tooltip)&&void 0!==i?i:this.hint.tooltip,this.hint.label=null!==(e=null==s?void 0:s.label)&&void 0!==e?e:this.hint.label,this._isResolved=!0}catch(t){Pi(t),this._isResolved=!1}}}class S9{static async create(t,i,e,s){const n=[],o=t.ordered(i).reverse().map((t=>e.map((async e=>{try{const o=await t.provideInlayHints(i,e,s);(null==o?void 0:o.hints.length)&&n.push([o,t])}catch(t){Pi(t)}}))));if(await Promise.all(o.flat()),s.isCancellationRequested||i.isDisposed())throw new zi;return new S9(e,n,i)}constructor(t,i,e){this._disposables=new Xi,this.ranges=t,this.provider=new Set;const s=[];for(const[t,n]of i){this._disposables.add(t),this.provider.add(n);for(const i of t.hints){const t=e.validatePosition(i.position);let o="before";const r=S9._getRangeAtPosition(e,t);let h;r.getStartPosition().isBefore(t)?(h=Ms.fromPositions(r.getStartPosition(),t),o="after"):(h=Ms.fromPositions(t,r.getEndPosition()),o="before"),s.push(new C9(i,new x9(h,o),n))}}this.items=s.sort(((t,i)=>As.compare(t.hint.position,i.hint.position)))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(t,i){const e=i.lineNumber,s=t.getWordAtPosition(i);if(s)return new Ms(e,s.startColumn,e,s.endColumn);t.tokenization.tokenizeIfCheap(e);const n=t.tokenization.getLineTokens(e),o=i.column-1,r=n.findTokenIndexAtOffset(o);let h=n.getStartOffset(r),c=n.getEndOffset(r);return c-h==1&&(h===o&&r>1?(h=n.getStartOffset(r-1),c=n.getEndOffset(r-1)):c===o&&rTh(t)?t.command.id:l1())));for(const t of oX.all())d.has(t.desc.id)&&u.push(new mr(t.desc.id,Bh.label(t.desc,{renderShortTitle:!0}),void 0,!0,(async()=>{const e=await o.createModelReference(l.uri);try{const n=new nX(e.object.textEditorModel,Ms.getStartPosition(l.range)),o=s.item.anchor.range;await c.invokeFunction(t.runEditorCommand.bind(t),i,n,o)}finally{e.dispose()}})));if(s.part.command){const{command:t}=s.part;u.push(new vr),u.push(new mr(t.id,t.title,void 0,!0,(async()=>{var i;try{await h.executeCommand(t.id,...null!==(i=t.arguments)&&void 0!==i?i:[])}catch(t){a.notify({severity:nT.Error,source:s.item.provider.displayName,message:t})}})))}const f=i.getOption(126);r.showContextMenu({domForShadowRoot:f&&null!==(n=i.getDomNode())&&void 0!==n?n:void 0,getAnchor:()=>{const t=nl(e);return{x:t.left,y:t.top+t.height+8}},getActions:()=>u,onHide:()=>{i.focus()},autoSelectFirstItem:!0})}async function E9(t,i,e,s){const n=t.get(gr),o=await n.createModelReference(s.uri);await e.invokeWithinContext((async t=>{const n=i.hasSideBySideModifier,r=t.get(ah),h=iY.inPeekEditor.getValue(r),c=!n&&e.getOption(87)&&!h;return new rX({openToSide:n,openInPeek:c,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(t,new nX(o.object.textEditorModel,Ms.getStartPosition(s.range)),Ms.lift(s.range))})),o.dispose()}var A9,M9=function(t,i){return function(e,s){i(e,s,t)}};class L9{constructor(){this._entries=new Vp(50)}get(t){const i=L9._key(t);return this._entries.get(i)}set(t,i){const e=L9._key(t);this._entries.set(e,i)}static _key(t){return`${t.uri.toString()}/${t.getVersionId()}`}}const F9=dr("IInlayHintsCache");Cd(F9,L9,1);class T9{constructor(t,i){this.item=t,this.index=i}get part(){const t=this.item.hint.label;return"string"==typeof t?{label:t}:t[this.index]}}class R9{constructor(t,i){this.part=t,this.hasTriggerModifier=i}}let O9=A9=class{static get(t){var i;return null!==(i=t.getContribution(A9.ID))&&void 0!==i?i:void 0}constructor(t,i,e,s,n,o,r){this._editor=t,this._languageFeaturesService=i,this._inlayHintsCache=s,this._commandService=n,this._notificationService=o,this._instaService=r,this._disposables=new Xi,this._sessionDisposables=new Xi,this._decorationsMetadata=new Map,this._ruleFactory=new Ay(this._editor),this._activeRenderMode=0,this._debounceInfo=e.for(i.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(i.inlayHintsProvider.onDidChange((()=>this._update()))),this._disposables.add(t.onDidChangeModel((()=>this._update()))),this._disposables.add(t.onDidChangeModelLanguage((()=>this._update()))),this._disposables.add(t.onDidChangeConfiguration((t=>{t.hasChanged(139)&&this._update()}))),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const t=this._editor.getOption(139);if("off"===t.enabled)return;const i=this._editor.getModel();if(!i||!this._languageFeaturesService.inlayHintsProvider.has(i))return;const e=this._inlayHintsCache.get(i);let s;e&&this._updateHintsDecorators([i.getFullModelRange()],e),this._sessionDisposables.add(Yi((()=>{i.isDisposed()||this._cacheHintsForFastRestore(i)})));const n=new Set,o=new pc((async()=>{const t=Date.now();null==s||s.dispose(!0),s=new Ce;const e=i.onWillDispose((()=>null==s?void 0:s.cancel()));try{const e=s.token,r=await S9.create(this._languageFeaturesService.inlayHintsProvider,i,this._getHintsRanges(),e);if(o.delay=this._debounceInfo.update(i,Date.now()-t),e.isCancellationRequested)return void r.dispose();for(const t of r.provider)"function"!=typeof t.onDidChangeInlayHints||n.has(t)||(n.add(t),this._sessionDisposables.add(t.onDidChangeInlayHints((()=>{o.isScheduled()||o.schedule()}))));this._sessionDisposables.add(r),this._updateHintsDecorators(r.ranges,r.items),this._cacheHintsForFastRestore(i)}catch(t){Bi(t)}finally{s.dispose(),e.dispose()}}),this._debounceInfo.get(i));if(this._sessionDisposables.add(o),this._sessionDisposables.add(Yi((()=>null==s?void 0:s.dispose(!0)))),o.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange((t=>{!t.scrollTopChanged&&o.isScheduled()||o.schedule()}))),this._sessionDisposables.add(this._editor.onDidChangeModelContent((()=>{const t=Math.max(o.delay,1250);o.schedule(t)}))),"on"===t.enabled)this._activeRenderMode=0;else{let i,e;"onUnlessPressed"===t.enabled?(i=0,e=1):(i=1,e=0),this._activeRenderMode=i,this._sessionDisposables.add(Gl.getInstance().event((t=>{if(!this._editor.hasModel())return;const s=t.altKey&&t.ctrlKey&&!t.shiftKey&&!t.metaKey?e:i;if(s!==this._activeRenderMode){this._activeRenderMode=s;const t=this._editor.getModel(),i=this._copyInlayHintsWithCurrentAnchor(t);this._updateHintsDecorators([t.getFullModelRange()],i),o.schedule(0)}})))}this._sessionDisposables.add(this._installDblClickGesture((()=>o.schedule(0)))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const t=new Xi,i=t.add(new HJ(this._editor)),e=new Xi;return t.add(e),t.add(i.onMouseMoveOrRelevantKeyDown((t=>{const[i]=t,s=this._getInlayHintLabelPart(i),n=this._editor.getModel();if(!s||!n)return void e.clear();const o=new Ce;e.add(Yi((()=>o.dispose(!0)))),s.item.resolve(o.token),this._activeInlayHintPart=s.part.command||s.part.location?new R9(s,i.hasTriggerModifier):void 0;const r=n.validatePosition(s.item.hint.position).lineNumber,h=new Ms(r,1,r,n.getLineMaxColumn(r)),c=this._getInlineHintsForRange(h);this._updateHintsDecorators([h],c),e.add(Yi((()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([h],c)})))}))),t.add(i.onCancel((()=>e.clear()))),t.add(i.onExecute((async t=>{const i=this._getInlayHintLabelPart(t);if(i){const e=i.part;e.location?this._instaService.invokeFunction(E9,t,this._editor,e.location):Us.is(e.command)&&await this._invokeCommand(e.command,i.item)}}))),t}_getInlineHintsForRange(t){const i=new Set;for(const e of this._decorationsMetadata.values())t.containsRange(e.item.anchor.range)&&i.add(e.item);return Array.from(i)}_installDblClickGesture(t){return this._editor.onMouseUp((async i=>{if(2!==i.event.detail)return;const e=this._getInlayHintLabelPart(i);if(e&&(i.event.preventDefault(),await e.item.resolve(ke.None),b(e.item.hint.textEdits))){const i=e.item.hint.textEdits.map((t=>pO.replace(Ms.lift(t.range),t.text)));this._editor.executeEdits("inlayHint.default",i),t()}}))}_installContextMenu(){return this._editor.onContextMenu((async t=>{if(!(t.event.target instanceof HTMLElement))return;const i=this._getInlayHintLabelPart(t);i&&await this._instaService.invokeFunction(D9,this._editor,t.event.target,i)}))}_getInlayHintLabelPart(t){var i;if(6!==t.target.type)return;const e=null===(i=t.target.detail.injectedText)||void 0===i?void 0:i.options;return e instanceof EL&&(null==e?void 0:e.attachedData)instanceof T9?e.attachedData:void 0}async _invokeCommand(t,i){var e;try{await this._commandService.executeCommand(t.id,...null!==(e=t.arguments)&&void 0!==e?e:[])}catch(t){this._notificationService.notify({severity:nT.Error,source:i.provider.displayName,message:t})}}_cacheHintsForFastRestore(t){const i=this._copyInlayHintsWithCurrentAnchor(t);this._inlayHintsCache.set(t,i)}_copyInlayHintsWithCurrentAnchor(t){const i=new Map;for(const[e,s]of this._decorationsMetadata){if(i.has(s.item))continue;const n=t.getDecorationRange(e);if(n){const t=new x9(n,s.item.anchor.direction),e=s.item.with({anchor:t});i.set(s.item,e)}}return Array.from(i.values())}_getHintsRanges(){const t=this._editor.getModel(),i=this._editor.getVisibleRangesPlusViewportAboveBelow(),e=[];for(const s of i.sort(Ms.compareRangesUsingStarts)){const i=t.validateRange(new Ms(s.startLineNumber-30,s.startColumn,s.endLineNumber+30,s.endColumn));0!==e.length&&Ms.areIntersectingOrTouching(e[e.length-1],i)?e[e.length-1]=Ms.plusRange(e[e.length-1],i):e.push(i)}return e}_updateHintsDecorators(t,i){var e,s;const n=[],o=(t,i,e,s,o)=>{const r={content:e,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:i.className,cursorStops:s,attachedData:o};n.push({item:t,classNameRef:i,decoration:{range:t.anchor.range,options:{description:"InlayHint",showIfCollapsed:t.anchor.range.isEmpty(),collapseOnReplaceEdit:!t.anchor.range.isEmpty(),stickiness:0,[t.anchor.direction]:0===this._activeRenderMode?r:void 0}}})},r=(t,i)=>{const e=this._ruleFactory.createClassNameRef({width:(h/3|0)+"px",display:"inline-block"});o(t,e," ",i?Pf.Right:Pf.None)},{fontSize:h,fontFamily:c,padding:a,isUniform:l}=this._getLayoutInfo(),u="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(u,c);for(const t of i){t.hint.paddingLeft&&r(t,!1);const i="string"==typeof t.hint.label?[{label:t.hint.label}]:t.hint.label;for(let s=0;sA9._MAX_DECORATORS)break}const d=[];for(const i of t)for(const{id:t}of null!==(s=this._editor.getDecorationsInRange(i))&&void 0!==s?s:[]){const i=this._decorationsMetadata.get(t);i&&(d.push(t),i.classNameRef.dispose(),this._decorationsMetadata.delete(t))}const f=iU.capture(this._editor);this._editor.changeDecorations((t=>{const i=t.deltaDecorations(d,n.map((t=>t.decoration)));for(let t=0;te)&&(n=e);const o=t.fontFamily||s;return{fontSize:n,fontFamily:o,padding:i,isUniform:!i&&o===s&&n===e}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const t of this._decorationsMetadata.values())t.classNameRef.dispose();this._decorationsMetadata.clear()}};O9.ID="editor.contrib.InlayHints",O9._MAX_DECORATORS=1500,O9=A9=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([M9(1,xg),M9(2,gR),M9(3,F9),M9(4,Sr),M9(5,oT),M9(6,ur)],O9),Dr.registerCommand("_executeInlayHintProvider",(async(t,...i)=>{const[e,s]=i;q(ms.isUri(e)),q(Ms.isIRange(s));const{inlayHintsProvider:n}=t.get(xg),o=await t.get(gr).createModelReference(e);try{const t=await S9.create(n,o.object.textEditorModel,[Ms.lift(s)],ke.None),i=t.items.map((t=>t.hint));return setTimeout((()=>t.dispose()),0),i}finally{o.dispose()}}));var I9=function(t,i){return function(e,s){i(e,s,t)}};class _9 extends kX{constructor(t,i,e,s){super(10,i,t.item.anchor.range,e,s,!0),this.part=t}}let N9=class extends qX{constructor(t,i,e,s,n,o){super(t,i,e,s,o),this._resolverService=n,this.hoverOrdinal=6}suggestHoverAnchor(t){var i;if(!O9.get(this._editor))return null;if(6!==t.target.type)return null;const e=null===(i=t.target.detail.injectedText)||void 0===i?void 0:i.options;return e instanceof EL&&e.attachedData instanceof T9?new _9(e.attachedData,this,t.event.posx,t.event.posy):null}computeSync(){return[]}computeAsync(t,i,e){return t instanceof _9?new kc((async i=>{const{part:s}=t;if(await s.item.resolve(e),e.isCancellationRequested)return;let n,o;if("string"==typeof s.item.hint.tooltip?n=(new N_).appendText(s.item.hint.tooltip):s.item.hint.tooltip&&(n=s.item.hint.tooltip),n&&i.emitOne(new UX(this,t.range,[n],!1,0)),b(s.item.hint.textEdits)&&i.emitOne(new UX(this,t.range,[(new N_).appendText(ot(0,"Double-click to insert"))],!1,10001)),"string"==typeof s.part.tooltip?o=(new N_).appendText(s.part.tooltip):s.part.tooltip&&(o=s.part.tooltip),o&&i.emitOne(new UX(this,t.range,[o],!1,1)),s.part.location||s.part.command){let e;const n=ot(0,"altKey"===this._editor.getOption(77)?Ct?"cmd + click":"ctrl + click":Ct?"option + click":"alt + click");s.part.location&&s.part.command?e=(new N_).appendText(ot(0,"Go to Definition ({0}), right click for more",n)):s.part.location?e=(new N_).appendText(ot(0,"Go to Definition ({0})",n)):s.part.command&&(e=new N_(`[${ot(0,"Execute Command")}](${r=s.part.command,ms.from({scheme:ka.command,path:r.id,query:r.arguments&&encodeURIComponent(JSON.stringify(r.arguments))}).toString()} "${s.part.command.title}") (${n})`,{isTrusted:!0})),e&&i.emitOne(new UX(this,t.range,[e],!1,1e4))}var r;const h=await this._resolveInlayHintLabelPartHover(s,e);for await(const t of h)i.emitOne(t)})):kc.EMPTY}async _resolveInlayHintLabelPartHover(t,i){if(!t.part.location)return kc.EMPTY;const{uri:e,range:s}=t.part.location,n=await this._resolverService.createModelReference(e);try{const e=n.object.textEditorModel;return this._languageFeaturesService.hoverProvider.has(e)?zX(this._languageFeaturesService.hoverProvider,e,new As(s.startLineNumber,s.startColumn),i).filter((t=>!B_(t.hover.contents))).map((i=>new UX(this,t.item.anchor.range,i.hover.contents,!1,2+i.ordinal))):kc.EMPTY}finally{n.dispose()}}};N9=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([I9(1,yd),I9(2,dP),I9(3,pd),I9(4,gr),I9(5,xg)],N9),lu(O9.ID,O9,1),xX.register(N9);class B9{constructor(t,i,e){this._editRange=t,this._originalSelection=i,this._text=e}getEditOperations(t,i){i.addTrackedEditOperation(this._editRange,this._text)}computeCursorState(t,i){const e=i.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new Ls(e.endLineNumber,Math.min(this._originalSelection.positionColumn,e.endColumn),e.endLineNumber,Math.min(this._originalSelection.positionColumn,e.endColumn)):new Ls(e.endLineNumber,e.endColumn-this._text.length,e.endLineNumber,e.endColumn)}}var P9;let $9=P9=class{static get(t){return t.getContribution(P9.ID)}constructor(t,i){this.editor=t,this.editorWorkerService=i,this.decorations=this.editor.createDecorationsCollection()}dispose(){}run(t,i){var e;null===(e=this.currentRequest)||void 0===e||e.cancel();const s=this.editor.getSelection(),n=this.editor.getModel();if(!n||!s)return;let o=s;if(o.startLineNumber!==o.endLineNumber)return;const r=new xK(this.editor,5),h=n.uri;return this.editorWorkerService.canNavigateValueSet(h)?(this.currentRequest=nc((()=>this.editorWorkerService.navigateValueSet(h,o,i))),this.currentRequest.then((i=>{var e;if(!i||!i.range||!i.value)return;if(!r.validate(this.editor))return;const s=Ms.lift(i.range);let n=i.range;const h=i.value.length-(o.endColumn-o.startColumn);n={startLineNumber:n.startLineNumber,startColumn:n.startColumn,endLineNumber:n.endLineNumber,endColumn:n.startColumn+i.value.length},h>1&&(o=new Ls(o.startLineNumber,o.startColumn,o.endLineNumber,o.endColumn+h-1));const c=new B9(s,o,i.value);this.editor.pushUndoStop(),this.editor.executeCommand(t,c),this.editor.pushUndoStop(),this.decorations.set([{range:n,options:P9.DECORATION}]),null===(e=this.decorationRemover)||void 0===e||e.cancel(),this.decorationRemover=ac(350),this.decorationRemover.then((()=>this.decorations.clear())).catch(Bi)})).catch(Bi)):Promise.resolve(void 0)}};$9.ID="editor.contrib.inPlaceReplaceController",$9.DECORATION=AL.register({description:"in-place-replace",className:"valueSetReplacement"}),$9=P9=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,vP)],$9),lu($9.ID,$9,4),cu(class extends su{constructor(){super({id:"editor.action.inPlaceReplace.up",label:ot(0,"Replace with Previous Value"),alias:"Replace with Previous Value",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:3159,weight:100}})}run(t,i){const e=$9.get(i);return e?e.run(this.id,!1):Promise.resolve(void 0)}}),cu(class extends su{constructor(){super({id:"editor.action.inPlaceReplace.down",label:ot(0,"Replace with Next Value"),alias:"Replace with Next Value",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:3161,weight:100}})}run(t,i){const e=$9.get(i);return e?e.run(this.id,!0):Promise.resolve(void 0)}}),cu(class extends su{constructor(){super({id:"expandLineSelection",label:ot(0,"Expand Line Selection"),alias:"Expand Line Selection",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:2090}})}run(t,i,e){if(e=e||{},!i.hasModel())return;const s=i._getViewModel();s.model.pushStackElement(),s.setCursorStates(e.source,3,OC.expandLineSelection(s,s.getCursorStates())),s.revealPrimaryCursor(e.source,!0)}});class W9{constructor(t,i){this._selection=t,this._cursors=i,this._selectionId=null}getEditOperations(t,i){const e=function(t,i){i.sort(((t,i)=>t.lineNumber===i.lineNumber?t.column-i.column:t.lineNumber-i.lineNumber));for(let t=i.length-2;t>=0;t--)i[t].lineNumber===i[t+1].lineNumber&&i.splice(t,1);const e=[];let s=0,n=0;const o=i.length;for(let r=1,h=t.getLineCount();r<=h;r++){const h=t.getLineContent(r),c=h.length+1;let a=0;if(nt.tokenization.getLineTokens(i),getLanguageId:()=>t.getLanguageId(),getLanguageIdAtPosition:(i,e)=>t.getLanguageIdAtPosition(i,e)},getLineContent:null};if(s.startLineNumber===s.endLineNumber&&1===t.getLineMaxColumn(s.startLineNumber)){const e=s.startLineNumber,n=this._isMovingDown?e+1:e-1;1===t.getLineMaxColumn(n)?i.addEditOperation(new Ms(1,1,1,1),null):(i.addEditOperation(new Ms(e,1,e,1),t.getLineContent(n)),i.addEditOperation(new Ms(n,1,n,t.getLineMaxColumn(n)),null)),s=new Ls(n,1,n,1)}else{let e,o;if(this._isMovingDown){e=s.endLineNumber+1,o=t.getLineContent(e),i.addEditOperation(new Ms(e-1,t.getLineMaxColumn(e-1),e,t.getLineMaxColumn(e)),null);let a=o;if(this.shouldAutoIndent(t,s)){const l=this.matchEnterRule(t,h,n,e,s.startLineNumber-1);if(null!==l){const i=c9(l+h9(io(t.getLineContent(e)),n),n,r);a=i+this.trimStart(o)}else{c.getLineContent=i=>t.getLineContent(i===s.startLineNumber?e:i);const i=HC(this._autoIndent,c,t.getLanguageIdAtPosition(e,1),s.startLineNumber,h,this._languageConfigurationService);if(null!==i){const s=io(t.getLineContent(e)),h=h9(i,n);if(h!==h9(s,n)){const t=c9(h,n,r);a=t+this.trimStart(o)}}}i.addEditOperation(new Ms(s.startLineNumber,1,s.startLineNumber,1),a+"\n");const u=this.matchEnterRuleMovingDown(t,h,n,s.startLineNumber,e,a);if(null!==u)0!==u&&this.getIndentEditsOfMovingBlock(t,i,s,n,r,u);else{c.getLineContent=i=>i===s.startLineNumber?a:t.getLineContent(i>=s.startLineNumber+1&&i<=s.endLineNumber+1?i-1:i);const o=HC(this._autoIndent,c,t.getLanguageIdAtPosition(e,1),s.startLineNumber+1,h,this._languageConfigurationService);if(null!==o){const e=io(t.getLineContent(s.startLineNumber)),h=h9(o,n),c=h9(e,n);h!==c&&this.getIndentEditsOfMovingBlock(t,i,s,n,r,h-c)}}}else i.addEditOperation(new Ms(s.startLineNumber,1,s.startLineNumber,1),a+"\n")}else if(e=s.startLineNumber-1,o=t.getLineContent(e),i.addEditOperation(new Ms(e,1,e+1,1),null),i.addEditOperation(new Ms(s.endLineNumber,t.getLineMaxColumn(s.endLineNumber),s.endLineNumber,t.getLineMaxColumn(s.endLineNumber)),"\n"+o),this.shouldAutoIndent(t,s)){c.getLineContent=i=>t.getLineContent(i===e?s.startLineNumber:i);const o=this.matchEnterRule(t,h,n,s.startLineNumber,s.startLineNumber-2);if(null!==o)0!==o&&this.getIndentEditsOfMovingBlock(t,i,s,n,r,o);else{const o=HC(this._autoIndent,c,t.getLanguageIdAtPosition(s.startLineNumber,1),e,h,this._languageConfigurationService);if(null!==o){const e=io(t.getLineContent(s.startLineNumber)),h=h9(o,n),c=h9(e,n);h!==c&&this.getIndentEditsOfMovingBlock(t,i,s,n,r,h-c)}}}}this._selectionId=i.trackSelection(s)}buildIndentConverter(t,i,e){return{shiftIndent:s=>$C.shiftIndent(s,s.length+1,t,i,e),unshiftIndent:s=>$C.unshiftIndent(s,s.length+1,t,i,e)}}parseEnterResult(t,i,e,s,n){if(n){let o=n.indentation;n.indentAction===Ru.None||n.indentAction===Ru.Indent?o=n.indentation+n.appendText:n.indentAction===Ru.IndentOutdent?o=n.indentation:n.indentAction===Ru.Outdent&&(o=i.unshiftIndent(n.indentation)+n.appendText);const r=t.getLineContent(s);if(this.trimStart(r).indexOf(this.trimStart(o))>=0){const n=io(t.getLineContent(s));let r=io(o);const h=VC(t,s,this._languageConfigurationService);return null!==h&&2&h&&(r=i.unshiftIndent(r)),h9(r,e)-h9(n,e)}}return null}matchEnterRuleMovingDown(t,i,e,s,n,o){if(eo(o)>=0){const o=t.getLineMaxColumn(n),r=_C(this._autoIndent,t,new Ms(n,o,n,o),this._languageConfigurationService);return this.parseEnterResult(t,i,e,s,r)}{let n=s-1;for(;n>=1&&!(eo(t.getLineContent(n))>=0);)n--;if(n<1||s>t.getLineCount())return null;const o=t.getLineMaxColumn(n),r=_C(this._autoIndent,t,new Ms(n,o,n,o),this._languageConfigurationService);return this.parseEnterResult(t,i,e,s,r)}}matchEnterRule(t,i,e,s,n,o){let r=n;for(;r>=1;){let i;if(i=r===n&&void 0!==o?o:t.getLineContent(r),eo(i)>=0)break;r--}if(r<1||s>t.getLineCount())return null;const h=t.getLineMaxColumn(r),c=_C(this._autoIndent,t,new Ms(r,h,r,h),this._languageConfigurationService);return this.parseEnterResult(t,i,e,s,c)}trimStart(t){return t.replace(/^\s+/,"")}shouldAutoIndent(t,i){if(this._autoIndent<4)return!1;if(!t.tokenization.isCheapToTokenize(i.startLineNumber))return!1;const e=t.getLanguageIdAtPosition(i.startLineNumber,1);return e===t.getLanguageIdAtPosition(i.endLineNumber,1)&&null!==this._languageConfigurationService.getLanguageConfiguration(e).indentRulesSupport}getIndentEditsOfMovingBlock(t,i,e,s,n,o){for(let r=e.startLineNumber;r<=e.endLineNumber;r++){const h=io(t.getLineContent(r)),c=c9(h9(h,s)+o,s,n);c!==h&&(i.addEditOperation(new Ms(r,1,r,h.length+1),c),r===e.endLineNumber&&e.endColumn<=h.length+1&&""===c&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(t,i){let e=i.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(e=e.setEndPosition(e.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&e.startLineNumber=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(3,Xd)],z9);class H9{static getCollator(){return H9._COLLATOR||(H9._COLLATOR=new Intl.Collator),H9._COLLATOR}constructor(t,i){this.selection=t,this.descending=i,this.selectionId=null}getEditOperations(t,i){const e=function(t,i,e){const s=V9(t,i,e);return s?pO.replace(new Ms(s.startLineNumber,1,s.endLineNumber,t.getLineMaxColumn(s.endLineNumber)),s.after.join("\n")):null}(t,this.selection,this.descending);e&&i.addEditOperation(e.range,e.text),this.selectionId=i.trackSelection(this.selection)}computeCursorState(t,i){return i.getTrackedSelection(this.selectionId)}static canRun(t,i,e){if(null===t)return!1;const s=V9(t,i,e);if(!s)return!1;for(let t=0,i=s.before.length;t=n)return null;const o=[];for(let i=s;i<=n;i++)o.push(t.getLineContent(i));let r=o.slice(0);return r.sort(H9.getCollator().compare),!0===e&&(r=r.reverse()),{startLineNumber:s,endLineNumber:n,before:o,after:r}}H9._COLLATOR=null;class U9 extends su{constructor(t,i){super(i),this.down=t}run(t,i){if(!i.hasModel())return;const e=i.getSelections().map(((t,i)=>({selection:t,index:i,ignore:!1})));e.sort(((t,i)=>Ms.compareRangesUsingStarts(t.selection,i.selection)));let s=e[0];for(let t=1;tnew As(t.positionLineNumber,t.positionColumn))));const n=i.getSelection();if(null===n)return;const o=new W9(n,s);i.pushUndoStop(),i.executeCommands(this.id,[o]),i.pushUndoStop()}}G9.ID="editor.action.trimTrailingWhitespace";class Z9 extends su{run(t,i){if(!i.hasModel())return;const e=i.getSelection(),s=this._getRangesToDelete(i),n=[];for(let t=0,i=s.length-1;tpO.replace(t,"")));i.pushUndoStop(),i.executeEdits(this.id,r,o),i.pushUndoStop()}}class Q9 extends su{run(t,i){const e=i.getSelections();if(null===e)return;const s=i.getModel();if(null===s)return;const n=i.getOption(129),o=[];for(const t of e)if(t.isEmpty()){const e=t.getStartPosition(),r=i.getConfiguredWordAtPosition(e);if(!r)continue;const h=new Ms(e.lineNumber,r.startColumn,e.lineNumber,r.endColumn),c=s.getValueInRange(h);o.push(pO.replace(h,this._modifyText(c,n)))}else{const i=s.getValueInRange(t);o.push(pO.replace(t,this._modifyText(i,n)))}i.pushUndoStop(),i.executeEdits(this.id,o),i.pushUndoStop()}}class J9{constructor(t,i){this._pattern=t,this._flags=i,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch(t){}}return this._actual}isSupported(){return null!==this.get()}}class Y9 extends Q9{constructor(){super({id:"editor.action.transformToTitlecase",label:ot(0,"Transform to Title Case"),alias:"Transform to Title Case",precondition:YC.writable})}_modifyText(t,i){const e=Y9.titleBoundary.get();return e?t.toLocaleLowerCase().replace(e,(t=>t.toLocaleUpperCase())):t}}Y9.titleBoundary=new J9("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu");class X9 extends Q9{constructor(){super({id:"editor.action.transformToSnakecase",label:ot(0,"Transform to Snake Case"),alias:"Transform to Snake Case",precondition:YC.writable})}_modifyText(t,i){const e=X9.caseBoundary.get(),s=X9.singleLetters.get();return e&&s?t.replace(e,"$1_$2").replace(s,"$1_$2$3").toLocaleLowerCase():t}}X9.caseBoundary=new J9("(\\p{Ll})(\\p{Lu})","gmu"),X9.singleLetters=new J9("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu");class t7 extends Q9{constructor(){super({id:"editor.action.transformToCamelcase",label:ot(0,"Transform to Camel Case"),alias:"Transform to Camel Case",precondition:YC.writable})}_modifyText(t,i){const e=t7.wordBoundary.get();if(!e)return t;const s=t.split(e);return s.shift()+s.map((t=>t.substring(0,1).toLocaleUpperCase()+t.substring(1))).join("")}}t7.wordBoundary=new J9("[_\\s-]","gm");class i7 extends Q9{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every((t=>t.isSupported()))}constructor(){super({id:"editor.action.transformToKebabcase",label:ot(0,"Transform to Kebab Case"),alias:"Transform to Kebab Case",precondition:YC.writable})}_modifyText(t,i){const e=i7.caseBoundary.get(),s=i7.singleLetters.get(),n=i7.underscoreBoundary.get();return e&&s&&n?t.replace(n,"$1-$3").replace(e,"$1-$2").replace(s,"$1-$2").toLocaleLowerCase():t}}i7.caseBoundary=new J9("(\\p{Ll})(\\p{Lu})","gmu"),i7.singleLetters=new J9("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu"),i7.underscoreBoundary=new J9("(\\S)(_)(\\S)","gm"),cu(class extends U9{constructor(){super(!1,{id:"editor.action.copyLinesUpAction",label:ot(0,"Copy Line Up"),alias:"Copy Line Up",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"2_line",title:ot(0,"&&Copy Line Up"),order:1}})}}),cu(class extends U9{constructor(){super(!0,{id:"editor.action.copyLinesDownAction",label:ot(0,"Copy Line Down"),alias:"Copy Line Down",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"2_line",title:ot(0,"Co&&py Line Down"),order:2}})}}),cu(class extends su{constructor(){super({id:"editor.action.duplicateSelection",label:ot(0,"Duplicate Selection"),alias:"Duplicate Selection",precondition:YC.writable,menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"2_line",title:ot(0,"&&Duplicate Selection"),order:5}})}run(t,i,e){if(!i.hasModel())return;const s=[],n=i.getSelections(),o=i.getModel();for(const t of n)if(t.isEmpty())s.push(new j9(t,!0));else{const i=new Ls(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn);s.push(new CC(i,o.getValueInRange(t)))}i.pushUndoStop(),i.executeCommands(this.id,s),i.pushUndoStop()}}),cu(class extends q9{constructor(){super(!1,{id:"editor.action.moveLinesUpAction",label:ot(0,"Move Line Up"),alias:"Move Line Up",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"2_line",title:ot(0,"Mo&&ve Line Up"),order:3}})}}),cu(class extends q9{constructor(){super(!0,{id:"editor.action.moveLinesDownAction",label:ot(0,"Move Line Down"),alias:"Move Line Down",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"2_line",title:ot(0,"Move &&Line Down"),order:4}})}}),cu(class extends K9{constructor(){super(!1,{id:"editor.action.sortLinesAscending",label:ot(0,"Sort Lines Ascending"),alias:"Sort Lines Ascending",precondition:YC.writable})}}),cu(class extends K9{constructor(){super(!0,{id:"editor.action.sortLinesDescending",label:ot(0,"Sort Lines Descending"),alias:"Sort Lines Descending",precondition:YC.writable})}}),cu(class extends su{constructor(){super({id:"editor.action.removeDuplicateLines",label:ot(0,"Delete Duplicate Lines"),alias:"Delete Duplicate Lines",precondition:YC.writable})}run(t,i){if(!i.hasModel())return;const e=i.getModel();if(1===e.getLineCount()&&1===e.getLineMaxColumn(1))return;const s=[],n=[];let o=0;for(const t of i.getSelections()){const i=new Set,r=[];for(let s=t.startLineNumber;s<=t.endLineNumber;s++){const t=e.getLineContent(s);i.has(t)||(r.push(t),i.add(t))}const h=new Ls(t.startLineNumber,1,t.endLineNumber,e.getLineMaxColumn(t.endLineNumber)),c=t.startLineNumber-o,a=new Ls(c,1,c+r.length-1,r[r.length-1].length);s.push(pO.replace(h,r.join("\n"))),n.push(a),o+=t.endLineNumber-t.startLineNumber+1-r.length}i.pushUndoStop(),i.executeEdits(this.id,s,n),i.pushUndoStop()}}),cu(G9),cu(class extends su{constructor(){super({id:"editor.action.deleteLines",label:ot(0,"Delete Line"),alias:"Delete Line",precondition:YC.writable,kbOpts:{kbExpr:YC.textInputFocus,primary:3113,weight:100}})}run(t,i){if(!i.hasModel())return;const e=this._getLinesToRemove(i),s=i.getModel();if(1===s.getLineCount()&&1===s.getLineMaxColumn(1))return;let n=0;const o=[],r=[];for(let t=0,i=e.length;t1&&(h-=1,a=s.getLineMaxColumn(h)),o.push(pO.replace(new Ls(h,a,c,l),"")),r.push(new Ls(h-n,i.positionColumn,h-n,i.positionColumn)),n+=i.endLineNumber-i.startLineNumber+1}i.pushUndoStop(),i.executeEdits(this.id,o,r),i.pushUndoStop()}_getLinesToRemove(t){const i=t.getSelections().map((t=>{let i=t.endLineNumber;return t.startLineNumbert.startLineNumber===i.startLineNumber?t.endLineNumber-i.endLineNumber:t.startLineNumber-i.startLineNumber));const e=[];let s=i[0];for(let t=1;t=i[t].startLineNumber?s.endLineNumber=i[t].endLineNumber:(e.push(s),s=i[t]);return e.push(s),e}}),cu(class extends su{constructor(){super({id:"editor.action.indentLines",label:ot(0,"Indent Line"),alias:"Indent Line",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:2142,weight:100}})}run(t,i){const e=i._getViewModel();e&&(i.pushUndoStop(),i.executeCommands(this.id,UC.indent(e.cursorConfig,i.getModel(),i.getSelections())),i.pushUndoStop())}}),cu(class extends su{constructor(){super({id:"editor.action.outdentLines",label:ot(0,"Outdent Line"),alias:"Outdent Line",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:2140,weight:100}})}run(t,i){hS.Outdent.runEditorCommand(t,i,null)}}),cu(class extends su{constructor(){super({id:"editor.action.insertLineBefore",label:ot(0,"Insert Line Above"),alias:"Insert Line Above",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:3075,weight:100}})}run(t,i){const e=i._getViewModel();e&&(i.pushUndoStop(),i.executeCommands(this.id,UC.lineInsertBefore(e.cursorConfig,i.getModel(),i.getSelections())))}}),cu(class extends su{constructor(){super({id:"editor.action.insertLineAfter",label:ot(0,"Insert Line Below"),alias:"Insert Line Below",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:2051,weight:100}})}run(t,i){const e=i._getViewModel();e&&(i.pushUndoStop(),i.executeCommands(this.id,UC.lineInsertAfter(e.cursorConfig,i.getModel(),i.getSelections())))}}),cu(class extends Z9{constructor(){super({id:"deleteAllLeft",label:ot(0,"Delete All Left"),alias:"Delete All Left",precondition:YC.writable,kbOpts:{kbExpr:YC.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}_getEndCursorState(t,i){let e=null;const s=[];let n=0;return i.forEach((i=>{let o;if(1===i.endColumn&&n>0){const t=i.startLineNumber-n;o=new Ls(t,i.startColumn,t,i.startColumn)}else o=new Ls(i.startLineNumber,i.startColumn,i.startLineNumber,i.startColumn);n+=i.endLineNumber-i.startLineNumber,i.intersectRanges(t)?e=o:s.push(o)})),e&&s.unshift(e),s}_getRangesToDelete(t){const i=t.getSelections();if(null===i)return[];let e=i;const s=t.getModel();return null===s?[]:(e.sort(Ms.compareRangesUsingStarts),e=e.map((t=>{if(t.isEmpty()){if(1===t.startColumn){const i=Math.max(1,t.startLineNumber-1),e=1===t.startLineNumber?1:s.getLineLength(i)+1;return new Ms(i,e,t.startLineNumber,1)}return new Ms(t.startLineNumber,1,t.startLineNumber,t.startColumn)}return new Ms(t.startLineNumber,1,t.endLineNumber,t.endColumn)})),e)}}),cu(class extends Z9{constructor(){super({id:"deleteAllRight",label:ot(0,"Delete All Right"),alias:"Delete All Right",precondition:YC.writable,kbOpts:{kbExpr:YC.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}_getEndCursorState(t,i){let e=null;const s=[];for(let n=0,o=i.length,r=0;n{if(t.isEmpty()){const e=i.getLineMaxColumn(t.startLineNumber);return t.startColumn===e?new Ms(t.startLineNumber,t.startColumn,t.startLineNumber+1,1):new Ms(t.startLineNumber,t.startColumn,t.startLineNumber,e)}return t}));return s.sort(Ms.compareRangesUsingStarts),s}}),cu(class extends su{constructor(){super({id:"editor.action.joinLines",label:ot(0,"Join Lines"),alias:"Join Lines",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}run(t,i){const e=i.getSelections();if(null===e)return;let s=i.getSelection();if(null===s)return;e.sort(Ms.compareRangesUsingStarts);const n=[],o=e.reduce(((t,i)=>t.isEmpty()?t.endLineNumber===i.startLineNumber?(s.equalsSelection(t)&&(s=i),i):i.startLineNumber>t.endLineNumber+1?(n.push(t),i):new Ls(t.startLineNumber,t.startColumn,i.endLineNumber,i.endColumn):i.startLineNumber>t.endLineNumber?(n.push(t),i):new Ls(t.startLineNumber,t.startColumn,i.endLineNumber,i.endColumn)));n.push(o);const r=i.getModel();if(null===r)return;const h=[],c=[];let a=s,l=0;for(let t=0,i=n.length;t=1){let t=!0;""===g&&(t=!1),!t||" "!==g.charAt(g.length-1)&&"\t"!==g.charAt(g.length-1)||(t=!1,g=g.replace(/[\s\uFEFF\xA0]+$/g," "));const s=i.substr(e-1);g+=(t?" ":"")+s,f=t?s.length+1:s.length}else f=0}const m=new Ms(e,o,u,d);if(!m.isEmpty()){let t;i.isEmpty()?(h.push(pO.replace(m,g)),t=new Ls(m.startLineNumber-l,g.length-f+1,e-l,g.length-f+1)):i.startLineNumber===i.endLineNumber?(h.push(pO.replace(m,g)),t=new Ls(i.startLineNumber-l,i.startColumn,i.endLineNumber-l,i.endColumn)):(h.push(pO.replace(m,g)),t=new Ls(i.startLineNumber-l,i.startColumn,i.startLineNumber-l,g.length-p)),null!==Ms.intersectRanges(m,s)?a=t:c.push(t)}l+=m.endLineNumber-m.startLineNumber}c.unshift(a),i.pushUndoStop(),i.executeEdits(this.id,h,c),i.pushUndoStop()}}),cu(class extends su{constructor(){super({id:"editor.action.transpose",label:ot(0,"Transpose Characters around the Cursor"),alias:"Transpose Characters around the Cursor",precondition:YC.writable})}run(t,i){const e=i.getSelections();if(null===e)return;const s=i.getModel();if(null===s)return;const n=[];for(let t=0,i=e.length;t=r){if(o.lineNumber===s.getLineCount())continue;const t=new Ms(o.lineNumber,Math.max(1,o.column-1),o.lineNumber+1,1),i=s.getValueInRange(t).split("").reverse().join("");n.push(new xC(new Ls(o.lineNumber,Math.max(1,o.column-1),o.lineNumber+1,1),i))}else{const t=new Ms(o.lineNumber,Math.max(1,o.column-1),o.lineNumber,o.column+1),i=s.getValueInRange(t).split("").reverse().join("");n.push(new EC(t,i,new Ls(o.lineNumber,o.column+1,o.lineNumber,o.column+1)))}}i.pushUndoStop(),i.executeCommands(this.id,n),i.pushUndoStop()}}),cu(class extends Q9{constructor(){super({id:"editor.action.transformToUppercase",label:ot(0,"Transform to Uppercase"),alias:"Transform to Uppercase",precondition:YC.writable})}_modifyText(t,i){return t.toLocaleUpperCase()}}),cu(class extends Q9{constructor(){super({id:"editor.action.transformToLowercase",label:ot(0,"Transform to Lowercase"),alias:"Transform to Lowercase",precondition:YC.writable})}_modifyText(t,i){return t.toLocaleLowerCase()}}),X9.caseBoundary.isSupported()&&X9.singleLetters.isSupported()&&cu(X9),t7.wordBoundary.isSupported()&&cu(t7),Y9.titleBoundary.isSupported()&&cu(Y9),i7.isSupported()&&cu(i7);var e7,s7=function(t,i){return function(e,s){i(e,s,t)}};const n7=new ch("LinkedEditingInputVisible",!1);let o7=e7=class extends te{static get(t){return t.getContribution(e7.ID)}constructor(t,i,e,s,n){super(),this.languageConfigurationService=s,this._syncRangesToken=0,this._localToDispose=this._register(new Xi),this._editor=t,this._providers=e.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=n7.bindTo(i),this._debounceInformation=n.for(this._providers,"Linked Editing",{max:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new Xi),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequest=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel((()=>this.reinitialize(!0)))),this._register(this._editor.onDidChangeConfiguration((t=>{(t.hasChanged(69)||t.hasChanged(92))&&this.reinitialize(!1)}))),this._register(this._providers.onDidChange((()=>this.reinitialize(!1)))),this._register(this._editor.onDidChangeModelLanguage((()=>this.reinitialize(!0)))),this.reinitialize(!0)}reinitialize(t){const i=this._editor.getModel(),e=null!==i&&(this._editor.getOption(69)||this._editor.getOption(92))&&this._providers.has(i);if(e===this._enabled&&!t)return;if(this._enabled=e,this.clearRanges(),this._localToDispose.clear(),!e||null===i)return;this._localToDispose.add(he.runAndSubscribe(i.onDidChangeLanguageConfiguration,(()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(i.getLanguageId()).getWordDefinition()})));const s=new hc(this._debounceInformation.get(i)),n=()=>{var t;this._rangeUpdateTriggerPromise=s.trigger((()=>this.updateRanges()),null!==(t=this._debounceDuration)&&void 0!==t?t:this._debounceInformation.get(i))},o=new hc(0),r=t=>{this._rangeSyncTriggerPromise=o.trigger((()=>this._syncRanges(t)))};this._localToDispose.add(this._editor.onDidChangeCursorPosition((()=>{n()}))),this._localToDispose.add(this._editor.onDidChangeModelContent((t=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const i=this._currentDecorations.getRange(0);if(i&&t.changes.every((t=>i.intersectRanges(t.range))))return void r(this._syncRangesToken)}n()}))),this._localToDispose.add({dispose:()=>{s.dispose(),o.dispose()}}),this.updateRanges()}_syncRanges(t){if(!this._editor.hasModel()||t!==this._syncRangesToken||0===this._currentDecorations.length)return;const i=this._editor.getModel(),e=this._currentDecorations.getRange(0);if(!e||e.startLineNumber!==e.endLineNumber)return this.clearRanges();const s=i.getValueInRange(e);if(this._currentWordPattern){const t=s.match(this._currentWordPattern);if((t?t[0].length:0)!==s.length)return this.clearRanges()}const n=[];for(let t=1,e=this._currentDecorations.length;t1)return void this.clearRanges();const e=this._editor.getModel(),s=e.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===s){if(i.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const t=this._currentDecorations.getRange(0);if(t&&t.containsPosition(i))return}}this.clearRanges(),this._currentRequestPosition=i,this._currentRequestModelVersion=s;const n=nc((async t=>{try{const o=new re(!1),r=await r7(this._providers,e,i,t);if(this._debounceInformation.update(e,o.elapsed()),n!==this._currentRequest)return;if(this._currentRequest=null,s!==e.getVersionId())return;let h=[];(null==r?void 0:r.ranges)&&(h=r.ranges),this._currentWordPattern=(null==r?void 0:r.wordPattern)||this._languageWordPattern;let c=!1;for(let t=0,e=h.length;t({range:t,options:e7.DECORATION})));this._visibleContextKey.set(!0),this._currentDecorations.set(a),this._syncRangesToken++}catch(t){ji(t)||Bi(t),this._currentRequest!==n&&this._currentRequest||this.clearRanges()}}));return this._currentRequest=n,n}};function r7(t,i,e,s){return uc(t.ordered(i).map((t=>async()=>{try{return await t.provideLinkedEditingRanges(i,e,s)}catch(t){return void Pi(t)}})),(t=>!!t&&b(null==t?void 0:t.ranges)))}o7.ID="editor.contrib.linkedEditing",o7.DECORATION=AL.register({description:"linked-editing",stickiness:0,className:"linked-editing-decoration"}),o7=e7=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([s7(1,ah),s7(2,xg),s7(3,Xd),s7(4,gR)],o7),hu(new(eu.bindToContribution(o7.get))({id:"cancelLinkedEditingInput",precondition:n7,handler:t=>t.clearRanges(),kbOpts:{kbExpr:YC.editorTextFocus,weight:199,primary:9,secondary:[1033]}})),dw("editor.linkedEditingBackground",{dark:lg.fromHex("#f00").transparent(.3),light:lg.fromHex("#f00").transparent(.3),hcDark:lg.fromHex("#f00").transparent(.3),hcLight:lg.white},ot(0,"Background color when the editor auto renames on type.")),ru("_executeLinkedEditingProvider",((t,i,e)=>{const{linkedEditingRangeProvider:s}=t.get(xg);return r7(s,i,e,ke.None)})),lu(o7.ID,o7,1),cu(class extends su{constructor(){super({id:"editor.action.linkedEditing",label:ot(0,"Start Linked Editing"),alias:"Start Linked Editing",precondition:zr.and(YC.writable,YC.hasRenameProvider),kbOpts:{kbExpr:YC.editorTextFocus,primary:3132,weight:100}})}runCommand(t,i){const e=t.get(fr),[s,n]=Array.isArray(i)&&i||[void 0,void 0];return ms.isUri(s)&&As.isIPosition(n)?e.openCodeEditor({resource:s},e.getActiveCodeEditor()).then((t=>{t&&(t.setPosition(n),t.invokeWithinContext((i=>(this.reportTelemetry(i,t),this.run(i,t)))))}),Bi):super.runCommand(t,i)}run(t,i){const e=o7.get(i);return e?Promise.resolve(e.updateRanges(!0)):Promise.resolve()}});class h7{constructor(t,i){this._link=t,this._provider=i}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}async resolve(t){return this._link.url?this._link.url:"function"==typeof this._provider.resolveLink?Promise.resolve(this._provider.resolveLink(this._link,t)).then((i=>(this._link=i||this._link,this._link.url?this.resolve(t):Promise.reject(new Error("missing"))))):Promise.reject(new Error("missing"))}}class c7{constructor(t){this._disposables=new Xi;let i=[];for(const[e,s]of t){const t=e.links.map((t=>new h7(t,s)));i=c7._union(i,t),Zi(e)&&this._disposables.add(e)}this.links=i}dispose(){this._disposables.dispose(),this.links.length=0}static _union(t,i){const e=[];let s,n,o,r;for(s=0,o=0,n=t.length,r=i.length;sPromise.resolve(t.provideLinks(i,e)).then((i=>{i&&(s[n]=[i,t])}),Pi)));return Promise.all(n).then((()=>{const t=new c7(m(s));return e.isCancellationRequested?(t.dispose(),new c7([])):t}))}Dr.registerCommand("_executeLinkProvider",(async(t,...i)=>{let[e,s]=i;q(e instanceof ms),"number"!=typeof s&&(s=0);const{linkProvider:n}=t.get(xg),o=t.get(pr).getModel(e);if(!o)return[];const r=await a7(n,o,ke.None);if(!r)return[];for(let t=0;tthis.computeLinksNow()),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const o=this._register(new HJ(t));this._register(o.onMouseMoveOrRelevantKeyDown((([t,i])=>{this._onEditorMouseMove(t,i)}))),this._register(o.onExecute((t=>{this.onEditorMouseUp(t)}))),this._register(o.onCancel((()=>{this.cleanUpActiveLinkDecoration()}))),this._register(t.onDidChangeConfiguration((t=>{t.hasChanged(70)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))}))),this._register(t.onDidChangeModelContent((()=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))}))),this._register(t.onDidChangeModel((()=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)}))),this._register(t.onDidChangeModelLanguage((()=>{this.stop(),this.computeLinks.schedule(0)}))),this._register(this.providers.onDidChange((()=>{this.stop(),this.computeLinks.schedule(0)}))),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(70))return;const t=this.editor.getModel();if(!t.isTooLargeForSyncing()&&this.providers.has(t)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=nc((i=>a7(this.providers,t,i)));try{const i=new re(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(t,i.elapsed()),t.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(t){Bi(t)}finally{this.computePromise=null}}}updateDecorations(t){const i="altKey"===this.editor.getOption(77),e=[],s=Object.keys(this.currentOccurrences);for(const t of s)e.push(this.currentOccurrences[t].decorationId);const n=[];if(t)for(const e of t)n.push(g7.decoration(e,i));this.editor.changeDecorations((i=>{const s=i.deltaDecorations(e,n);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let i=0,e=s.length;i{i.activate(t,e),this.activeLinkDecorationId=i.decorationId}))}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const t="altKey"===this.editor.getOption(77);if(this.activeLinkDecorationId){const i=this.currentOccurrences[this.activeLinkDecorationId];i&&this.editor.changeDecorations((e=>{i.deactivate(e,t)})),this.activeLinkDecorationId=null}}onEditorMouseUp(t){if(!this.isEnabled(t))return;const i=this.getLinkOccurrence(t.target.position);i&&this.openLinkOccurrence(i,t.hasSideBySideModifier,!0)}openLinkOccurrence(t,i,e=!1){if(!this.openerService)return;const{link:s}=t;s.resolve(ke.None).then((t=>{if("string"==typeof t&&this.editor.hasModel()){const i=this.editor.getModel().uri;if(i.scheme===ka.file&&t.startsWith(`${ka.file}:`)){const e=ms.parse(t);if(e.scheme===ka.file){const s=pA(e);let n=null;s.startsWith("/./")?n=`.${s.substr(1)}`:s.startsWith("//./")&&(n=`.${s.substr(2)}`),n&&(t=xA(i,n))}}}return this.openerService.open(t,{openToSide:i,fromUserGesture:e,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})}),(t=>{const i=t instanceof Error?t.message:t;"invalid"===i?this.notificationService.warn(ot(0,"Failed to open this link because it is not well-formed: {0}",s.url.toString())):"missing"===i?this.notificationService.warn(ot(0,"Failed to open this link because its target is missing.")):Bi(t)}))}getLinkOccurrence(t){if(!this.editor.hasModel()||!t)return null;const i=this.editor.getModel().getDecorationsInRange({startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:t.lineNumber,endColumn:t.column},0,!0);for(const t of i){const i=this.currentOccurrences[t.id];if(i)return i}return null}isEnabled(t,i){return Boolean(6===t.target.type&&(t.hasTriggerModifier||i&&i.keyCodeIsTriggerKey))}stop(){var t;this.computeLinks.cancel(),this.activeLinksList&&(null===(t=this.activeLinksList)||void 0===t||t.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}};d7.ID="editor.linkDetector",d7=l7=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([u7(1,dP),u7(2,oT),u7(3,xg),u7(4,gR)],d7);const f7=AL.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),p7=AL.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"});class g7{static decoration(t,i){return{range:t.range,options:g7._getOptions(t,i,!1)}}static _getOptions(t,i,e){const s={...e?p7:f7};return s.hoverMessage=function(t,i){const e=t.url&&/^command:/i.test(t.url.toString()),s=t.tooltip?t.tooltip:ot(0,e?"Execute command":"Follow link"),n=ot(0,i?Ct?"cmd + click":"ctrl + click":Ct?"option + click":"alt + click");if(t.url){let i="";if(/^command:/i.test(t.url.toString())){const e=t.url.toString().match(/^command:([^?#]+)/);e&&(i=ot(0,"Execute command {0}",e[1]))}return new N_("",!0).appendLink(t.url.toString(!0).replace(/ /g,"%20"),s,i).appendMarkdown(` (${n})`)}return(new N_).appendText(`${s} (${n})`)}(t,i),s}constructor(t,i){this.link=t,this.decorationId=i}activate(t,i){t.changeDecorationOptions(this.decorationId,g7._getOptions(this.link,i,!0))}deactivate(t,i){t.changeDecorationOptions(this.decorationId,g7._getOptions(this.link,i,!1))}}lu(d7.ID,d7,1),cu(class extends su{constructor(){super({id:"editor.action.openLink",label:ot(0,"Open Link"),alias:"Open Link",precondition:void 0})}run(t,i){const e=d7.get(i);if(!e)return;if(!i.hasModel())return;const s=i.getSelections();for(const t of s){const i=e.getLinkOccurrence(t.getEndPosition());i&&e.openLinkOccurrence(i,!1)}}});class m7 extends te{constructor(t){super(),this._editor=t,this._register(this._editor.onMouseDown((t=>{const i=this._editor.getOption(116);i>=0&&6===t.target.type&&t.target.position.column>=i&&this._editor.updateOptions({stopRenderingLineAfter:-1})})))}}m7.ID="editor.contrib.longLinesHelper",lu(m7.ID,m7,2);const w7=dw("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},ot(0,"Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0);dw("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},ot(0,"Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0),dw("editor.wordHighlightTextBackground",{light:w7,dark:w7,hcDark:w7,hcLight:w7},ot(0,"Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0);const v7=dw("editor.wordHighlightBorder",{light:null,dark:null,hcDark:vw,hcLight:vw},ot(0,"Border color of a symbol during read-access, like reading a variable."));dw("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:vw,hcLight:vw},ot(0,"Border color of a symbol during write-access, like writing to a variable.")),dw("editor.wordHighlightTextBorder",{light:v7,dark:v7,hcDark:v7,hcLight:v7},ot(0,"Border color of a textual occurrence for a symbol."));const b7=dw("editorOverviewRuler.wordHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},ot(0,"Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),y7=dw("editorOverviewRuler.wordHighlightStrongForeground",{dark:"#C0A0C0CC",light:"#C0A0C0CC",hcDark:"#C0A0C0CC",hcLight:"#C0A0C0CC"},ot(0,"Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),k7=dw("editorOverviewRuler.wordHighlightTextForeground",{dark:Qb,light:Qb,hcDark:Qb,hcLight:Qb},ot(0,"Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0),x7=AL.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:tx(y7),position:_f.Center},minimap:{color:tx(Yb),position:Bf.Inline}}),C7=AL.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:tx(k7),position:_f.Center},minimap:{color:tx(Yb),position:Bf.Inline}}),S7=AL.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:tx(Qb),position:_f.Center},minimap:{color:tx(Yb),position:Bf.Inline}}),D7=AL.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),E7=AL.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:tx(b7),position:_f.Center},minimap:{color:tx(Yb),position:Bf.Inline}});function A7(t){return t?D7:S7}nx(((t,i)=>{const e=t.getColor(Av);e&&i.addRule(`.monaco-editor .selectionHighlight { background-color: ${e.transparent(.5)}; }`)}));var M7;function L7(t,i){const e=i.filter((i=>!t.find((t=>t.equals(i)))));if(e.length>=1){const t=e.map((t=>`line ${t.viewState.position.lineNumber} column ${t.viewState.position.column}`)).join(", ");$m(ot(0,1===e.length?"Cursor added: {0}":"Cursors added: {0}",t))}}class F7{constructor(t,i,e){this.selections=t,this.revealRange=i,this.revealScrollType=e}}class T7{static create(t,i){if(!t.hasModel())return null;const e=i.getState();if(!t.hasTextFocus()&&e.isRevealed&&e.searchString.length>0)return new T7(t,i,!1,e.searchString,e.wholeWord,e.matchCase,null);let s,n,o=!1;const r=t.getSelections();1===r.length&&r[0].isEmpty()?(o=!0,s=!0,n=!0):(s=e.wholeWord,n=e.matchCase);const h=t.getSelection();let c,a=null;if(h.isEmpty()){const i=t.getConfiguredWordAtPosition(h.getStartPosition());if(!i)return null;c=i.word,a=new Ls(h.startLineNumber,i.startColumn,h.startLineNumber,i.endColumn)}else c=t.getModel().getValueInRange(h).replace(/\r\n/g,"\n");return new T7(t,i,o,c,s,n,a)}constructor(t,i,e,s,n,o,r){this._editor=t,this.findController=i,this.isDisconnectedFromFindController=e,this.searchText=s,this.wholeWord=n,this.matchCase=o,this.currentMatch=r}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const t=this._getNextMatch();if(!t)return null;const i=this._editor.getSelections();return new F7(i.concat(t),t,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const t=this._getNextMatch();if(!t)return null;const i=this._editor.getSelections();return new F7(i.slice(0,i.length-1).concat(t),t,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const t=this.currentMatch;return this.currentMatch=null,t}this.findController.highlightFindOptions();const t=this._editor.getSelections(),i=t[t.length-1],e=this._editor.getModel().findNextMatch(this.searchText,i.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(129):null,!1);return e?new Ls(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const t=this._getPreviousMatch();if(!t)return null;const i=this._editor.getSelections();return new F7(i.concat(t),t,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const t=this._getPreviousMatch();if(!t)return null;const i=this._editor.getSelections();return new F7(i.slice(0,i.length-1).concat(t),t,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const t=this.currentMatch;return this.currentMatch=null,t}this.findController.highlightFindOptions();const t=this._editor.getSelections(),i=t[t.length-1],e=this._editor.getModel().findPreviousMatch(this.searchText,i.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(129):null,!1);return e?new Ls(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn):null}selectAll(t){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();return this._editor.getModel().findMatches(this.searchText,t||!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(129):null,!1,1073741824)}}class R7 extends te{static get(t){return t.getContribution(R7.ID)}constructor(t){super(),this._sessionDispose=this._register(new Xi),this._editor=t,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(t){if(!this._session){const i=T7.create(this._editor,t);if(!i)return;this._session=i;const e={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(e.wholeWordOverride=1,e.matchCaseOverride=1,e.isRegexOverride=2),t.getState().change(e,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection((()=>{this._ignoreSelectionChange||this._endSession()}))),this._sessionDispose.add(this._editor.onDidBlurEditorText((()=>{this._endSession()}))),this._sessionDispose.add(t.getState().onFindReplaceStateChange((t=>{(t.matchCase||t.wholeWord)&&this._endSession()})))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){const t={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(t,!1)}this._session=null}_setSelections(t){this._ignoreSelectionChange=!0,this._editor.setSelections(t),this._ignoreSelectionChange=!1}_expandEmptyToWord(t,i){if(!i.isEmpty())return i;const e=this._editor.getConfiguredWordAtPosition(i.getStartPosition());return e?new Ls(i.startLineNumber,e.startColumn,i.startLineNumber,e.endColumn):i}_applySessionResult(t){t&&(this._setSelections(t.selections),t.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(t.revealRange,t.revealScrollType))}getSession(t){return this._session}addSelectionToNextFindMatch(t){if(this._editor.hasModel()){if(!this._session){const i=this._editor.getSelections();if(i.length>1){const e=t.getState().matchCase;if(!N7(this._editor.getModel(),i,e)){const t=this._editor.getModel(),e=[];for(let s=0,n=i.length;s0&&e.isRegex){i=this._editor.getModel().findMatches(e.searchString,!e.searchScope||e.searchScope,e.isRegex,e.matchCase,e.wholeWord?this._editor.getOption(129):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(t),!this._session)return;i=this._session.selectAll(e.searchScope)}if(i.length>0){const t=this._editor.getSelection();for(let e=0,s=i.length;enew Ls(t.range.startLineNumber,t.range.startColumn,t.range.endLineNumber,t.range.endColumn))))}}}R7.ID="editor.contrib.multiCursorController";class O7 extends su{run(t,i){const e=R7.get(i);if(!e)return;const s=i._getViewModel();if(s){const n=s.getCursorStates(),o=R4.get(i);if(o)this._run(e,o);else{const s=t.get(ur).createInstance(R4,i);this._run(e,s),s.dispose()}L7(n,s.getCursorStates())}}}class I7{constructor(t,i,e,s,n){this._model=t,this._searchText=i,this._matchCase=e,this._wordSeparators=s,this._modelVersionId=this._model.getVersionId(),this._cachedFindMatches=null,n&&this._model===n._model&&this._searchText===n._searchText&&this._matchCase===n._matchCase&&this._wordSeparators===n._wordSeparators&&this._modelVersionId===n._modelVersionId&&(this._cachedFindMatches=n._cachedFindMatches)}findMatches(){return null===this._cachedFindMatches&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map((t=>t.range)),this._cachedFindMatches.sort(Ms.compareRangesUsingStarts)),this._cachedFindMatches}}let _7=M7=class extends te{constructor(t,i){super(),this._languageFeaturesService=i,this.editor=t,this._isEnabled=t.getOption(107),this._decorations=t.createDecorationsCollection(),this.updateSoon=this._register(new pc((()=>this._update()),300)),this.state=null,this._register(t.onDidChangeConfiguration((()=>{this._isEnabled=t.getOption(107)}))),this._register(t.onDidChangeCursorSelection((t=>{this._isEnabled&&(t.selection.isEmpty()?3===t.reason?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())}))),this._register(t.onDidChangeModel((()=>{this._setState(null)}))),this._register(t.onDidChangeModelContent((()=>{this._isEnabled&&this.updateSoon.schedule()})));const e=R4.get(t);e&&this._register(e.getState().onFindReplaceStateChange((()=>{this._update()}))),this.updateSoon.schedule()}_update(){this._setState(M7._createState(this.state,this._isEnabled,this.editor))}static _createState(t,i,e){if(!i)return null;if(!e.hasModel())return null;const s=e.getSelection();if(s.startLineNumber!==s.endLineNumber)return null;const n=R7.get(e);if(!n)return null;const o=R4.get(e);if(!o)return null;let r=n.getSession(o);if(!r){const t=e.getSelections();if(t.length>1){const i=o.getState().matchCase;if(!N7(e.getModel(),t,i))return null}r=T7.create(e,o)}if(!r)return null;if(r.currentMatch)return null;if(/^[ \t]+$/.test(r.searchText))return null;if(r.searchText.length>200)return null;const h=o.getState(),c=h.matchCase;if(h.isRevealed){let t=h.searchString;c||(t=t.toLowerCase());let i=r.searchText;if(c||(i=i.toLowerCase()),t===i&&r.matchCase===h.matchCase&&r.wholeWord===h.wholeWord&&!h.isRegex)return null}return new I7(e.getModel(),r.searchText,r.matchCase,r.wholeWord?e.getOption(129):null,t)}_setState(t){if(this.state=t,!this.state)return void this._decorations.clear();if(!this.editor.hasModel())return;const i=this.editor.getModel();if(i.isTooLargeForTokenization())return;const e=this.state.findMatches(),s=this.editor.getSelections();s.sort(Ms.compareRangesUsingStarts);const n=[];for(let t=0,i=0,o=e.length,r=s.length;t=r)n.push(o),t++;else{const e=Ms.compareRangesUsingStarts(o,s[i]);e<0?(!s[i].isEmpty()&&Ms.areIntersecting(o,s[i])||n.push(o),t++):(e>0||t++,i++)}}const o="off"!==this.editor.getOption(80),r=this._languageFeaturesService.documentHighlightProvider.has(i)&&o,h=n.map((t=>({range:t,options:A7(r)})));this._decorations.set(h)}dispose(){this._setState(null),super.dispose()}};function N7(t,i,e){const s=B7(t,i[0],!e);for(let n=1,o=i.length;n=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,xg)],_7),lu(R7.ID,R7,4),lu(_7.ID,_7,1),cu(class extends su{constructor(){super({id:"editor.action.insertCursorAbove",label:ot(0,"Add Cursor Above"),alias:"Add Cursor Above",precondition:void 0,kbOpts:{kbExpr:YC.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"3_multi",title:ot(0,"&&Add Cursor Above"),order:2}})}run(t,i,e){if(!i.hasModel())return;let s=!0;e&&!1===e.logicalLine&&(s=!1);const n=i._getViewModel();if(n.cursorConfig.readOnly)return;n.model.pushStackElement();const o=n.getCursorStates();n.setCursorStates(e.source,3,OC.addCursorUp(n,o,s)),n.revealTopMostCursor(e.source),L7(o,n.getCursorStates())}}),cu(class extends su{constructor(){super({id:"editor.action.insertCursorBelow",label:ot(0,"Add Cursor Below"),alias:"Add Cursor Below",precondition:void 0,kbOpts:{kbExpr:YC.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"3_multi",title:ot(0,"A&&dd Cursor Below"),order:3}})}run(t,i,e){if(!i.hasModel())return;let s=!0;e&&!1===e.logicalLine&&(s=!1);const n=i._getViewModel();if(n.cursorConfig.readOnly)return;n.model.pushStackElement();const o=n.getCursorStates();n.setCursorStates(e.source,3,OC.addCursorDown(n,o,s)),n.revealBottomMostCursor(e.source),L7(o,n.getCursorStates())}}),cu(class extends su{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:ot(0,"Add Cursors to Line Ends"),alias:"Add Cursors to Line Ends",precondition:void 0,kbOpts:{kbExpr:YC.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"3_multi",title:ot(0,"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(t,i,e){if(!t.isEmpty()){for(let s=t.startLineNumber;s1&&e.push(new Ls(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn))}}run(t,i){if(!i.hasModel())return;const e=i.getModel(),s=i.getSelections(),n=i._getViewModel(),o=n.getCursorStates(),r=[];s.forEach((t=>this.getCursorsForSelection(t,e,r))),r.length>0&&i.setSelections(r),L7(o,n.getCursorStates())}}),cu(class extends O7{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:ot(0,"Add Selection To Next Find Match"),alias:"Add Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:2082,weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"3_multi",title:ot(0,"Add &&Next Occurrence"),order:5}})}_run(t,i){t.addSelectionToNextFindMatch(i)}}),cu(class extends O7{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:ot(0,"Add Selection To Previous Find Match"),alias:"Add Selection To Previous Find Match",precondition:void 0,menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"3_multi",title:ot(0,"Add P&&revious Occurrence"),order:6}})}_run(t,i){t.addSelectionToPreviousFindMatch(i)}}),cu(class extends O7{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:ot(0,"Move Last Selection To Next Find Match"),alias:"Move Last Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:Ne(2089,2082),weight:100}})}_run(t,i){t.moveSelectionToNextFindMatch(i)}}),cu(class extends O7{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:ot(0,"Move Last Selection To Previous Find Match"),alias:"Move Last Selection To Previous Find Match",precondition:void 0})}_run(t,i){t.moveSelectionToPreviousFindMatch(i)}}),cu(class extends O7{constructor(){super({id:"editor.action.selectHighlights",label:ot(0,"Select All Occurrences of Find Match"),alias:"Select All Occurrences of Find Match",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:3114,weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"3_multi",title:ot(0,"Select All &&Occurrences"),order:7}})}_run(t,i){t.selectAll(i)}}),cu(class extends O7{constructor(){super({id:"editor.action.changeAll",label:ot(0,"Change All Occurrences"),alias:"Change All Occurrences",precondition:zr.and(YC.writable,YC.editorTextFocus),kbOpts:{kbExpr:YC.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(t,i){t.selectAll(i)}}),cu(class extends su{constructor(){super({id:"editor.action.addCursorsToBottom",label:ot(0,"Add Cursors To Bottom"),alias:"Add Cursors To Bottom",precondition:void 0})}run(t,i){if(!i.hasModel())return;const e=i.getSelections(),s=i.getModel().getLineCount(),n=[];for(let t=e[0].startLineNumber;t<=s;t++)n.push(new Ls(t,e[0].startColumn,t,e[0].endColumn));const o=i._getViewModel(),r=o.getCursorStates();n.length>0&&i.setSelections(n),L7(r,o.getCursorStates())}}),cu(class extends su{constructor(){super({id:"editor.action.addCursorsToTop",label:ot(0,"Add Cursors To Top"),alias:"Add Cursors To Top",precondition:void 0})}run(t,i){if(!i.hasModel())return;const e=i.getSelections(),s=[];for(let t=e[0].startLineNumber;t>=1;t--)s.push(new Ls(t,e[0].startColumn,t,e[0].endColumn));const n=i._getViewModel(),o=n.getCursorStates();s.length>0&&i.setSelections(s),L7(o,n.getCursorStates())}}),cu(class extends su{constructor(){super({id:"editor.action.focusNextCursor",label:ot(0,"Focus Next Cursor"),metadata:{description:ot(0,"Focuses the next cursor"),args:[]},alias:"Focus Next Cursor",precondition:void 0})}run(t,i,e){if(!i.hasModel())return;const s=i._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const n=Array.from(s.getCursorStates()),o=n.shift();o&&(n.push(o),s.setCursorStates(e.source,3,n),s.revealPrimaryCursor(e.source,!0),L7(n,s.getCursorStates()))}}),cu(class extends su{constructor(){super({id:"editor.action.focusPreviousCursor",label:ot(0,"Focus Previous Cursor"),metadata:{description:ot(0,"Focuses the previous cursor"),args:[]},alias:"Focus Previous Cursor",precondition:void 0})}run(t,i,e){if(!i.hasModel())return;const s=i._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const n=Array.from(s.getCursorStates()),o=n.pop();o&&(n.unshift(o),s.setCursorStates(e.source,3,n),s.revealPrimaryCursor(e.source,!0),L7(n,s.getCursorStates()))}});const P7={Visible:new ch("parameterHintsVisible",!1),MultipleSignatures:new ch("parameterHintsMultipleSignatures",!1)};async function $7(t,i,e,s,n){const o=t.ordered(i);for(const t of o)try{const o=await t.provideSignatureHelp(i,e,n,s);if(o)return o}catch(t){Pi(t)}}var W7;Dr.registerCommand("_executeSignatureHelpProvider",(async(t,...i)=>{const[e,s,n]=i;q(ms.isUri(e)),q(As.isIPosition(s)),q("string"==typeof n||!n);const o=t.get(xg),r=await t.get(gr).createModelReference(e);try{const t=await $7(o.signatureHelpProvider,r.object.textEditorModel,As.lift(s),{triggerKind:Ws.Invoke,isRetrigger:!1,triggerCharacter:n},ke.None);if(!t)return;return setTimeout((()=>t.dispose()),0),t.value}finally{r.dispose()}})),function(t){t.Default={type:0},t.Pending=class{constructor(t,i){this.request=t,this.previouslyActiveHints=i,this.type=2}},t.Active=class{constructor(t){this.hints=t,this.type=1}}}(W7||(W7={}));class j7 extends te{constructor(t,i,e=j7.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new de),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=W7.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new ie),this.triggerChars=new Ef,this.retriggerChars=new Ef,this.triggerId=0,this.editor=t,this.providers=i,this.throttledDelayer=new hc(e),this._register(this.editor.onDidBlurEditorWidget((()=>this.cancel()))),this._register(this.editor.onDidChangeConfiguration((()=>this.onEditorConfigurationChange()))),this._register(this.editor.onDidChangeModel((()=>this.onModelChanged()))),this._register(this.editor.onDidChangeModelLanguage((()=>this.onModelChanged()))),this._register(this.editor.onDidChangeCursorSelection((t=>this.onCursorChange(t)))),this._register(this.editor.onDidChangeModelContent((()=>this.onModelContentChange()))),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType((t=>this.onDidType(t)))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(t){2===this._state.type&&this._state.request.cancel(),this._state=t}cancel(t=!1){this.state=W7.Default,this.throttledDelayer.cancel(),t||this._onChangedHints.fire(void 0)}trigger(t,i){const e=this.editor.getModel();if(!e||!this.providers.has(e))return;const s=++this.triggerId;this._pendingTriggers.push(t),this.throttledDelayer.trigger((()=>this.doTrigger(s)),i).catch(Bi)}next(){if(1!==this.state.type)return;const t=this.state.hints.signatures.length,i=this.state.hints.activeSignature,e=i%t==t-1,s=this.editor.getOption(85).cycle;!(t<2||e)||s?this.updateActiveSignature(e&&s?0:i+1):this.cancel()}previous(){if(1!==this.state.type)return;const t=this.state.hints.signatures.length,i=this.state.hints.activeSignature,e=0===i,s=this.editor.getOption(85).cycle;!(t<2||e)||s?this.updateActiveSignature(e&&s?t-1:i-1):this.cancel()}updateActiveSignature(t){1===this.state.type&&(this.state=new W7.Active({...this.state.hints,activeSignature:t}),this._onChangedHints.fire(this.state.hints))}async doTrigger(t){const i=1===this.state.type||2===this.state.type,e=this.getLastActiveHints();if(this.cancel(!0),0===this._pendingTriggers.length)return!1;const s=this._pendingTriggers.reduce(z7);this._pendingTriggers=[];const n={triggerKind:s.triggerKind,triggerCharacter:s.triggerCharacter,isRetrigger:i,activeSignatureHelp:e};if(!this.editor.hasModel())return!1;const o=this.editor.getModel(),r=this.editor.getPosition();this.state=new W7.Pending(nc((t=>$7(this.providers,o,r,n,t))),e);try{const i=await this.state.request;return t!==this.triggerId?(null==i||i.dispose(),!1):i&&i.value.signatures&&0!==i.value.signatures.length?(this.state=new W7.Active(i.value),this._lastSignatureHelpResult.value=i,this._onChangedHints.fire(this.state.hints),!0):(null==i||i.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1)}catch(i){return t===this.triggerId&&(this.state=W7.Default),Bi(i),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return 1===this.state.type||2===this.state.type||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();const t=this.editor.getModel();if(t)for(const i of this.providers.ordered(t)){for(const t of i.signatureHelpTriggerCharacters||[])if(t.length){const i=t.charCodeAt(0);this.triggerChars.add(i),this.retriggerChars.add(i)}for(const t of i.signatureHelpRetriggerCharacters||[])t.length&&this.retriggerChars.add(t.charCodeAt(0))}}onDidType(t){if(!this.triggerOnType)return;const i=t.length-1,e=t.charCodeAt(i);(this.triggerChars.has(e)||this.isTriggered&&this.retriggerChars.has(e))&&this.trigger({triggerKind:Ws.TriggerCharacter,triggerCharacter:t.charAt(i)})}onCursorChange(t){"mouse"===t.source?this.cancel():this.isTriggered&&this.trigger({triggerKind:Ws.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:Ws.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(85).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}}function z7(t,i){switch(i.triggerKind){case Ws.Invoke:return i;case Ws.ContentChange:return t;default:return i}}j7.DEFAULT_DELAY=120;var H7,V7=function(t,i){return function(e,s){i(e,s,t)}};const U7=$l,q7=Hz("parameter-hints-next",Os.chevronDown,ot(0,"Icon for show next parameter hint.")),K7=Hz("parameter-hints-previous",Os.chevronUp,ot(0,"Icon for show previous parameter hint."));let G7=H7=class extends te{constructor(t,i,e,s,n){super(),this.editor=t,this.model=i,this.renderDisposeables=this._register(new Xi),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.markdownRenderer=this._register(new lQ({editor:t},n,s)),this.keyVisible=P7.Visible.bindTo(e),this.keyMultipleSignatures=P7.MultipleSignatures.bindTo(e)}createParameterHintDOMNodes(){const t=U7(".editor-widget.parameter-hints-widget"),i=Ol(t,U7(".phwrapper"));i.tabIndex=-1;const e=Ol(i,U7(".controls")),s=Ol(e,U7(".button"+Cr.asCSSSelector(K7))),n=Ol(e,U7(".overloads")),o=Ol(e,U7(".button"+Cr.asCSSSelector(q7)));this._register(Va(s,"click",(t=>{Fl(t),this.previous()}))),this._register(Va(o,"click",(t=>{Fl(t),this.next()})));const r=U7(".body"),h=new Tk(r,{alwaysConsumeMouseWheel:!0});this._register(h),i.appendChild(h.getDomNode());const c=Ol(r,U7(".signature")),a=Ol(r,U7(".docs"));t.style.userSelect="text",this.domNodes={element:t,signature:c,overloads:n,docs:a,scrollbar:h},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection((()=>{this.visible&&this.editor.layoutContentWidget(this)})));const l=()=>{if(!this.domNodes)return;const t=this.editor.getOption(50);this.domNodes.element.style.fontSize=`${t.fontSize}px`,this.domNodes.element.style.lineHeight=""+t.lineHeight/t.fontSize};l(),this._register(he.chain(this.editor.onDidChangeConfiguration.bind(this.editor),(t=>t.filter((t=>t.hasChanged(50)))))(l)),this._register(this.editor.onDidLayoutChange((()=>this.updateMaxHeight()))),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout((()=>{var t;null===(t=this.domNodes)||void 0===t||t.element.classList.add("visible")}),100),this.editor.layoutContentWidget(this))}hide(){var t;this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,null===(t=this.domNodes)||void 0===t||t.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(t){var i;if(this.renderDisposeables.clear(),!this.domNodes)return;const e=t.signatures.length>1;this.domNodes.element.classList.toggle("multiple",e),this.keyMultipleSignatures.set(e),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const s=t.signatures[t.activeSignature];if(!s)return;const n=Ol(this.domNodes.signature,U7(".code")),o=this.editor.getOption(50);n.style.fontSize=`${o.fontSize}px`,n.style.fontFamily=o.fontFamily;const r=null!==(i=s.activeParameter)&&void 0!==i?i:t.activeParameter;s.parameters.length>0?this.renderParameters(n,s,r):Ol(n,U7("span")).textContent=s.label;const h=s.parameters[r];if(null==h?void 0:h.documentation){const t=U7("span.documentation");if("string"==typeof h.documentation)t.textContent=h.documentation;else{const i=this.renderMarkdownDocs(h.documentation);t.appendChild(i.element)}Ol(this.domNodes.docs,U7("p",{},t))}if(void 0===s.documentation);else if("string"==typeof s.documentation)Ol(this.domNodes.docs,U7("p",{},s.documentation));else{const t=this.renderMarkdownDocs(s.documentation);Ol(this.domNodes.docs,t.element)}const c=this.hasDocs(s,h);if(this.domNodes.signature.classList.toggle("has-docs",c),this.domNodes.docs.classList.toggle("empty",!c),this.domNodes.overloads.textContent=String(t.activeSignature+1).padStart(t.signatures.length.toString().length,"0")+"/"+t.signatures.length,h){let t="";const i=s.parameters[r];t=Array.isArray(i.label)?s.label.substring(i.label[0],i.label[1]):i.label,i.documentation&&(t+="string"==typeof i.documentation?`, ${i.documentation}`:`, ${i.documentation.value}`),s.documentation&&(t+="string"==typeof s.documentation?`, ${s.documentation}`:`, ${s.documentation.value}`),this.announcedLabel!==t&&(Pm(ot(0,"{0}, hint",t)),this.announcedLabel=t)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(t){const i=this.renderDisposeables.add(this.markdownRenderer.render(t,{asyncRenderCallback:()=>{var t;null===(t=this.domNodes)||void 0===t||t.scrollbar.scanDomNode()}}));return i.element.classList.add("markdown-docs"),i}hasDocs(t,i){return!!(i&&"string"==typeof i.documentation&&K(i.documentation).length>0||i&&"object"==typeof i.documentation&&K(i.documentation).value.length>0||t.documentation&&"string"==typeof t.documentation&&K(t.documentation).length>0||t.documentation&&"object"==typeof t.documentation&&K(t.documentation.value).length>0)}renderParameters(t,i,e){const[s,n]=this.getParameterLabelOffsets(i,e),o=document.createElement("span");o.textContent=i.label.substring(0,s);const r=document.createElement("span");r.textContent=i.label.substring(s,n),r.className="parameter active";const h=document.createElement("span");h.textContent=i.label.substring(n),Ol(t,o,r,h)}getParameterLabelOffsets(t,i){const e=t.parameters[i];if(e){if(Array.isArray(e.label))return e.label;if(e.label.length){const i=new RegExp(`(\\W|^)${Gn(e.label)}(?=\\W|$)`,"g");i.test(t.label);const s=i.lastIndex-e.label.length;return s>=0?[s,i.lastIndex]:[0,0]}return[0,0]}return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return H7.ID}updateMaxHeight(){if(!this.domNodes)return;const t=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=t;const i=this.domNodes.element.getElementsByClassName("phwrapper");i.length&&(i[0].style.maxHeight=t)}};G7.ID="editor.widget.parameterHintsWidget",G7=H7=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([V7(2,ah),V7(3,dP),V7(4,yd)],G7),dw("editorHoverWidget.highlightForeground",{dark:lb,light:lb,hcDark:lb,hcLight:lb},ot(0,"Foreground color of the active item in the parameter hint."));var Z7,Q7=function(t,i){return function(e,s){i(e,s,t)}};let J7=Z7=class extends te{static get(t){return t.getContribution(Z7.ID)}constructor(t,i,e){super(),this.editor=t,this.model=this._register(new j7(t,e.signatureHelpProvider)),this._register(this.model.onChangedHints((t=>{var i;t?(this.widget.value.show(),this.widget.value.render(t)):null===(i=this.widget.rawValue)||void 0===i||i.hide()}))),this.widget=new zn((()=>this._register(i.createInstance(G7,this.editor,this.model))))}cancel(){this.model.cancel()}previous(){var t;null===(t=this.widget.rawValue)||void 0===t||t.previous()}next(){var t;null===(t=this.widget.rawValue)||void 0===t||t.next()}trigger(t){this.model.trigger(t,0)}};J7.ID="editor.controller.parameterHints",J7=Z7=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Q7(1,ur),Q7(2,xg)],J7),lu(J7.ID,J7,2),cu(class extends su{constructor(){super({id:"editor.action.triggerParameterHints",label:ot(0,"Trigger Parameter Hints"),alias:"Trigger Parameter Hints",precondition:YC.hasSignatureHelpProvider,kbOpts:{kbExpr:YC.editorTextFocus,primary:3082,weight:100}})}run(t,i){const e=J7.get(i);null==e||e.trigger({triggerKind:Ws.Invoke})}});const Y7=eu.bindToContribution(J7.get);hu(new Y7({id:"closeParameterHints",precondition:P7.Visible,handler:t=>t.cancel(),kbOpts:{weight:175,kbExpr:YC.focus,primary:9,secondary:[1033]}})),hu(new Y7({id:"showPrevParameterHint",precondition:zr.and(P7.Visible,P7.MultipleSignatures),handler:t=>t.previous(),kbOpts:{weight:175,kbExpr:YC.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),hu(new Y7({id:"showNextParameterHint",precondition:zr.and(P7.Visible,P7.MultipleSignatures),handler:t=>t.next(),kbOpts:{weight:175,kbExpr:YC.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var X7=function(t,i){return function(e,s){i(e,s,t)}};const t8=new ch("renameInputVisible",!1,ot(0,"Whether the rename input widget is visible"));let i8=class{constructor(t,i,e,s,n){this._editor=t,this._acceptKeybindings=i,this._themeService=e,this._keybindingService=s,this._disposables=new Xi,this.allowEditorOverflow=!0,this._visibleContextKey=t8.bindTo(n),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(50)&&this._updateFont()}))),this._disposables.add(e.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._input=document.createElement("input"),this._input.className="rename-input",this._input.type="text",this._input.setAttribute("aria-label",ot(0,"Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._input),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())),this._domNode}_updateStyles(t){var i,e,s,n;if(!this._input||!this._domNode)return;const o=t.getColor(yw),r=t.getColor(kw);this._domNode.style.backgroundColor=String(null!==(i=t.getColor(uv))&&void 0!==i?i:""),this._domNode.style.boxShadow=o?` 0 0 8px 2px ${o}`:"",this._domNode.style.border=r?`1px solid ${r}`:"",this._domNode.style.color=String(null!==(e=t.getColor(Cw))&&void 0!==e?e:""),this._input.style.backgroundColor=String(null!==(s=t.getColor(xw))&&void 0!==s?s:"");const h=t.getColor(Sw);this._input.style.borderWidth=h?"1px":"0px",this._input.style.borderStyle=h?"solid":"none",this._input.style.borderColor=null!==(n=null==h?void 0:h.toString())&&void 0!==n?n:"none"}_updateFont(){if(!this._input||!this._label)return;const t=this._editor.getOption(50);this._input.style.fontFamily=t.fontFamily,this._input.style.fontWeight=t.fontWeight,this._input.style.fontSize=`${t.fontSize}px`,this._label.style.fontSize=.8*t.fontSize+"px"}getPosition(){return this._visible?{position:this._position,preference:[2,1]}:null}beforeRender(){var t,i;const[e,s]=this._acceptKeybindings;return this._label.innerText=ot(0,"{0} to Rename, {1} to Preview",null===(t=this._keybindingService.lookupKeybinding(e))||void 0===t?void 0:t.getLabel(),null===(i=this._keybindingService.lookupKeybinding(s))||void 0===i?void 0:i.getLabel()),null}afterRender(t){t||this.cancelInput(!0)}acceptInput(t){var i;null===(i=this._currentAcceptInput)||void 0===i||i.call(this,t)}cancelInput(t){var i;null===(i=this._currentCancelInput)||void 0===i||i.call(this,t)}getInput(t,i,e,s,n,o){this._domNode.classList.toggle("preview",n),this._position=new As(t.startLineNumber,t.startColumn),this._input.value=i,this._input.setAttribute("selectionStart",e.toString()),this._input.setAttribute("selectionEnd",s.toString()),this._input.size=Math.max(1.1*(t.endColumn-t.startColumn),20);const r=new Xi;return new Promise((t=>{this._currentCancelInput=i=>(this._currentAcceptInput=void 0,this._currentCancelInput=void 0,t(i),!0),this._currentAcceptInput=e=>{0!==this._input.value.trim().length&&this._input.value!==i?(this._currentAcceptInput=void 0,this._currentCancelInput=void 0,t({newName:this._input.value,wantsPreview:n&&e})):this.cancelInput(!0)},r.add(o.onCancellationRequested((()=>this.cancelInput(!0)))),r.add(this._editor.onDidBlurEditorWidget((()=>{var t;return this.cancelInput(!(null===(t=this._domNode)||void 0===t?void 0:t.ownerDocument.hasFocus()))}))),this._show()})).finally((()=>{r.dispose(),this._hide()}))}_show(){this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout((()=>{this._input.focus(),this._input.setSelectionRange(parseInt(this._input.getAttribute("selectionStart")),parseInt(this._input.getAttribute("selectionEnd")))}),100)}_hide(){this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}};i8=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([X7(2,Xk),X7(3,oC),X7(4,ah)],i8);var e8,s8=function(t,i){return function(e,s){i(e,s,t)}};class n8{constructor(t,i,e){this.model=t,this.position=i,this._providerRenameIdx=0,this._providers=e.ordered(t)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(t){const i=[];for(this._providerRenameIdx=0;this._providerRenameIdx0?i.join("\n"):void 0}:{range:Ms.fromPositions(this.position),text:"",rejectReason:i.length>0?i.join("\n"):void 0}}async provideRenameEdits(t,i){return this._provideRenameEdits(t,this._providerRenameIdx,[],i)}async _provideRenameEdits(t,i,e,s){const n=this._providers[i];if(!n)return{edits:[],rejectReason:e.join("\n")};const o=await n.provideRenameEdits(this.model,this.position,t,s);return o?o.rejectReason?this._provideRenameEdits(t,i+1,e.concat(o.rejectReason),s):o:this._provideRenameEdits(t,i+1,e.concat(ot(0,"No result.")),s)}}let o8=e8=class{static get(t){return t.getContribution(e8.ID)}constructor(t,i,e,s,n,o,r,h){this.editor=t,this._instaService=i,this._notificationService=e,this._bulkEditService=s,this._progressService=n,this._logService=o,this._configService=r,this._languageFeaturesService=h,this._disposableStore=new Xi,this._cts=new Ce,this._renameInputField=this._disposableStore.add(this._instaService.createInstance(i8,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){var t,i;if(this._cts.dispose(!0),this._cts=new Ce,!this.editor.hasModel())return;const e=this.editor.getPosition(),s=new n8(this.editor.getModel(),e,this._languageFeaturesService.renameProvider);if(!s.hasProvider())return;const n=new CK(this.editor,5,void 0,this._cts.token);let o;try{const t=s.resolveRenameLocation(n.token);this._progressService.showWhile(t,250),o=await t}catch(i){return void(null===(t=gQ.get(this.editor))||void 0===t||t.showMessage(i||ot(0,"An unknown error occurred while resolving rename location"),e))}finally{n.dispose()}if(!o)return;if(o.rejectReason)return void(null===(i=gQ.get(this.editor))||void 0===i||i.showMessage(o.rejectReason,e));if(n.token.isCancellationRequested)return;const r=new CK(this.editor,5,o.range,this._cts.token),h=this.editor.getSelection();let c=0,a=o.text.length;Ms.isEmpty(h)||Ms.spansMultipleLines(h)||!Ms.containsRange(o.range,h)||(c=Math.max(0,h.startColumn-o.range.startColumn),a=Math.min(o.range.endColumn,h.endColumn)-o.range.startColumn);const l=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),u=await this._renameInputField.getInput(o.range,o.text,c,a,l,r.token);if("boolean"==typeof u)return u&&this.editor.focus(),void r.dispose();this.editor.focus();const d=oc(s.provideRenameEdits(u.newName,r.token),r.token).then((async t=>{t&&this.editor.hasModel()&&(t.rejectReason?this._notificationService.info(t.rejectReason):(this.editor.setSelection(Ms.fromPositions(this.editor.getSelection().getPosition())),this._bulkEditService.apply(t,{editor:this.editor,showPreview:u.wantsPreview,label:ot(0,"Renaming '{0}' to '{1}'",null==o?void 0:o.text,u.newName),code:"undoredo.rename",quotableLabel:ot(0,"Renaming {0} to {1}",null==o?void 0:o.text,u.newName),respectAutoSaveConfig:!0}).then((t=>{t.ariaSummary&&Pm(ot(0,"Successfully renamed '{0}' to '{1}'. Summary: {2}",o.text,u.newName,t.ariaSummary))})).catch((t=>{this._notificationService.error(ot(0,"Rename failed to apply edits")),this._logService.error(t)}))))}),(t=>{this._notificationService.error(ot(0,"Rename failed to compute edits")),this._logService.error(t)})).finally((()=>{r.dispose()}));return this._progressService.showWhile(d,250),d}acceptRenameInput(t){this._renameInputField.acceptInput(t)}cancelRenameInput(){this._renameInputField.cancelInput(!0)}};o8.ID="editor.contrib.renameController",o8=e8=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([s8(1,ur),s8(2,oT),s8(3,nO),s8(4,zO),s8(5,jh),s8(6,yg),s8(7,xg)],o8),lu(o8.ID,o8,4),cu(class extends su{constructor(){super({id:"editor.action.rename",label:ot(0,"Rename Symbol"),alias:"Rename Symbol",precondition:zr.and(YC.writable,YC.hasRenameProvider),kbOpts:{kbExpr:YC.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}runCommand(t,i){const e=t.get(fr),[s,n]=Array.isArray(i)&&i||[void 0,void 0];return ms.isUri(s)&&As.isIPosition(n)?e.openCodeEditor({resource:s},e.getActiveCodeEditor()).then((t=>{t&&(t.setPosition(n),t.invokeWithinContext((i=>(this.reportTelemetry(i,t),this.run(i,t)))))}),Bi):super.runCommand(t,i)}run(t,i){const e=o8.get(i);return e?e.run():Promise.resolve()}});const r8=eu.bindToContribution(o8.get);function h8(t){const i=new Uint32Array(function(t){let i=0;if(i+=2,"full"===t.type)i+=1+t.data.length;else{i+=1,i+=3*t.deltas.length;for(const e of t.deltas)e.data&&(i+=e.data.length)}return i}(t));let e=0;if(i[e++]=t.id,"full"===t.type)i[e++]=1,i[e++]=t.data.length,i.set(t.data,e),e+=t.data.length;else{i[e++]=2,i[e++]=t.deltas.length;for(const s of t.deltas)i[e++]=s.start,i[e++]=s.deleteCount,s.data?(i[e++]=s.data.length,i.set(s.data,e),e+=s.data.length):i[e++]=0}return function(t){const i=new Uint8Array(t.buffer,t.byteOffset,4*t.length);return Bt()||function(t){for(let i=0,e=t.length;it.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:zr.and(YC.focus,zr.not("isComposing")),primary:3}})),hu(new r8({id:"acceptRenameInputWithPreview",precondition:zr.and(t8,zr.has("config.editor.rename.enablePreview")),handler:t=>t.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:zr.and(YC.focus,zr.not("isComposing")),primary:1027}})),hu(new r8({id:"cancelRenameInput",precondition:t8,handler:t=>t.cancelRenameInput(),kbOpts:{weight:199,kbExpr:YC.focus,primary:9,secondary:[1033]}})),ru("_executeDocumentRenameProvider",(function(t,i,e,...s){const[n]=s;q("string"==typeof n);const{renameProvider:o}=t.get(xg);return async function(t,i,e,s){const n=new n8(i,e,t),o=await n.resolveRenameLocation(ke.None);return(null==o?void 0:o.rejectReason)?{edits:[],rejectReason:o.rejectReason}:n.provideRenameEdits(s,ke.None)}(o,i,e,n)})),ru("_executePrepareRename",(async function(t,i,e){const{renameProvider:s}=t.get(xg),n=new n8(i,e,s),o=await n.resolveRenameLocation(ke.None);if(null==o?void 0:o.rejectReason)throw new Error(o.rejectReason);return o})),Dh.as(Md).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:ot(0,"Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});class l8{constructor(t,i,e){this.provider=t,this.tokens=i,this.error=e}}function u8(t,i){return t.has(i)}async function d8(t,i,e,s,n){const o=function(t,i){const e=t.orderedGroups(i);return e.length>0?e[0]:[]}(t,i),r=await Promise.all(o.map((async t=>{let o,r=null;try{o=await t.provideDocumentSemanticTokens(i,t===e?s:null,n)}catch(t){r=t,o=null}return o&&(c8(o)||a8(o))||(o=null),new l8(t,o,r)})));for(const t of r){if(t.error)throw t.error;if(t.tokens)return t}return r.length>0?r[0]:null}class f8{constructor(t,i){this.provider=t,this.tokens=i}}function p8(t,i){const e=t.orderedGroups(i);return e.length>0?e[0]:[]}async function g8(t,i,e,s){const n=p8(t,i),o=await Promise.all(n.map((async t=>{let n;try{n=await t.provideDocumentRangeSemanticTokens(i,e,s)}catch(t){Pi(t),n=null}return n&&c8(n)||(n=null),new f8(t,n)})));for(const t of o)if(t.tokens)return t;return o.length>0?o[0]:null}Dr.registerCommand("_provideDocumentSemanticTokensLegend",(async(t,...i)=>{const[e]=i;q(e instanceof ms);const s=t.get(pr).getModel(e);if(!s)return;const{documentSemanticTokensProvider:n}=t.get(xg),o=function(t,i){const e=t.orderedGroups(i);return e.length>0?e[0]:null}(n,s);return o?o[0].getLegend():t.get(Sr).executeCommand("_provideDocumentRangeSemanticTokensLegend",e)})),Dr.registerCommand("_provideDocumentSemanticTokens",(async(t,...i)=>{const[e]=i;q(e instanceof ms);const s=t.get(pr).getModel(e);if(!s)return;const{documentSemanticTokensProvider:n}=t.get(xg);if(!u8(n,s))return t.get(Sr).executeCommand("_provideDocumentRangeSemanticTokens",e,s.getFullModelRange());const o=await d8(n,s,null,null,ke.None);if(!o)return;const{provider:r,tokens:h}=o;if(!h||!c8(h))return;const c=h8({id:0,type:"full",data:h.data});return h.resultId&&r.releaseDocumentSemanticTokens(h.resultId),c})),Dr.registerCommand("_provideDocumentRangeSemanticTokensLegend",(async(t,...i)=>{const[e,s]=i;q(e instanceof ms);const n=t.get(pr).getModel(e);if(!n)return;const{documentRangeSemanticTokensProvider:o}=t.get(xg),r=p8(o,n);if(0===r.length)return;if(1===r.length)return r[0].getLegend();if(!s||!Ms.isIRange(s))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),r[0].getLegend();const h=await g8(o,n,Ms.lift(s),ke.None);return h?h.provider.getLegend():void 0})),Dr.registerCommand("_provideDocumentRangeSemanticTokens",(async(t,...i)=>{const[e,s]=i;q(e instanceof ms),q(Ms.isIRange(s));const n=t.get(pr).getModel(e);if(!n)return;const{documentRangeSemanticTokensProvider:o}=t.get(xg),r=await g8(o,n,Ms.lift(s),ke.None);return r&&r.tokens?h8({id:0,type:"full",data:r.tokens.data}):void 0}));const m8="editor.semanticHighlighting";function w8(t,i,e){var s;const n=null===(s=e.getValue(m8,{overrideIdentifier:t.getLanguageId(),resource:t.uri}))||void 0===s?void 0:s.enabled;return"boolean"==typeof n?n:i.getColorTheme().semanticHighlighting}var v8,b8=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},y8=function(t,i){return function(e,s){i(e,s,t)}};let k8=class extends te{constructor(t,i,e,s,n,o){super(),this._watchers=Object.create(null);const r=i=>{this._watchers[i.uri.toString()]=new x8(i,t,e,n,o)},h=(t,i)=>{i.dispose(),delete this._watchers[t.uri.toString()]},c=()=>{for(const t of i.getModels()){const i=this._watchers[t.uri.toString()];w8(t,e,s)?i||r(t):i&&h(t,i)}};this._register(i.onModelAdded((t=>{w8(t,e,s)&&r(t)}))),this._register(i.onModelRemoved((t=>{const i=this._watchers[t.uri.toString()];i&&h(t,i)}))),this._register(s.onDidChangeConfiguration((t=>{t.affectsConfiguration(m8)&&c()}))),this._register(e.onDidColorThemeChange(c))}dispose(){for(const t of Object.values(this._watchers))t.dispose();super.dispose()}};k8=b8([y8(0,MR),y8(1,pr),y8(2,Xk),y8(3,pd),y8(4,gR),y8(5,xg)],k8);let x8=v8=class extends te{constructor(t,i,e,s,n){super(),this._semanticTokensStylingService=i,this._isDisposed=!1,this._model=t,this._provider=n.documentSemanticTokensProvider,this._debounceInformation=s.for(this._provider,"DocumentSemanticTokens",{min:v8.REQUEST_MIN_DELAY,max:v8.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new pc((()=>this._fetchDocumentSemanticTokensNow()),v8.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._providersChangedDuringRequest=!1,this._register(this._model.onDidChangeContent((()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}))),this._register(this._model.onDidChangeAttached((()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}))),this._register(this._model.onDidChangeLanguage((()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)})));const o=()=>{Qi(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const i of this._provider.all(t))"function"==typeof i.onDidChange&&this._documentProvidersChangeListeners.push(i.onDidChange((()=>{this._currentDocumentRequestCancellationTokenSource?this._providersChangedDuringRequest=!0:this._fetchDocumentSemanticTokens.schedule(0)})))};o(),this._register(this._provider.onDidChange((()=>{o(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}))),this._register(e.onDidColorThemeChange((()=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}))),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),Qi(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[],this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!u8(this._provider,this._model))return void(this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1));if(!this._model.isAttachedToEditor())return;const t=new Ce,i=d8(this._provider,this._model,this._currentDocumentResponse?this._currentDocumentResponse.provider:null,this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,t.token);this._currentDocumentRequestCancellationTokenSource=t,this._providersChangedDuringRequest=!1;const e=[],s=this._model.onDidChangeContent((t=>{e.push(t)})),n=new re(!1);i.then((t=>{if(this._debounceInformation.update(this._model,n.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,s.dispose(),t){const{provider:i,tokens:s}=t,n=this._semanticTokensStylingService.getStyling(i);this._setDocumentSemanticTokens(i,s||null,n,e)}else this._setDocumentSemanticTokens(null,null,null,e)}),(t=>{t&&(ji(t)||"string"==typeof t.message&&-1!==t.message.indexOf("busy"))||Bi(t),this._currentDocumentRequestCancellationTokenSource=null,s.dispose(),(e.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))}))}static _copy(t,i,e,s,n){n=Math.min(n,e.length-s,t.length-i);for(let o=0;o{(s.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed)t&&i&&t.releaseDocumentSemanticTokens(i.resultId);else if(t&&e){if(!i)return this._model.tokenization.setSemanticTokens(null,!0),void o();if(a8(i)){if(!n)return void this._model.tokenization.setSemanticTokens(null,!0);if(0===i.edits.length)i={resultId:i.resultId,data:n.data};else{let t=0;for(const e of i.edits)t+=(e.data?e.data.length:0)-e.deleteCount;const s=n.data,o=new Uint32Array(s.length+t);let r=s.length,h=o.length;for(let t=i.edits.length-1;t>=0;t--){const c=i.edits[t];if(c.start>s.length)return e.warnInvalidEditStart(n.resultId,i.resultId,t,c.start,s.length),void this._model.tokenization.setSemanticTokens(null,!0);const a=r-(c.start+c.deleteCount);a>0&&(v8._copy(s,r-a,o,h-a,a),h-=a),c.data&&(v8._copy(c.data,0,o,h-c.data.length,c.data.length),h-=c.data.length),r=c.start}r>0&&v8._copy(s,0,o,0,r),i={resultId:i.resultId,data:o}}}if(c8(i)){this._currentDocumentResponse=new C8(t,i.resultId,i.data);const n=DR(i,e,this._model.getLanguageId());if(s.length>0)for(const t of s)for(const i of n)for(const e of t.changes)i.applyEdit(e.range,e.text);this._model.tokenization.setSemanticTokens(n,!0)}else this._model.tokenization.setSemanticTokens(null,!0);o()}else this._model.tokenization.setSemanticTokens(null,!1)}};x8.REQUEST_MIN_DELAY=300,x8.REQUEST_MAX_DELAY=2e3,x8=v8=b8([y8(1,MR),y8(2,Xk),y8(3,gR),y8(4,xg)],x8);class C8{constructor(t,i,e){this.provider=t,this.resultId=i,this.data=e}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}GH(k8);var S8=function(t,i){return function(e,s){i(e,s,t)}};let D8=class extends te{constructor(t,i,e,s,n,o){super(),this._semanticTokensStylingService=i,this._themeService=e,this._configurationService=s,this._editor=t,this._provider=o.documentRangeSemanticTokensProvider,this._debounceInformation=n.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new pc((()=>this._tokenizeViewportNow()),100)),this._outstandingRequests=[];const r=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))};this._register(this._editor.onDidScrollChange((()=>{r()}))),this._register(this._editor.onDidChangeModel((()=>{this._cancelAll(),r()}))),this._register(this._editor.onDidChangeModelContent((()=>{this._cancelAll(),r()}))),this._register(this._provider.onDidChange((()=>{this._cancelAll(),r()}))),this._register(this._configurationService.onDidChangeConfiguration((t=>{t.affectsConfiguration(m8)&&(this._cancelAll(),r())}))),this._register(this._themeService.onDidColorThemeChange((()=>{this._cancelAll(),r()}))),r()}_cancelAll(){for(const t of this._outstandingRequests)t.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(t){for(let i=0,e=this._outstandingRequests.length;ithis._requestRange(t,i))))}_requestRange(t,i){const e=t.getVersionId(),s=nc((e=>Promise.resolve(g8(this._provider,t,i,e)))),n=new re(!1);return s.then((s=>{if(this._debounceInformation.update(t,n.elapsed()),!s||!s.tokens||t.isDisposed()||t.getVersionId()!==e)return;const{provider:o,tokens:r}=s,h=this._semanticTokensStylingService.getStyling(o);t.tokenization.setPartialSemanticTokens(i,DR(r,h,t.getLanguageId()))})).then((()=>this._removeOutstandingRequest(s)),(()=>this._removeOutstandingRequest(s))),s}};D8.ID="editor.contrib.viewportSemanticTokens",D8=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([S8(1,MR),S8(2,Xk),S8(3,pd),S8(4,gR),S8(5,xg)],D8),lu(D8.ID,D8,1);class E8{constructor(t=!0){this.selectSubwords=t}provideSelectionRanges(t,i){const e=[];for(const s of i){const i=[];e.push(i),this.selectSubwords&&this._addInWordRanges(i,t,s),this._addWordRanges(i,t,s),this._addWhitespaceLine(i,t,s),i.push({range:t.getFullModelRange()})}return e}_addInWordRanges(t,i,e){const s=i.getWordAtPosition(e);if(!s)return;const{word:n,startColumn:o}=s,r=e.column-o;let h=r,c=r,a=0;for(;h>=0;h--){const t=n.charCodeAt(h);if(h!==r&&(95===t||45===t))break;if(co(t)&&ao(a))break;a=t}for(h+=1;c0&&0===i.getLineFirstNonWhitespaceColumn(e.lineNumber)&&0===i.getLineLastNonWhitespaceColumn(e.lineNumber)&&t.push({range:new Ms(e.lineNumber,1,e.lineNumber,i.getLineMaxColumn(e.lineNumber))})}}var A8;class M8{constructor(t,i){this.index=t,this.ranges=i}mov(t){const i=this.index+(t?1:-1);if(i<0||i>=this.ranges.length)return this;const e=new M8(i,this.ranges);return e.ranges[i].equalsRange(this.ranges[this.index])?e.mov(t):e}}let L8=A8=class{static get(t){return t.getContribution(A8.ID)}constructor(t,i){this._editor=t,this._languageFeaturesService=i,this._ignoreSelection=!1}dispose(){var t;null===(t=this._selectionListener)||void 0===t||t.dispose()}async run(t){if(!this._editor.hasModel())return;const i=this._editor.getSelections(),e=this._editor.getModel();if(this._state||await T8(this._languageFeaturesService.selectionRangeProvider,e,i.map((t=>t.getPosition())),this._editor.getOption(112),ke.None).then((t=>{var e;if(b(t)&&t.length===i.length&&this._editor.hasModel()&&l(this._editor.getSelections(),i,((t,i)=>t.equalsSelection(i)))){for(let e=0;et.containsPosition(i[e].getStartPosition())&&t.containsPosition(i[e].getEndPosition()))),t[e].unshift(i[e]);this._state=t.map((t=>new M8(0,t))),null===(e=this._selectionListener)||void 0===e||e.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition((()=>{var t;this._ignoreSelection||(null===(t=this._selectionListener)||void 0===t||t.dispose(),this._state=void 0)}))}})),!this._state)return;this._state=this._state.map((i=>i.mov(t)));const s=this._state.map((t=>Ls.fromPositions(t.ranges[t.index].getStartPosition(),t.ranges[t.index].getEndPosition())));this._ignoreSelection=!0;try{this._editor.setSelections(s)}finally{this._ignoreSelection=!1}}};L8.ID="editor.contrib.smartSelectController",L8=A8=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,xg)],L8);class F8 extends su{constructor(t,i){super(i),this._forward=t}async run(t,i){const e=L8.get(i);e&&await e.run(this._forward)}}async function T8(t,i,e,s,n){const o=t.all(i).concat(new E8(s.selectSubwords));1===o.length&&o.unshift(new c6);const r=[],h=[];for(const t of o)r.push(Promise.resolve(t.provideSelectionRanges(i,e,n)).then((t=>{if(b(t)&&t.length===e.length)for(let i=0;i{if(0===t.length)return[];t.sort(((t,i)=>As.isBefore(t.getStartPosition(),i.getStartPosition())?1:As.isBefore(i.getStartPosition(),t.getStartPosition())||As.isBefore(t.getEndPosition(),i.getEndPosition())?-1:As.isBefore(i.getEndPosition(),t.getEndPosition())?1:0));const e=[];let n;for(const i of t)(!n||Ms.containsRange(i,n)&&!Ms.equalsRange(i,n))&&(e.push(i),n=i);if(!s.selectLeadingAndTrailingWhitespace)return e;const o=[e[0]];for(let t=1;tt}),_8="data-sticky-line-index",N8="data-sticky-is-line",B8="data-sticky-is-folding-icon";class P8 extends te{constructor(t){super(),this._editor=t,this._foldingIconStore=new Xi,this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._lineHeight=this._editor.getOption(66),this._stickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._lineNumbersDomNode.className="sticky-widget-line-numbers",this._lineNumbersDomNode.setAttribute("role","none"),this._linesDomNode.className="sticky-widget-lines",this._linesDomNode.setAttribute("role","list"),this._linesDomNodeScrollable.className="sticky-widget-lines-scrollable",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className="sticky-widget",this._rootDomNode.classList.toggle("peek",t instanceof UJ),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable);const i=()=>{this._linesDomNode.style.left=this._editor.getOption(114).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(114)&&i(),t.hasChanged(66)&&(this._lineHeight=this._editor.getOption(66))}))),this._register(this._editor.onDidScrollChange((t=>{t.scrollLeftChanged&&i(),t.scrollWidthChanged&&this._updateWidgetWidth()}))),this._register(this._editor.onDidChangeModel((()=>{i(),this._updateWidgetWidth()}))),this._register(this._foldingIconStore),i(),this._register(this._editor.onDidLayoutChange((()=>{this._updateWidgetWidth()}))),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getStickyLineForLine(t){return this._stickyLines.find((i=>i.lineNumber===t))}getCurrentLines(){return this._lineNumbers}setState(t,i,e=1/0){if((!this._previousState&&!t||this._previousState&&this._previousState.equals(t))&&e===1/0)return;this._previousState=t;const s=this._stickyLines;if(this._clearStickyWidget(),t&&this._editor._getViewModel()){if(t.startLineNumbers.length*this._lineHeight+t.lastLineRelativePosition>0){this._lastLineRelativePosition=t.lastLineRelativePosition;const i=[...t.startLineNumbers];null!==t.showEndForLine&&(i[t.showEndForLine]=t.endLineNumbers[t.showEndForLine]),this._lineNumbers=i}else this._lastLineRelativePosition=0,this._lineNumbers=[];this._renderRootNode(s,i,e)}}_updateWidgetWidth(){const t=this._editor.getLayoutInfo();this._lineNumbersDomNode.style.width=`${t.contentLeft}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",this._editor.getScrollWidth()-t.verticalScrollbarWidth+"px"),this._rootDomNode.style.width=t.width-t.verticalScrollbarWidth+"px"}_clearStickyWidget(){this._stickyLines=[],this._foldingIconStore.clear(),za(this._lineNumbersDomNode),za(this._linesDomNode),this._rootDomNode.style.display="none"}_useFoldingOpacityTransition(t){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition",`opacity ${t?.5:0}s`)}_setFoldingIconsVisibility(t){for(const i of this._stickyLines){const e=i.foldingIcon;e&&e.setVisible(!!t||e.isCollapsed)}}async _renderRootNode(t,i,e=1/0){const s=this._editor.getLayoutInfo();for(const[n,o]of this._lineNumbers.entries()){const r=t[n],h=o>=e||(null==r?void 0:r.lineNumber)!==o?this._renderChildNode(n,o,i,s):this._updateTopAndZIndexOfStickyLine(r);h&&(this._linesDomNode.appendChild(h.lineDomNode),this._lineNumbersDomNode.appendChild(h.lineNumberDomNode),this._stickyLines.push(h))}i&&(this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin));const n=this._lineNumbers.length*this._lineHeight+this._lastLineRelativePosition;0!==n?(this._rootDomNode.style.display="block",this._lineNumbersDomNode.style.height=`${n}px`,this._linesDomNodeScrollable.style.height=`${n}px`,this._rootDomNode.style.height=`${n}px`,this._rootDomNode.style.marginLeft="0px",this._updateMinContentWidth(),this._editor.layoutOverlayWidget(this)):this._clearStickyWidget()}_setFoldingHoverListeners(){"mouseover"===this._editor.getOption(109)&&(this._foldingIconStore.add(Va(this._lineNumbersDomNode,Ll.MOUSE_ENTER,(()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)}))),this._foldingIconStore.add(Va(this._lineNumbersDomNode,Ll.MOUSE_LEAVE,(()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)}))))}_renderChildNode(t,i,e,s){const n=this._editor._getViewModel();if(!n)return;const o=n.coordinatesConverter.convertModelPositionToViewPosition(new As(i,1)).lineNumber,r=n.getViewLineRenderingData(o),h=this._editor.getOption(67);let c;try{c=Wg.filter(r.inlineDecorations,o,r.minColumn,r.maxColumn)}catch(t){c=[]}const a=new qg(!0,!0,r.content,r.continuesWithWrappedLine,r.isBasicASCII,r.containsRTL,0,r.tokens,c,r.tabSize,r.startVisibleColumn,1,1,1,500,"none",!0,!0,null),l=new td(2e3),u=Qg(a,l);let d;d=I8?I8.createHTML(l.build()):l.build();const f=document.createElement("span");f.setAttribute(_8,String(t)),f.setAttribute(N8,""),f.setAttribute("role","listitem"),f.tabIndex=0,f.className="sticky-line-content",f.classList.add(`stickyLine${i}`),f.style.lineHeight=`${this._lineHeight}px`,f.innerHTML=d;const p=document.createElement("span");p.setAttribute(_8,String(t)),p.setAttribute("data-sticky-is-line-number",""),p.className="sticky-line-number",p.style.lineHeight=`${this._lineHeight}px`,p.style.width=`${s.contentLeft}px`;const g=document.createElement("span");1===h.renderType||3===h.renderType&&i%10==0?g.innerText=i.toString():2===h.renderType&&(g.innerText=Math.abs(i-this._editor.getPosition().lineNumber).toString()),g.className="sticky-line-number-inner",g.style.lineHeight=`${this._lineHeight}px`,g.style.width=`${s.lineNumbersWidth}px`,g.style.paddingLeft=`${s.lineNumbersLeft}px`,p.appendChild(g);const m=this._renderFoldingIconForLine(e,i);m&&p.appendChild(m.domNode),this._editor.applyFontInfo(f),this._editor.applyFontInfo(g),p.style.lineHeight=`${this._lineHeight}px`,f.style.lineHeight=`${this._lineHeight}px`,p.style.height=`${this._lineHeight}px`,f.style.height=`${this._lineHeight}px`;const w=new $8(t,i,f,p,m,u.characterMapping);return this._updateTopAndZIndexOfStickyLine(w)}_updateTopAndZIndexOfStickyLine(t){var i;const e=t.index,s=t.lineDomNode,n=t.lineNumberDomNode,o=e===this._lineNumbers.length-1;s.style.zIndex=o?"0":"1",n.style.zIndex=o?"0":"1";const r=`${e*this._lineHeight+this._lastLineRelativePosition+((null===(i=t.foldingIcon)||void 0===i?void 0:i.isCollapsed)?1:0)}px`,h=e*this._lineHeight+"px";return s.style.top=o?r:h,n.style.top=o?r:h,t}_renderFoldingIconForLine(t,i){const e=this._editor.getOption(109);if(!t||"never"===e)return;const s=t.regions,n=s.findRange(i),o=s.getStartLineNumber(n);if(i!==o)return;const r=s.isCollapsed(n),h=new W8(r,o,s.getEndLineNumber(n),this._lineHeight);return h.setVisible(!!this._isOnGlyphMargin||r||"always"===e),h.domNode.setAttribute(B8,""),h}_updateMinContentWidth(){this._minContentWidthInPx=0;for(const t of this._stickyLines)t.lineDomNode.scrollWidth>this._minContentWidthInPx&&(this._minContentWidthInPx=t.lineDomNode.scrollWidth);this._minContentWidthInPx+=this._editor.getLayoutInfo().verticalScrollbarWidth}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:null}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(t){0<=t&&t0)return null;const i=this._getRenderedStickyLineFromChildDomNode(t);if(!i)return null;const e=Yy(i.characterMapping,t,0);return new As(i.lineNumber,e)}getLineNumberFromChildDomNode(t){var i,e;return null!==(e=null===(i=this._getRenderedStickyLineFromChildDomNode(t))||void 0===i?void 0:i.lineNumber)&&void 0!==e?e:null}_getRenderedStickyLineFromChildDomNode(t){const i=this.getLineIndexFromChildDomNode(t);return null===i||i<0||i>=this._stickyLines.length?null:this._stickyLines[i]}getLineIndexFromChildDomNode(t){const i=this._getAttributeValue(t,_8);return i?parseInt(i,10):null}isInStickyLine(t){return void 0!==this._getAttributeValue(t,N8)}isInFoldingIconDomNode(t){return void 0!==this._getAttributeValue(t,B8)}_getAttributeValue(t,i){for(;t&&t!==this._rootDomNode;){const e=t.getAttribute(i);if(null!==e)return e;t=t.parentElement}}}class $8{constructor(t,i,e,s,n,o){this.index=t,this.lineNumber=i,this.lineDomNode=e,this.lineNumberDomNode=s,this.foldingIcon=n,this.characterMapping=o}}class W8{constructor(t,i,e,s){this.isCollapsed=t,this.foldingStartLine=i,this.foldingEndLine=e,this.dimension=s,this.domNode=document.createElement("div"),this.domNode.style.width=`${s}px`,this.domNode.style.height=`${s}px`,this.domNode.className=Cr.asClassName(t?n5:s5)}setVisible(t){this.domNode.style.cursor=t?"pointer":"default",this.domNode.style.opacity=t?"1":"0"}}class j8{constructor(t,i){this.startLineNumber=t,this.endLineNumber=i}}class z8{constructor(t,i,e){this.range=t,this.children=i,this.parent=e}}class H8{constructor(t,i,e,s){this.uri=t,this.version=i,this.element=e,this.outlineProviderId=s}}var V8,U8,q8=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},K8=function(t,i){return function(e,s){i(e,s,t)}};!function(t){t.OUTLINE_MODEL="outlineModel",t.FOLDING_PROVIDER_MODEL="foldingProviderModel",t.INDENTATION_MODEL="indentationModel"}(V8||(V8={})),function(t){t[t.VALID=0]="VALID",t[t.INVALID=1]="INVALID",t[t.CANCELED=2]="CANCELED"}(U8||(U8={}));let G8=class extends te{constructor(t,i,e,s){super(),this._editor=t,this._languageConfigurationService=i,this._languageFeaturesService=e,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new hc(300)),this._updateOperation=this._register(new Xi);const n=new Q8(e),o=new X8(this._editor,e),r=new Y8(this._editor,i);switch(s){case V8.OUTLINE_MODEL:this._modelProviders.push(n),this._modelProviders.push(o),this._modelProviders.push(r);break;case V8.FOLDING_PROVIDER_MODEL:this._modelProviders.push(o),this._modelProviders.push(r);break;case V8.INDENTATION_MODEL:this._modelProviders.push(r)}}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}async update(t,i,e){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger((async()=>{for(const s of this._modelProviders){const{statusPromise:n,modelPromise:o}=s.computeStickyModel(t,i,e);this._modelPromise=o;const r=await n;if(this._modelPromise!==o)return null;switch(r){case U8.CANCELED:return this._updateOperation.clear(),null;case U8.VALID:return s.stickyModel}}return null})).catch((t=>(Bi(t),null)))}};G8=q8([K8(1,Xd),K8(2,xg)],G8);class Z8{constructor(){this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,U8.INVALID}computeStickyModel(t,i,e){if(e.isCancellationRequested||!this.isProviderValid(t))return{statusPromise:this._invalid(),modelPromise:null};const s=nc((e=>this.createModelFromProvider(t,i,e)));return{statusPromise:s.then((s=>this.isModelValid(s)?e.isCancellationRequested?U8.CANCELED:(this._stickyModel=this.createStickyModel(t,i,e,s),U8.VALID):this._invalid())).then(void 0,(t=>(Bi(t),U8.CANCELED))),modelPromise:s}}isModelValid(t){return!0}isProviderValid(t){return!0}}let Q8=class extends Z8{constructor(t){super(),this._languageFeaturesService=t}createModelFromProvider(t,i,e){return L5.create(this._languageFeaturesService.documentSymbolProvider,t,e)}createStickyModel(t,i,e,s){var n;const{stickyOutlineElement:o,providerID:r}=this._stickyModelFromOutlineModel(s,null===(n=this._stickyModel)||void 0===n?void 0:n.outlineProviderId);return new H8(t.uri,i,o,r)}isModelValid(t){return t&&t.children.size>0}_stickyModelFromOutlineModel(t,i){let e;if(Ht.first(t.children.values())instanceof M5){const s=Ht.find(t.children.values(),(t=>t.id===i));if(s)e=s.children;else{let s,n="",o=-1;for(const[i,e]of t.children.entries()){const t=this._findSumOfRangesOfGroup(e);t>o&&(s=e,o=t,n=e.id)}i=n,e=s.children}}else e=t.children;const s=[],n=Array.from(e.values()).sort(((t,i)=>{const e=new j8(t.symbol.range.startLineNumber,t.symbol.range.endLineNumber),s=new j8(i.symbol.range.startLineNumber,i.symbol.range.endLineNumber);return this._comparator(e,s)}));for(const t of n)s.push(this._stickyModelFromOutlineElement(t,t.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new z8(void 0,s,void 0),providerID:i}}_stickyModelFromOutlineElement(t,i){const e=[];for(const s of t.children.values())if(s.symbol.selectionRange.startLineNumber!==s.symbol.range.endLineNumber)if(s.symbol.selectionRange.startLineNumber!==i)e.push(this._stickyModelFromOutlineElement(s,s.symbol.selectionRange.startLineNumber));else for(const t of s.children.values())e.push(this._stickyModelFromOutlineElement(t,s.symbol.selectionRange.startLineNumber));e.sort(((t,i)=>this._comparator(t.range,i.range)));const s=new j8(t.symbol.selectionRange.startLineNumber,t.symbol.range.endLineNumber);return new z8(s,e,void 0)}_comparator(t,i){return t.startLineNumber!==i.startLineNumber?t.startLineNumber-i.startLineNumber:i.endLineNumber-t.endLineNumber}_findSumOfRangesOfGroup(t){let i=0;for(const e of t.children.values())i+=this._findSumOfRangesOfGroup(e);return t instanceof A5?i+t.symbol.range.endLineNumber-t.symbol.selectionRange.startLineNumber:i}};Q8=q8([K8(0,xg)],Q8);class J8 extends Z8{constructor(t){super(),this._foldingLimitReporter=new m5(t)}createStickyModel(t,i,e,s){const n=this._fromFoldingRegions(s);return new H8(t.uri,i,n,void 0)}isModelValid(t){return null!==t}_fromFoldingRegions(t){const i=t.length,e=[],s=new z8(void 0,[],void 0);for(let n=0;n0}createModelFromProvider(t,i,e){const s=g5.getFoldingRangeProviders(this._languageFeaturesService,t);return new l5(t,s,(()=>this.createModelFromProvider(t,i,e)),this._foldingLimitReporter,void 0).compute(e)}};X8=q8([K8(1,xg)],X8);var ttt=function(t,i){return function(e,s){i(e,s,t)}};class itt{constructor(t,i,e){this.startLineNumber=t,this.endLineNumber=i,this.nestingDepth=e}}let ett=class extends te{constructor(t,i,e){super(),this._languageFeaturesService=i,this._languageConfigurationService=e,this._onDidChangeStickyScroll=this._register(new de),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._options=null,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=t,this._sessionStore=this._register(new Xi),this._updateSoon=this._register(new pc((()=>this.update()),50)),this._register(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(114)&&this.readConfiguration()}))),this.readConfiguration()}readConfiguration(){this._stickyModelProvider=null,this._sessionStore.clear(),this._options=this._editor.getOption(114),this._options.enabled&&(this._stickyModelProvider=this._sessionStore.add(new G8(this._editor,this._languageConfigurationService,this._languageFeaturesService,this._options.defaultModel)),this._sessionStore.add(this._editor.onDidChangeModel((()=>{this._model=null,this._onDidChangeStickyScroll.fire(),this.update()}))),this._sessionStore.add(this._editor.onDidChangeHiddenAreas((()=>this.update()))),this._sessionStore.add(this._editor.onDidChangeModelContent((()=>this._updateSoon.schedule()))),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange((()=>this.update()))),this.update())}getVersionId(){var t;return null===(t=this._model)||void 0===t?void 0:t.version}async update(){var t;null===(t=this._cts)||void 0===t||t.dispose(!0),this._cts=new Ce,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(t){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization())return void(this._model=null);const i=this._editor.getModel(),e=i.getVersionId(),s=await this._stickyModelProvider.update(i,e,t);t.isCancellationRequested||(this._model=s)}updateIndex(t){return-1===t?t=0:t<0&&(t=-t-2),t}getCandidateStickyLinesIntersectingFromStickyModel(t,i,e,s,n){if(0===i.children.length)return;let o=n;const r=[];for(let t=0;tt-i))),c=this.updateIndex(u(r,t.startLineNumber+s,((t,i)=>t-i)));for(let r=h;r<=c;r++){const h=i.children[r];if(!h)return;if(h.range){const i=h.range.startLineNumber,n=h.range.endLineNumber;t.startLineNumber<=n+1&&i-1<=t.endLineNumber&&i!==o&&(o=i,e.push(new itt(i,n-1,s+1)),this.getCandidateStickyLinesIntersectingFromStickyModel(t,h,e,s+1,i))}else this.getCandidateStickyLinesIntersectingFromStickyModel(t,h,e,s,n)}}getCandidateStickyLinesIntersecting(t){var i,e;if(!(null===(i=this._model)||void 0===i?void 0:i.element))return[];let s=[];this.getCandidateStickyLinesIntersectingFromStickyModel(t,this._model.element,s,0,-1);const n=null===(e=this._editor._getViewModel())||void 0===e?void 0:e.getHiddenAreas();if(n)for(const t of n)s=s.filter((i=>!(i.startLineNumber>=t.startLineNumber&&i.endLineNumber<=t.endLineNumber+1)));return s}};ett=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([ttt(1,xg),ttt(2,Xd)],ett);var stt,ntt=function(t,i){return function(e,s){i(e,s,t)}};let ott=stt=class extends te{constructor(t,i,e,s,n,o,r){super(),this._editor=t,this._contextMenuService=i,this._languageFeaturesService=e,this._instaService=s,this._contextKeyService=r,this._sessionStore=new Xi,this._foldingModel=null,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._showEndForLine=null,this._stickyScrollWidget=new P8(this._editor),this._stickyLineCandidateProvider=new ett(this._editor,e,n),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=new O8([],[],0),this._readConfiguration();const h=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeConfiguration((t=>{(t.hasChanged(114)||t.hasChanged(72)||t.hasChanged(66)||t.hasChanged(109))&&this._readConfiguration()}))),this._register(Va(h,Ll.CONTEXT_MENU,(async t=>{this._onContextMenu(Na(h),t)}))),this._stickyScrollFocusedContextKey=YC.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=YC.stickyScrollVisible.bindTo(this._contextKeyService);const c=this._register(Rl(h));this._register(c.onDidBlur((()=>{!1===this._positionRevealed&&0===h.clientHeight?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()}))),this._register(c.onDidFocus((()=>{this.focus()}))),this._registerMouseListeners(),this._register(Va(h,Ll.MOUSE_DOWN,(()=>{this._onMouseDown=!0})))}static get(t){return t.getContribution(stt.ID)}_disposeFocusStickyScrollStore(){var t;this._stickyScrollFocusedContextKey.set(!1),null===(t=this._focusDisposableStore)||void 0===t||t.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}focus(){if(this._onMouseDown)return this._onMouseDown=!1,void this._editor.focus();!0!==this._stickyScrollFocusedContextKey.get()&&(this._focused=!0,this._focusDisposableStore=new Xi,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(t){this._focusedStickyElementIndex=t?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){const t=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:t[this._focusedStickyElementIndex],column:1})}_revealPosition(t){this._reveaInEditor(t,(()=>this._editor.revealPosition(t)))}_revealLineInCenterIfOutsideViewport(t){this._reveaInEditor(t,(()=>this._editor.revealLineInCenterIfOutsideViewport(t.lineNumber,0)))}_reveaInEditor(t,i){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,i(),this._editor.setSelection(Ms.fromPositions(t)),this._editor.focus()}_registerMouseListeners(){const t=this._register(new Xi),i=this._register(new HJ(this._editor,{extractLineNumberFromMouseEvent:t=>{const i=this._stickyScrollWidget.getEditorPositionFromNode(t.target.element);return i?i.lineNumber:0}})),e=t=>{if(!this._editor.hasModel())return null;if(12!==t.target.type||t.target.detail!==this._stickyScrollWidget.getId())return null;const i=t.target.element;if(!i||i.innerText!==i.innerHTML)return null;const e=this._stickyScrollWidget.getEditorPositionFromNode(i);return e?{range:new Ms(e.lineNumber,e.column,e.lineNumber,e.column+i.innerText.length),textElement:i}:null},s=this._stickyScrollWidget.getDomNode();this._register(qa(s,Ll.CLICK,(t=>{if(t.ctrlKey||t.altKey||t.metaKey)return;if(!t.leftButton)return;if(t.shiftKey){const i=this._stickyScrollWidget.getLineIndexFromChildDomNode(t.target);if(null===i)return;const e=new As(this._endLineNumbers[i],1);return void this._revealLineInCenterIfOutsideViewport(e)}if(this._stickyScrollWidget.isInFoldingIconDomNode(t.target)){const i=this._stickyScrollWidget.getLineNumberFromChildDomNode(t.target);return void this._toggleFoldingRegionForLine(i)}if(!this._stickyScrollWidget.isInStickyLine(t.target))return;let i=this._stickyScrollWidget.getEditorPositionFromNode(t.target);if(!i){const e=this._stickyScrollWidget.getLineNumberFromChildDomNode(t.target);if(null===e)return;i=new As(e,1)}this._revealPosition(i)}))),this._register(qa(s,Ll.MOUSE_MOVE,(t=>{if(t.shiftKey){const i=this._stickyScrollWidget.getLineIndexFromChildDomNode(t.target);if(null===i||null!==this._showEndForLine&&this._showEndForLine===i)return;return this._showEndForLine=i,void this._renderStickyScroll()}null!==this._showEndForLine&&(this._showEndForLine=null,this._renderStickyScroll())}))),this._register(Va(s,Ll.MOUSE_LEAVE,(()=>{null!==this._showEndForLine&&(this._showEndForLine=null,this._renderStickyScroll())}))),this._register(i.onMouseMoveOrRelevantKeyDown((([i,s])=>{const n=e(i);if(!n||!i.hasTriggerModifier||!this._editor.hasModel())return void t.clear();const{range:o,textElement:r}=n;if(o.equalsRange(this._stickyRangeProjectedOnEditor)){if("underline"===r.style.textDecoration)return}else this._stickyRangeProjectedOnEditor=o,t.clear();const h=new Ce;let c;t.add(Yi((()=>h.dispose(!0)))),VY(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new As(o.startLineNumber,o.startColumn+1),h.token).then((i=>{if(!h.token.isCancellationRequested)if(0!==i.length){this._candidateDefinitionsLength=i.length;const e=r;c!==e?(t.clear(),c=e,c.style.textDecoration="underline",t.add(Yi((()=>{c.style.textDecoration="none"})))):c||(c=e,c.style.textDecoration="underline",t.add(Yi((()=>{c.style.textDecoration="none"}))))}else t.clear()}))}))),this._register(i.onCancel((()=>{t.clear()}))),this._register(i.onExecute((async t=>{if(12!==t.target.type||t.target.detail!==this._stickyScrollWidget.getId())return;const i=this._stickyScrollWidget.getEditorPositionFromNode(t.target.element);i&&(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:i.lineNumber,column:1})),this._instaService.invokeFunction(E9,t,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor}))})))}_onContextMenu(t,i){const e=new tc(t,i);this._contextMenuService.showContextMenu({menuId:Rh.StickyScrollContext,getAnchor:()=>e})}_toggleFoldingRegionForLine(t){if(!this._foldingModel||null===t)return;const i=this._stickyScrollWidget.getStickyLineForLine(t),e=null==i?void 0:i.foldingIcon;if(!e)return;U4(this._foldingModel,Number.MAX_VALUE,[t]),e.isCollapsed=!e.isCollapsed;const s=this._editor.getTopForLineNumber(e.isCollapsed?e.foldingEndLine:e.foldingStartLine)-this._editor.getOption(66)*i.index+1;this._editor.setScrollTop(s),this._renderStickyScroll(t)}_readConfiguration(){const t=this._editor.getOption(114);if(!1===t.enabled)return this._editor.removeOverlayWidget(this._stickyScrollWidget),this._sessionStore.clear(),void(this._enabled=!1);t.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange((t=>{t.scrollTopChanged&&(this._showEndForLine=null,this._renderStickyScroll())}))),this._sessionStore.add(this._editor.onDidLayoutChange((()=>this._onDidResize()))),this._sessionStore.add(this._editor.onDidChangeModelTokens((t=>this._onTokensChange(t)))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll((()=>{this._showEndForLine=null,this._renderStickyScroll()}))),this._enabled=!0),2===this._editor.getOption(67).renderType&&this._sessionStore.add(this._editor.onDidChangeCursorPosition((()=>{this._showEndForLine=null,this._renderStickyScroll(-1)})))}_needsUpdate(t){const i=this._stickyScrollWidget.getCurrentLines();for(const e of i)for(const i of t.ranges)if(e>=i.fromLineNumber&&e<=i.toLineNumber)return!0;return!1}_onTokensChange(t){this._needsUpdate(t)&&this._renderStickyScroll(-1)}_onDidResize(){const t=this._editor.getLayoutInfo().height/this._editor.getOption(66);this._maxStickyLines=Math.round(.25*t)}async _renderStickyScroll(t=1/0){var i,e;const s=this._editor.getModel();if(!s||s.isTooLargeForTokenization())return this._foldingModel=null,void this._stickyScrollWidget.setState(void 0,null,t);const n=this._stickyLineCandidateProvider.getVersionId();if(void 0===n||n===s.getVersionId())if(this._foldingModel=null!==(e=await(null===(i=g5.get(this._editor))||void 0===i?void 0:i.getFoldingModel()))&&void 0!==e?e:null,this._widgetState=this.findScrollWidgetState(),this._stickyScrollVisibleContextKey.set(!(0===this._widgetState.startLineNumbers.length)),this._focused)if(-1===this._focusedStickyElementIndex)this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,t),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,-1!==this._focusedStickyElementIndex&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const i=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,t),0===this._stickyScrollWidget.lineNumberCount?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(i)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}else this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,t)}findScrollWidgetState(){const t=this._editor.getOption(66),i=Math.min(this._maxStickyLines,this._editor.getOption(114).maxLineCount),e=this._editor.getScrollTop();let s=0;const n=[],o=[],r=this._editor.getVisibleRanges();if(0!==r.length){const h=new j8(r[0].startLineNumber,r[r.length-1].endLineNumber),c=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(h);for(const r of c){const h=r.startLineNumber,c=r.endLineNumber,a=r.nestingDepth;if(c-h>0){const r=(a-1)*t,l=a*t,u=this._editor.getBottomForLineNumber(h)-e,d=this._editor.getTopForLineNumber(c)-e,f=this._editor.getBottomForLineNumber(c)-e;if(r>d&&r<=f){n.push(h),o.push(c+1),s=f-l;break}if(l>u&&l<=f&&(n.push(h),o.push(c+1)),n.length===i)break}}}return this._endLineNumbers=o,new O8(n,o,s,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};ott.ID="store.contrib.stickyScrollController",ott=stt=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([ntt(1,lI),ntt(2,xg),ntt(3,ur),ntt(4,Xd),ntt(5,gR),ntt(6,ah)],ott);const rtt=100;lu(ott.ID,ott,1),$h(class extends Ph{constructor(){super({id:"editor.action.toggleStickyScroll",title:{value:ot(0,"Toggle Sticky Scroll"),mnemonicTitle:ot(0,"&&Toggle Sticky Scroll"),original:"Toggle Sticky Scroll"},category:R8.View,toggled:{condition:zr.equals("config.editor.stickyScroll.enabled",!0),title:ot(0,"Sticky Scroll"),mnemonicTitle:ot(0,"&&Sticky Scroll")},menu:[{id:Rh.CommandPalette},{id:Rh.MenubarAppearanceMenu,group:"4_editor",order:3},{id:Rh.StickyScrollContext}]})}async run(t){const i=t.get(pd),e=!i.getValue("editor.stickyScroll.enabled");return i.updateValue("editor.stickyScroll.enabled",e)}}),$h(class extends ou{constructor(){super({id:"editor.action.focusStickyScroll",title:{value:ot(0,"Focus Sticky Scroll"),mnemonicTitle:ot(0,"&&Focus Sticky Scroll"),original:"Focus Sticky Scroll"},precondition:zr.and(zr.has("config.editor.stickyScroll.enabled"),YC.stickyScrollVisible),menu:[{id:Rh.CommandPalette}]})}runEditorCommand(t,i){var e;null===(e=ott.get(i))||void 0===e||e.focus()}}),$h(class extends ou{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:{value:ot(0,"Select previous sticky scroll line"),original:"Select previous sticky scroll line"},precondition:YC.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:rtt,primary:16}})}runEditorCommand(t,i){var e;null===(e=ott.get(i))||void 0===e||e.focusPrevious()}}),$h(class extends ou{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:{value:ot(0,"Select next sticky scroll line"),original:"Select next sticky scroll line"},precondition:YC.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:rtt,primary:18}})}runEditorCommand(t,i){var e;null===(e=ott.get(i))||void 0===e||e.focusNext()}}),$h(class extends ou{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:{value:ot(0,"Go to focused sticky scroll line"),original:"Go to focused sticky scroll line"},precondition:YC.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:rtt,primary:3}})}runEditorCommand(t,i){var e;null===(e=ott.get(i))||void 0===e||e.goToFocused()}}),$h(class extends ou{constructor(){super({id:"editor.action.selectEditor",title:{value:ot(0,"Select Editor"),original:"Select Editor"},precondition:YC.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:rtt,primary:9}})}runEditorCommand(t,i){var e;null===(e=ott.get(i))||void 0===e||e.selectEditor()}});var htt,ctt=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},att=function(t,i){return function(e,s){i(e,s,t)}};class ltt{constructor(t,i,e,s,n,o){this.range=t,this.insertText=i,this.filterText=e,this.additionalTextEdits=s,this.command=n,this.completion=o}}let utt=class extends ee{constructor(t,i,e,s,n,o){super(n.disposable),this.model=t,this.line=i,this.word=e,this.completionModel=s,this._suggestMemoryService=o}canBeReused(t,i,e){return this.model===t&&this.line===i&&this.word.word.length>0&&this.word.startColumn===e.startColumn&&this.word.endColumn=0&&e.resolve(ke.None)}return i}};utt=ctt([att(5,e6)],utt);let dtt=class{constructor(t,i,e,s){this._getEditorOption=t,this._languageFeatureService=i,this._clipboardService=e,this._suggestMemoryService=s}async provideInlineCompletions(t,i,e,s){var n;if(e.selectedSuggestionInfo)return;const o=this._getEditorOption(88,t);if(L3.isAllOff(o))return;t.tokenization.tokenizeIfCheap(i.lineNumber);const r=t.tokenization.getLineTokens(i.lineNumber),h=r.getStandardTokenType(r.findTokenIndexAtOffset(Math.max(i.column-1-1,0)));if("inline"!==L3.valueFor(o,h))return;let c,a,l=t.getWordAtPosition(i);if((null==l?void 0:l.word)||(c=this._getTriggerCharacterInfo(t,i)),!(null==l?void 0:l.word)&&!c)return;if(l||(l=t.getWordUntilPosition(i)),l.endColumn!==i.column)return;const u=t.getValueInRange(new Ms(i.lineNumber,1,i.lineNumber,i.column));if(!c&&(null===(n=this._lastResult)||void 0===n?void 0:n.canBeReused(t,i.lineNumber,l))){const t=new l6(u,i.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=t,this._lastResult.acquire(),a=this._lastResult}else{const e=await E3(this._languageFeatureService.completionProvider,t,i,new S3(void 0,void 0,null==c?void 0:c.providers),c&&{triggerKind:1,triggerCharacter:c.ch},s);let n;e.needsClipboard&&(n=await this._clipboardService.readText());const o=new u6(e.items,i.column,new l6(u,0),a6.None,this._getEditorOption(117,t),this._getEditorOption(111,t),{boostFullMatch:!1,firstMatchCanBeWeak:!1},n);a=new utt(t,i.lineNumber,l,o,e,this._suggestMemoryService)}return this._lastResult=a,a}handleItemDidShow(t,i){i.completion.resolve(ke.None)}freeInlineCompletions(t){t.release()}_getTriggerCharacterInfo(t,i){var e;const s=t.getValueInRange(Ms.fromPositions({lineNumber:i.lineNumber,column:i.column-1},i)),n=new Set;for(const i of this._languageFeatureService.completionProvider.all(t))(null===(e=i.triggerCharacters)||void 0===e?void 0:e.includes(s))&&n.add(i);if(0!==n.size)return{providers:n,ch:s}}};dtt=ctt([att(1,xg),att(2,yH),att(3,e6)],dtt);let ftt=htt=class{constructor(t,i,e,s){if(1==++htt._counter){const n=s.createInstance(dtt,((i,s)=>{var n;return(null!==(n=e.listCodeEditors().find((t=>t.getModel()===s)))&&void 0!==n?n:t).getOption(i)}));htt._disposable=i.inlineCompletionsProvider.register("*",n)}}dispose(){var t;0==--htt._counter&&(null===(t=htt._disposable)||void 0===t||t.dispose(),htt._disposable=void 0)}};ftt._counter=0,ftt=htt=ctt([att(1,xg),att(2,fr),att(3,ur)],ftt),lu("suggest.inlineCompletionsProvider",ftt,0),cu(class extends su{constructor(){super({id:"editor.action.forceRetokenize",label:ot(0,"Developer: Force Retokenize"),alias:"Developer: Force Retokenize",precondition:void 0})}run(t,i){if(!i.hasModel())return;const e=i.getModel();e.tokenization.resetTokenization();const s=new re;e.tokenization.forceTokenization(e.getLineCount()),s.stop(),console.log(`tokenization took ${s.elapsed()}`)}});class ptt extends Ph{constructor(){super({id:ptt.ID,title:{value:ot(0,"Toggle Tab Key Moves Focus"),original:"Toggle Tab Key Moves Focus"},precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},f1:!0})}run(){const t=!Gm.getTabFocusMode();Gm.setTabFocusMode(t),Pm(ot(0,t?"Pressing Tab will now move focus to the next focusable element":"Pressing Tab will now insert the tab character"))}}ptt.ID="editor.action.toggleTabFocusMode",$h(ptt);let gtt=class extends te{get enabled(){return this._enabled}set enabled(t){t?(this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1):(this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0),this._enabled=t}constructor(t,i,e={},s){var n;super(),this._link=i,this._enabled=!0,this.el=Ol(t,$l("a.monaco-link",{tabIndex:null!==(n=i.tabIndex)&&void 0!==n?n:0,href:i.href,title:i.title},i.label)),this.el.setAttribute("role","button");const o=this._register(new Bk(this.el,"click")),r=this._register(new Bk(this.el,"keypress")),h=he.chain(r.event,(t=>t.map((t=>new Qh(t))).filter((t=>3===t.keyCode)))),c=this._register(new Bk(this.el,ow.Tap)).event;this._register(rw.addTarget(this.el));const a=he.any(o.event,h,c);this._register(a((t=>{this.enabled&&(Fl(t,!0),(null==e?void 0:e.opener)?e.opener(this._link.href):s.open(this._link.href,{allowCommands:!0}))}))),this.enabled=!0}};gtt=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(3,dP)],gtt);var mtt=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},wtt=function(t,i){return function(e,s){i(e,s,t)}};let vtt=class extends te{constructor(t,i){super(),this._editor=t,this.instantiationService=i,this.banner=this._register(this.instantiationService.createInstance(btt))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(t){this.banner.show({...t,onClose:()=>{var i;this.hide(),null===(i=t.onClose)||void 0===i||i.call(t)}}),this._editor.setBanner(this.banner.element,26)}};vtt=mtt([wtt(1,ur)],vtt);let btt=class extends te{constructor(t){super(),this.instantiationService=t,this.markdownRenderer=this.instantiationService.createInstance(lQ,{}),this.element=$l("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(t){return t.ariaLabel?t.ariaLabel:"string"==typeof t.message?t.message:void 0}getBannerMessage(t){if("string"==typeof t){const i=$l("span");return i.innerText=t,i}return this.markdownRenderer.render(t).element}clear(){za(this.element)}show(t){za(this.element);const i=this.getAriaLabel(t);i&&this.element.setAttribute("aria-label",i);const e=Ol(this.element,$l("div.icon-container"));e.setAttribute("aria-hidden","true"),t.icon&&e.appendChild($l(`div${Cr.asCSSSelector(t.icon)}`));const s=Ol(this.element,$l("div.message-container"));if(s.setAttribute("aria-hidden","true"),s.appendChild(this.getBannerMessage(t.message)),this.messageActionsContainer=Ol(this.element,$l("div.message-actions-container")),t.actions)for(const i of t.actions)this._register(this.instantiationService.createInstance(gtt,this.messageActionsContainer,{...i,tabIndex:-1},{}));const n=Ol(this.element,$l("div.action-container"));this.actionBar=this._register(new YB(n)),this.actionBar.push(this._register(new mr("banner.close","Close Banner",Cr.asClassName(Gz),!0,(()=>{"function"==typeof t.onClose&&t.onClose()}))),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};btt=mtt([wtt(0,ur)],btt);var ytt=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},ktt=function(t,i){return function(e,s){i(e,s,t)}};const xtt=Hz("extensions-warning-message",Os.warning,ot(0,"Icon shown with a warning message in the extensions editor."));let Ctt=class extends te{constructor(t,i,e,s){super(),this._editor=t,this._editorWorkerService=i,this._workspaceTrustService=e,this._highlighter=null,this._bannerClosed=!1,this._updateState=t=>{if(t&&t.hasMore){if(this._bannerClosed)return;const i=Math.max(t.ambiguousCharacterCount,t.nonBasicAsciiCharacterCount,t.invisibleCharacterCount);let e;if(t.nonBasicAsciiCharacterCount>=i)e={message:ot(0,"This document contains many non-basic ASCII unicode characters"),command:new _tt};else if(t.ambiguousCharacterCount>=i)e={message:ot(0,"This document contains many ambiguous unicode characters"),command:new Ott};else{if(!(t.invisibleCharacterCount>=i))throw new Error("Unreachable");e={message:ot(0,"This document contains many invisible unicode characters"),command:new Itt}}this._bannerController.show({id:"unicodeHighlightBanner",message:e.message,icon:xtt,actions:[{label:e.command.shortLabel,href:`command:${e.command.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(s.createInstance(vtt,t)),this._register(this._editor.onDidChangeModel((()=>{this._bannerClosed=!1,this._updateHighlighter()}))),this._options=t.getOption(124),this._register(e.onDidChangeTrust((()=>{this._updateHighlighter()}))),this._register(t.onDidChangeConfiguration((i=>{i.hasChanged(124)&&(this._options=t.getOption(124),this._updateHighlighter())}))),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const t=function(t,i){return{nonBasicASCII:i.nonBasicASCII===Ci?!t:i.nonBasicASCII,ambiguousCharacters:i.ambiguousCharacters,invisibleCharacters:i.invisibleCharacters,includeComments:i.includeComments===Ci?!t:i.includeComments,includeStrings:i.includeStrings===Ci?!t:i.includeStrings,allowedCharacters:i.allowedCharacters,allowedLocales:i.allowedLocales}}(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([t.nonBasicASCII,t.ambiguousCharacters,t.invisibleCharacters].every((t=>!1===t)))return;const i={nonBasicASCII:t.nonBasicASCII,ambiguousCharacters:t.ambiguousCharacters,invisibleCharacters:t.invisibleCharacters,includeComments:t.includeComments,includeStrings:t.includeStrings,allowedCodePoints:Object.keys(t.allowedCharacters).map((t=>t.codePointAt(0))),allowedLocales:Object.keys(t.allowedLocales).map((t=>"_os"===t?(new Intl.NumberFormat).resolvedOptions().locale:"_vscode"===t?Tt:t))};this._highlighter=this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?new Stt(this._editor,i,this._updateState,this._editorWorkerService):new Dtt(this._editor,i,this._updateState)}getDecorationInfo(t){return this._highlighter?this._highlighter.getDecorationInfo(t):null}};Ctt.ID="editor.contrib.unicodeHighlighter",Ctt=ytt([ktt(1,vP),ktt(2,cI),ktt(3,ur)],Ctt);let Stt=class extends te{constructor(t,i,e,s){super(),this._editor=t,this._options=i,this._updateState=e,this._editorWorkerService=s,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new pc((()=>this._update()),250)),this._register(this._editor.onDidChangeModelContent((()=>{this._updateSoon.schedule()}))),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII())return void this._decorations.clear();const t=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then((i=>{if(this._model.isDisposed())return;if(this._model.getVersionId()!==t)return;this._updateState(i);const e=[];if(!i.hasMore)for(const t of i.ranges)e.push({range:t,options:Ftt.instance.getDecorationFromOptions(this._options)});this._decorations.set(e)}))}getDecorationInfo(t){if(!this._decorations.has(t))return null;const i=this._editor.getModel();return RF(i,t)?{reason:Ltt(i.getValueInRange(t.range),this._options),inComment:OF(i,t),inString:IF(i,t)}:null}};Stt=ytt([ktt(3,vP)],Stt);class Dtt extends te{constructor(t,i,e){super(),this._editor=t,this._options=i,this._updateState=e,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new pc((()=>this._update()),250)),this._register(this._editor.onDidLayoutChange((()=>{this._updateSoon.schedule()}))),this._register(this._editor.onDidScrollChange((()=>{this._updateSoon.schedule()}))),this._register(this._editor.onDidChangeHiddenAreas((()=>{this._updateSoon.schedule()}))),this._register(this._editor.onDidChangeModelContent((()=>{this._updateSoon.schedule()}))),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII())return void this._decorations.clear();const t=this._editor.getVisibleRanges(),i=[],e={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const i of t){const t=Xf.computeUnicodeHighlights(this._model,this._options,i);for(const i of t.ranges)e.ranges.push(i);e.ambiguousCharacterCount+=e.ambiguousCharacterCount,e.invisibleCharacterCount+=e.invisibleCharacterCount,e.nonBasicAsciiCharacterCount+=e.nonBasicAsciiCharacterCount,e.hasMore=e.hasMore||t.hasMore}if(!e.hasMore)for(const t of e.ranges)i.push({range:t,options:Ftt.instance.getDecorationFromOptions(this._options)});this._updateState(e),this._decorations.set(i)}getDecorationInfo(t){if(!this._decorations.has(t))return null;const i=this._editor.getModel(),e=i.getValueInRange(t.range);return RF(i,t)?{reason:Ltt(e,this._options),inComment:OF(i,t),inString:IF(i,t)}:null}}let Ett=class{constructor(t,i,e){this._editor=t,this._languageService=i,this._openerService=e,this.hoverOrdinal=5}computeSync(t,i){if(!this._editor.hasModel()||1!==t.type)return[];const e=this._editor.getModel(),s=this._editor.getContribution(Ctt.ID);if(!s)return[];const n=[],o=new Set;let r=300;for(const t of i){const i=s.getDecorationInfo(t);if(!i)continue;const h=e.getValueInRange(t.range).codePointAt(0),c=Mtt(h);let a;switch(i.reason.kind){case 0:a=Eo(i.reason.confusableWith)?ot(0,"The character {0} could be confused with the ASCII character {1}, which is more common in source code.",c,Mtt(i.reason.confusableWith.codePointAt(0))):ot(0,"The character {0} could be confused with the character {1}, which is more common in source code.",c,Mtt(i.reason.confusableWith.codePointAt(0)));break;case 1:a=ot(0,"The character {0} is invisible.",c);break;case 2:a=ot(0,"The character {0} is not a basic ASCII character.",c)}if(o.has(a))continue;o.add(a);const l={codePoint:h,reason:i.reason,inComment:i.inComment,inString:i.inString},u=ot(0,"Adjust settings"),d=`command:${Ntt.ID}?${encodeURIComponent(JSON.stringify(l))}`,f=new N_("",!0).appendMarkdown(a).appendText(" ").appendLink(d,u);n.push(new UX(this,t.range,[f],!1,r++))}return n}renderHoverParts(t,i){return KX(t,i,this._editor,this._languageService,this._openerService)}};function Att(t){return`U+${t.toString(16).padStart(4,"0")}`}function Mtt(t){let i=`\`${Att(t)}\``;return Po.isInvisibleCharacter(t)||(i+=` "${function(t){return 96===t?"`` ` ``":"`"+String.fromCodePoint(t)+"`"}(t)}"`),i}function Ltt(t,i){return Xf.computeUnicodeHighlightReason(t,i)}Ett=ytt([ktt(1,yd),ktt(2,dP)],Ett);class Ftt{constructor(){this.map=new Map}getDecorationFromOptions(t){return this.getDecoration(!t.includeComments,!t.includeStrings)}getDecoration(t,i){const e=`${t}${i}`;let s=this.map.get(e);return s||(s=AL.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:t,hideInStringTokens:i}),this.map.set(e,s)),s}}Ftt.instance=new Ftt;class Ttt extends su{constructor(){super({id:Ott.ID,label:ot(0,"Disable highlighting of characters in comments"),alias:"Disable highlighting of characters in comments",precondition:void 0}),this.shortLabel=ot(0,"Disable Highlight In Comments")}async run(t,i,e){const s=null==t?void 0:t.get(pd);s&&this.runAction(s)}async runAction(t){await t.updateValue(Mi,!1,2)}}class Rtt extends su{constructor(){super({id:Ott.ID,label:ot(0,"Disable highlighting of characters in strings"),alias:"Disable highlighting of characters in strings",precondition:void 0}),this.shortLabel=ot(0,"Disable Highlight In Strings")}async run(t,i,e){const s=null==t?void 0:t.get(pd);s&&this.runAction(s)}async runAction(t){await t.updateValue(Li,!1,2)}}class Ott extends su{constructor(){super({id:Ott.ID,label:ot(0,"Disable highlighting of ambiguous characters"),alias:"Disable highlighting of ambiguous characters",precondition:void 0}),this.shortLabel=ot(0,"Disable Ambiguous Highlight")}async run(t,i,e){const s=null==t?void 0:t.get(pd);s&&this.runAction(s)}async runAction(t){await t.updateValue(Ai,!1,2)}}Ott.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters";class Itt extends su{constructor(){super({id:Itt.ID,label:ot(0,"Disable highlighting of invisible characters"),alias:"Disable highlighting of invisible characters",precondition:void 0}),this.shortLabel=ot(0,"Disable Invisible Highlight")}async run(t,i,e){const s=null==t?void 0:t.get(pd);s&&this.runAction(s)}async runAction(t){await t.updateValue(Di,!1,2)}}Itt.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters";class _tt extends su{constructor(){super({id:_tt.ID,label:ot(0,"Disable highlighting of non basic ASCII characters"),alias:"Disable highlighting of non basic ASCII characters",precondition:void 0}),this.shortLabel=ot(0,"Disable Non ASCII Highlight")}async run(t,i,e){const s=null==t?void 0:t.get(pd);s&&this.runAction(s)}async runAction(t){await t.updateValue(Ei,!1,2)}}_tt.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters";class Ntt extends su{constructor(){super({id:Ntt.ID,label:ot(0,"Show Exclude Options"),alias:"Show Exclude Options",precondition:void 0})}async run(t,i,e){const{codePoint:s,reason:n,inString:o,inComment:r}=e,h=String.fromCodePoint(s),c=t.get(Oj),a=t.get(pd),l=[];if(0===n.kind)for(const t of n.notAmbiguousInLocales)l.push({label:ot(0,'Allow unicode characters that are more common in the language "{0}".',t),run:async()=>{Btt(a,[t])}});if(l.push({label:function(t){return Po.isInvisibleCharacter(t)?ot(0,"Exclude {0} (invisible character) from being highlighted",Att(t)):ot(0,"Exclude {0} from being highlighted",`${Att(t)} "${h}"`)}(s),run:()=>async function(t,i){const e=t.getValue(Si);let s;s="object"==typeof e&&e?e:{};for(const t of i)s[String.fromCodePoint(t)]=!0;await t.updateValue(Si,s,2)}(a,[s])}),r){const t=new Ttt;l.push({label:t.label,run:async()=>t.runAction(a)})}else if(o){const t=new Rtt;l.push({label:t.label,run:async()=>t.runAction(a)})}if(0===n.kind){const t=new Ott;l.push({label:t.label,run:async()=>t.runAction(a)})}else if(1===n.kind){const t=new Itt;l.push({label:t.label,run:async()=>t.runAction(a)})}else if(2===n.kind){const t=new _tt;l.push({label:t.label,run:async()=>t.runAction(a)})}else!function(t){throw new Error(`Unexpected value: ${t}`)}(n);const u=await c.pick(l,{title:ot(0,"Configure Unicode Highlight Options")});u&&await u.run()}}async function Btt(t,i){var e;const s=null===(e=t.inspect(Fi).user)||void 0===e?void 0:e.value;let n;n="object"==typeof s&&s?Object.assign({},s):{};for(const t of i)n[t]=!0;await t.updateValue(Fi,n,2)}Ntt.ID="editor.action.unicodeHighlight.showExcludeOptions",cu(Ott),cu(Itt),cu(_tt),cu(Ntt),lu(Ctt.ID,Ctt,1),xX.register(Ett);var Ptt=function(t,i){return function(e,s){i(e,s,t)}};const $tt="ignoreUnusualLineTerminators";let Wtt=class extends te{constructor(t,i,e){super(),this._editor=t,this._dialogService=i,this._codeEditorService=e,this._isPresentingDialog=!1,this._config=this._editor.getOption(125),this._register(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(125)&&(this._config=this._editor.getOption(125),this._checkForUnusualLineTerminators())}))),this._register(this._editor.onDidChangeModel((()=>{this._checkForUnusualLineTerminators()}))),this._register(this._editor.onDidChangeModelContent((t=>{t.isUndoing||this._checkForUnusualLineTerminators()}))),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if("off"===this._config)return;if(!this._editor.hasModel())return;const t=this._editor.getModel();if(!t.mightContainUnusualLineTerminators())return;const i=function(t,i){return t.getModelProperty(i.uri,$tt)}(this._codeEditorService,t);if(!0===i)return;if(this._editor.getOption(90))return;if("auto"===this._config)return void t.removeUnusualLineTerminators(this._editor.getSelections());if(this._isPresentingDialog)return;let e;try{this._isPresentingDialog=!0,e=await this._dialogService.confirm({title:ot(0,"Unusual Line Terminators"),message:ot(0,"Detected unusual line terminators"),detail:ot(0,"The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.",bA(t.uri)),primaryButton:ot(0,"&&Remove Unusual Line Terminators"),cancelButton:ot(0,"Ignore")})}finally{this._isPresentingDialog=!1}e.confirmed?t.removeUnusualLineTerminators(this._editor.getSelections()):function(t,i){t.setModelProperty(i.uri,$tt,!0)}(this._codeEditorService,t)}};Wtt.ID="editor.contrib.unusualLineTerminatorsDetector",Wtt=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Ptt(1,JT),Ptt(2,fr)],Wtt),lu(Wtt.ID,Wtt,1);var jtt,ztt,Htt=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},Vtt=function(t,i){return function(e,s){i(e,s,t)}};const Utt=new ch("hasWordHighlights",!1);function qtt(t,i,e,s){return uc(t.ordered(i).map((t=>()=>Promise.resolve(t.provideDocumentHighlights(i,e,s)).then(void 0,Pi))),b).then((t=>{if(t){const e=new zp;return e.set(i.uri,t),e}return new zp}))}class Ktt{constructor(t,i,e){this._model=t,this._selection=i,this._wordSeparators=e,this._wordRange=this._getCurrentWordRange(t,i),this._result=null}get result(){return this._result||(this._result=nc((t=>this._compute(this._model,this._selection,this._wordSeparators,t)))),this._result}_getCurrentWordRange(t,i){const e=t.getWordAtPosition(i.getPosition());return e?new Ms(i.startLineNumber,e.startColumn,i.startLineNumber,e.endColumn):null}isValid(t,i,e){const s=i.startLineNumber,n=i.startColumn,o=i.endColumn,r=this._getCurrentWordRange(t,i);let h=Boolean(this._wordRange&&this._wordRange.equalsRange(r));for(let t=0,i=e.length;!h&&t=o&&(h=!0)}return h}cancel(){this.result.cancel()}}class Gtt extends Ktt{constructor(t,i,e,s){super(t,i,e),this._providers=s}_compute(t,i,e,s){return qtt(this._providers,t,i.getPosition(),s).then((t=>t||new zp))}}class Ztt extends Ktt{constructor(t,i,e,s,n){super(t,i,e),this._providers=s,this._otherModels=n}_compute(t,i,e,s){return function(t,i,e,s,n,o){return uc(t.ordered(i).map((t=>()=>{const s=o.filter((i=>XR(t.selector,i.uri,i.getLanguageId(),!0,void 0,void 0)>0));return Promise.resolve(t.provideMultiDocumentHighlights(i,e,s,n)).then(void 0,Pi)})),(t=>t instanceof zp&&t.size>0))}(this._providers,t,i.getPosition(),0,s,this._otherModels).then((t=>t||new zp))}}class Qtt extends Ktt{constructor(t,i,e,s,n){super(t,i,s),this._otherModels=n,this._selectionIsEmpty=i.isEmpty(),this._word=e}_compute(t,i,e,s){return ac(250,s).then((()=>{const s=new zp;let n;if(n=this._word?this._word:t.getWordAtPosition(i.getPosition()),!n)return new zp;const o=[t,...this._otherModels];for(const t of o){if(t.isDisposed())continue;const i=t.findMatches(n.word,!0,!1,!0,e,!1).map((t=>({range:t.range,kind:js.Text})));i&&s.set(t.uri,i)}return s}))}isValid(t,i,e){const s=i.isEmpty();return this._selectionIsEmpty===s&&super.isValid(t,i,e)}}ru("_executeDocumentHighlights",(async(t,i,e)=>{const s=t.get(xg),n=await qtt(s.documentHighlightProvider,i,e,ke.None);return null==n?void 0:n.get(i.uri)}));let Jtt=jtt=class{constructor(t,i,e,s,n){this.toUnhook=new Xi,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new zp,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=t,this.providers=i,this.multiDocumentProviders=e,this.codeEditorService=n,this._hasWordHighlights=Utt.bindTo(s),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(80),this.model=this.editor.getModel(),this.toUnhook.add(t.onDidChangeCursorPosition((t=>{this._ignorePositionChangeEvent||"off"!==this.occurrencesHighlight&&this._onPositionChanged(t)}))),this.toUnhook.add(t.onDidChangeModelContent((()=>{this._stopAll()}))),this.toUnhook.add(t.onDidChangeModel((t=>{!t.newModelUrl&&t.oldModelUrl?this._stopSingular():jtt.query&&this._run()}))),this.toUnhook.add(t.onDidChangeConfiguration((()=>{const t=this.editor.getOption(80);this.occurrencesHighlight!==t&&(this.occurrencesHighlight=t,this._stopAll())}))),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,jtt.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(){"off"!==this.occurrencesHighlight&&this._run()}_getSortedHighlights(){return this.decorations.getRanges().sort(Ms.compareRangesUsingStarts)}moveNext(){const t=this._getSortedHighlights(),i=t.findIndex((t=>t.containsPosition(this.editor.getPosition()))),e=(i+1)%t.length,s=t[e];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(s.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(s);const i=this._getWord();i&&Pm(`${this.editor.getModel().getLineContent(s.startLineNumber)}, ${e+1} of ${t.length} for '${i.word}'`)}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const t=this._getSortedHighlights(),i=t.findIndex((t=>t.containsPosition(this.editor.getPosition()))),e=(i-1+t.length)%t.length,s=t[e];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(s.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(s);const i=this._getWord();i&&Pm(`${this.editor.getModel().getLineContent(s.startLineNumber)}, ${e+1} of ${t.length} for '${i.word}'`)}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const t=jtt.storedDecorations.get(this.editor.getModel().uri);t&&(this.editor.removeDecorations(t),jtt.storedDecorations.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(){const t=this.codeEditorService.listCodeEditors();for(const i of t){if(!i.hasModel())continue;const t=jtt.storedDecorations.get(i.getModel().uri);if(!t)continue;i.removeDecorations(t),jtt.storedDecorations.delete(i.getModel().uri);const e=Ytt.get(i);(null==e?void 0:e.wordHighlighter)&&e.wordHighlighter.decorations.length>0&&(e.wordHighlighter.decorations.clear(),e.wordHighlighter._hasWordHighlights.set(!1))}}_stopSingular(){var t,i,e,s;this._removeSingleDecorations(),this.editor.hasWidgetFocus()&&((null===(t=this.editor.getModel())||void 0===t?void 0:t.uri.scheme)!==ka.vscodeNotebookCell&&(null===(e=null===(i=jtt.query)||void 0===i?void 0:i.modelInfo)||void 0===e?void 0:e.model.uri.scheme)!==ka.vscodeNotebookCell?(jtt.query=null,this._run()):(null===(s=jtt.query)||void 0===s?void 0:s.modelInfo)&&(jtt.query.modelInfo=null)),-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),null!==this.workerRequest&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_stopAll(){this._removeAllDecorations(),-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),null!==this.workerRequest&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(t){var i;"off"===this.occurrencesHighlight||3!==t.reason&&(null===(i=this.editor.getModel())||void 0===i?void 0:i.uri.scheme)!==ka.vscodeNotebookCell?this._stopAll():this._run()}_getWord(){const t=this.editor.getSelection(),i=t.startLineNumber,e=t.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber:i,column:e})}getOtherModelsToHighlight(t){if(!t)return[];if(t.uri.scheme===ka.vscodeNotebookCell){const i=[],e=this.codeEditorService.listCodeEditors();for(const s of e){const e=s.getModel();e&&e!==t&&e.uri.scheme===ka.vscodeNotebookCell&&i.push(e)}return i}const i=[],e=this.codeEditorService.listCodeEditors();for(const s of e){if(!EK(s))continue;const e=s.getModel();e&&t===e.modified&&i.push(e.modified)}if(i.length)return i;if("singleFile"===this.occurrencesHighlight)return[];for(const s of e){const e=s.getModel();e&&e!==t&&i.push(e)}return i}_run(){var t,i;let e;if(this.editor.hasWidgetFocus()){const t=this.editor.getSelection();if(!t||t.startLineNumber!==t.endLineNumber)return void this._stopAll();const i=t.startColumn,s=t.endColumn,n=this._getWord();if(!n||n.startColumn>i||n.endColumn{e===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=t||[],this._beginRenderDecorations())}),Bi)}}computeWithModel(t,i,e,s){return s.length?function(t,i,e,s,n,o){return t.has(i)?new Ztt(i,e,n,t,o):new Qtt(i,e,s,n,o)}(this.multiDocumentProviders,t,i,e,this.editor.getOption(129),s):function(t,i,e,s,n){return t.has(i)?new Gtt(i,e,n,t):new Qtt(i,e,s,n,[])}(this.providers,t,i,e,this.editor.getOption(129))}_beginRenderDecorations(){const t=(new Date).getTime(),i=this.lastCursorPositionChangeTime+250;t>=i?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout((()=>{this.renderDecorations()}),i-t)}renderDecorations(){var t,i,e;this.renderDecorationsTimer=-1;const s=this.codeEditorService.listCodeEditors();for(const o of s){const s=Ytt.get(o);if(!s)continue;const r=[],h=null===(t=o.getModel())||void 0===t?void 0:t.uri;if(h&&this.workerRequestValue.has(h)){const t=jtt.storedDecorations.get(h),c=this.workerRequestValue.get(h);if(c)for(const t of c)r.push({range:t.range,options:(n=t.kind,n===js.Write?x7:n===js.Text?C7:E7)});let a=[];o.changeDecorations((i=>{a=i.deltaDecorations(null!=t?t:[],r)})),jtt.storedDecorations=jtt.storedDecorations.set(h,a),r.length>0&&(null===(i=s.wordHighlighter)||void 0===i||i.decorations.set(r),null===(e=s.wordHighlighter)||void 0===e||e._hasWordHighlights.set(!0))}}var n}dispose(){this._stopSingular(),this.toUnhook.dispose()}};Jtt.storedDecorations=new zp,Jtt.query=null,Jtt=jtt=Htt([Vtt(4,fr)],Jtt);let Ytt=ztt=class extends te{static get(t){return t.getContribution(ztt.ID)}constructor(t,i,e,s){super(),this._wordHighlighter=null;const n=()=>{t.hasModel()&&!t.getModel().isTooLargeForTokenization()&&(this._wordHighlighter=new Jtt(t,e.documentHighlightProvider,e.multiDocumentHighlightProvider,i,s))};this._register(t.onDidChangeModel((()=>{this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),n()}))),n()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!(!this._wordHighlighter||!this._wordHighlighter.hasDecorations())}moveNext(){var t;null===(t=this._wordHighlighter)||void 0===t||t.moveNext()}moveBack(){var t;null===(t=this._wordHighlighter)||void 0===t||t.moveBack()}restoreViewState(t){this._wordHighlighter&&t&&this._wordHighlighter.restore()}dispose(){this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),super.dispose()}};Ytt.ID="editor.contrib.wordHighlighter",Ytt=ztt=Htt([Vtt(1,ah),Vtt(2,xg),Vtt(3,fr)],Ytt);class Xtt extends su{constructor(t,i){super(i),this._isNext=t}run(t,i){const e=Ytt.get(i);e&&(this._isNext?e.moveNext():e.moveBack())}}lu(Ytt.ID,Ytt,0),cu(class extends Xtt{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:ot(0,"Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:Utt,kbOpts:{kbExpr:YC.editorTextFocus,primary:65,weight:100}})}}),cu(class extends Xtt{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:ot(0,"Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:Utt,kbOpts:{kbExpr:YC.editorTextFocus,primary:1089,weight:100}})}}),cu(class extends su{constructor(){super({id:"editor.action.wordHighlight.trigger",label:ot(0,"Trigger Symbol Highlight"),alias:"Trigger Symbol Highlight",precondition:Utt.toNegated(),kbOpts:{kbExpr:YC.editorTextFocus,primary:0,weight:100}})}run(t,i,e){const s=Ytt.get(i);s&&s.restoreViewState(!0)}});class tit extends eu{constructor(t){super(t),this._inSelectionMode=t.inSelectionMode,this._wordNavigationType=t.wordNavigationType}runEditorCommand(t,i,e){if(!i.hasModel())return;const s=If(i.getOption(129)),n=i.getModel(),o=i.getSelections().map((t=>{const i=new As(t.positionLineNumber,t.positionColumn),e=this._move(s,n,i,this._wordNavigationType);return this._moveTo(t,e,this._inSelectionMode)}));if(n.pushStackElement(),i._getViewModel().setCursorStates("moveWordCommand",3,o.map((t=>gC.fromModelSelection(t)))),1===o.length){const t=new As(o[0].positionLineNumber,o[0].positionColumn);i.revealPosition(t,0)}}_moveTo(t,i,e){return e?new Ls(t.selectionStartLineNumber,t.selectionStartColumn,i.lineNumber,i.column):new Ls(i.lineNumber,i.column,i.lineNumber,i.column)}}class iit extends tit{_move(t,i,e,s){return FC.moveWordLeft(t,i,e,s)}}class eit extends tit{_move(t,i,e,s){return FC.moveWordRight(t,i,e,s)}}class sit extends eu{constructor(t){super(t),this._whitespaceHeuristics=t.whitespaceHeuristics,this._wordNavigationType=t.wordNavigationType}runEditorCommand(t,i,e){const s=t.get(Xd);if(!i.hasModel())return;const n=If(i.getOption(129)),o=i.getModel(),r=i.getSelections(),h=i.getOption(6),c=i.getOption(11),a=s.getLanguageConfiguration(o.getLanguageId()).getAutoClosingPairs(),l=i._getViewModel(),u=r.map((t=>{const e=this._delete({wordSeparators:n,model:o,selection:t,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:i.getOption(9),autoClosingBrackets:h,autoClosingQuotes:c,autoClosingPairs:a,autoClosedCharacters:l.getCursorAutoClosedCharacters()},this._wordNavigationType);return new xC(e,"")}));i.pushUndoStop(),i.executeCommands(this.id,u),i.pushUndoStop()}}class nit extends sit{_delete(t,i){return FC.deleteWordLeft(t,i)||new Ms(1,1,1,1)}}class oit extends sit{_delete(t,i){const e=FC.deleteWordRight(t,i);if(e)return e;const s=t.model.getLineCount(),n=t.model.getLineMaxColumn(s);return new Ms(s,n,s,n)}}hu(new class extends iit{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}),hu(new class extends iit{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}),hu(new class extends iit{constructor(){var t;super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:zr.and(YC.textInputFocus,null===(t=zr.and(Qm,bW))||void 0===t?void 0:t.negate()),primary:2063,mac:{primary:527},weight:100}})}}),hu(new class extends iit{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}),hu(new class extends iit{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}),hu(new class extends iit{constructor(){var t;super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:zr.and(YC.textInputFocus,null===(t=zr.and(Qm,bW))||void 0===t?void 0:t.negate()),primary:3087,mac:{primary:1551},weight:100}})}}),hu(new class extends eit{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}),hu(new class extends eit{constructor(){var t;super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:zr.and(YC.textInputFocus,null===(t=zr.and(Qm,bW))||void 0===t?void 0:t.negate()),primary:2065,mac:{primary:529},weight:100}})}}),hu(new class extends eit{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}),hu(new class extends eit{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}),hu(new class extends eit{constructor(){var t;super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:zr.and(YC.textInputFocus,null===(t=zr.and(Qm,bW))||void 0===t?void 0:t.negate()),primary:3089,mac:{primary:1553},weight:100}})}}),hu(new class extends eit{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}),hu(new class extends iit{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(t,i,e,s){return super._move(If(_i.wordSeparators.defaultValue),i,e,s)}}),hu(new class extends iit{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(t,i,e,s){return super._move(If(_i.wordSeparators.defaultValue),i,e,s)}}),hu(new class extends eit{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(t,i,e,s){return super._move(If(_i.wordSeparators.defaultValue),i,e,s)}}),hu(new class extends eit{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(t,i,e,s){return super._move(If(_i.wordSeparators.defaultValue),i,e,s)}}),hu(new class extends nit{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:YC.writable})}}),hu(new class extends nit{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:YC.writable})}}),hu(new class extends nit{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:YC.writable,kbOpts:{kbExpr:YC.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}),hu(new class extends oit{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:YC.writable})}}),hu(new class extends oit{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:YC.writable})}}),hu(new class extends oit{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:YC.writable,kbOpts:{kbExpr:YC.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}),cu(class extends su{constructor(){super({id:"deleteInsideWord",precondition:YC.writable,label:ot(0,"Delete Word"),alias:"Delete Word"})}run(t,i,e){if(!i.hasModel())return;const s=If(i.getOption(129)),n=i.getModel(),o=i.getSelections().map((t=>{const i=FC.deleteInsideWord(s,n,t);return new xC(i,"")}));i.pushUndoStop(),i.executeCommands(this.id,o),i.pushUndoStop()}});class rit extends tit{_move(t,i,e,s){return TC.moveWordPartLeft(t,i,e)}}Dr.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft"),Dr.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class hit extends tit{_move(t,i,e,s){return TC.moveWordPartRight(t,i,e)}}hu(new class extends sit{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:YC.writable,kbOpts:{kbExpr:YC.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(t,i){return TC.deleteWordPartLeft(t)||new Ms(1,1,1,1)}}),hu(new class extends sit{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:YC.writable,kbOpts:{kbExpr:YC.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(t,i){const e=TC.deleteWordPartRight(t);if(e)return e;const s=t.model.getLineCount(),n=t.model.getLineMaxColumn(s);return new Ms(s,n,s,n)}}),hu(new class extends rit{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:YC.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}),hu(new class extends rit{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:YC.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}),hu(new class extends hit{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:YC.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}),hu(new class extends hit{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:YC.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}});class cit extends te{constructor(t){super(),this.editor=t,this._register(this.editor.onDidAttemptReadOnlyEdit((()=>this._onDidAttemptReadOnlyEdit())))}_onDidAttemptReadOnlyEdit(){const t=gQ.get(this.editor);if(t&&this.editor.hasModel()){let i=this.editor.getOptions().get(91);i||(i=new N_(ot(0,this.editor.isSimpleWidget?"Cannot edit in read-only input":"Cannot edit in read-only editor"))),t.showMessage(i,this.editor.getPosition())}}}cit.ID="editor.contrib.readOnlyMessageController",lu(cit.ID,cit,2);class ait extends te{constructor(t){super(),this.editor=t,this.widget=null,Mt&&(this._register(t.onDidChangeConfiguration((()=>this.update()))),this.update())}update(){const t=!this.editor.getOption(90);!this.widget&&t?this.widget=new lit(this.editor):this.widget&&!t&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}}ait.ID="editor.contrib.iPadShowKeyboard";class lit extends te{constructor(t){super(),this.editor=t,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(Va(this._domNode,"touchstart",(()=>{this.editor.focus()}))),this._register(Va(this._domNode,"focus",(()=>{this.editor.focus()}))),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return lit.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}}lit.ID="editor.contrib.ShowKeyboardWidget",lu(ait.ID,ait,3);var uit,dit=function(t,i){return function(e,s){i(e,s,t)}};let fit=uit=class extends te{static get(t){return t.getContribution(uit.ID)}constructor(t,i,e){super(),this._editor=t,this._languageService=e,this._widget=null,this._register(this._editor.onDidChangeModel((()=>this.stop()))),this._register(this._editor.onDidChangeModelLanguage((()=>this.stop()))),this._register(Zs.onDidChange((()=>this.stop()))),this._register(this._editor.onKeyUp((t=>9===t.keyCode&&this.stop())))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new pit(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}};fit.ID="editor.contrib.inspectTokens",fit=uit=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([dit(1,rH),dit(2,yd)],fit);class pit extends te{constructor(t,i){super(),this.allowEditorOverflow=!0,this._editor=t,this._languageService=i,this._model=this._editor.getModel(),this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=function(t,i){const e=Zs.get(i);if(e)return e;const s=t.encodeLanguageId(i);return{getInitialState:()=>Ig,tokenize:(t,e,s)=>_g(i,s),tokenizeEncoded:(t,i,e)=>Ng(s,e)}}(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition((()=>this._compute(this._editor.getPosition())))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return pit._ID}_compute(t){const i=this._getTokensAtLine(t.lineNumber);let e=0;for(let s=i.tokens1.length-1;s>=0;s--)if(t.column-1>=i.tokens1[s].offset){e=s;break}let s=0;for(let e=i.tokens2.length>>>1;e>=0;e--)if(t.column-1>=i.tokens2[e<<1]){s=e;break}const n=this._model.getLineContent(t.lineNumber);let o="";e{const[i]=t.selectedItems;i&&this.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})}))),i.add(t.onDidChangeValue((t=>{const i=this.registry.getQuickAccessProvider(t.substr(git.PREFIX.length));i&&i.prefix&&i.prefix!==git.PREFIX&&this.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})}))),t.items=this.getQuickAccessProviders().filter((t=>t.prefix!==git.PREFIX)),i}getQuickAccessProviders(){return this.registry.getQuickAccessProviders().sort(((t,i)=>t.prefix.localeCompare(i.prefix))).flatMap((t=>this.createPicks(t)))}createPicks(t){return t.helpEntries.map((i=>{const e=i.prefix||t.prefix,s=e||"…";return{prefix:e,label:s,keybinding:i.commandId?this.keybindingService.lookupKeybinding(i.commandId):void 0,ariaLabel:ot(0,"{0}, {1}",s,i.description),description:i.description}}))}};wit.PREFIX="?",wit=git=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([mit(0,Oj),mit(1,oC)],wit),Dh.as(Lj).registerQuickAccessProvider({ctor:wit,prefix:"",helpEntries:[{description:eI.helpQuickAccessActionLabel}]});class vit{constructor(t){this.options=t,this.rangeHighlightDecorationId=void 0}provide(t,i){var e;const s=new Xi;t.canAcceptInBackground=!!(null===(e=this.options)||void 0===e?void 0:e.canAcceptInBackground),t.matchOnLabel=t.matchOnDescription=t.matchOnDetail=t.sortByLabel=!1;const n=s.add(new ie);return n.value=this.doProvide(t,i),s.add(this.onDidActiveTextEditorControlChange((()=>{n.value=void 0,n.value=this.doProvide(t,i)}))),s}doProvide(t,i){var e;const s=new Xi,n=this.activeTextEditorControl;if(n&&this.canProvideWithTextEditor(n)){const o={editor:n},r=AK(n);if(r){let t=null!==(e=n.saveViewState())&&void 0!==e?e:void 0;s.add(r.onDidChangeCursorPosition((()=>{var i;t=null!==(i=n.saveViewState())&&void 0!==i?i:void 0}))),o.restoreViewState=()=>{t&&n===this.activeTextEditorControl&&n.restoreViewState(t)},s.add(Gi(i.onCancellationRequested)((()=>{var t;return null===(t=o.restoreViewState)||void 0===t?void 0:t.call(o)})))}s.add(Yi((()=>this.clearDecorations(n)))),s.add(this.provideWithTextEditor(o,t,i))}else s.add(this.provideWithoutTextEditor(t,i));return s}canProvideWithTextEditor(t){return!0}gotoLocation({editor:t},i){t.setSelection(i.range),t.revealRangeInCenter(i.range,0),i.preserveFocus||t.focus();const e=t.getModel();e&&"getLineContent"in e&&$m(`${e.getLineContent(i.range.startLineNumber)}`)}getModel(t){var i;return EK(t)?null===(i=t.getModel())||void 0===i?void 0:i.modified:t.getModel()}addDecorations(t,i){t.changeDecorations((t=>{const e=[];this.rangeHighlightDecorationId&&(e.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),e.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const s=[{range:i,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:i,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:tx(Rx),position:_f.Full}}}],[n,o]=t.deltaDecorations(e,s);this.rangeHighlightDecorationId={rangeHighlightId:n,overviewRulerDecorationId:o}}))}clearDecorations(t){const i=this.rangeHighlightDecorationId;i&&(t.changeDecorations((t=>{t.deltaDecorations([i.overviewRulerDecorationId,i.rangeHighlightId],[])})),this.rangeHighlightDecorationId=void 0)}}class bit extends vit{constructor(){super({canAcceptInBackground:!0})}provideWithoutTextEditor(t){const i=ot(0,"Open a text editor first to go to a line.");return t.items=[{label:i}],t.ariaLabel=i,te.None}provideWithTextEditor(t,i,e){const s=t.editor,n=new Xi;n.add(i.onDidAccept((e=>{const[n]=i.selectedItems;if(n){if(!this.isValidLineNumber(s,n.lineNumber))return;this.gotoLocation(t,{range:this.toRange(n.lineNumber,n.column),keyMods:i.keyMods,preserveFocus:e.inBackground}),e.inBackground||i.hide()}})));const o=()=>{const t=this.parsePosition(s,i.value.trim().substr(bit.PREFIX.length)),e=this.getPickLabel(s,t.lineNumber,t.column);if(i.items=[{lineNumber:t.lineNumber,column:t.column,label:e}],i.ariaLabel=e,!this.isValidLineNumber(s,t.lineNumber))return void this.clearDecorations(s);const n=this.toRange(t.lineNumber,t.column);s.revealRangeInCenter(n,0),this.addDecorations(s,n)};o(),n.add(i.onDidChangeValue((()=>o())));const r=AK(s);return r&&2===r.getOptions().get(67).renderType&&(r.updateOptions({lineNumbers:"on"}),n.add(Yi((()=>r.updateOptions({lineNumbers:"relative"}))))),n}toRange(t=1,i=1){return{startLineNumber:t,startColumn:i,endLineNumber:t,endColumn:i}}parsePosition(t,i){const e=i.split(/,|:|#/).map((t=>parseInt(t,10))).filter((t=>!isNaN(t))),s=this.lineCount(t)+1;return{lineNumber:e[0]>0?e[0]:s+e[0],column:e[1]}}getPickLabel(t,i,e){if(this.isValidLineNumber(t,i))return this.isValidColumn(t,i,e)?ot(0,"Go to line {0} and character {1}.",i,e):ot(0,"Go to line {0}.",i);const s=t.getPosition()||{lineNumber:1,column:1},n=this.lineCount(t);return n>1?ot(0,"Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.",s.lineNumber,s.column,n):ot(0,"Current Line: {0}, Character: {1}. Type a line number to navigate to.",s.lineNumber,s.column)}isValidLineNumber(t,i){return!(!i||"number"!=typeof i)&&i>0&&i<=this.lineCount(t)}isValidColumn(t,i,e){if(!e||"number"!=typeof e)return!1;const s=this.getModel(t);if(!s)return!1;const n={lineNumber:i,column:e};return s.validatePosition(n).equals(n)}lineCount(t){var i,e;return null!==(e=null===(i=this.getModel(t))||void 0===i?void 0:i.getLineCount())&&void 0!==e?e:0}}bit.PREFIX=":";let yit=class extends bit{constructor(t){super(),this.editorService=t,this.onDidActiveTextEditorControlChange=he.None}get activeTextEditorControl(){var t;return null!==(t=this.editorService.getFocusedCodeEditor())&&void 0!==t?t:void 0}};yit=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(0,fr)],yit);class kit extends su{constructor(){super({id:kit.ID,label:iI.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:2085,mac:{primary:293},weight:100}})}run(t){t.get(Oj).quickAccess.show(yit.PREFIX)}}kit.ID="editor.action.gotoLine",cu(kit),Dh.as(Lj).registerQuickAccessProvider({ctor:yit,prefix:yit.PREFIX,helpEntries:[{description:iI.gotoLineActionLabel,commandId:kit.ID}]});const xit=[void 0,[]];function Cit(t,i,e=0,s=0){return i.values&&i.values.length>1?function(t,i,e,s){let n=0;const o=[];for(const r of i){const[i,h]=Sit(t,r,e,s);if("number"!=typeof i)return xit;n+=i,o.push(...h)}return[n,Dit(o)]}(t,i.values,e,s):Sit(t,i,e,s)}function Sit(t,i,e,s){const n=S_(i.original,i.originalLowercase,e,t,t.toLowerCase(),s,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return n?[n[0],l_(n)]:xit}function Dit(t){const i=t.sort(((t,i)=>t.start-i.start)),e=[];let s;for(const t of i)!s||((n=s).end<(o=t).start||o.end=0,r=Eit(t);let h;const c=t.split(Ait);if(c.length>1)for(const t of c){const i=Eit(t),{pathNormalized:e,normalized:s,normalizedLowercase:n}=Lit(t);s&&(h||(h=[]),h.push({original:t,originalLowercase:t.toLowerCase(),pathNormalized:e,normalized:s,normalizedLowercase:n,expectContiguousMatch:i}))}return{original:t,originalLowercase:i,pathNormalized:e,normalized:s,normalizedLowercase:n,values:h,containsPathSeparator:o,expectContiguousMatch:r}}function Lit(t){let i;i=t.replace(xt?/\//g:/\\/g,as);const e=(s=i,s.replace(/\*/g,"")).replace(/\s|"/g,"");var s;return{pathNormalized:i,normalized:e,normalizedLowercase:e.toLowerCase()}}function Fit(t){return Array.isArray(t)?Mit(t.map((t=>t.original)).join(Ait)):Mit(t.original)}var Tit,Rit=function(t,i){return function(e,s){i(e,s,t)}};let Oit=Tit=class extends vit{constructor(t,i,e=Object.create(null)){super(e),this._languageFeaturesService=t,this._outlineModelService=i,this.options=e,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(t){return this.provideLabelPick(t,ot(0,"To go to a symbol, first open a text editor with symbol information.")),te.None}provideWithTextEditor(t,i,e){const s=this.getModel(t.editor);return s?this._languageFeaturesService.documentSymbolProvider.has(s)?this.doProvideWithEditorSymbols(t,s,i,e):this.doProvideWithoutEditorSymbols(t,s,i,e):te.None}doProvideWithoutEditorSymbols(t,i,e,s){const n=new Xi;return this.provideLabelPick(e,ot(0,"The active text editor does not provide symbol information.")),(async()=>{await this.waitForLanguageSymbolRegistry(i,n)&&!s.isCancellationRequested&&n.add(this.doProvideWithEditorSymbols(t,i,e,s))})(),n}provideLabelPick(t,i){t.items=[{label:i,index:0,kind:14}],t.ariaLabel=i}async waitForLanguageSymbolRegistry(t,i){if(this._languageFeaturesService.documentSymbolProvider.has(t))return!0;const e=new bc,s=i.add(this._languageFeaturesService.documentSymbolProvider.onDidChange((()=>{this._languageFeaturesService.documentSymbolProvider.has(t)&&(s.dispose(),e.complete(!0))})));return i.add(Yi((()=>e.complete(!1)))),e.p}doProvideWithEditorSymbols(t,i,e,s){var n;const o=t.editor,r=new Xi;r.add(e.onDidAccept((i=>{const[s]=e.selectedItems;s&&s.range&&(this.gotoLocation(t,{range:s.range.selection,keyMods:e.keyMods,preserveFocus:i.inBackground}),i.inBackground||e.hide())}))),r.add(e.onDidTriggerItemButton((({item:i})=>{i&&i.range&&(this.gotoLocation(t,{range:i.range.selection,keyMods:e.keyMods,forceSideBySide:!0}),e.hide())})));const h=this.getDocumentSymbols(i,s);let c;const a=async t=>{null==c||c.dispose(!0),e.busy=!1,c=new Ce(s),e.busy=!0;try{const i=Mit(e.value.substr(Tit.PREFIX.length).trim()),n=await this.doGetSymbolPicks(h,i,void 0,c.token);if(s.isCancellationRequested)return;if(n.length>0){if(e.items=n,t&&0===i.original.length){const i=rp(n,(i=>Boolean("separator"!==i.type&&i.range&&Ms.containsPosition(i.range.decoration,t))));i&&(e.activeItems=[i])}}else this.provideLabelPick(e,ot(0,i.original.length>0?"No matching editor symbols":"No editor symbols"))}finally{s.isCancellationRequested||(e.busy=!1)}};return r.add(e.onDidChangeValue((()=>a(void 0)))),a(null===(n=o.getSelection())||void 0===n?void 0:n.getPosition()),r.add(e.onDidChangeActive((()=>{const[t]=e.activeItems;t&&t.range&&(o.revealRangeInCenter(t.range.selection,0),this.addDecorations(o,t.range.decoration))}))),r}async doGetSymbolPicks(t,i,e,s){var n,o;const r=await t;if(s.isCancellationRequested)return[];const h=0===i.original.indexOf(Tit.SCOPE_PREFIX),c=h?1:0;let a,l,u;i.values&&i.values.length>1?(a=Fit(i.values[0]),l=Fit(i.values.slice(1))):a=i;const d=null===(o=null===(n=this.options)||void 0===n?void 0:n.openSideBySideDirection)||void 0===o?void 0:o.call(n);d&&(u=[{iconClass:Cr.asClassName("right"===d?Os.splitHorizontal:Os.splitVertical),tooltip:ot(0,"right"===d?"Open to the Side":"Open to the Bottom")}]);const f=[];for(let v=0;vc){let L=!1;if(a!==i&&([C,S]=Cit(k,{...i,values:void 0},c,x),"number"==typeof C&&(L=!0)),"number"!=typeof C&&([C,S]=Cit(k,a,c,x),"number"!=typeof C))continue;if(!L&&l){if(A&&l.original.length>0&&([D,E]=Cit(A,l)),"number"!=typeof D)continue;"number"==typeof C&&(C+=D)}}const M=b.tags&&b.tags.indexOf(1)>=0;f.push({index:v,kind:b.kind,score:C,label:k,ariaLabel:(p=b.name,g=b.kind,ot(0,"{0} ({1})",p,Hs[g])),description:A,highlights:M?void 0:{label:S,description:E},range:{selection:Ms.collapseToStart(b.selectionRange),decoration:b.range},strikethrough:M,buttons:u})}var p,g;const m=f.sort(((t,i)=>h?this.compareByKindAndScore(t,i):this.compareByScore(t,i)));let w=[];if(h){let F,T,R=0;function O(){T&&"number"==typeof F&&R>0&&(T.label=qn(_it[F]||Iit,R))}for(const I of m)F!==I.kind?(O(),F=I.kind,R=1,T={type:"separator"},w.push(T)):R++,w.push(I);O()}else m.length>0&&(w=[{label:ot(0,"symbols ({0})",f.length),type:"separator"},...m]);return w}compareByScore(t,i){if("number"!=typeof t.score&&"number"==typeof i.score)return 1;if("number"==typeof t.score&&"number"!=typeof i.score)return-1;if("number"==typeof t.score&&"number"==typeof i.score){if(t.score>i.score)return-1;if(t.scorei.index?1:0}compareByKindAndScore(t,i){const e=(_it[t.kind]||Iit).localeCompare(_it[i.kind]||Iit);return 0===e?this.compareByScore(t,i):e}async getDocumentSymbols(t,i){const e=await this._outlineModelService.getOrCreate(t,i);return i.isCancellationRequested?[]:e.asListOfDocumentSymbols()}};Oit.PREFIX="@",Oit.SCOPE_PREFIX=":",Oit.PREFIX_BY_CATEGORY=`${Tit.PREFIX}${Tit.SCOPE_PREFIX}`,Oit=Tit=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Rit(0,xg),Rit(1,F5)],Oit);const Iit=ot(0,"properties ({0})"),_it={5:ot(0,"methods ({0})"),11:ot(0,"functions ({0})"),8:ot(0,"constructors ({0})"),12:ot(0,"variables ({0})"),4:ot(0,"classes ({0})"),22:ot(0,"structs ({0})"),23:ot(0,"events ({0})"),24:ot(0,"operators ({0})"),10:ot(0,"interfaces ({0})"),2:ot(0,"namespaces ({0})"),3:ot(0,"packages ({0})"),25:ot(0,"type parameters ({0})"),1:ot(0,"modules ({0})"),6:ot(0,"properties ({0})"),9:ot(0,"enumerations ({0})"),21:ot(0,"enumeration members ({0})"),14:ot(0,"strings ({0})"),0:ot(0,"files ({0})"),17:ot(0,"arrays ({0})"),15:ot(0,"numbers ({0})"),16:ot(0,"booleans ({0})"),18:ot(0,"objects ({0})"),19:ot(0,"keys ({0})"),7:ot(0,"fields ({0})"),13:ot(0,"constants ({0})")};var Nit=function(t,i){return function(e,s){i(e,s,t)}};let Bit=class extends Oit{constructor(t,i,e){super(i,e),this.editorService=t,this.onDidActiveTextEditorControlChange=he.None}get activeTextEditorControl(){var t;return null!==(t=this.editorService.getFocusedCodeEditor())&&void 0!==t?t:void 0}};Bit=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Nit(0,fr),Nit(1,xg),Nit(2,F5)],Bit);class Pit extends su{constructor(){super({id:Pit.ID,label:nI.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:YC.hasDocumentSymbolProvider,kbOpts:{kbExpr:YC.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(t){t.get(Oj).quickAccess.show(Oit.PREFIX,{itemActivation:Rj.NONE})}}function $it(t,i){return i&&(t.stack||t.stacktrace)?ot(0,"{0}: {1}",jit(t),Wit(t.stack)||Wit(t.stacktrace)):jit(t)}function Wit(t){return Array.isArray(t)?t.join("\n"):t}function jit(t){return"ERR_UNC_HOST_NOT_ALLOWED"===t.code?`${t.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:"string"==typeof t.code&&"number"==typeof t.errno&&"string"==typeof t.syscall?ot(0,"A system error occurred ({0})",t.message):t.message||ot(0,"An unknown error occurred. Please consult the log for more details.")}function zit(t=null,i=!1){if(!t)return ot(0,"An unknown error occurred. Please consult the log for more details.");if(Array.isArray(t)){const e=m(t),s=zit(e[0],i);return e.length>1?ot(0,"{0} ({1} errors in total)",s,e.length):s}if(B(t))return t;if(t.detail){const e=t.detail;if(e.error)return $it(e.error,i);if(e.exception)return $it(e.exception,i)}return t.stack?$it(t,i):t.message?t.message:ot(0,"An unknown error occurred. Please consult the log for more details.")}Pit.ID="editor.action.quickOutline",cu(Pit),Dh.as(Lj).registerQuickAccessProvider({ctor:Bit,prefix:Oit.PREFIX,helpEntries:[{description:nI.quickOutlineActionLabel,prefix:Oit.PREFIX,commandId:Pit.ID},{description:nI.quickOutlineByCategoryActionLabel,prefix:Oit.PREFIX_BY_CATEGORY}]});class Hit{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(t,i){const e=this.computeEmbedding(t),s=new Map,n=[];for(const[t,o]of this.documents){if(i.isCancellationRequested)return[];for(const i of o.chunks){const o=this.computeSimilarityScore(i,e,s);o>0&&n.push({key:t,score:o})}}return n}static termFrequencies(t){return function(t){var i;const e=new Map;for(const s of t)e.set(s,(null!==(i=e.get(s))&&void 0!==i?i:0)+1);return e}(Hit.splitTerms(t))}static*splitTerms(t){const i=t=>t.toLowerCase();for(const[e]of t.matchAll(/\b\p{Letter}[\p{Letter}\d]{2,}\b/gu)){yield i(e);const t=e.replace(/([a-z])([A-Z])/g,"$1 $2").split(/\s+/g);if(t.length>1)for(const e of t)e.length>2&&/\p{Letter}{3,}/gu.test(e)&&(yield i(e))}}updateDocuments(t){var i;for(const{key:i}of t)this.deleteDocument(i);for(const e of t){const t=[];for(const s of e.textChunks){const e=Hit.termFrequencies(s);for(const t of e.keys())this.chunkOccurrences.set(t,(null!==(i=this.chunkOccurrences.get(t))&&void 0!==i?i:0)+1);t.push({text:s,tf:e})}this.chunkCount+=t.length,this.documents.set(e.key,{chunks:t})}return this}deleteDocument(t){const i=this.documents.get(t);if(i){this.documents.delete(t),this.chunkCount-=i.chunks.length;for(const t of i.chunks)for(const i of t.tf.keys()){const t=this.chunkOccurrences.get(i);if("number"==typeof t){const e=t-1;e<=0?this.chunkOccurrences.delete(i):this.chunkOccurrences.set(i,e)}}}}computeSimilarityScore(t,i,e){let s=0;for(const[n,o]of Object.entries(i)){const i=t.tf.get(n);if(!i)continue;let r=e.get(n);"number"!=typeof r&&(r=this.computeIdf(n),e.set(n,r)),s+=i*r*o}return s}computeEmbedding(t){const i=Hit.termFrequencies(t);return this.computeTfidf(i)}computeIdf(t){var i;const e=null!==(i=this.chunkOccurrences.get(t))&&void 0!==i?i:0;return e>0?Math.log((this.chunkCount+1)/e):0}computeTfidf(t){const i=Object.create(null);for(const[e,s]of t){const t=this.computeIdf(e);t>0&&(i[e]=s*t)}return i}}var Vit;function Uit(t){return Array.isArray(t.items)}function qit(t){return!!t.picks&&t.additionalPicks instanceof Promise}!function(t){t[t.NO_ACTION=0]="NO_ACTION",t[t.CLOSE_PICKER=1]="CLOSE_PICKER",t[t.REFRESH_PICKER=2]="REFRESH_PICKER",t[t.REMOVE_ITEM=3]="REMOVE_ITEM"}(Vit||(Vit={}));class Kit extends te{constructor(t,i){super(),this.prefix=t,this.options=i}provide(t,i,e){var s;const n=new Xi;let o;t.canAcceptInBackground=!!(null===(s=this.options)||void 0===s?void 0:s.canAcceptInBackground),t.matchOnLabel=t.matchOnDescription=t.matchOnDetail=t.sortByLabel=!1;const r=n.add(new ie),h=async()=>{const s=r.value=new Xi;null==o||o.dispose(!0),t.busy=!1,o=new Ce(i);const n=o.token,h=t.value.substr(this.prefix.length).trim(),c=this._getPicks(h,s,n,e),a=(i,e)=>{var s;let n,o;if(Uit(i)?(n=i.items,o=i.active):n=i,0===n.length){if(e)return!1;(h.length>0||t.hideInput)&&(null===(s=this.options)||void 0===s?void 0:s.noResultsPick)&&(n=G(this.options.noResultsPick)?[this.options.noResultsPick(h)]:[this.options.noResultsPick])}return t.items=n,o&&(t.activeItems=[o]),!0},l=async i=>{let e=!1,s=!1;await Promise.all([(async()=>{"number"==typeof i.mergeDelay&&(await ac(i.mergeDelay),n.isCancellationRequested)||s||(e=a(i.picks,!0))})(),(async()=>{t.busy=!0;try{const s=await i.additionalPicks;if(n.isCancellationRequested)return;let o,r,h,c;if(Uit(i.picks)?(o=i.picks.items,r=i.picks.active):o=i.picks,Uit(s)?(h=s.items,c=s.active):h=s,h.length>0||!e){let i;if(!r&&!c){const e=t.activeItems[0];e&&-1!==o.indexOf(e)&&(i=e)}a({items:[...o,...h],active:r||c||i})}}finally{n.isCancellationRequested||(t.busy=!1),s=!0}})()])};if(null===c);else if(qit(c))await l(c);else if(c instanceof Promise){t.busy=!0;try{const t=await c;if(n.isCancellationRequested)return;qit(t)?await l(t):a(t)}finally{n.isCancellationRequested||(t.busy=!1)}}else a(c)};return n.add(t.onDidChangeValue((()=>h()))),h(),n.add(t.onDidAccept((i=>{const[e]=t.selectedItems;"function"==typeof(null==e?void 0:e.accept)&&(i.inBackground||t.hide(),e.accept(t.keyMods,i))}))),n.add(t.onDidTriggerItemButton((async({button:e,item:s})=>{var n,o;if("function"==typeof s.trigger){const r=null!==(o=null===(n=s.buttons)||void 0===n?void 0:n.indexOf(e))&&void 0!==o?o:-1;if(r>=0){const e=s.trigger(r,t.keyMods),n="number"==typeof e?e:await e;if(i.isCancellationRequested)return;switch(n){case Vit.NO_ACTION:break;case Vit.CLOSE_PICKER:t.hide();break;case Vit.REFRESH_PICKER:h();break;case Vit.REMOVE_ITEM:{const i=t.items.indexOf(s);if(-1!==i){const e=t.items.slice(),s=e.splice(i,1),n=t.activeItems.filter((t=>t!==s[0])),o=t.keepScrollPosition;t.keepScrollPosition=!0,t.items=e,n&&(t.activeItems=n),t.keepScrollPosition=o}break}}}}}))),n}}var Git,Zit,Qit=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},Jit=function(t,i){return function(e,s){i(e,s,t)}};let Yit=Git=class extends Kit{constructor(t,i,e,s,n,o){super(Git.PREFIX,t),this.instantiationService=i,this.keybindingService=e,this.commandService=s,this.telemetryService=n,this.dialogService=o,this.commandsHistory=this._register(this.instantiationService.createInstance(Xit)),this.options=t}async _getPicks(t,i,e,s){var n,o,r,h;const c=await this.getCommandPicks(e);if(e.isCancellationRequested)return[];const a=Gi((()=>{const i=new Hit;return i.updateDocuments(c.map((t=>({key:t.commandId,textChunks:[this.getTfIdfChunk(t)]})))),function(t){var i,e;const s=t.slice(0);s.sort(((t,i)=>i.score-t.score));const n=null!==(e=null===(i=s[0])||void 0===i?void 0:i.score)&&void 0!==e?e:0;if(n>0)for(const t of s)t.score/=n;return s}(i.calculateScores(t,e)).filter((t=>t.score>Git.TFIDF_THRESHOLD)).slice(0,Git.TFIDF_MAX_RESULTS)})),l=[];for(const i of c){const s=null!==(n=Git.WORD_FILTER(t,i.label))&&void 0!==n?n:void 0,r=i.commandAlias&&null!==(o=Git.WORD_FILTER(t,i.commandAlias))&&void 0!==o?o:void 0;if(s||r)i.highlights={label:s,detail:this.options.showAlias?r:void 0},l.push(i);else if(t===i.commandId)l.push(i);else if(t.length>=3){const t=a();if(e.isCancellationRequested)return[];const s=t.find((t=>t.key===i.commandId));s&&(i.tfIdfScore=s.score,l.push(i))}}const u=new Map;for(const t of l){const i=u.get(t.label);i?(t.description=t.commandId,i.description=i.commandId):u.set(t.label,t)}l.sort(((t,i)=>{if(t.tfIdfScore&&i.tfIdfScore)return t.tfIdfScore===i.tfIdfScore?t.label.localeCompare(i.label):i.tfIdfScore-t.tfIdfScore;if(t.tfIdfScore)return 1;if(i.tfIdfScore)return-1;const e=this.commandsHistory.peek(t.commandId),s=this.commandsHistory.peek(i.commandId);if(e&&s)return e>s?-1:1;if(e)return-1;if(s)return 1;if(this.options.suggestedCommandIds){const e=this.options.suggestedCommandIds.has(t.commandId),s=this.options.suggestedCommandIds.has(i.commandId);if(e&&s)return 0;if(e)return-1;if(s)return 1}return t.label.localeCompare(i.label)}));const d=[];let f=!1,p=!0,g=!!this.options.suggestedCommandIds;for(let t=0;t{var i;const n=await this.getAdditionalCommandPicks(c,l,t,e);if(e.isCancellationRequested)return[];const o=n.map((t=>this.toCommandPick(t,s)));return p&&"separator"!==(null===(i=o[0])||void 0===i?void 0:i.type)&&o.unshift({type:"separator",label:ot(0,"similar commands")}),o})()}:d}toCommandPick(t,i){if("separator"===t.type)return t;const e=this.keybindingService.lookupKeybinding(t.commandId),s=e?ot(0,"{0}, {1}",t.label,e.getAriaLabel()):t.label;return{...t,ariaLabel:s,detail:this.options.showAlias&&t.commandAlias!==t.label?t.commandAlias:void 0,keybinding:e,accept:async()=>{var e,s;this.commandsHistory.push(t.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:t.commandId,from:null!==(e=null==i?void 0:i.from)&&void 0!==e?e:"quick open"});try{(null===(s=t.args)||void 0===s?void 0:s.length)?await this.commandService.executeCommand(t.commandId,...t.args):await this.commandService.executeCommand(t.commandId)}catch(i){ji(i)||this.dialogService.error(ot(0,"Command '{0}' resulted in an error",t.label),zit(i))}}}}getTfIdfChunk({label:t,commandAlias:i,commandDescription:e}){let s=t;return i&&i!==t&&(s+=` - ${i}`),e&&e.value!==t&&(s+=` - ${e.value===e.original?e.value:`${e.value} (${e.original})`}`),s}};Yit.PREFIX=">",Yit.TFIDF_THRESHOLD=.5,Yit.TFIDF_MAX_RESULTS=5,Yit.WORD_FILTER=NI(BI,(function(t,i,e=!1){if(!i||0===i.length)return null;let s=null,n=0;for(t=t.toLowerCase(),i=i.toLowerCase();nthis.updateConfiguration(t)))),this._register(this.storageService.onWillSaveState((t=>{t.reason===MB.SHUTDOWN&&this.saveState()})))}updateConfiguration(t){t&&!t.affectsConfiguration("workbench.commandPalette.history")||(this.configuredCommandsHistoryLength=Zit.getConfiguredCommandHistoryLength(this.configurationService),Zit.cache&&Zit.cache.limit!==this.configuredCommandsHistoryLength&&(Zit.cache.limit=this.configuredCommandsHistoryLength,Zit.hasChanges=!0))}load(){const t=this.storageService.get(Zit.PREF_KEY_CACHE,0);let i;if(t)try{i=JSON.parse(t)}catch(t){}const e=Zit.cache=new Vp(this.configuredCommandsHistoryLength,1);if(i){let t;t=i.usesLRU?i.entries:i.entries.sort(((t,i)=>t.value-i.value)),t.forEach((t=>e.set(t.key,t.value)))}Zit.counter=this.storageService.getNumber(Zit.PREF_KEY_COUNTER,0,Zit.counter)}push(t){Zit.cache&&(Zit.cache.set(t,Zit.counter++),Zit.hasChanges=!0)}peek(t){var i;return null===(i=Zit.cache)||void 0===i?void 0:i.peek(t)}saveState(){if(!Zit.cache)return;if(!Zit.hasChanges)return;const t={usesLRU:!0,entries:[]};Zit.cache.forEach(((i,e)=>t.entries.push({key:e,value:i}))),this.storageService.store(Zit.PREF_KEY_CACHE,JSON.stringify(t),0,0),this.storageService.store(Zit.PREF_KEY_COUNTER,Zit.counter,0,0),Zit.hasChanges=!1}static getConfiguredCommandHistoryLength(t){var i,e;const s=null===(e=null===(i=t.getValue().workbench)||void 0===i?void 0:i.commandPalette)||void 0===e?void 0:e.history;return"number"==typeof s?s:Zit.DEFAULT_COMMANDS_HISTORY_LENGTH}};Xit.DEFAULT_COMMANDS_HISTORY_LENGTH=50,Xit.PREF_KEY_CACHE="commandPalette.mru.cache",Xit.PREF_KEY_COUNTER="commandPalette.mru.counter",Xit.counter=1,Xit.hasChanges=!1,Xit=Zit=Qit([Jit(0,AB),Jit(1,pd)],Xit);class tet extends Yit{constructor(t,i,e,s,n,o){super(t,i,e,s,n,o)}getCodeEditorCommandPicks(){const t=this.activeTextEditorControl;if(!t)return[];const i=[];for(const e of t.getSupportedActions())i.push({commandId:e.id,commandAlias:e.alias,label:R_(e.label)||e.id});return i}}var iet=function(t,i){return function(e,s){i(e,s,t)}};let eet=class extends tet{get activeTextEditorControl(){var t;return null!==(t=this.codeEditorService.getFocusedCodeEditor())&&void 0!==t?t:void 0}constructor(t,i,e,s,n,o){super({showAlias:!1},t,e,s,n,o),this.codeEditorService=i}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}};eet=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([iet(0,ur),iet(1,fr),iet(2,oC),iet(3,Sr),iet(4,Wh),iet(5,JT)],eet);class set extends su{constructor(){super({id:set.ID,label:sI.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(t){t.get(Oj).quickAccess.show(eet.PREFIX)}}set.ID="editor.action.quickCommand",cu(set),Dh.as(Lj).registerQuickAccessProvider({ctor:eet,prefix:eet.PREFIX,helpEntries:[{description:sI.quickCommandHelp,commandId:set.ID}]});var net=function(t,i){return function(e,s){i(e,s,t)}};let oet=class extends _Y{constructor(t,i,e,s,n,o,r){super(!0,t,i,e,s,n,o,r)}};oet=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([net(1,ah),net(2,fr),net(3,oT),net(4,ur),net(5,AB),net(6,pd)],oet),lu(_Y.ID,oet,4),cu(class extends su{constructor(){super({id:"editor.action.toggleHighContrast",label:rI.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}),this._originalThemeName=null}run(t,i){const e=t.get(rH),s=e.getColorTheme();zy(s.type)?(e.setTheme(this._originalThemeName||(Hy(s.type)?Jz:Qz)),this._originalThemeName=null):(e.setTheme(Hy(s.type)?Yz:Xz),this._originalThemeName=s.themeName)}});const ret=performance.getEntriesByType("resource").slice(-1)[0].name;self.MonacoEnvironment={getWorkerUrl:(t,i)=>`${ret.replace(/(.*\/).*?$/,"$1")}${"html"===i?"html":"editor"}.worker.js?t=${Date.now()}`};const het=class{constructor(i){t(this,i),this.monacoEditorDidLoad=o(this,"monacoEditorDidLoad",7),this.defaultOptions={language:"html",readOnly:!1,theme:"vs-light",scrollBeyondLastLine:!1,minimap:{enabled:!1},automaticLayout:!0,wordWrap:"on"},this.rendered=!1,this.options=void 0,this.initialValue="",this.tiptapEditor=void 0,this.updateInputValue=void 0}init(){const t=this.element.querySelector(":scope > *:first-of-type");this.monaco=JK.create(this.container,Object.assign({value:this.initialValue||(null==t?void 0:t.innerHTML.trim())||""},this.mergeOptions())),this.monaco.onDidChangeModelContent((()=>{var t,i,e;null===(t=this.tiptapEditor)||void 0===t||t.chain().setContent(null===(i=this.monaco)||void 0===i?void 0:i.getValue()).run(),null===(e=this.updateInputValue)||void 0===e||e.call(this)})),this.monacoEditorDidLoad.emit();let i=0;const e=setInterval((()=>{const t=this.monaco.getAction("editor.action.formatDocument");(t||++i>50)&&(null==t||t.run(),clearInterval(e))}),100)}connectedCallback(){this.rendered&&this.init()}componentDidLoad(){this.init(),this.rendered=!0}async disconnectedCallback(){return Boolean(this.monaco)?new Promise((t=>{var i;this.monaco.onDidDispose((()=>t())),null===(i=this.monaco.getModel())||void 0===i||i.dispose(),this.monaco.dispose()})):Promise.resolve()}onOptionsChange(){var t;null===(t=this.monaco)||void 0===t||t.updateOptions(this.mergeOptions())}async setFocus(){var t;null===(t=this.monaco)||void 0===t||t.focus()}async getValue(){var t;return null===(t=this.monaco)||void 0===t?void 0:t.getValue()}mergeOptions(){return Object.assign(Object.assign({},this.defaultOptions),this.options||{})}render(){return e(r,{key:"cd80178b2bf7795caaec0c96aa895419b675cb3f"},e("article",{key:"8406db710730148496161e93d66ff1a845beac99",ref:t=>this.container=t}))}get element(){return n(this)}static get watchers(){return{options:["onOptionsChange"]}}};het.style='/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56)\n * Released under the MIT license\n * https://github.com/microsoft/vscode/blob/main/LICENSE.txt\n *-----------------------------------------------------------*/.monaco-action-bar{white-space:nowrap;height:100%}.monaco-action-bar .actions-container{display:flex;margin:0 auto;padding:0;height:100%;width:100%;align-items:center}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar .action-item{display:block;align-items:center;justify-content:center;cursor:pointer;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar .action-item .codicon,.monaco-action-bar .action-item .icon{display:block}.monaco-action-bar .action-item .codicon{display:flex;align-items:center;width:16px;height:16px}.monaco-action-bar .action-label{display:flex;font-size:11px;padding:3px;border-radius:5px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover{opacity:.6}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{display:block;border-bottom:1px solid #bbb;padding-top:1px;margin-left:.8em;margin-right:.8em}.monaco-action-bar .action-item .action-label.separator{width:1px;height:16px;margin:5px 4px!important;cursor:default;min-width:1px;padding:0;background-color:#bbb}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{overflow:hidden;flex:1;max-width:170px;min-width:60px;display:flex;align-items:center;justify-content:center;margin-right:10px}.monaco-action-bar .action-item.action-dropdown-item{display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator{display:flex;align-items:center;cursor:default}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator>div{width:1px}.monaco-aria-container{position:absolute;left:-999em}.monaco-text-button{box-sizing:border-box;display:flex;width:100%;padding:4px;border-radius:2px;text-align:center;cursor:pointer;justify-content:center;align-items:center;border:1px solid var(--vscode-button-border,transparent);line-height:18px}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled,.monaco-button.disabled:focus{opacity:.4!important;cursor:default}.monaco-text-button .codicon{margin:0 .2em;color:inherit!important}.monaco-text-button.monaco-text-button-with-short-label{flex-direction:row;flex-wrap:wrap;padding:0 4px;overflow:hidden;height:28px}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label{flex-basis:100%}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{flex-grow:1;width:0;overflow:hidden}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label,.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{display:flex;justify-content:center;align-items:center;font-weight:400;font-style:inherit;padding:4px 0}.monaco-button-dropdown{display:flex;cursor:pointer}.monaco-button-dropdown.disabled{cursor:default}.monaco-button-dropdown>.monaco-button:focus{outline-offset:-1px!important}.monaco-button-dropdown.disabled>.monaco-button-dropdown-separator,.monaco-button-dropdown.disabled>.monaco-button.disabled,.monaco-button-dropdown.disabled>.monaco-button.disabled:focus{opacity:.4!important}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-right-width:0!important}.monaco-button-dropdown .monaco-button-dropdown-separator{padding:4px 0;cursor:default}.monaco-button-dropdown .monaco-button-dropdown-separator>div{height:100%;width:1px}.monaco-button-dropdown>.monaco-button.monaco-dropdown-button{border:1px solid var(--vscode-button-border,transparent);border-left-width:0!important;border-radius:0 2px 2px 0;display:flex;align-items:center}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-radius:2px 0 0 2px}.monaco-description-button{display:flex;flex-direction:column;align-items:center;margin:4px 5px}.monaco-description-button .monaco-button-description{font-style:italic;font-size:11px;padding:4px 20px}.monaco-description-button .monaco-button-description,.monaco-description-button .monaco-button-label{display:flex;justify-content:center;align-items:center}.monaco-description-button .monaco-button-description>.codicon,.monaco-description-button .monaco-button-label>.codicon{margin:0 .2em;color:inherit!important}.monaco-button-dropdown.default-colors>.monaco-button,.monaco-button.default-colors{color:var(--vscode-button-foreground);background-color:var(--vscode-button-background)}.monaco-button-dropdown.default-colors>.monaco-button:hover,.monaco-button.default-colors:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-button-dropdown.default-colors>.monaco-button.secondary,.monaco-button.default-colors.secondary{color:var(--vscode-button-secondaryForeground);background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors>.monaco-button.secondary:hover,.monaco-button.default-colors.secondary:hover{background-color:var(--vscode-button-secondaryHoverBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator{background-color:var(--vscode-button-background);border-top:1px solid var(--vscode-button-border);border-bottom:1px solid var(--vscode-button-border)}.monaco-button-dropdown.default-colors .monaco-button.secondary+.monaco-button-dropdown-separator{background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator>div{background-color:var(--vscode-button-separator)}@font-face{font-family:codicon;font-display:block;src:url(../base/browser/ui/codicons/codicon/codicon.ttf) format("truetype")}.codicon[class*=codicon-]{font:normal normal normal 16px/1 codicon;display:inline-block;text-decoration:none;text-rendering:auto;text-align:center;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none}.codicon-wrench-subaction{opacity:.5}@keyframes codicon-spin{to{transform:rotate(1turn)}}.codicon-gear.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin,.codicon-sync.codicon-modifier-spin{animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.context-view{position:absolute}.context-view.fixed{all:initial;font-family:inherit;font-size:13px;position:fixed;color:inherit}.monaco-count-badge{padding:3px 6px;border-radius:11px;font-size:11px;min-width:18px;min-height:18px;line-height:11px;font-weight:400;text-align:center;display:inline-block;box-sizing:border-box}.monaco-count-badge.long{padding:2px 3px;border-radius:2px;min-height:auto;line-height:normal}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{cursor:pointer;height:100%;display:flex;align-items:center;justify-content:center}.monaco-dropdown>.dropdown-label>.action-label.disabled{cursor:default}.monaco-dropdown-with-primary{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-primary>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:50%;background-repeat:no-repeat}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.hc-light .monaco-findInput.highlight-0 .controls,.monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-0 .1s linear 0s}.hc-light .monaco-findInput.highlight-1 .controls,.monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@keyframes monaco-findInput-highlight-0{0%{background:rgba(253,255,0,.8)}to{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:rgba(253,255,0,.8)}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:hsla(0,0%,100%,.44)}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:hsla(0,0%,100%,.44)}99%{background:transparent}}.monaco-hover{cursor:default;position:absolute;overflow:hidden;user-select:text;-webkit-user-select:text;box-sizing:border-box;animation:fadein .1s linear;line-height:1.5em;white-space:var(--vscode-hover-whiteSpace,normal)}.monaco-hover.hidden{display:none}.monaco-hover a:hover:not(.disabled){cursor:pointer}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){max-width:var(--vscode-hover-maxWidth,500px);word-wrap:break-word}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover .code,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6,.monaco-hover p,.monaco-hover ul{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-hover hr{box-sizing:border-box;border-left:0;border-right:0;margin:4px -8px -4px;height:1px}.monaco-hover .code:first-child,.monaco-hover p:first-child,.monaco-hover ul:first-child{margin-top:0}.monaco-hover .code:last-child,.monaco-hover p:last-child,.monaco-hover ul:last-child{margin-bottom:0}.monaco-hover ol,.monaco-hover ul{padding-left:20px}.monaco-hover li>p{margin-bottom:0}.monaco-hover li>ul{margin-top:0}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:var(--vscode-hover-sourceWhiteSpace,pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px}.monaco-hover .hover-row.status-bar .actions .action-container{margin-right:16px;cursor:pointer}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-hover .hover-contents a.code-link,.monaco-hover .hover-contents a.code-link:hover{color:inherit}.monaco-hover .hover-contents a.code-link:before{content:"("}.monaco-hover .hover-contents a.code-link:after{content:")"}.monaco-hover .hover-contents a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-foreground)}.monaco-hover .hover-contents a.code-link>span:hover{color:var(--vscode-textLink-activeForeground)}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{margin-bottom:4px;display:inline-block}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{pointer-events:none;opacity:.4;cursor:default}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-size:16px;background-position:0;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;line-height:inherit!important;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;flex-shrink:0}.monaco-icon-label-container.disabled{color:var(--vscode-disabledForeground)}.monaco-icon-label>.monaco-icon-label-container{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-suffix-container>.label-suffix{opacity:.7;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.7;margin-left:.5em;font-size:.9em;white-space:pre}.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{white-space:nowrap}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{font-style:italic}.monaco-icon-label.deprecated{text-decoration:line-through;opacity:.66}.monaco-icon-label.italic:after{font-style:italic}.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{text-decoration:line-through}.monaco-icon-label:after{opacity:.75;font-size:90%;font-weight:600;margin:auto 16px 0 5px;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description{opacity:.8}.monaco-inputbox{position:relative;display:block;padding:0;box-sizing:border-box;border-radius:2px;font-size:inherit}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px 6px}.monaco-inputbox>.ibwrapper{position:relative;width:100%;height:100%}.monaco-inputbox>.ibwrapper>.input{display:inline-block;box-sizing:border-box;width:100%;height:100%;line-height:inherit;border:none;font-family:inherit;font-size:inherit;resize:none;color:inherit}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{display:block;scrollbar-width:none;outline:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.ibwrapper>.mirror{position:absolute;display:inline-block;width:100%;top:0;left:0;box-sizing:border-box;white-space:pre-wrap;visibility:hidden;word-wrap:break-word}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{display:inline-block;overflow:hidden;text-align:left;width:100%;box-sizing:border-box;padding:.4em;font-size:12px;line-height:17px;margin-top:-1px;word-wrap:break-word}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;width:16px;height:16px}.monaco-keybinding{display:flex;align-items:center;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{display:inline-block;border-style:solid;border-width:1px;border-radius:3px;vertical-align:middle;font-size:11px;padding:3px 5px;margin:0 2px}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-list{position:relative;height:100%;width:100%;white-space:nowrap}.monaco-list.mouse-support{user-select:none;-webkit-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{position:relative;width:100%;height:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{width:auto;min-width:100%}.monaco-list-row{position:absolute;box-sizing:border-box;overflow:hidden;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list .monaco-scrollable-element>.scrollbar.vertical,.monaco-pane-view>.monaco-split-view2.vertical>.monaco-scrollable-element>.scrollbar.vertical{z-index:14}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0!important}.monaco-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute;z-index:1000}.monaco-list-type-filter-message{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;padding:40px 1em 1em;text-align:center;white-space:normal;opacity:.7;pointer-events:none}.monaco-list-type-filter-message:empty{display:none}.monaco-mouse-cursor-text{cursor:text}.monaco-progress-container{width:100%;height:2px;overflow:hidden}.monaco-progress-container .progress-bit{width:2%;height:2px;position:absolute;left:0;display:none}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{animation-name:progress;animation-duration:4s;animation-iteration-count:infinite;transform:translateZ(0);animation-timing-function:linear}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes progress{0%{transform:translateX(0) scaleX(1)}50%{transform:translateX(2500%) scaleX(3)}to{transform:translateX(4900%) scaleX(1)}}:root{--vscode-sash-size:4px;--vscode-sash-hover-size:4px}.monaco-sash{position:absolute;z-index:35;touch-action:none}.monaco-sash.disabled{pointer-events:none}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.vertical{cursor:ew-resize;top:0;width:var(--vscode-sash-size);height:100%}.monaco-sash.horizontal{cursor:ns-resize;left:0;width:100%;height:var(--vscode-sash-size)}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";height:calc(var(--vscode-sash-size)*2);width:calc(var(--vscode-sash-size)*2);z-index:100;display:block;cursor:all-scroll;position:absolute}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:calc(var(--vscode-sash-size)*-0.5);top:calc(var(--vscode-sash-size)*-1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{left:calc(var(--vscode-sash-size)*-0.5);bottom:calc(var(--vscode-sash-size)*-1)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{top:calc(var(--vscode-sash-size)*-0.5);left:calc(var(--vscode-sash-size)*-1)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{top:calc(var(--vscode-sash-size)*-0.5);right:calc(var(--vscode-sash-size)*-1)}.monaco-sash:before{content:"";pointer-events:none;position:absolute;width:100%;height:100%;background:transparent}.monaco-workbench:not(.reduce-motion) .monaco-sash:before{transition:background-color .1s ease-out}.monaco-sash.active:before,.monaco-sash.hover:before{background:var(--vscode-sash-hoverBorder)}.monaco-sash.vertical:before{width:var(--vscode-sash-hover-size);left:calc(50% - var(--vscode-sash-hover-size)/2)}.monaco-sash.horizontal:before{height:var(--vscode-sash-hover-size);top:calc(50% - var(--vscode-sash-hover-size)/2)}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:rgba(0,255,255,.2)}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{opacity:1;background:transparent;transition:opacity .1s linear;z-index:11}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{position:absolute;display:none}.monaco-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.monaco-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.scrollbar>.slider{background:var(--vscode-scrollbarSlider-background)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-scrollable-element>.scrollbar>.slider.active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-select-box{width:100%;cursor:pointer;border-radius:2px}.monaco-select-box-dropdown-container{font-size:13px;font-weight:400;text-transform:none}.monaco-action-bar .action-item.select-container{cursor:default}.monaco-action-bar .action-item .monaco-select-box{cursor:pointer;min-width:100px;min-height:18px;padding:2px 23px 2px 8px}.mac .monaco-action-bar .action-item .monaco-select-box{font-size:11px;border-radius:5px}.monaco-select-box-dropdown-padding{--dropdown-padding-top:1px;--dropdown-padding-bottom:1px}.hc-black .monaco-select-box-dropdown-padding,.hc-light .monaco-select-box-dropdown-padding{--dropdown-padding-top:3px;--dropdown-padding-bottom:4px}.monaco-select-box-dropdown-container{display:none;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown *{margin:0}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown a:focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown code{line-height:15px;font-family:var(--monaco-monospace-font)}.monaco-select-box-dropdown-container.visible{display:flex;flex-direction:column;text-align:left;width:1px;overflow:hidden;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container{flex:0 0 auto;align-self:flex-start;padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom);padding-left:1px;padding-right:1px;width:100%;overflow:hidden;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane{padding:5px}.hc-black .monaco-select-box-dropdown-container>.select-box-dropdown-list-container{padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom)}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row{cursor:pointer}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-text{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-detail{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left;opacity:.7}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-decorator-right{text-overflow:ellipsis;overflow:hidden;padding-right:10px;white-space:nowrap;float:right}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.visually-hidden{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control{flex:1 1 auto;align-self:flex-start;opacity:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div{overflow:hidden;max-height:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div>.option-text-width-control{padding-left:4px;padding-right:8px;white-space:nowrap}.monaco-split-view2{position:relative;width:100%;height:100%}.monaco-split-view2>.sash-container{position:absolute;width:100%;height:100%;pointer-events:none}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:auto}.monaco-split-view2>.monaco-scrollable-element{width:100%;height:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container{width:100%;height:100%;white-space:nowrap;position:relative}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{white-space:normal;position:absolute}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{content:" ";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--separator-border)}.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{display:flex;flex-direction:column;position:relative;height:100%;width:100%;white-space:nowrap;overflow:hidden}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table>.monaco-list{flex:1}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{width:100%;height:100%;font-weight:700;overflow:hidden;text-overflow:ellipsis}.monaco-table-td,.monaco-table-th{box-sizing:border-box;flex-shrink:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{content:"";position:absolute;left:calc(var(--vscode-sash-size)/2);width:0;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2,.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-custom-toggle{margin-left:2px;float:left;cursor:pointer;overflow:hidden;width:20px;height:20px;border-radius:3px;border:1px solid transparent;padding:1px;box-sizing:border-box;user-select:none;-webkit-user-select:none}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.hc-black .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle,.hc-light .monaco-custom-toggle:hover{background:none}.monaco-custom-toggle.monaco-checkbox{height:18px;width:18px;border:1px solid transparent;border-radius:3px;margin-right:9px;margin-left:0;padding:0;opacity:1;background-size:16px!important}.monaco-action-bar .checkbox-action-item{display:flex;align-items:center}.monaco-action-bar .checkbox-action-item>.monaco-custom-toggle.monaco-checkbox{margin-right:4px}.monaco-action-bar .checkbox-action-item>.checkbox-label{font-size:12px}.monaco-custom-toggle.monaco-checkbox:not(.checked):before{visibility:hidden}.monaco-toolbar{height:100%}.monaco-toolbar .toolbar-toggle-more{display:inline-block;padding:0}.monaco-tl-row{display:flex;height:100%;align-items:center;position:relative}.monaco-tl-row.disabled{cursor:default}.monaco-tl-indent{height:100%;position:absolute;top:0;left:16px;pointer-events:none}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{display:inline-block;box-sizing:border-box;height:100%;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-tl-indent>.indent-guide{transition:border-color .1s linear}.monaco-tl-contents,.monaco-tl-twistie{height:100%}.monaco-tl-twistie{font-size:10px;text-align:right;padding-right:6px;flex-shrink:0;width:16px;display:flex!important;align-items:center;justify-content:center;transform:translateX(3px)}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:codicon-spin 1.25s steps(30) infinite}.monaco-tree-type-filter{position:absolute;top:0;display:flex;padding:3px;max-width:200px;z-index:100;margin:0 6px;border:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter{transition:top .3s}.monaco-tree-type-filter.disabled{top:-40px!important}.monaco-tree-type-filter-grab{display:flex!important;align-items:center;justify-content:center;cursor:grab;margin-right:2px}.monaco-tree-type-filter-grab.grabbing{cursor:grabbing}.monaco-tree-type-filter-input{flex:1}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.input,.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.mirror{padding:2px 4px}.monaco-tree-type-filter-input .monaco-findInput>.controls{top:2px}.monaco-tree-type-filter-actionbar{margin-left:4px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{position:absolute;top:0;left:0;width:100%;height:0;z-index:13;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{position:absolute;width:100%;opacity:1!important;overflow:hidden;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{background-color:var(--vscode-list-hoverBackground)!important;cursor:pointer}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow{position:absolute;bottom:-3px;left:0;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-editor .inputarea{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent;z-index:-10}.monaco-editor .inputarea.ime-input{z-index:10;caret-color:var(--vscode-editorCursor-foreground);color:var(--vscode-editor-foreground)}.monaco-editor .blockDecorations-container{position:absolute;top:0;pointer-events:none}.monaco-editor .blockDecorations-block{position:absolute;box-sizing:border-box}.monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{display:block;position:absolute;left:0;top:0;box-sizing:border-box}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .glyph-margin-widgets .cgmr{position:absolute;display:flex;align-items:center;justify-content:center}.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin:before{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.monaco-editor .lines-content .core-guide{position:absolute;box-sizing:border-box}.monaco-editor .margin-view-overlays .line-numbers{font-variant-numeric:tabular-nums;position:absolute;text-align:right;display:inline-block;vertical-align:middle;box-sizing:border-box;cursor:default;height:100%}.monaco-editor .relative-current-line-number{text-align:left;display:inline-block;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor .line-numbers{color:var(--vscode-editorLineNumber-foreground)}.monaco-editor .line-numbers.active-line-number{color:var(--vscode-editorLineNumber-activeForeground)}.mtkcontrol{color:#fff!important;background:#960000!important}.mtkoverflow{background-color:var(--vscode-button-background,var(--vscode-editor-background));color:var(--vscode-button-foreground,var(--vscode-editor-foreground));border:1px solid var(--vscode-contrastBorder);border-radius:2px;padding:4px;cursor:pointer}.mtkoverflow:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{user-select:none;-webkit-user-select:none}.monaco-editor.mac .lines-content:hover,.monaco-editor.mac .view-line:hover,.monaco-editor.mac .view-lines:hover{user-select:text;-webkit-user-select:text;-ms-user-select:text}.monaco-editor.enable-user-select{user-select:initial;-webkit-user-select:initial}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .mtkw,.monaco-editor .mtkz{color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .mtkz{display:inline-block}.monaco-editor .lines-decorations{position:absolute;top:0;background:#fff}.monaco-editor .margin-view-overlays .cldr{position:absolute;height:100%}.monaco-editor .margin{background-color:var(--vscode-editorGutter-background)}.monaco-editor .margin-view-overlays .cmdr{position:absolute;left:0;width:100%;height:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover .minimap-slider.active,.monaco-editor .minimap.slider-mouseover:hover .minimap-slider{opacity:1}.monaco-editor .minimap-slider .minimap-slider-horizontal{background:var(--vscode-minimapSlider-background)}.monaco-editor .minimap-slider:hover .minimap-slider-horizontal{background:var(--vscode-minimapSlider-hoverBackground)}.monaco-editor .minimap-slider.active .minimap-slider-horizontal{background:var(--vscode-minimapSlider-activeBackground)}.monaco-editor .minimap-shadow-visible{box-shadow:var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{position:absolute;left:-6px;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{position:absolute;left:-1px;width:1px}.minimap.autohide{opacity:0;transition:opacity .5s}.minimap.autohide:hover{opacity:1}.monaco-editor .minimap{z-index:5}.monaco-editor .overlayWidgets{position:absolute;top:0;left:0}.monaco-editor .view-ruler{position:absolute;top:0;box-shadow:1px 0 0 0 var(--vscode-editorRuler-foreground) inset}.monaco-editor .scroll-decoration{position:absolute;top:0;left:0;height:6px;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.monaco-editor .selected-text{background-color:var(--vscode-editor-inactiveSelectionBackground)}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{position:absolute;overflow:hidden;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{border-bottom-width:2px;border-bottom-style:solid;background:transparent!important}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{border-bottom-width:1px;border-bottom-style:solid;background:transparent!important}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-editor .mwh{position:absolute;color:var(--vscode-editorWhitespace-foreground)!important}.monaco-diff-editor .diff-review-line-number{text-align:right;display:inline-block;color:var(--vscode-editorLineNumber-foreground)}.monaco-diff-editor .diff-review{position:absolute;user-select:none;-webkit-user-select:none;z-index:99}.monaco-diff-editor .diff-review-summary{padding-left:10px}.monaco-diff-editor .diff-review-shadow{position:absolute;box-shadow:var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset}.monaco-diff-editor .diff-review-row{white-space:pre}.monaco-diff-editor .diff-review-table{display:table;min-width:100%}.monaco-diff-editor .diff-review-row{display:table-row;width:100%}.monaco-diff-editor .diff-review-spacer{display:inline-block;width:10px;vertical-align:middle}.monaco-diff-editor .diff-review-spacer>.codicon{font-size:9px!important}.monaco-diff-editor .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px;z-index:100}.monaco-diff-editor .diff-review-actions .action-label{width:16px;height:16px;margin:2px 0}.monaco-diff-editor .revertButton{cursor:pointer}.monaco-editor .diff-hidden-lines-widget{width:100%}.monaco-editor .diff-hidden-lines{height:0;transform:translateY(-10px);font-size:13px;line-height:14px}.monaco-editor .diff-hidden-lines .bottom.dragging,.monaco-editor .diff-hidden-lines .top.dragging,.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover{background-color:var(--vscode-focusBorder)}.monaco-editor .diff-hidden-lines .bottom,.monaco-editor .diff-hidden-lines .top{transition:background-color .1s ease-out;height:4px;background-color:transparent;background-clip:padding-box;border-bottom:2px solid transparent;border-top:4px solid transparent}.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom),.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *{cursor:n-resize!important}.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom,.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *{cursor:s-resize!important}.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom,.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *{cursor:ns-resize!important}.monaco-editor .diff-hidden-lines .top{transform:translateY(4px)}.monaco-editor .diff-hidden-lines .bottom{transform:translateY(-6px)}.monaco-editor .diff-unchanged-lines{background:var(--vscode-diffEditor-unchangedCodeBackground)}.monaco-editor .noModificationsOverlay{z-index:1;background:var(--vscode-editor-background);display:flex;justify-content:center;align-items:center}.monaco-editor .diff-hidden-lines .center{background:var(--vscode-diffEditor-unchangedRegionBackground);color:var(--vscode-diffEditor-unchangedRegionForeground);overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;height:24px;box-shadow:inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow),inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow)}.monaco-editor .diff-hidden-lines .center span.codicon{vertical-align:middle}.monaco-editor .diff-hidden-lines .center a:hover .codicon{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .diff-hidden-lines div.breadcrumb-item{cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover{color:var(--vscode-editorLink-activeForeground)}.monaco-editor .movedModified,.monaco-editor .movedOriginal{border:2px solid var(--vscode-diffEditor-move-border)}.monaco-editor .movedModified.currentMove,.monaco-editor .movedOriginal.currentMove{border:2px solid var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path.currentMove{stroke:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path{pointer-events:visiblestroke}.monaco-diff-editor .moved-blocks-lines .arrow{fill:var(--vscode-diffEditor-move-border)}.monaco-diff-editor .moved-blocks-lines .arrow.currentMove{fill:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines .arrow-rectangle{fill:var(--vscode-editor-background)}.monaco-diff-editor .moved-blocks-lines{position:absolute;pointer-events:none}.monaco-diff-editor .moved-blocks-lines path{fill:none;stroke:var(--vscode-diffEditor-move-border);stroke-width:2}.monaco-editor .char-delete.diff-range-empty{margin-left:-1px;border-left:3px solid var(--vscode-diffEditor-removedTextBackground)}.monaco-editor .char-insert.diff-range-empty{border-left:3px solid var(--vscode-diffEditor-insertedTextBackground)}.monaco-editor .fold-unchanged{cursor:pointer}.monaco-diff-editor .diff-moved-code-block{display:flex;justify-content:flex-end;margin-top:-4px}.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon{width:12px;height:12px;font-size:12px}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:rgba(0,0,0,.03)}.monaco-diff-editor.vs-dark .diffOverview{background:hsla(0,0%,100%,.01)}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar{background:transparent}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:hsla(0,0%,67.1%,.4)}.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .slider.active{background:none}.monaco-diff-editor .delete-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-editor .insert-sign{font-size:11px!important;opacity:.7!important;display:flex!important;align-items:center}.monaco-diff-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-diff-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-editor.hc-light .insert-sign{opacity:1}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone{text-align:right}.monaco-editor .arrow-revert-change{z-index:10;position:absolute}.monaco-editor .arrow-revert-change:hover{cursor:pointer}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-diff-editor .char-insert,.monaco-editor .char-insert{background-color:var(--vscode-diffEditor-insertedTextBackground)}.monaco-diff-editor .line-insert,.monaco-editor .line-insert{background-color:var(--vscode-diffEditor-insertedLineBackground,var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .char-insert,.monaco-editor .line-insert{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-insertedTextBorder)}.monaco-editor.hc-black .char-insert,.monaco-editor.hc-black .line-insert,.monaco-editor.hc-light .char-insert,.monaco-editor.hc-light .line-insert{border-style:dashed}.monaco-editor .char-delete,.monaco-editor .line-delete{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-removedTextBorder)}.monaco-editor.hc-black .char-delete,.monaco-editor.hc-black .line-delete,.monaco-editor.hc-light .char-delete,.monaco-editor.hc-light .line-delete{border-style:dashed}.monaco-diff-editor .gutter-insert,.monaco-editor .gutter-insert,.monaco-editor .inline-added-margin-view-zone{background-color:var(--vscode-diffEditorGutter-insertedLineBackground,var(--vscode-diffEditor-insertedLineBackground),var(--vscode-diffEditor-insertedTextBackground))}.monaco-diff-editor .char-delete,.monaco-editor .char-delete{background-color:var(--vscode-diffEditor-removedTextBackground)}.monaco-diff-editor .line-delete,.monaco-editor .line-delete{background-color:var(--vscode-diffEditor-removedLineBackground,var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor .gutter-delete,.monaco-editor .gutter-delete,.monaco-editor .inline-deleted-margin-view-zone{background-color:var(--vscode-diffEditorGutter-removedLineBackground,var(--vscode-diffEditor-removedLineBackground),var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor.side-by-side .editor.modified{box-shadow:-6px 0 5px -5px var(--vscode-scrollbar-shadow);border-left:1px solid var(--vscode-diffEditor-border)}.monaco-diff-editor .diffViewport{background:var(--vscode-scrollbarSlider-background)}.monaco-diff-editor .diffViewport:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-diff-editor .diffViewport:active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .diagonal-fill{background-image:linear-gradient(-45deg,var(--vscode-diffEditor-diagonalFill) 12.5%,transparent 0,transparent 50%,var(--vscode-diffEditor-diagonalFill) 0,var(--vscode-diffEditor-diagonalFill) 62.5%,transparent 0,transparent);background-size:8px 8px}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{position:relative;overflow:visible;-webkit-text-size-adjust:100%;color:var(--vscode-editor-foreground)}.monaco-editor,.monaco-editor-background{background-color:var(--vscode-editor-background)}.monaco-editor .rangeHighlight{background-color:var(--vscode-editor-rangeHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-rangeHighlightBorder)}.monaco-editor.hc-black .rangeHighlight,.monaco-editor.hc-light .rangeHighlight{border-style:dotted}.monaco-editor .symbolHighlight{background-color:var(--vscode-editor-symbolHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-symbolHighlightBorder)}.monaco-editor.hc-black .symbolHighlight,.monaco-editor.hc-light .symbolHighlight{border-style:dotted}.monaco-editor .overflow-guard{position:relative;overflow:hidden}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .squiggly-error{border-bottom:4px double var(--vscode-editorError-border)}.monaco-editor .squiggly-error:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorError-background)}.monaco-editor .squiggly-warning{border-bottom:4px double var(--vscode-editorWarning-border)}.monaco-editor .squiggly-warning:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorWarning-background)}.monaco-editor .squiggly-info{border-bottom:4px double var(--vscode-editorInfo-border)}.monaco-editor .squiggly-info:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorInfo-background)}.monaco-editor .squiggly-hint{border-bottom:2px dotted var(--vscode-editorHint-border)}.monaco-editor.showUnused .squiggly-unnecessary{border-bottom:2px dashed var(--vscode-editorUnnecessaryCode-border)}.monaco-editor.showDeprecated .squiggly-inline-deprecated{text-decoration:line-through;text-decoration-color:var(--vscode-editor-foreground,inherit)}.monaco-component .multiDiffEntry{display:flex;flex-direction:column}.monaco-component .multiDiffEntry .editorParent{border-left:2px solid var(--vscode-tab-inactiveBackground)}.monaco-component .multiDiffEntry.focused .editorParent{border-left:2px solid var(--vscode-notebook-focusedCellBorder)}.monaco-component .multiDiffEntry .editorParent .editorContainer{border-left:17px solid var(--vscode-tab-inactiveBackground)}.monaco-component .multiDiffEntry .collapse-button{margin:0 5px;cursor:pointer}.monaco-component .multiDiffEntry .collapse-button a{display:block}.monaco-component .multiDiffEntry .header{display:flex;align-items:center;padding:8px 5px;color:var(--vscode-foreground);background:var(--vscode-editor-background);z-index:1000;border-bottom:1px solid var(--vscode-sideBarSectionHeader-border);border-top:1px solid var(--vscode-sideBarSectionHeader-border);border-left:2px solid var(--vscode-editor-background)}.monaco-component .multiDiffEntry.focused .header{border-left:2px solid var(--vscode-notebook-focusedCellBorder)}.monaco-component .multiDiffEntry .header.shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px}.monaco-component .multiDiffEntry .header .title{flex:1;font-size:14px;line-height:22px}.monaco-component .multiDiffEntry .header .actions{padding:0 8px}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .bracket-match{box-sizing:border-box;background-color:var(--vscode-editorBracketMatch-background);border:1px solid var(--vscode-editorBracketMatch-border)}.monaco-editor .lightBulbWidget{display:flex;align-items:center;justify-content:center}.monaco-editor .lightBulbWidget:hover{cursor:pointer}.monaco-editor .lightBulbWidget.codicon-light-bulb,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix{color:var(--vscode-editorLightBulbAutoFix-foreground,var(--vscode-editorLightBulb-foreground))}.monaco-editor .lightBulbWidget.codicon-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground,var(--vscode-icon-foreground))}.monaco-editor .lightBulbWidget:before{position:relative;z-index:2}.monaco-editor .lightBulbWidget:after{position:absolute;top:0;left:0;content:"";display:block;width:100%;height:100%;opacity:.3;background-color:var(--vscode-editor-background);z-index:1}.monaco-editor .codelens-decoration{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize);padding-right:calc(var(--vscode-editorCodeLens-fontSize)*0.5);font-feature-settings:var(--vscode-editorCodeLens-fontFeatureSettings);font-family:var(--vscode-editorCodeLens-fontFamily),var(--vscode-editorCodeLens-fontFamilyDefault)}.monaco-editor .codelens-decoration>a,.monaco-editor .codelens-decoration>span{user-select:none;-webkit-user-select:none;white-space:nowrap;vertical-align:sub}.monaco-editor .codelens-decoration>a{text-decoration:none}.monaco-editor .codelens-decoration>a:hover{cursor:pointer}.monaco-editor .codelens-decoration>a:hover,.monaco-editor .codelens-decoration>a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration .codicon{vertical-align:middle;color:currentColor!important;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize)}.monaco-editor .codelens-decoration>a:hover .codicon:before{cursor:pointer}@keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{animation:fadein .1s linear}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:.1em solid #000;box-sizing:border-box;margin:.1em .2em 0;width:.8em;height:.8em;line-height:.8em;display:inline-block;cursor:pointer}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:.1em solid #eee}.colorpicker-header{display:flex;height:24px;position:relative;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-header .picked-color{width:240px;display:flex;align-items:center;justify-content:center;line-height:24px;cursor:pointer;color:#fff;flex:1;white-space:nowrap;overflow:hidden}.colorpicker-header .picked-color .picked-color-presentation{white-space:nowrap;margin-left:5px;margin-right:5px}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{width:74px;z-index:inherit;cursor:pointer}.standalone-colorpicker{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header.standalone-colorpicker{border-bottom:none}.colorpicker-header .close-button{cursor:pointer;background-color:var(--vscode-editorHoverWidget-background);border-left:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header .close-button-inner-div{width:100%;height:100%;text-align:center}.colorpicker-header .close-button-inner-div:hover{background-color:var(--vscode-toolbar-hoverBackground)}.colorpicker-header .close-icon{padding:3px}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{overflow:hidden;height:150px;position:relative;min-width:220px;flex:1}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{width:9px;height:9px;margin:-5px 0 0 -5px;border:1px solid #fff;border-radius:100%;box-shadow:0 0 2px rgba(0,0,0,.8);position:absolute}.colorpicker-body .strip{width:25px;height:150px}.colorpicker-body .standalone-strip{width:25px;height:122px}.colorpicker-body .hue-strip{position:relative;margin-left:8px;cursor:grab;background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.colorpicker-body .opacity-strip{position:relative;margin-left:8px;cursor:grab;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-body .strip.grabbing{cursor:grabbing}.colorpicker-body .slider{position:absolute;top:0;left:-2px;width:calc(100% + 4px);height:4px;box-sizing:border-box;border:1px solid hsla(0,0%,100%,.71);box-shadow:0 0 1px rgba(0,0,0,.85)}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.colorpicker-body .standalone-strip .standalone-overlay{height:122px;pointer-events:none}.standalone-colorpicker-body{display:block;border:1px solid transparent;border-bottom:1px solid var(--vscode-editorHoverWidget-border);overflow:hidden}.colorpicker-body .insert-button{position:absolute;height:20px;width:58px;padding:0;right:8px;bottom:8px;background:var(--vscode-button-background);color:var(--vscode-button-foreground);border-radius:2px;border:none;cursor:pointer}.colorpicker-body .insert-button:hover{background:var(--vscode-button-hoverBackground)}.monaco-editor.hc-light .dnd-target,.monaco-editor.vs .dnd-target{border-right:2px dotted #000;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #aeafad;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.hc-light.mac.mouse-default .view-lines,.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines{cursor:default}.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.hc-light.mac.mouse-copy .view-lines,.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines{cursor:copy}.post-edit-widget{box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:1px solid var(--vscode-widget-border,transparent);border-radius:4px;background-color:var(--vscode-editorWidget-background);overflow:hidden}.post-edit-widget .monaco-button{padding:2px;border:none;border-radius:0}.post-edit-widget .monaco-button:hover{background-color:var(--vscode-button-secondaryHoverBackground)!important}.post-edit-widget .monaco-button .codicon{margin:0}.monaco-editor .findOptionsWidget{background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground);box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:2px solid var(--vscode-contrastBorder)}.monaco-editor .find-widget{position:absolute;z-index:35;height:33px;overflow:hidden;line-height:19px;transition:transform .2s linear;padding:0 4px;box-sizing:border-box;transform:translateY(calc(-100% - 10px));border-bottom-left-radius:4px;border-bottom-right-radius:4px}.monaco-workbench.reduce-motion .monaco-editor .find-widget{transition:transform 0ms linear}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:transparent;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{margin:3px 25px 0 17px;font-size:12px;display:flex}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-top:2px;padding-bottom:2px}.monaco-editor .find-widget>.find-part .find-actions,.monaco-editor .find-widget>.replace-part .replace-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget .monaco-findInput{vertical-align:middle;display:flex;flex:1}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{display:flex;flex:initial;margin:0 0 0 3px;padding:2px 0 0 2px;height:25px;vertical-align:middle;box-sizing:border-box;text-align:center;line-height:23px}.monaco-editor .find-widget .button{width:16px;height:16px;padding:3px;border-radius:5px;flex:initial;margin-left:3px;background-position:50%;background-repeat:no-repeat;cursor:pointer;display:flex;align-items:center;justify-content:center}.monaco-editor .find-widget .codicon-find-selection{width:22px;height:22px;padding:3px;border-radius:5px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{width:auto;padding:1px 6px;top:-1px}.monaco-editor .find-widget .button.toggle{position:absolute;top:0;left:3px;width:18px;height:100%;border-radius:0;box-sizing:border-box}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{color:var(--vscode-disabledForeground);cursor:default}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{position:relative;display:flex;vertical-align:middle;flex:auto;flex-grow:0;flex-shrink:0}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important}.monaco-editor .find-widget .monaco-sash{left:0!important}.monaco-editor.hc-black .find-widget .button:before{position:relative;top:1px;left:2px}.monaco-editor .find-widget>.button.codicon-widget-close{position:absolute;top:5px;right:4px}.monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{cursor:pointer;opacity:0;transition:opacity .5s;display:flex;align-items:center;justify-content:center;font-size:140%;margin-left:2px}.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{transition:initial}.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays:hover .codicon{opacity:1}.monaco-editor .inline-folded:after{color:grey;margin:.1em .2em 0;content:"\\22EF";display:inline;line-height:1em;cursor:pointer}.monaco-editor .folded-background{background-color:var(--vscode-editor-foldBackground)}.monaco-editor .cldr.codicon.codicon-folding-collapsed,.monaco-editor .cldr.codicon.codicon-folding-expanded,.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed,.monaco-editor .cldr.codicon.codicon-folding-manual-expanded{color:var(--vscode-editorGutter-foldingControlForeground)!important}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;vertical-align:text-top;margin-right:4px}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{opacity:.6;font-style:italic}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{position:absolute;white-space:pre;user-select:text;-webkit-user-select:text;padding:8px 12px 0 20px}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{opacity:.6;color:inherit}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before{content:"("}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after{content:")"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-foreground);color:var(--vscode-textLink-activeForeground)}.monaco-editor .marker-widget .descriptioncontainer .filename{cursor:pointer}.monaco-editor .goto-definition-link{text-decoration:underline;cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-top-width:1px;border-bottom-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;width:100%;text-align:center;padding:3em 0}.monaco-editor .reference-zone-widget .ref-tree{line-height:23px;background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground)}.monaco-editor .reference-zone-widget .ref-tree .reference{text-overflow:ellipsis;overflow:hidden}.monaco-editor .reference-zone-widget .ref-tree .reference-file{display:inline-flex;width:100%;height:100%;color:var(--vscode-peekViewResult-fileForeground)}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file{color:inherit!important}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows>.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground)!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-right:12px;margin-left:auto}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{background-color:var(--vscode-peekViewResult-matchHighlightBackground)}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input,.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted var(--vscode-contrastActiveBorder,transparent);box-sizing:border-box}.monaco-editor .hoverHighlight{background-color:var(--vscode-editor-hoverHighlightBackground)}.monaco-editor .monaco-hover{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px}.monaco-editor .monaco-hover a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .monaco-hover .hover-row .actions{background-color:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-editor .monaco-hover code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor.vs .valueSetReplacement{outline:solid 2px var(--vscode-editorBracketMatch-border)}.monaco-editor .suggest-preview-additional-widget{white-space:nowrap}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:transparent;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{display:inline-block;cursor:pointer;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden{opacity:0;font-size:0}.monaco-editor .ghost-text-decoration,.monaco-editor .suggest-preview-text .ghost-text{font-style:italic}.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-decoration,.monaco-editor .ghost-text-decoration-preview,.monaco-editor .suggest-preview-text .ghost-text{color:var(--vscode-editorGhostText-foreground)!important;background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border)}.monaco-editor .inlineSuggestionsHints.withBorder{z-index:39;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .inlineSuggestionsHints a,.monaco-editor .inlineSuggestionsHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineSuggestionsHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a{display:flex;min-width:19px;justify-content:center}.monaco-editor .inlineSuggestionStatusBarItemLabel{margin-right:2px}.inline-editor-progress-decoration{display:inline-block;width:1em;height:1em}.inline-progress-widget{display:flex!important;justify-content:center;align-items:center}.inline-progress-widget .icon{font-size:80%!important}.inline-progress-widget:hover .icon{font-size:90%!important;animation:none}.inline-progress-widget:hover .icon:before{content:"\\ea76"}.monaco-editor .linked-editing-decoration{background-color:var(--vscode-editor-linkedEditingBackground);min-width:1px}.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .rendered-markdown kbd{background-color:var(--vscode-keybindingLabel-background);color:var(--vscode-keybindingLabel-foreground);border-radius:3px;border:1px solid var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);vertical-align:middle;padding:1px 3px}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:fadeIn .15s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:fadeOut .1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{padding:2px 4px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-inputValidation-infoBorder);border-radius:3px}.monaco-editor .monaco-editor-overlaymessage .message p{margin-block:0}.monaco-editor .monaco-editor-overlaymessage .message a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-editor-overlaymessage .message a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .monaco-editor-overlaymessage .message{border-width:2px}.monaco-editor .monaco-editor-overlaymessage .anchor{width:0!important;height:0!important;z-index:1000;border:8px solid transparent;position:absolute;left:2px}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage.below .anchor.below,.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top{display:none}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.monaco-editor .parameter-hints-widget{z-index:39;display:flex;flex-direction:column;line-height:1.5em;cursor:default;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.hc-black .monaco-editor .parameter-hints-widget,.hc-light .monaco-editor .parameter-hints-widget{border-width:2px}.monaco-editor .parameter-hints-widget>.phwrapper{max-width:440px;display:flex;flex-direction:row}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.multiple .body:before{content:"";display:block;height:100%;position:absolute;opacity:.5;border-left:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul{margin:8px 0}.monaco-editor .parameter-hints-widget .body,.monaco-editor .parameter-hints-widget .monaco-scrollable-element{display:flex;flex:1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px;position:relative}.monaco-editor .parameter-hints-widget .signature.has-docs:after{content:"";display:block;position:absolute;left:0;width:100%;padding-top:4px;opacity:.5;border-bottom:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs.empty{display:none}.monaco-editor .parameter-hints-widget .docs a{color:var(--vscode-textLink-foreground)}.monaco-editor .parameter-hints-widget .docs a:hover{color:var(--vscode-textLink-activeForeground);cursor:pointer}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:normal}.monaco-editor .parameter-hints-widget .docs code{font-family:var(--monaco-monospace-font);border-radius:3px;padding:0 .4em;background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .parameter-hints-widget .docs .code,.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .controls{display:none;flex-direction:column;align-items:center;min-width:22px;justify-content:flex-end}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{width:16px;height:16px;background-repeat:no-repeat;cursor:pointer}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{text-align:center;height:12px;line-height:12px;font-family:var(--monaco-monospace-font)}.monaco-editor .parameter-hints-widget .signature .parameter.active{color:var(--vscode-editorHoverWidget-highlightForeground);font-weight:700}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;justify-content:space-between;flex-wrap:nowrap}.monaco-editor .peekview-widget .head .peekview-title{display:flex;align-items:baseline;font-size:13px;margin-left:20px;min-width:0;text-overflow:ellipsis;overflow:hidden}.monaco-editor .peekview-widget .head .peekview-title.clickable{cursor:pointer}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .peekview-widget .head .peekview-title .filename,.monaco-editor .peekview-widget .head .peekview-title .meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:"-";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;text-align:right;padding-right:2px}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar{display:inline-block}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container{height:100%}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{margin-right:4px;align-self:center}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon{color:inherit!important}.monaco-editor .rename-box{z-index:100;color:inherit;border-radius:4px}.monaco-editor .rename-box.preview{padding:4px 4px 0}.monaco-editor .rename-box .rename-input{padding:3px;border-radius:2px}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .snippet-placeholder{min-width:2px;outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetTabstopHighlightBackground,transparent);outline-color:var(--vscode-editor-snippetTabstopHighlightBorder,transparent)}.monaco-editor .finish-snippet-placeholder{outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground,transparent);outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder,transparent)}.monaco-editor .sticky-widget{overflow:hidden}.monaco-editor .sticky-widget-line-numbers{float:left;background-color:inherit}.monaco-editor .sticky-widget-lines-scrollable{display:inline-block;position:absolute;overflow:hidden;width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit}.monaco-editor .sticky-widget-lines{position:absolute;background-color:inherit}.monaco-editor .sticky-line-content,.monaco-editor .sticky-line-number{color:var(--vscode-editorLineNumber-foreground);white-space:nowrap;display:inline-block;position:absolute;background-color:inherit}.monaco-editor .sticky-line-number .codicon-folding-collapsed,.monaco-editor .sticky-line-number .codicon-folding-expanded{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit;white-space:nowrap}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor.hc-black .sticky-widget,.monaco-editor.hc-light .sticky-widget{border-bottom:1px solid var(--vscode-contrastBorder)}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget{width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 3px 2px -2px;z-index:4;background-color:var(--vscode-editorStickyScroll-background)}.monaco-editor .sticky-widget.peek{background-color:var(--vscode-peekViewEditorStickyScroll-background)}.monaco-editor .suggest-widget{width:430px;z-index:40;display:flex;flex-direction:column;border-radius:3px}.monaco-editor .suggest-widget.message{flex-direction:row;align-items:center}.monaco-editor .suggest-details,.monaco-editor .suggest-widget{flex:0 1 auto;width:100%;border:1px solid var(--vscode-editorSuggestWidget-border);background-color:var(--vscode-editorSuggestWidget-background)}.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-light .suggest-details,.monaco-editor.hc-light .suggest-widget{border-width:2px}.monaco-editor .suggest-widget .suggest-status-bar{box-sizing:border-box;display:none;flex-flow:row nowrap;justify-content:space-between;width:100%;font-size:80%;padding:0 4px;border-top:1px solid var(--vscode-editorSuggestWidget-border);overflow:hidden}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar{display:flex}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:var(--vscode-editorSuggestWidgetStatus-foreground)}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label{margin-right:0}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:", ";margin-right:.3em}.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:100%}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget>.tree{height:100%;width:100%}.monaco-editor .suggest-widget .monaco-list{user-select:none;-webkit-user-select:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{display:flex;-mox-box-sizing:border-box;box-sizing:border-box;padding-right:10px;background-repeat:no-repeat;background-position:2px 2px;white-space:nowrap;cursor:pointer;touch-action:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;overflow:hidden;text-overflow:ellipsis;white-space:pre;justify-content:space-between}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{display:flex}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;opacity:1;font-size:14px;cursor:pointer}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;top:6px;right:2px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover{opacity:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{overflow:hidden;text-overflow:ellipsis;opacity:.6}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{margin-left:12px;opacity:.4;font-size:85%;line-height:normal;text-overflow:ellipsis;overflow:hidden;align-self:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{font-size:85%;margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{display:none}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-shrink:1;flex-grow:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label{max-width:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{overflow:hidden;flex-shrink:4;max-width:70%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;position:absolute;right:10px;width:18px;height:18px;visibility:hidden}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:inline-block}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container{text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before{height:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{display:block;height:16px;width:16px;margin-left:2px;background-repeat:no-repeat;background-size:80%;background-position:50%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{display:flex;align-items:center;margin-right:4px}.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{margin:0 0 0 .3em;border:.1em solid #000;width:.7em;height:.7em;display:inline-block}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{display:flex;flex-direction:column;cursor:default;color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-details.focused{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details a{color:var(--vscode-textLink-foreground)}.monaco-editor .suggest-details a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .suggest-details.no-docs{display:none}.monaco-editor .suggest-details>.monaco-scrollable-element{flex:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2;overflow:hidden;text-overflow:ellipsis;opacity:.7;white-space:pre;margin:0 24px 0 0;padding:4px 0 12px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px;overflow:hidden}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{padding:0;white-space:normal;min-height:calc(1rem + 8px)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child{margin-top:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child{margin-bottom:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source{white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{white-space:pre-wrap;word-wrap:break-word}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty{display:none}.monaco-editor .suggest-details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details ol,.monaco-editor .suggest-details ul{padding-left:20px}.monaco-editor .suggest-details p code{font-family:var(--monaco-monospace-font)}.monaco-editor .codicon.codicon-symbol-array,.monaco-workbench .codicon.codicon-symbol-array{color:var(--vscode-symbolIcon-arrayForeground)}.monaco-editor .codicon.codicon-symbol-boolean,.monaco-workbench .codicon.codicon-symbol-boolean{color:var(--vscode-symbolIcon-booleanForeground)}.monaco-editor .codicon.codicon-symbol-class,.monaco-workbench .codicon.codicon-symbol-class{color:var(--vscode-symbolIcon-classForeground)}.monaco-editor .codicon.codicon-symbol-method,.monaco-workbench .codicon.codicon-symbol-method{color:var(--vscode-symbolIcon-methodForeground)}.monaco-editor .codicon.codicon-symbol-color,.monaco-workbench .codicon.codicon-symbol-color{color:var(--vscode-symbolIcon-colorForeground)}.monaco-editor .codicon.codicon-symbol-constant,.monaco-workbench .codicon.codicon-symbol-constant{color:var(--vscode-symbolIcon-constantForeground)}.monaco-editor .codicon.codicon-symbol-constructor,.monaco-workbench .codicon.codicon-symbol-constructor{color:var(--vscode-symbolIcon-constructorForeground)}.monaco-editor .codicon.codicon-symbol-enum,.monaco-editor .codicon.codicon-symbol-value,.monaco-workbench .codicon.codicon-symbol-enum,.monaco-workbench .codicon.codicon-symbol-value{color:var(--vscode-symbolIcon-enumeratorForeground)}.monaco-editor .codicon.codicon-symbol-enum-member,.monaco-workbench .codicon.codicon-symbol-enum-member{color:var(--vscode-symbolIcon-enumeratorMemberForeground)}.monaco-editor .codicon.codicon-symbol-event,.monaco-workbench .codicon.codicon-symbol-event{color:var(--vscode-symbolIcon-eventForeground)}.monaco-editor .codicon.codicon-symbol-field,.monaco-workbench .codicon.codicon-symbol-field{color:var(--vscode-symbolIcon-fieldForeground)}.monaco-editor .codicon.codicon-symbol-file,.monaco-workbench .codicon.codicon-symbol-file{color:var(--vscode-symbolIcon-fileForeground)}.monaco-editor .codicon.codicon-symbol-folder,.monaco-workbench .codicon.codicon-symbol-folder{color:var(--vscode-symbolIcon-folderForeground)}.monaco-editor .codicon.codicon-symbol-function,.monaco-workbench .codicon.codicon-symbol-function{color:var(--vscode-symbolIcon-functionForeground)}.monaco-editor .codicon.codicon-symbol-interface,.monaco-workbench .codicon.codicon-symbol-interface{color:var(--vscode-symbolIcon-interfaceForeground)}.monaco-editor .codicon.codicon-symbol-key,.monaco-workbench .codicon.codicon-symbol-key{color:var(--vscode-symbolIcon-keyForeground)}.monaco-editor .codicon.codicon-symbol-keyword,.monaco-workbench .codicon.codicon-symbol-keyword{color:var(--vscode-symbolIcon-keywordForeground)}.monaco-editor .codicon.codicon-symbol-module,.monaco-workbench .codicon.codicon-symbol-module{color:var(--vscode-symbolIcon-moduleForeground)}.monaco-editor .codicon.codicon-symbol-namespace,.monaco-workbench .codicon.codicon-symbol-namespace{color:var(--vscode-symbolIcon-namespaceForeground)}.monaco-editor .codicon.codicon-symbol-null,.monaco-workbench .codicon.codicon-symbol-null{color:var(--vscode-symbolIcon-nullForeground)}.monaco-editor .codicon.codicon-symbol-number,.monaco-workbench .codicon.codicon-symbol-number{color:var(--vscode-symbolIcon-numberForeground)}.monaco-editor .codicon.codicon-symbol-object,.monaco-workbench .codicon.codicon-symbol-object{color:var(--vscode-symbolIcon-objectForeground)}.monaco-editor .codicon.codicon-symbol-operator,.monaco-workbench .codicon.codicon-symbol-operator{color:var(--vscode-symbolIcon-operatorForeground)}.monaco-editor .codicon.codicon-symbol-package,.monaco-workbench .codicon.codicon-symbol-package{color:var(--vscode-symbolIcon-packageForeground)}.monaco-editor .codicon.codicon-symbol-property,.monaco-workbench .codicon.codicon-symbol-property{color:var(--vscode-symbolIcon-propertyForeground)}.monaco-editor .codicon.codicon-symbol-reference,.monaco-workbench .codicon.codicon-symbol-reference{color:var(--vscode-symbolIcon-referenceForeground)}.monaco-editor .codicon.codicon-symbol-snippet,.monaco-workbench .codicon.codicon-symbol-snippet{color:var(--vscode-symbolIcon-snippetForeground)}.monaco-editor .codicon.codicon-symbol-string,.monaco-workbench .codicon.codicon-symbol-string{color:var(--vscode-symbolIcon-stringForeground)}.monaco-editor .codicon.codicon-symbol-struct,.monaco-workbench .codicon.codicon-symbol-struct{color:var(--vscode-symbolIcon-structForeground)}.monaco-editor .codicon.codicon-symbol-text,.monaco-workbench .codicon.codicon-symbol-text{color:var(--vscode-symbolIcon-textForeground)}.monaco-editor .codicon.codicon-symbol-type-parameter,.monaco-workbench .codicon.codicon-symbol-type-parameter{color:var(--vscode-symbolIcon-typeParameterForeground)}.monaco-editor .codicon.codicon-symbol-unit,.monaco-workbench .codicon.codicon-symbol-unit{color:var(--vscode-symbolIcon-unitForeground)}.monaco-editor .codicon.codicon-symbol-variable,.monaco-workbench .codicon.codicon-symbol-variable{color:var(--vscode-symbolIcon-variableForeground)}.editor-banner{box-sizing:border-box;cursor:default;width:100%;font-size:12px;display:flex;overflow:visible;height:26px;background:var(--vscode-banner-background)}.editor-banner .icon-container{display:flex;flex-shrink:0;align-items:center;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-repeat:no-repeat;background-position:50%;background-size:16px;width:16px;padding:0;margin:0 6px 0 10px}.editor-banner .message-container{display:flex;align-items:center;line-height:26px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.editor-banner .message-container p{margin-block-start:0;margin-block-end:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{width:inherit;margin:2px 8px;padding:0 12px}.editor-banner .message-actions-container a{padding:3px;margin-left:12px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner{background-color:var(--vscode-banner-background)}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-editor .unicode-highlight{border:1px solid var(--vscode-editorUnicodeHighlight-border);background-color:var(--vscode-editorUnicodeHighlight-background);box-sizing:border-box}.monaco-editor .focused .selectionHighlight{background-color:var(--vscode-editor-selectionHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-selectionHighlightBorder)}.monaco-editor.hc-black .focused .selectionHighlight,.monaco-editor.hc-light .focused .selectionHighlight{border-style:dotted}.monaco-editor .wordHighlight{background-color:var(--vscode-editor-wordHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightBorder)}.monaco-editor.hc-black .wordHighlight,.monaco-editor.hc-light .wordHighlight{border-style:dotted}.monaco-editor .wordHighlightStrong{background-color:var(--vscode-editor-wordHighlightStrongBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightStrongBorder)}.monaco-editor.hc-black .wordHighlightStrong,.monaco-editor.hc-light .wordHighlightStrong{border-style:dotted}.monaco-editor .wordHighlightText{background-color:var(--vscode-editor-wordHighlightTextBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightTextBorder)}.monaco-editor.hc-black .wordHighlightText,.monaco-editor.hc-light .wordHighlightText{border-style:dotted}.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-top-style:solid;border-bottom-style:solid;border-top-width:0;border-bottom-width:0;position:relative}.monaco-editor .iPadShowKeyboard{width:58px;min-width:0;height:36px;min-height:0;margin:0;padding:0;position:absolute;resize:none;overflow:hidden;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00OC4wMzYgNC4wMUg0LjAwOFYzMi4wM2g0NC4wMjhWNC4wMXpNNC4wMDguMDA4QTQuMDAzIDQuMDAzIDAgMDAuMDA1IDQuMDFWMzIuMDNhNC4wMDMgNC4wMDMgMCAwMDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAwNC4wMDMtNC4wMDJWNC4wMUE0LjAwMyA0LjAwMyAwIDAwNDguMDM2LjAwOEg0LjAwOHpNOC4wMSA4LjAxM2g0LjAwM3Y0LjAwM0g4LjAxVjguMDEzem0xMi4wMDggMGgtNC4wMDJ2NC4wMDNoNC4wMDJWOC4wMTN6bTQuMDAzIDBoNC4wMDJ2NC4wMDNoLTQuMDAyVjguMDEzem0xMi4wMDggMGgtNC4wMDN2NC4wMDNoNC4wMDNWOC4wMTN6bTQuMDAyIDBoNC4wMDN2NC4wMDNINDAuMDNWOC4wMTN6bS0yNC4wMTUgOC4wMDVIOC4wMXY0LjAwM2g4LjAwNnYtNC4wMDN6bTQuMDAyIDBoNC4wMDN2NC4wMDNoLTQuMDAzdi00LjAwM3ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzdi00LjAwM3ptMTIuMDA4IDB2NC4wMDNoLTguMDA1di00LjAwM2g4LjAwNXptLTMyLjAyMSA4LjAwNUg4LjAxdjQuMDAzaDQuMDAzdi00LjAwM3ptNC4wMDMgMGgyMC4wMTN2NC4wMDNIMTYuMDE2di00LjAwM3ptMjguMDE4IDBINDAuMDN2NC4wMDNoNC4wMDN2LTQuMDAzeiIgZmlsbD0iIzQyNDI0MiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImNsaXAwIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+) 50% no-repeat;border:4px solid #f6f6f6;border-radius:4px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00OC4wMzYgNC4wMUg0LjAwOFYzMi4wM2g0NC4wMjhWNC4wMXpNNC4wMDguMDA4QTQuMDAzIDQuMDAzIDAgMDAuMDA1IDQuMDFWMzIuMDNhNC4wMDMgNC4wMDMgMCAwMDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAwNC4wMDMtNC4wMDJWNC4wMUE0LjAwMyA0LjAwMyAwIDAwNDguMDM2LjAwOEg0LjAwOHpNOC4wMSA4LjAxM2g0LjAwM3Y0LjAwM0g4LjAxVjguMDEzem0xMi4wMDggMGgtNC4wMDJ2NC4wMDNoNC4wMDJWOC4wMTN6bTQuMDAzIDBoNC4wMDJ2NC4wMDNoLTQuMDAyVjguMDEzem0xMi4wMDggMGgtNC4wMDN2NC4wMDNoNC4wMDNWOC4wMTN6bTQuMDAyIDBoNC4wMDN2NC4wMDNINDAuMDNWOC4wMTN6bS0yNC4wMTUgOC4wMDVIOC4wMXY0LjAwM2g4LjAwNnYtNC4wMDN6bTQuMDAyIDBoNC4wMDN2NC4wMDNoLTQuMDAzdi00LjAwM3ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzdi00LjAwM3ptMTIuMDA4IDB2NC4wMDNoLTguMDA1di00LjAwM2g4LjAwNXptLTMyLjAyMSA4LjAwNUg4LjAxdjQuMDAzaDQuMDAzdi00LjAwM3ptNC4wMDMgMGgyMC4wMTN2NC4wMDNIMTYuMDE2di00LjAwM3ptMjguMDE4IDBINDAuMDN2NC4wMDNoNC4wMDN2LTQuMDAzeiIgZmlsbD0iI0M1QzVDNSIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImNsaXAwIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+) 50% no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{z-index:50;user-select:text;-webkit-user-select:text;padding:10px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor.hc-black .tokens-inspect-widget,.monaco-editor.hc-light .tokens-inspect-widget{border-width:2px}.monaco-editor .tokens-inspect-widget .tokens-inspect-separator{height:1px;border:0;background-color:var(--vscode-editorHoverWidget-border)}.monaco-editor .tokens-inspect-widget .tm-token{font-family:var(--monaco-monospace-font)}.monaco-editor .tokens-inspect-widget .tm-token-length{font-weight:400;font-size:60%;float:right}.monaco-editor .tokens-inspect-widget .tm-metadata-table{width:100%}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:var(--monaco-monospace-font)}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,86.7%,.4);border:1px solid hsla(0,0%,80%,.4);border-bottom-color:hsla(0,0%,73.3%,.4);box-shadow:inset 0 -1px 0 hsla(0,0%,73.3%,.4);color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:1px solid #6fc3df;box-shadow:none;color:#fff}.hc-light .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:1px solid #0f4a85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,50.2%,.17);border:1px solid rgba(51,51,51,.6);border-bottom-color:rgba(68,68,68,.6);box-shadow:inset 0 -1px 0 rgba(68,68,68,.6);color:#ccc}.monaco-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif;--monaco-monospace-font:"SF Mono",Monaco,Menlo,Consolas,"Ubuntu Mono","Liberation Mono","DejaVu Sans Mono","Courier New",monospace}.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{position:absolute!important;top:0;height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%)}.action-widget{font-size:13px;border-radius:0;min-width:160px;max-width:80vw;z-index:40;display:block;width:100%;border:1px solid var(--vscode-editorWidget-border)!important;border-radius:2px;background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground)}.context-view-block{z-index:-1}.context-view-block,.context-view-pointerBlock{position:fixed;cursor:auto;left:0;top:0;width:100%;height:100%}.context-view-pointerBlock{z-index:2}.action-widget .monaco-list{user-select:none;-webkit-user-select:none;border:0!important}.action-widget .monaco-list:focus:before{outline:0!important}.action-widget .monaco-list .monaco-scrollable-element{overflow:visible}.action-widget .monaco-list .monaco-list-row{padding:0 10px;white-space:nowrap;cursor:pointer;touch-action:none;width:100%}.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled){background-color:var(--vscode-quickInputList-focusBackground)!important;color:var(--vscode-quickInputList-focusForeground);outline:1px solid var(--vscode-menu-selectionBorder,transparent);outline-offset:-1px}.action-widget .monaco-list-row.group-header{color:var(--vscode-descriptionForeground)!important;font-weight:600}.action-widget .monaco-list .group-header,.action-widget .monaco-list .option-disabled,.action-widget .monaco-list .option-disabled .focused,.action-widget .monaco-list .option-disabled .focused:before,.action-widget .monaco-list .option-disabled:before{cursor:default!important;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background-color:transparent!important;outline:0 solid!important}.action-widget .monaco-list-row.action{display:flex;gap:6px;align-items:center}.action-widget .monaco-list-row.action.option-disabled,.action-widget .monaco-list-row.action.option-disabled .codicon,.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled{color:var(--vscode-disabledForeground)}.action-widget .monaco-list-row.action:not(.option-disabled) .codicon{color:inherit}.action-widget .monaco-list-row.action .title{flex:1;overflow:hidden;text-overflow:ellipsis}.action-widget .action-widget-action-bar{background-color:var(--vscode-editorHoverWidget-statusBarBackground);border-top:1px solid var(--vscode-editorHoverWidget-border)}.action-widget .action-widget-action-bar:before{display:block;content:"";width:100%}.action-widget .action-widget-action-bar .actions-container{padding:0 8px}.action-widget-action-bar .action-label{color:var(--vscode-textLink-activeForeground);font-size:12px;line-height:22px;padding:0;pointer-events:all}.action-widget-action-bar .action-item{margin-right:16px;pointer-events:none}.action-widget-action-bar .action-label:hover{background-color:transparent!important}.monaco-action-bar .actions-container.highlight-toggled .action-label.checked{background:var(--vscode-actionBar-toggledBackground)!important}.monaco-action-bar .action-item.menu-entry .action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-default>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-default>.action-container.menu-entry>.action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:50%;background-repeat:no-repeat}.monaco-link{color:var(--vscode-textLink-foreground)}.monaco-link:hover{color:var(--vscode-textLink-activeForeground)}.quick-input-widget{position:absolute;width:600px;z-index:2550;left:50%;margin-left:-300px;-webkit-app-region:no-drag;border-radius:6px}.quick-input-titlebar{display:flex;align-items:center;border-top-left-radius:5px;border-top-right-radius:5px}.quick-input-left-action-bar{display:flex;margin-left:4px;flex:1}.quick-input-title{padding:3px 0;text-align:center;text-overflow:ellipsis;overflow:hidden}.quick-input-right-action-bar{display:flex;margin-right:4px;flex:1}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:50%;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px 6px 6px 11px}.quick-input-header .quick-input-description{margin:4px 2px;flex:1}.quick-input-header{display:flex;padding:8px 6px 6px}.quick-input-widget.hidden-input .quick-input-header{padding:0;margin-bottom:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-filter{flex-grow:1;display:flex;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{position:absolute;left:-10000px}.quick-input-count{align-self:center;position:absolute;right:4px;display:flex;align-items:center}.quick-input-count .monaco-count-badge{vertical-align:middle;padding:2px 4px;border-radius:2px;min-height:auto;line-height:normal}.quick-input-action{margin-left:6px}.quick-input-action .monaco-text-button{font-size:11px;padding:0 6px;display:flex;height:25px;align-items:center}.quick-input-message{margin-top:-1px;padding:5px;overflow-wrap:break-word}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-message a{color:inherit}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-list{line-height:22px}.quick-input-widget.hidden-input .quick-input-list{margin-top:4px;padding-bottom:4px}.quick-input-list .monaco-list{overflow:hidden;max-height:440px;padding-bottom:5px}.quick-input-list .monaco-scrollable-element{padding:0 5px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;overflow:hidden;display:flex;height:100%;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-width:1px;border-top-style:solid}.quick-input-list .monaco-list-row{border-radius:3px}.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{overflow:hidden;display:flex;height:100%;flex:1}.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-list .quick-input-list-icon{background-size:16px;background-position:0;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;display:flex;align-items:center;justify-content:center}.quick-input-list .quick-input-list-rows{overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;height:100%;flex:1;margin-left:5px}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox{display:inline}.quick-input-list .quick-input-list-rows>.quick-input-list-row{display:flex;align-items:center}.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-rows .monaco-highlighted-label>span{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{opacity:.7;line-height:normal;text-overflow:ellipsis;overflow:hidden}.quick-input-list .monaco-highlighted-label .highlight{font-weight:700}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:4px}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:0 2px 2px}.quick-input-list .quick-input-list-entry-action-bar{margin-top:1px;margin-right:4px}.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label{display:flex}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator{color:inherit}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}.quick-input-list .quick-input-list-separator-as-item{font-weight:600;font-size:12px}.extension-editor .codicon.codicon-error,.extensions-viewlet>.extensions .codicon.codicon-error,.markers-panel .marker-icon .codicon.codicon-error,.markers-panel .marker-icon.error,.monaco-editor .zone-widget .codicon.codicon-error,.preferences-editor .codicon.codicon-error,.text-search-provider-messages .providerMessage .codicon.codicon-error{color:var(--vscode-problemsErrorIcon-foreground)}.extension-editor .codicon.codicon-warning,.extensions-viewlet>.extensions .codicon.codicon-warning,.markers-panel .marker-icon .codicon.codicon-warning,.markers-panel .marker-icon.warning,.monaco-editor .zone-widget .codicon.codicon-warning,.preferences-editor .codicon.codicon-warning,.text-search-provider-messages .providerMessage .codicon.codicon-warning{color:var(--vscode-problemsWarningIcon-foreground)}.extension-editor .codicon.codicon-info,.extensions-viewlet>.extensions .codicon.codicon-info,.markers-panel .marker-icon .codicon.codicon-info,.markers-panel .marker-icon.info,.monaco-editor .zone-widget .codicon.codicon-info,.preferences-editor .codicon.codicon-info,.text-search-provider-messages .providerMessage .codicon.codicon-info{color:var(--vscode-problemsInfoIcon-foreground)}article{width:var(--monaco-editor-width, 100%);height:var(--monaco-editor-height, 100%)}::slotted(*){display:none}';export{het as M,c as Z,tG as m,cZ as t} \ No newline at end of file +var ZG=Object.defineProperty,QG=Object.getOwnPropertyDescriptor,JG=Object.getOwnPropertyNames,YG=Object.prototype.hasOwnProperty,XG=(t,i,e,s)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let n of JG(i))YG.call(t,n)||n===e||ZG(t,n,{get:()=>i[n],enumerable:!(s=QG(i,n))||s.enumerable});return t},tZ={};((t,i)=>{XG(tZ,i,"default")})(0,tG);var iZ=(t=>(t[t.None=0]="None",t[t.CommonJS=1]="CommonJS",t[t.AMD=2]="AMD",t[t.UMD=3]="UMD",t[t.System=4]="System",t[t.ES2015=5]="ES2015",t[t.ESNext=99]="ESNext",t))(iZ||{}),eZ=(t=>(t[t.None=0]="None",t[t.Preserve=1]="Preserve",t[t.React=2]="React",t[t.ReactNative=3]="ReactNative",t[t.ReactJSX=4]="ReactJSX",t[t.ReactJSXDev=5]="ReactJSXDev",t))(eZ||{}),sZ=(t=>(t[t.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",t[t.LineFeed=1]="LineFeed",t))(sZ||{}),nZ=(t=>(t[t.ES3=0]="ES3",t[t.ES5=1]="ES5",t[t.ES2015=2]="ES2015",t[t.ES2016=3]="ES2016",t[t.ES2017=4]="ES2017",t[t.ES2018=5]="ES2018",t[t.ES2019=6]="ES2019",t[t.ES2020=7]="ES2020",t[t.ESNext=99]="ESNext",t[t.JSON=100]="JSON",t[t.Latest=99]="Latest",t))(nZ||{}),oZ=(t=>(t[t.Classic=1]="Classic",t[t.NodeJs=2]="NodeJs",t))(oZ||{}),rZ=class{_onDidChange=new tZ.Emitter;_onDidExtraLibsChange=new tZ.Emitter;_extraLibs;_removedExtraLibs;_eagerModelSync;_compilerOptions;_diagnosticsOptions;_workerOptions;_onDidExtraLibsChangeTimeout;_inlayHintsOptions;_modeConfiguration;constructor(t,i,e,s,n){this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(t),this.setDiagnosticsOptions(i),this.setWorkerOptions(e),this.setInlayHintsOptions(s),this.setModeConfiguration(n),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(t,i){let e;if(e=void 0===i?`ts:extralib-${Math.random().toString(36).substring(2,15)}`:i,this._extraLibs[e]&&this._extraLibs[e].content===t)return{dispose:()=>{}};let s=1;return this._removedExtraLibs[e]&&(s=this._removedExtraLibs[e]+1),this._extraLibs[e]&&(s=this._extraLibs[e].version+1),this._extraLibs[e]={content:t,version:s},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let t=this._extraLibs[e];t&&t.version===s&&(delete this._extraLibs[e],this._removedExtraLibs[e]=s,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(t){for(const t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),t&&t.length>0)for(const i of t){const t=i.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`;let e=1;this._removedExtraLibs[t]&&(e=this._removedExtraLibs[t]+1),this._extraLibs[t]={content:i.content,version:e}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){-1===this._onDidExtraLibsChangeTimeout&&(this._onDidExtraLibsChangeTimeout=window.setTimeout((()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)}),0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(t){this._compilerOptions=t||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(t){this._diagnosticsOptions=t||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(t){this._workerOptions=t||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(t){this._inlayHintsOptions=t||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(t){}setEagerModelSync(t){this._eagerModelSync=t}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(t){this._modeConfiguration=t||Object.create(null),this._onDidChange.fire(void 0)}},hZ={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},cZ=new rZ({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},hZ),aZ=new rZ({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},hZ);function lZ(){return import("./p-86068437.js")}tZ.languages.typescript={ModuleKind:iZ,JsxEmit:eZ,NewLineKind:sZ,ScriptTarget:nZ,ModuleResolutionKind:oZ,typescriptVersion:"5.0.2",typescriptDefaults:cZ,javascriptDefaults:aZ,getTypeScriptWorker:()=>lZ().then((t=>t.getTypeScriptWorker())),getJavaScriptWorker:()=>lZ().then((t=>t.getJavaScriptWorker()))},tZ.languages.onLanguage("typescript",(()=>lZ().then((t=>t.setupTypeScript(cZ))))),tZ.languages.onLanguage("javascript",(()=>lZ().then((t=>t.setupJavaScript(aZ))))),$h(class extends Ph{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:{value:ot(0,"Toggle Collapse Unchanged Regions"),original:"Toggle Collapse Unchanged Regions"},icon:Os.map,toggled:zr.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:zr.has("isInDiffEditor"),menu:{when:zr.has("isInDiffEditor"),id:Rh.EditorTitle,order:22,group:"navigation"}})}run(t,...i){const e=t.get(pd),s=!e.getValue("diffEditor.hideUnchangedRegions.enabled");e.updateValue("diffEditor.hideUnchangedRegions.enabled",s)}});class uZ extends Ph{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:{value:ot(0,"Toggle Show Moved Code Blocks"),original:"Toggle Show Moved Code Blocks"},precondition:zr.has("isInDiffEditor")})}run(t,...i){const e=t.get(pd),s=!e.getValue("diffEditor.experimental.showMoves");e.updateValue("diffEditor.experimental.showMoves",s)}}$h(uZ);class dZ extends Ph{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:{value:ot(0,"Toggle Use Inline View When Space Is Limited"),original:"Toggle Use Inline View When Space Is Limited"},precondition:zr.has("isInDiffEditor")})}run(t,...i){const e=t.get(pd),s=!e.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");e.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",s)}}$h(dZ),_h.appendMenuItem(Rh.EditorTitle,{command:{id:(new dZ).desc.id,title:ot(0,"Use Inline View When Space Is Limited"),toggled:zr.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:zr.has("isInDiffEditor")},order:11,group:"1_diff",when:zr.and(YC.diffEditorRenderSideBySideInlineBreakpointReached,zr.has("isInDiffEditor"))}),_h.appendMenuItem(Rh.EditorTitle,{command:{id:(new uZ).desc.id,title:ot(0,"Show Moved Code Blocks"),icon:Os.move,toggled:Kr.create("config.diffEditor.experimental.showMoves",!0),precondition:zr.has("isInDiffEditor")},order:10,group:"1_diff",when:zr.has("isInDiffEditor")});const fZ={value:ot(0,"Diff Editor"),original:"Diff Editor"};$h(class extends ou{constructor(){super({id:"diffEditor.switchSide",title:{value:ot(0,"Switch Side"),original:"Switch Side"},icon:Os.arrowSwap,precondition:zr.has("isInDiffEditor"),f1:!0,category:fZ})}runEditorCommand(t,i,e){const s=wZ(t);if(s instanceof Iq){if(e&&e.dryRun)return{destinationSelection:s.mapToOtherSide().destinationSelection};s.switchSide()}}}),$h(class extends ou{constructor(){super({id:"diffEditor.exitCompareMove",title:{value:ot(0,"Exit Compare Move"),original:"Exit Compare Move"},icon:Os.close,precondition:YC.comparingMovedCode,f1:!1,category:fZ,keybinding:{weight:1e4,primary:9}})}runEditorCommand(t,i,...e){const s=wZ(t);s instanceof Iq&&s.exitCompareMove()}}),$h(class extends ou{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:{value:ot(0,"Collapse All Unchanged Regions"),original:"Collapse All Unchanged Regions"},icon:Os.fold,precondition:zr.has("isInDiffEditor"),f1:!0,category:fZ})}runEditorCommand(t,i,...e){const s=wZ(t);s instanceof Iq&&s.collapseAllUnchangedRegions()}}),$h(class extends ou{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:{value:ot(0,"Show All Unchanged Regions"),original:"Show All Unchanged Regions"},icon:Os.unfold,precondition:zr.has("isInDiffEditor"),f1:!0,category:fZ})}runEditorCommand(t,i,...e){const s=wZ(t);s instanceof Iq&&s.showAllUnchangedRegions()}});const pZ={value:ot(0,"Accessible Diff Viewer"),original:"Accessible Diff Viewer"};class gZ extends Ph{constructor(){super({id:gZ.id,title:{value:ot(0,"Go to Next Difference"),original:"Go to Next Difference"},category:pZ,precondition:zr.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(t){const i=wZ(t);null==i||i.accessibleDiffViewerNext()}}gZ.id="editor.action.accessibleDiffViewer.next",_h.appendMenuItem(Rh.EditorTitle,{command:{id:gZ.id,title:ot(0,"Open Accessible Diff Viewer"),precondition:zr.has("isInDiffEditor")},order:10,group:"2_diff",when:zr.and(YC.accessibleDiffViewerVisible.negate(),zr.has("isInDiffEditor"))});class mZ extends Ph{constructor(){super({id:mZ.id,title:{value:ot(0,"Go to Previous Difference"),original:"Go to Previous Difference"},category:pZ,precondition:zr.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(t){const i=wZ(t);null==i||i.accessibleDiffViewerPrev()}}function wZ(t){var i;const e=t.get(fr),s=e.listDiffEditors(),n=null!==(i=e.getFocusedCodeEditor())&&void 0!==i?i:e.getActiveCodeEditor();if(!n)return null;for(let t=0,i=s.length;tthis.selectionAnchorSetContextKey.reset()))}setSelectionAnchor(){if(this.editor.hasModel()){const t=this.editor.getPosition();this.editor.changeDecorations((i=>{this.decorationId&&i.removeDecoration(this.decorationId),this.decorationId=i.addDecoration(Ls.fromPositions(t,t),{description:"selection-anchor",stickiness:1,hoverMessage:(new N_).appendText(ot(0,"Selection Anchor")),className:"selection-anchor"})})),this.selectionAnchorSetContextKey.set(!!this.decorationId),Pm(ot(0,"Anchor set at {0}:{1}",t.lineNumber,t.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const t=this.editor.getModel().getDecorationRange(this.decorationId);t&&this.editor.setPosition(t.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const t=this.editor.getModel().getDecorationRange(this.decorationId);if(t){const i=this.editor.getPosition();this.editor.setSelection(Ls.fromPositions(t.getStartPosition(),i)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const t=this.decorationId;this.editor.changeDecorations((i=>{i.removeDecoration(t),this.decorationId=void 0})),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}};kZ.ID="editor.contrib.selectionAnchorController",kZ=bZ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,ah)],kZ),lu(kZ.ID,kZ,4),cu(class extends su{constructor(){super({id:"editor.action.setSelectionAnchor",label:ot(0,"Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2080),weight:100}})}async run(t,i){var e;null===(e=kZ.get(i))||void 0===e||e.setSelectionAnchor()}}),cu(class extends su{constructor(){super({id:"editor.action.goToSelectionAnchor",label:ot(0,"Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:yZ})}async run(t,i){var e;null===(e=kZ.get(i))||void 0===e||e.goToSelectionAnchor()}}),cu(class extends su{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:ot(0,"Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:yZ,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2089),weight:100}})}async run(t,i){var e;null===(e=kZ.get(i))||void 0===e||e.selectFromAnchorToCursor()}}),cu(class extends su{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:ot(0,"Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:yZ,kbOpts:{kbExpr:YC.editorTextFocus,primary:9,weight:100}})}async run(t,i){var e;null===(e=kZ.get(i))||void 0===e||e.cancelSelectionAnchor()}});const xZ=dw("editorOverviewRuler.bracketMatchForeground",{dark:"#A0A0A0",light:"#A0A0A0",hcDark:"#A0A0A0",hcLight:"#A0A0A0"},ot(0,"Overview ruler marker color for matching brackets."));class CZ{constructor(t,i,e){this.position=t,this.brackets=i,this.options=e}}class SZ extends te{static get(t){return t.getContribution(SZ.ID)}constructor(t){super(),this._editor=t,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new pc((()=>this._updateBrackets()),50)),this._matchBrackets=this._editor.getOption(71),this._updateBracketsSoon.schedule(),this._register(t.onDidChangeCursorPosition((()=>{"never"!==this._matchBrackets&&this._updateBracketsSoon.schedule()}))),this._register(t.onDidChangeModelContent((()=>{this._updateBracketsSoon.schedule()}))),this._register(t.onDidChangeModel((()=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()}))),this._register(t.onDidChangeModelLanguageConfiguration((()=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()}))),this._register(t.onDidChangeConfiguration((t=>{t.hasChanged(71)&&(this._matchBrackets=this._editor.getOption(71),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())}))),this._register(t.onDidBlurEditorWidget((()=>{this._updateBracketsSoon.schedule()}))),this._register(t.onDidFocusEditorWidget((()=>{this._updateBracketsSoon.schedule()})))}jumpToBracket(){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=this._editor.getSelections().map((i=>{const e=i.getStartPosition(),s=t.bracketPairs.matchBracket(e);let n=null;if(s)s[0].containsPosition(e)&&!s[1].containsPosition(e)?n=s[1].getStartPosition():s[1].containsPosition(e)&&(n=s[0].getStartPosition());else{const i=t.bracketPairs.findEnclosingBrackets(e);if(i)n=i[1].getStartPosition();else{const i=t.bracketPairs.findNextBracket(e);i&&i.range&&(n=i.range.getStartPosition())}}return n?new Ls(n.lineNumber,n.column,n.lineNumber,n.column):new Ls(e.lineNumber,e.column,e.lineNumber,e.column)}));this._editor.setSelections(i),this._editor.revealRange(i[0])}selectToBracket(t){if(!this._editor.hasModel())return;const i=this._editor.getModel(),e=[];this._editor.getSelections().forEach((s=>{const n=s.getStartPosition();let o=i.bracketPairs.matchBracket(n);if(!o&&(o=i.bracketPairs.findEnclosingBrackets(n),!o)){const t=i.bracketPairs.findNextBracket(n);t&&t.range&&(o=i.bracketPairs.matchBracket(t.range.getStartPosition()))}let r=null,h=null;if(o){o.sort(Ms.compareRangesUsingStarts);const[i,e]=o;if(r=t?i.getStartPosition():i.getEndPosition(),h=t?e.getEndPosition():e.getStartPosition(),e.containsPosition(n)){const t=r;r=h,h=t}}r&&h&&e.push(new Ls(r.lineNumber,r.column,h.lineNumber,h.column))})),e.length>0&&(this._editor.setSelections(e),this._editor.revealRange(e[0]))}removeBrackets(t){if(!this._editor.hasModel())return;const i=this._editor.getModel();this._editor.getSelections().forEach((e=>{const s=e.getPosition();let n=i.bracketPairs.matchBracket(s);n||(n=i.bracketPairs.findEnclosingBrackets(s)),n&&(this._editor.pushUndoStop(),this._editor.executeEdits(t,[{range:n[0],text:""},{range:n[1],text:""}]),this._editor.pushUndoStop())}))}_updateBrackets(){if("never"===this._matchBrackets)return;this._recomputeBrackets();const t=[];let i=0;for(const e of this._lastBracketsData){const s=e.brackets;s&&(t[i++]={range:s[0],options:e.options},t[i++]={range:s[1],options:e.options})}this._decorations.set(t)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus())return this._lastBracketsData=[],void(this._lastVersionId=0);const t=this._editor.getSelections();if(t.length>100)return this._lastBracketsData=[],void(this._lastVersionId=0);const i=this._editor.getModel(),e=i.getVersionId();let s=[];this._lastVersionId===e&&(s=this._lastBracketsData);const n=[];let o=0;for(let i=0,e=t.length;i1&&n.sort(As.compare);const r=[];let h=0,c=0;const a=s.length;for(let t=0,e=n.length;t0&&(i.pushUndoStop(),i.executeCommands(this.id,s),i.pushUndoStop())}});const AZ="9_cutcopypaste",MZ=Dt||document.queryCommandSupported("cut"),LZ=Dt||document.queryCommandSupported("copy"),FZ=void 0!==navigator.clipboard&&!Uo||document.queryCommandSupported("paste");function TZ(t){return t.register(),t}const RZ=MZ?TZ(new tu({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:Dt?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:Rh.MenubarEditMenu,group:"2_ccp",title:ot(0,"Cu&&t"),order:1},{menuId:Rh.EditorContext,group:AZ,title:ot(0,"Cut"),when:YC.writable,order:1},{menuId:Rh.CommandPalette,group:"",title:ot(0,"Cut"),order:1},{menuId:Rh.SimpleEditorContext,group:AZ,title:ot(0,"Cut"),when:YC.writable,order:1}]})):void 0,OZ=LZ?TZ(new tu({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:Dt?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:Rh.MenubarEditMenu,group:"2_ccp",title:ot(0,"&&Copy"),order:2},{menuId:Rh.EditorContext,group:AZ,title:ot(0,"Copy"),order:2},{menuId:Rh.CommandPalette,group:"",title:ot(0,"Copy"),order:1},{menuId:Rh.SimpleEditorContext,group:AZ,title:ot(0,"Copy"),order:2}]})):void 0;_h.appendMenuItem(Rh.MenubarEditMenu,{submenu:Rh.MenubarCopy,title:{value:ot(0,"Copy As"),original:"Copy As"},group:"2_ccp",order:3}),_h.appendMenuItem(Rh.EditorContext,{submenu:Rh.EditorContextCopy,title:{value:ot(0,"Copy As"),original:"Copy As"},group:AZ,order:3}),_h.appendMenuItem(Rh.EditorContext,{submenu:Rh.EditorContextShare,title:{value:ot(0,"Share"),original:"Share"},group:"11_share",order:-1,when:zr.and(zr.notEquals("resourceScheme","output"),YC.editorTextFocus)}),_h.appendMenuItem(Rh.EditorTitleContext,{submenu:Rh.EditorTitleContextShare,title:{value:ot(0,"Share"),original:"Share"},group:"11_share",order:-1}),_h.appendMenuItem(Rh.ExplorerContext,{submenu:Rh.ExplorerContextShare,title:{value:ot(0,"Share"),original:"Share"},group:"11_share",order:-1});const IZ=FZ?TZ(new tu({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:Dt?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:Rh.MenubarEditMenu,group:"2_ccp",title:ot(0,"&&Paste"),order:4},{menuId:Rh.EditorContext,group:AZ,title:ot(0,"Paste"),when:YC.writable,order:4},{menuId:Rh.CommandPalette,group:"",title:ot(0,"Paste"),order:1},{menuId:Rh.SimpleEditorContext,group:AZ,title:ot(0,"Paste"),when:YC.writable,order:4}]})):void 0;function _Z(t,i){t&&(t.addImplementation(1e4,"code-editor",(t=>{const e=t.get(fr).getFocusedCodeEditor();if(e&&e.hasTextFocus()){const t=e.getOption(37),s=e.getSelection();return s&&s.isEmpty()&&!t||e.getContainerDomNode().ownerDocument.execCommand(i),!0}return!1})),t.addImplementation(0,"generic-dom",(()=>(ml().execCommand(i),!0))))}_Z(RZ,"cut"),_Z(OZ,"copy"),IZ&&(IZ.addImplementation(1e4,"code-editor",(t=>{const i=t.get(fr),e=t.get(yH),s=i.getFocusedCodeEditor();return!(!s||!s.hasTextFocus())&&(!(!s.getContainerDomNode().ownerDocument.execCommand("paste")&&Et)||(async()=>{const t=await e.readText();if(""!==t){const i=Vk.INSTANCE.get(t);let e=!1,n=null,o=null;i&&(e=s.getOption(37)&&!!i.isFromEmptySelection,n=void 0!==i.multicursorText?i.multicursorText:null,o=i.mode),s.trigger("keyboard","paste",{text:t,pasteOnNewLine:e,multicursorText:n,mode:o})}})())})),IZ.addImplementation(0,"generic-dom",(()=>(ml().execCommand("paste"),!0)))),LZ&&cu(class extends su{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:ot(0,"Copy With Syntax Highlighting"),alias:"Copy With Syntax Highlighting",precondition:void 0,kbOpts:{kbExpr:YC.textInputFocus,primary:0,weight:100}})}run(t,i){i.hasModel()&&(!i.getOption(37)&&i.getSelection().isEmpty()||(Hk.forceCopyWithSyntaxHighlighting=!0,i.focus(),i.getContainerDomNode().ownerDocument.execCommand("copy"),Hk.forceCopyWithSyntaxHighlighting=!1))}});class NZ{constructor(t){this.value=t}equals(t){return this.value===t.value}contains(t){return this.equals(t)||""===this.value||t.value.startsWith(this.value+NZ.sep)}intersects(t){return this.contains(t)||t.contains(this)}append(t){return new NZ(this.value+NZ.sep+t)}}var BZ;function PZ(t,i,e){return!(!i.contains(t)||e&&i.contains(e))}NZ.sep=".",NZ.None=new NZ("@@none@@"),NZ.Empty=new NZ(""),NZ.QuickFix=new NZ("quickfix"),NZ.Refactor=new NZ("refactor"),NZ.RefactorExtract=NZ.Refactor.append("extract"),NZ.RefactorInline=NZ.Refactor.append("inline"),NZ.RefactorMove=NZ.Refactor.append("move"),NZ.RefactorRewrite=NZ.Refactor.append("rewrite"),NZ.Notebook=new NZ("notebook"),NZ.Source=new NZ("source"),NZ.SourceOrganizeImports=NZ.Source.append("organizeImports"),NZ.SourceFixAll=NZ.Source.append("fixAll"),NZ.SurroundWith=NZ.Refactor.append("surround"),function(t){t.Refactor="refactor",t.RefactorPreview="refactor preview",t.Lightbulb="lightbulb",t.Default="other (default)",t.SourceAction="source action",t.QuickFix="quick fix action",t.FixAll="fix all",t.OrganizeImports="organize imports",t.AutoFix="auto fix",t.QuickFixHover="quick fix hover window",t.OnSave="save participants",t.ProblemsView="problems view"}(BZ||(BZ={}));class $Z{static fromUser(t,i){return t&&"object"==typeof t?new $Z($Z.getKindFromUser(t,i.kind),$Z.getApplyFromUser(t,i.apply),$Z.getPreferredUser(t)):new $Z(i.kind,i.apply,!1)}static getApplyFromUser(t,i){switch("string"==typeof t.apply?t.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return i}}static getKindFromUser(t,i){return"string"==typeof t.kind?new NZ(t.kind):i}static getPreferredUser(t){return"boolean"==typeof t.preferred&&t.preferred}constructor(t,i,e){this.kind=t,this.apply=i,this.preferred=e}}class WZ{constructor(t,i,e){this.action=t,this.provider=i,this.highlightRange=e}async resolve(t){var i;if((null===(i=this.provider)||void 0===i?void 0:i.resolveCodeAction)&&!this.action.edit){let i;try{i=await this.provider.resolveCodeAction(this.action,t)}catch(t){Pi(t)}i&&(this.action.edit=i.edit)}return this}}const jZ="editor.action.codeAction",zZ="editor.action.quickFix",HZ="editor.action.autoFix",VZ="editor.action.refactor",UZ="editor.action.sourceAction",qZ="editor.action.organizeImports",KZ="editor.action.fixAll";class GZ extends te{static codeActionsPreferredComparator(t,i){return t.isPreferred&&!i.isPreferred?-1:!t.isPreferred&&i.isPreferred?1:0}static codeActionsComparator({action:t},{action:i}){return t.isAI&&!i.isAI?1:!t.isAI&&i.isAI?-1:b(t.diagnostics)?b(i.diagnostics)?GZ.codeActionsPreferredComparator(t,i):-1:b(i.diagnostics)?1:GZ.codeActionsPreferredComparator(t,i)}constructor(t,i,e){super(),this.documentation=i,this._register(e),this.allActions=[...t].sort(GZ.codeActionsComparator),this.validActions=this.allActions.filter((({action:t})=>!t.disabled))}get hasAutoFix(){return this.validActions.some((({action:t})=>!!t.kind&&NZ.QuickFix.contains(new NZ(t.kind))&&!!t.isPreferred))}get hasAIFix(){return this.validActions.some((({action:t})=>!!t.isAI))}get allAIFixes(){return this.validActions.every((({action:t})=>!!t.isAI))}}const ZZ={actions:[],documentation:void 0};async function QZ(t,i,e,s,n,o){var r;const h=s.filter||{},c={...h,excludes:[...h.excludes||[],NZ.Notebook]},a={only:null===(r=h.include)||void 0===r?void 0:r.value,trigger:s.type},u=new SK(i,o),d=function(t,i,e){return t.all(i).filter((t=>!t.providedCodeActionKinds||t.providedCodeActionKinds.some((t=>function(t,i){return!(t.include&&!t.include.intersects(i)||t.excludes&&t.excludes.some((e=>PZ(i,e,t.include)))||!t.includeSourceActions&&NZ.Source.contains(i))}(e,new NZ(t))))))}(t,i,2===s.type?c:h),f=new Xi,p=d.map((async t=>{try{n.report(t);const s=await t.provideCodeActions(i,e,a,u.token);if(s&&f.add(s),u.token.isCancellationRequested)return ZZ;const o=((null==s?void 0:s.actions)||[]).filter((t=>t&&function(t,i){const e=i.kind?new NZ(i.kind):void 0;return!(!(!t.include||e&&t.include.contains(e))||t.excludes&&e&&t.excludes.some((i=>PZ(e,i,t.include)))||!t.includeSourceActions&&e&&NZ.Source.contains(e)||t.onlyIncludePreferredActions&&!i.isPreferred)}(h,t))),r=function(t,i,e){if(!t.documentation)return;const s=t.documentation.map((t=>({kind:new NZ(t.kind),command:t.command})));if(e){let t;for(const i of s)i.kind.contains(e)&&(t?t.kind.contains(i.kind)&&(t=i):t=i);if(t)return null==t?void 0:t.command}for(const t of i)if(t.kind)for(const i of s)if(i.kind.contains(new NZ(t.kind)))return i.command}(t,o,h.include);return{actions:o.map((i=>new WZ(i,t))),documentation:r}}catch(t){if(ji(t))throw t;return Pi(t),ZZ}})),g=t.onDidChange((()=>{l(t.all(i),d)||u.cancel()}));try{const e=await Promise.all(p),n=e.map((t=>t.actions)).flat(),o=[...m(e.map((t=>t.documentation))),...JZ(t,i,s,n)];return new GZ(n,o,f)}finally{g.dispose(),u.dispose()}}function*JZ(t,i,e,s){var n,o,r;if(i&&s.length)for(const h of t.all(i))h._getAdditionalMenuItems&&(yield*null===(n=h._getAdditionalMenuItems)||void 0===n?void 0:n.call(h,{trigger:e.type,only:null===(r=null===(o=e.filter)||void 0===o?void 0:o.include)||void 0===r?void 0:r.value},s.map((t=>t.action))))}var YZ;async function XZ(t,i,e,s,n=ke.None){var o;const r=t.get(nO),h=t.get(Sr),c=t.get(Wh),a=t.get(oT);if(c.publicLog2("codeAction.applyCodeAction",{codeActionTitle:i.action.title,codeActionKind:i.action.kind,codeActionIsPreferred:!!i.action.isPreferred,reason:e}),await i.resolve(n),!n.isCancellationRequested){if((null===(o=i.action.edit)||void 0===o?void 0:o.edits.length)&&!(await r.apply(i.action.edit,{editor:null==s?void 0:s.editor,label:i.action.title,quotableLabel:i.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:e!==YZ.OnSave,showPreview:null==s?void 0:s.preview})).isApplied)return;if(i.action.command)try{await h.executeCommand(i.action.command.id,...i.action.command.arguments||[])}catch(t){const i=function(t){return"string"==typeof t?t:t instanceof Error&&"string"==typeof t.message?t.message:void 0}(t);a.error("string"==typeof i?i:ot(0,"An unknown error occurred while applying the code action"))}}}!function(t){t.OnSave="onSave",t.FromProblemsView="fromProblemsView",t.FromCodeActions="fromCodeActions"}(YZ||(YZ={})),Dr.registerCommand("_executeCodeActionProvider",(async function(t,i,e,s,n){if(!(i instanceof ms))throw Hi();const{codeActionProvider:o}=t.get(xg),r=t.get(pr).getModel(i);if(!r)throw Hi();const h=Ls.isISelection(e)?Ls.liftSelection(e):Ms.isIRange(e)?r.validateRange(e):void 0;if(!h)throw Hi();const c="string"==typeof s?new NZ(s):void 0,a=await QZ(o,r,h,{type:1,triggerAction:BZ.Default,filter:{includeSourceActions:!0,include:c}},jO.None,ke.None),l=[],u=Math.min(a.validActions.length,"number"==typeof n?n:0);for(let t=0;tt.action))}finally{setTimeout((()=>a.dispose()),100)}}));var tQ;let iQ=tQ=class{constructor(t){this.keybindingService=t}getResolver(){const t=new zn((()=>this.keybindingService.getKeybindings().filter((t=>tQ.codeActionCommands.indexOf(t.command)>=0)).filter((t=>t.resolvedKeybinding)).map((t=>{let i=t.commandArgs;return t.command===qZ?i={kind:NZ.SourceOrganizeImports.value}:t.command===KZ&&(i={kind:NZ.SourceFixAll.value}),{resolvedKeybinding:t.resolvedKeybinding,...$Z.fromUser(i,{kind:NZ.None,apply:"never"})}}))));return i=>{if(i.kind){const e=this.bestKeybindingForCodeAction(i,t.value);return null==e?void 0:e.resolvedKeybinding}}}bestKeybindingForCodeAction(t,i){if(!t.kind)return;const e=new NZ(t.kind);return i.filter((t=>t.kind.contains(e))).filter((i=>!i.preferred||t.isPreferred)).reduceRight(((t,i)=>t?t.kind.contains(i.kind)?i:t:i),void 0)}};iQ.codeActionCommands=[VZ,jZ,UZ,qZ,KZ],iQ=tQ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(0,oC)],iQ),dw("symbolIcon.arrayForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.booleanForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},ot(0,"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.colorForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.constantForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},ot(0,"The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},ot(0,"The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},ot(0,"The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},ot(0,"The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},ot(0,"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.fileForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.folderForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},ot(0,"The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},ot(0,"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.keyForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.keywordForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},ot(0,"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.moduleForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.namespaceForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.nullForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.numberForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.objectForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.operatorForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.packageForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.propertyForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.referenceForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.snippetForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.stringForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.structForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.textForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.typeParameterForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.unitForeground",{dark:fw,light:fw,hcDark:fw,hcLight:fw},ot(0,"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dw("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},ot(0,"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));const eQ=Object.freeze({kind:NZ.Empty,title:ot(0,"More Actions...")}),sQ=Object.freeze([{kind:NZ.QuickFix,title:ot(0,"Quick Fix")},{kind:NZ.RefactorExtract,title:ot(0,"Extract"),icon:Os.wrench},{kind:NZ.RefactorInline,title:ot(0,"Inline"),icon:Os.wrench},{kind:NZ.RefactorRewrite,title:ot(0,"Rewrite"),icon:Os.wrench},{kind:NZ.RefactorMove,title:ot(0,"Move"),icon:Os.wrench},{kind:NZ.SurroundWith,title:ot(0,"Surround With"),icon:Os.symbolSnippet},{kind:NZ.Source,title:ot(0,"Source Action"),icon:Os.symbolFile},eQ]);var nQ,oQ,rQ=function(t,i){return function(e,s){i(e,s,t)}};!function(t){t.Hidden={type:0},t.Showing=class{constructor(t,i,e,s){this.actions=t,this.trigger=i,this.editorPosition=e,this.widgetPosition=s,this.type=1}}}(oQ||(oQ={}));let hQ=nQ=class extends te{constructor(t,i,e){var s,n,o;super(),this._editor=t,this._keybindingService=i,this._onClick=this._register(new de),this.onClick=this._onClick.event,this._state=oQ.Hidden,this._iconClasses=[],this._domNode=$l("div.lightBulbWidget"),this._register(rw.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent((()=>{const t=this._editor.getModel();(1!==this.state.type||!t||this.state.editorPosition.lineNumber>=t.getLineCount())&&this.hide()}))),this._register((n=t=>{var i;if(1!==this.state.type)return;const s=this._editor.getOption(64).experimental.showAiIcon;if((s===mi.On||s===mi.OnCode)&&this.state.actions.allAIFixes&&1===this.state.actions.validActions.length){const s=this.state.actions.validActions[0].action;if(null===(i=s.command)||void 0===i?void 0:i.id)return e.executeCommand(s.command.id,...s.command.arguments||[]),void t.preventDefault()}this._editor.focus(),t.preventDefault();const{top:n,height:o}=nl(this._domNode),r=this._editor.getOption(66);let h=Math.floor(r/3);null!==this.state.widgetPosition.position&&this.state.widgetPosition.position.lineNumber{1&~t.buttons||this.hide()}))),this._register(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(64)&&(this._editor.getOption(64).enabled||this.hide(),this._updateLightBulbTitleAndIcon())}))),this._register(he.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,(()=>{var t,i,e,s;this._preferredKbLabel=null!==(i=null===(t=this._keybindingService.lookupKeybinding(HZ))||void 0===t?void 0:t.getLabel())&&void 0!==i?i:void 0,this._quickFixKbLabel=null!==(s=null===(e=this._keybindingService.lookupKeybinding(zZ))||void 0===e?void 0:e.getLabel())&&void 0!==s?s:void 0,this._updateLightBulbTitleAndIcon()})))}dispose(){super.dispose(),this._editor.removeContentWidget(this)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){return 1===this._state.type?this._state.widgetPosition:null}update(t,i,e){if(t.validActions.length<=0)return this.hide();const s=this._editor.getOptions();if(!s.get(64).enabled)return this.hide();const n=this._editor.getModel();if(!n)return this.hide();const{lineNumber:o,column:r}=n.validatePosition(e),h=n.getOptions().tabSize,c=s.get(50),a=RS(n.getLineContent(o),h),l=t=>t>2&&this._editor.getTopForLineNumber(t)===this._editor.getTopForLineNumber(t-1);let u=o;if(!(c.spaceWidth*a>22))if(o>1&&!l(o-1))u-=1;else if(l(o+1)){if(r*c.spaceWidth<22)return this.hide()}else u+=1;this.state=new oQ.Showing(t,i,e,{position:{lineNumber:u,column:n.getLineContent(u).match(/^\S\s*$/)?2:1},preference:nQ._posPref}),this._editor.layoutContentWidget(this)}hide(){this.state!==oQ.Hidden&&(this.state=oQ.Hidden,this._editor.layoutContentWidget(this))}get state(){return this._state}set state(t){this._state=t,this._updateLightBulbTitleAndIcon()}_updateLightBulbTitleAndIcon(){var t,i,e;if(this._domNode.classList.remove(...this._iconClasses),this._iconClasses=[],1!==this.state.type)return;const s=()=>{this._preferredKbLabel&&(this.title=ot(0,"Show Code Actions. Preferred Quick Fix Available ({0})",this._preferredKbLabel))},n=()=>{this.title=this._quickFixKbLabel?ot(0,"Show Code Actions ({0})",this._quickFixKbLabel):ot(0,"Show Code Actions")};let o;const r=this._editor.getOption(64).experimental.showAiIcon;if(r===mi.On||r===mi.OnCode)if(r===mi.On&&this.state.actions.allAIFixes)if(o=Os.sparkleFilled,this.state.actions.allAIFixes&&1===this.state.actions.validActions.length)if("inlineChat.start"===(null===(t=this.state.actions.validActions[0].action.command)||void 0===t?void 0:t.id)){const t=null!==(e=null===(i=this._keybindingService.lookupKeybinding("inlineChat.start"))||void 0===i?void 0:i.getLabel())&&void 0!==e?e:void 0;this.title=t?ot(0,"Start Inline Chat ({0})",t):ot(0,"Start Inline Chat")}else this.title=ot(0,"Trigger AI Action");else n();else this.state.actions.hasAutoFix?(o=this.state.actions.hasAIFix?Os.lightbulbSparkleAutofix:Os.lightbulbAutofix,s()):this.state.actions.hasAIFix?(o=Os.lightbulbSparkle,n()):(o=Os.lightBulb,n());else this.state.actions.hasAutoFix?(o=Os.lightbulbAutofix,s()):(o=Os.lightBulb,n());this._iconClasses=Cr.asClassNameArray(o),this._domNode.classList.add(...this._iconClasses)}set title(t){this._domNode.title=t}};hQ.ID="editor.contrib.lightbulbWidget",hQ._posPref=[0],hQ=nQ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([rQ(1,oC),rQ(2,Sr)],hQ);var cQ,aQ=function(t,i){return function(e,s){i(e,s,t)}};let lQ=cQ=class{constructor(t,i,e){this._options=t,this._languageService=i,this._openerService=e,this._onDidRenderAsync=new de,this.onDidRenderAsync=this._onDidRenderAsync.event}dispose(){this._onDidRenderAsync.dispose()}render(t,i,e){if(!t)return{element:document.createElement("span"),dispose:()=>{}};const s=new Xi,n=s.add(oN(t,{...this._getRenderOptions(t,s),...i},e));return n.element.classList.add("rendered-markdown"),{element:n.element,dispose:()=>s.dispose()}}_getRenderOptions(t,i){return{codeBlockRenderer:async(t,i)=>{var e,s,n;let o;t?o=this._languageService.getLanguageIdByLanguageName(t):this._options.editor&&(o=null===(e=this._options.editor.getModel())||void 0===e?void 0:e.getLanguageId()),o||(o=Ud);const r=await async function(t,i,e){if(!e)return SF(i,t.languageIdCodec,xF);const s=await Zs.getOrCreate(e);return SF(i,t.languageIdCodec,s||xF)}(this._languageService,i,o),h=document.createElement("span");return h.innerHTML=null!==(n=null===(s=cQ._ttpTokenizer)||void 0===s?void 0:s.createHTML(r))&&void 0!==n?n:r,this._options.editor?ir(h,this._options.editor.getOption(50)):this._options.codeBlockFontFamily&&(h.style.fontFamily=this._options.codeBlockFontFamily),void 0!==this._options.codeBlockFontSize&&(h.style.fontSize=this._options.codeBlockFontSize),h},asyncRenderCallback:()=>this._onDidRenderAsync.fire(),actionHandler:{callback:i=>uQ(this._openerService,i,t.isTrusted),disposables:i}}}};async function uQ(t,i,e){try{return await t.open(i,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:dQ(e)})}catch(t){return Bi(t),!1}}function dQ(t){return!0===t||!(!t||!Array.isArray(t.enabledCommands))&&t.enabledCommands}lQ._ttpTokenizer=Mu("tokenizeToString",{createHTML:t=>t}),lQ=cQ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([aQ(1,yd),aQ(2,dP)],lQ);var fQ,pQ=function(t,i){return function(e,s){i(e,s,t)}};let gQ=fQ=class{static get(t){return t.getContribution(fQ.ID)}constructor(t,i,e){this._openerService=e,this._messageWidget=new ie,this._messageListeners=new Xi,this._mouseOverMessage=!1,this._editor=t,this._visible=fQ.MESSAGE_VISIBLE.bindTo(i)}dispose(){var t;null===(t=this._message)||void 0===t||t.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(t,i){let e;Pm(P_(t)?t.value:t),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=P_(t)?oN(t,{actionHandler:{callback:i=>uQ(this._openerService,i,P_(t)?t.isTrusted:void 0),disposables:this._messageListeners}}):void 0,this._messageWidget.value=new mQ(this._editor,i,"string"==typeof t?t:this._message.element),this._messageListeners.add(he.debounce(this._editor.onDidBlurEditorText,((t,i)=>i),0)((()=>{this._mouseOverMessage||this._messageWidget.value&&al(pl(),this._messageWidget.value.getDomNode())||this.closeMessage()}))),this._messageListeners.add(this._editor.onDidChangeCursorPosition((()=>this.closeMessage()))),this._messageListeners.add(this._editor.onDidDispose((()=>this.closeMessage()))),this._messageListeners.add(this._editor.onDidChangeModel((()=>this.closeMessage()))),this._messageListeners.add(Va(this._messageWidget.value.getDomNode(),Ll.MOUSE_ENTER,(()=>this._mouseOverMessage=!0),!0)),this._messageListeners.add(Va(this._messageWidget.value.getDomNode(),Ll.MOUSE_LEAVE,(()=>this._mouseOverMessage=!1),!0)),this._messageListeners.add(this._editor.onMouseMove((t=>{t.target.position&&(e?e.containsPosition(t.target.position)||this.closeMessage():e=new Ms(i.lineNumber-3,1,t.target.position.lineNumber+3,1))})))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(mQ.fadeOut(this._messageWidget.value))}};gQ.ID="editor.contrib.messageController",gQ.MESSAGE_VISIBLE=new ch("messageVisible",!1,ot(0,"Whether the editor is currently showing an inline message")),gQ=fQ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([pQ(1,ah),pQ(2,dP)],gQ),hu(new(eu.bindToContribution(gQ.get))({id:"leaveEditorMessage",precondition:gQ.MESSAGE_VISIBLE,handler:t=>t.closeMessage(),kbOpts:{weight:130,primary:9}}));class mQ{static fadeOut(t){const i=()=>{t.dispose(),clearTimeout(e),t.getDomNode().removeEventListener("animationend",i)},e=setTimeout(i,110);return t.getDomNode().addEventListener("animationend",i),t.getDomNode().classList.add("fadeOut"),{dispose:i}}constructor(t,{lineNumber:i,column:e},s){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=t,this._editor.revealLinesInCenterIfOutsideViewport(i,i,0),this._position={lineNumber:i,column:e},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const n=document.createElement("div");n.classList.add("anchor","top"),this._domNode.appendChild(n);const o=document.createElement("div");"string"==typeof s?(o.classList.add("message"),o.textContent=s):(s.classList.add("message"),o.appendChild(s)),this._domNode.appendChild(o);const r=document.createElement("div");r.classList.add("anchor","below"),this._domNode.appendChild(r),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(t){this._domNode.classList.toggle("below",2===t)}}lu(gQ.ID,gQ,4);var wQ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},vQ=function(t,i){return function(e,s){i(e,s,t)}};const bQ="acceptSelectedCodeAction",yQ="previewSelectedCodeAction";class kQ{get templateId(){return"header"}renderTemplate(t){t.classList.add("group-header");const i=document.createElement("span");return t.append(i),{container:t,text:i}}renderElement(t,i,e){var s,n;e.text.textContent=null!==(n=null===(s=t.group)||void 0===s?void 0:s.title)&&void 0!==n?n:""}disposeTemplate(t){}}let xQ=class{get templateId(){return"action"}constructor(t,i){this._supportsPreview=t,this._keybindingService=i}renderTemplate(t){t.classList.add(this.templateId);const i=document.createElement("div");i.className="icon",t.append(i);const e=document.createElement("span");return e.className="title",t.append(e),{container:t,icon:i,text:e,keybinding:new Xj(t,It)}}renderElement(t,i,e){var s,n,o;if((null===(s=t.group)||void 0===s?void 0:s.icon)?(e.icon.className=Cr.asClassName(t.group.icon),t.group.icon.color&&(e.icon.style.color=aw(t.group.icon.color.id))):(e.icon.className=Cr.asClassName(Os.lightBulb),e.icon.style.color="var(--vscode-editorLightBulb-foreground)"),!t.item||!t.label)return;e.text.textContent=AQ(t.label),e.keybinding.set(t.keybinding),function(t,...i){t?Wl(...i):jl(...i)}(!!t.keybinding,e.keybinding.element);const r=null===(n=this._keybindingService.lookupKeybinding(bQ))||void 0===n?void 0:n.getLabel(),h=null===(o=this._keybindingService.lookupKeybinding(yQ))||void 0===o?void 0:o.getLabel();e.container.classList.toggle("option-disabled",t.disabled),e.container.title=t.disabled?t.label:r&&h?this._supportsPreview&&t.canPreview?ot(0,"{0} to apply, {1} to preview",r,h):ot(0,"{0} to apply",r):""}disposeTemplate(t){}};xQ=wQ([vQ(1,oC)],xQ);class CQ extends UIEvent{constructor(){super("acceptSelectedAction")}}class SQ extends UIEvent{constructor(){super("previewSelectedAction")}}function DQ(t){if("action"===t.kind)return t.label}let EQ=class extends te{constructor(t,i,e,s,n,o){super(),this._delegate=s,this._contextViewService=n,this._keybindingService=o,this._actionLineHeight=24,this._headerLineHeight=26,this.cts=this._register(new Ce),this.domNode=document.createElement("div"),this.domNode.classList.add("actionList"),this._list=this._register(new aB(t,this.domNode,{getHeight:t=>"header"===t.kind?this._headerLineHeight:this._actionLineHeight,getTemplateId:t=>t.kind},[new xQ(i,this._keybindingService),new kQ],{keyboardSupport:!1,typeNavigationEnabled:!0,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:DQ},accessibilityProvider:{getAriaLabel:t=>{if("action"===t.kind){let i=t.label?AQ(null==t?void 0:t.label):"";return t.disabled&&(i=ot(0,"{0}, Disabled Reason: {1}",i,t.disabled)),i}return null},getWidgetAriaLabel:()=>ot(0,"Action Widget"),getRole:t=>"action"===t.kind?"option":"separator",getWidgetRole:()=>"listbox"}})),this._list.style(BB),this._register(this._list.onMouseClick((t=>this.onListClick(t)))),this._register(this._list.onMouseOver((t=>this.onListHover(t)))),this._register(this._list.onDidChangeFocus((()=>this.onFocus()))),this._register(this._list.onDidChangeSelection((t=>this.onListSelection(t)))),this._allMenuItems=e,this._list.splice(0,this._list.length,this._allMenuItems),this._list.length&&this.focusNext()}focusCondition(t){return!t.disabled&&"action"===t.kind}hide(t){this._delegate.onHide(t),this.cts.cancel(),this._contextViewService.hideContextView()}layout(t){const i=this._allMenuItems.filter((t=>"header"===t.kind)).length,e=this._allMenuItems.length*this._actionLineHeight+i*this._headerLineHeight-i*this._actionLineHeight;this._list.layout(e);let s=t;if(this._allMenuItems.length>=50)s=380;else{const i=this._allMenuItems.map(((t,i)=>{const e=this.domNode.ownerDocument.getElementById(this._list.getElementID(i));if(e){e.style.width="auto";const t=e.getBoundingClientRect().width;return e.style.width="",t}return 0}));s=Math.max(...i,t)}const n=Math.min(e,.7*this.domNode.ownerDocument.body.clientHeight);return this._list.layout(n,s),this.domNode.style.height=`${n}px`,this._list.domFocus(),s}focusPrevious(){this._list.focusPrevious(1,!0,void 0,this.focusCondition)}focusNext(){this._list.focusNext(1,!0,void 0,this.focusCondition)}acceptSelected(t){const i=this._list.getFocus();if(0===i.length)return;const e=i[0],s=this._list.element(e);if(!this.focusCondition(s))return;const n=t?new SQ:new CQ;this._list.setSelection([e],n)}onListSelection(t){if(!t.elements.length)return;const i=t.elements[0];i.item&&this.focusCondition(i)?this._delegate.onSelect(i.item,t.browserEvent instanceof SQ):this._list.setSelection([])}onFocus(){var t,i;this._list.domFocus();const e=this._list.getFocus();if(0===e.length)return;const s=this._list.element(e[0]);null===(i=(t=this._delegate).onFocus)||void 0===i||i.call(t,s.item)}async onListHover(t){const i=t.element;if(i&&i.item&&this.focusCondition(i)){if(this._delegate.onHover&&!i.disabled&&"action"===i.kind){const t=await this._delegate.onHover(i.item,this.cts.token);i.canPreview=t?t.canPreview:void 0}t.index&&this._list.splice(t.index,1,[i])}this._list.setFocus("number"==typeof t.index?[t.index]:[])}onListClick(t){t.element&&this.focusCondition(t.element)&&this._list.setFocus([])}};function AQ(t){return t.replace(/\r\n|\r|\n/g," ")}EQ=wQ([vQ(4,aI),vQ(5,oC)],EQ);var MQ=function(t,i){return function(e,s){i(e,s,t)}};dw("actionBar.toggledBackground",{dark:Ew,light:Ew,hcDark:Ew,hcLight:Ew},ot(0,"Background color for toggled action items in action bar."));const LQ={Visible:new ch("codeActionMenuVisible",!1,ot(0,"Whether the action widget list is visible"))},FQ=dr("actionWidgetService");let TQ=class extends te{get isVisible(){return LQ.Visible.getValue(this._contextKeyService)||!1}constructor(t,i,e){super(),this._contextViewService=t,this._contextKeyService=i,this._instantiationService=e,this._list=this._register(new ie)}show(t,i,e,s,n,o,r){const h=LQ.Visible.bindTo(this._contextKeyService),c=this._instantiationService.createInstance(EQ,t,i,e,s);this._contextViewService.showContextView({getAnchor:()=>n,render:t=>(h.set(!0),this._renderWidget(t,c,null!=r?r:[])),onHide:t=>{h.reset(),this._onWidgetClosed(t)}},o,!1)}acceptSelected(t){var i;null===(i=this._list.value)||void 0===i||i.acceptSelected(t)}focusPrevious(){var t,i;null===(i=null===(t=this._list)||void 0===t?void 0:t.value)||void 0===i||i.focusPrevious()}focusNext(){var t,i;null===(i=null===(t=this._list)||void 0===t?void 0:t.value)||void 0===i||i.focusNext()}hide(){var t;null===(t=this._list.value)||void 0===t||t.hide(),this._list.clear()}_renderWidget(t,i,e){var s;const n=document.createElement("div");if(n.classList.add("action-widget"),t.appendChild(n),this._list.value=i,!this._list.value)throw new Error("List has no value");n.appendChild(this._list.value.domNode);const o=new Xi,r=document.createElement("div"),h=t.appendChild(r);h.classList.add("context-view-block"),o.add(Va(h,Ll.MOUSE_DOWN,(t=>t.stopPropagation())));const c=document.createElement("div"),a=t.appendChild(c);a.classList.add("context-view-pointerBlock"),o.add(Va(a,Ll.POINTER_MOVE,(()=>a.remove()))),o.add(Va(a,Ll.MOUSE_DOWN,(()=>a.remove())));let l=0;if(e.length){const t=this._createActionBar(".action-widget-action-bar",e);t&&(n.appendChild(t.getContainer().parentElement),o.add(t),l=t.getContainer().offsetWidth)}const u=null===(s=this._list.value)||void 0===s?void 0:s.layout(l);n.style.width=`${u}px`;const d=o.add(Rl(t));return o.add(d.onDidBlur((()=>this.hide()))),o}_createActionBar(t,i){if(!i.length)return;const e=$l(t),s=new YB(e);return s.push(i,{icon:!1,label:!0}),s}_onWidgetClosed(t){var i;null===(i=this._list.value)||void 0===i||i.hide(t)}};TQ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([MQ(0,aI),MQ(1,ah),MQ(2,ur)],TQ),Cd(FQ,TQ,1);const RQ=1100;$h(class extends Ph{constructor(){super({id:"hideCodeActionWidget",title:{value:ot(0,"Hide action widget"),original:"Hide action widget"},precondition:LQ.Visible,keybinding:{weight:RQ,primary:9,secondary:[1033]}})}run(t){t.get(FQ).hide()}}),$h(class extends Ph{constructor(){super({id:"selectPrevCodeAction",title:{value:ot(0,"Select previous action"),original:"Select previous action"},precondition:LQ.Visible,keybinding:{weight:RQ,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(t){const i=t.get(FQ);i instanceof TQ&&i.focusPrevious()}}),$h(class extends Ph{constructor(){super({id:"selectNextCodeAction",title:{value:ot(0,"Select next action"),original:"Select next action"},precondition:LQ.Visible,keybinding:{weight:RQ,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(t){const i=t.get(FQ);i instanceof TQ&&i.focusNext()}}),$h(class extends Ph{constructor(){super({id:bQ,title:{value:ot(0,"Accept selected action"),original:"Accept selected action"},precondition:LQ.Visible,keybinding:{weight:RQ,primary:3,secondary:[2137]}})}run(t){const i=t.get(FQ);i instanceof TQ&&i.acceptSelected()}}),$h(class extends Ph{constructor(){super({id:yQ,title:{value:ot(0,"Preview selected action"),original:"Preview selected action"},precondition:LQ.Visible,keybinding:{weight:RQ,primary:2051}})}run(t){const i=t.get(FQ);i instanceof TQ&&i.acceptSelected(!0)}});const OQ=new ch("supportedCodeAction","");class IQ extends te{constructor(t,i,e,s=250){super(),this._editor=t,this._markerService=i,this._signalChange=e,this._delay=s,this._autoTriggerTimer=this._register(new dc),this._register(this._markerService.onMarkerChanged((t=>this._onMarkerChanges(t)))),this._register(this._editor.onDidChangeCursorPosition((()=>this._tryAutoTrigger())))}trigger(t){const i=this._getRangeOfSelectionUnlessWhitespaceEnclosed(t);this._signalChange(i?{trigger:t,selection:i}:void 0)}_onMarkerChanges(t){const i=this._editor.getModel();i&&t.some((t=>wA(t,i.uri)))&&this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet((()=>{this.trigger({type:2,triggerAction:BZ.Default})}),this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(t){var i;if(!this._editor.hasModel())return;const e=this._editor.getModel(),s=this._editor.getSelection();if(s.isEmpty()&&2===t.type){const{lineNumber:t,column:n}=s.getPosition(),o=e.getLineContent(t);if(0===o.length){if((null===(i=this._editor.getOption(64).experimental)||void 0===i?void 0:i.showAiIcon)!==mi.On)return}else if(1===n){if(/\s/.test(o[0]))return}else if(n===e.getLineMaxColumn(t)){if(/\s/.test(o[o.length-1]))return}else if(/\s/.test(o[n-2])&&/\s/.test(o[n-1]))return}return s}}var _Q;!function(t){t.Empty={type:0},t.Triggered=class{constructor(t,i,e){this.trigger=t,this.position=i,this._cancellablePromise=e,this.type=1,this.actions=e.catch((t=>{if(ji(t))return NQ;throw t}))}cancel(){this._cancellablePromise.cancel()}}}(_Q||(_Q={}));const NQ=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class BQ extends te{constructor(t,i,e,s,n,o){super(),this._editor=t,this._registry=i,this._markerService=e,this._progressService=n,this._configurationService=o,this._codeActionOracle=this._register(new ie),this._state=_Q.Empty,this._onDidChangeState=this._register(new de),this.onDidChangeState=this._onDidChangeState.event,this._disposed=!1,this._supportedCodeActions=OQ.bindTo(s),this._register(this._editor.onDidChangeModel((()=>this._update()))),this._register(this._editor.onDidChangeModelLanguage((()=>this._update()))),this._register(this._registry.onDidChange((()=>this._update()))),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(_Q.Empty,!0))}_settingEnabledNearbyQuickfixes(){var t;const i=null===(t=this._editor)||void 0===t?void 0:t.getModel();return!!this._configurationService&&this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:null==i?void 0:i.uri})}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(_Q.Empty);const t=this._editor.getModel();if(t&&this._registry.has(t)&&!this._editor.getOption(90)){const i=this._registry.all(t).flatMap((t=>{var i;return null!==(i=t.providedCodeActionKinds)&&void 0!==i?i:[]}));this._supportedCodeActions.set(i.join(" ")),this._codeActionOracle.value=new IQ(this._editor,this._markerService,(i=>{var e;if(!i)return void this.setState(_Q.Empty);const s=i.selection.getStartPosition(),n=nc((async e=>{var s,n,o,r,h,c;if(this._settingEnabledNearbyQuickfixes()&&1===i.trigger.type&&(i.trigger.triggerAction===BZ.QuickFix||(null===(n=null===(s=i.trigger.filter)||void 0===s?void 0:s.include)||void 0===n?void 0:n.contains(NZ.QuickFix)))){const s=await QZ(this._registry,t,i.selection,i.trigger,jO.None,e),n=[...s.allActions];if(e.isCancellationRequested)return NQ;if(!(null===(o=s.validActions)||void 0===o?void 0:o.some((t=>!!t.action.kind&&NZ.QuickFix.contains(new NZ(t.action.kind)))))){const o=this._markerService.read({resource:t.uri});if(o.length>0){const a=i.selection.getPosition();let l=a,u=Number.MAX_VALUE;const d=[...s.validActions];for(const f of o){const o=f.endColumn,p=f.endLineNumber;if(p===a.lineNumber||f.startLineNumber===a.lineNumber){l=new As(p,o);const f={type:i.trigger.type,triggerAction:i.trigger.triggerAction,filter:{include:(null===(r=i.trigger.filter)||void 0===r?void 0:r.include)?null===(h=i.trigger.filter)||void 0===h?void 0:h.include:NZ.QuickFix},autoApply:i.trigger.autoApply,context:{notAvailableMessage:(null===(c=i.trigger.context)||void 0===c?void 0:c.notAvailableMessage)||"",position:l}},g=new Ls(l.lineNumber,l.column,l.lineNumber,l.column),m=await QZ(this._registry,t,g,f,jO.None,e);if(0!==m.validActions.length){for(const t of m.validActions)t.highlightRange=t.action.isPreferred;0===s.allActions.length&&n.push(...m.allActions),Math.abs(a.column-o)e.findIndex((i=>i.action.title===t.action.title))===i));return f.sort(((t,i)=>t.action.isPreferred&&!i.action.isPreferred?-1:!t.action.isPreferred&&i.action.isPreferred||t.action.isAI&&!i.action.isAI?1:!t.action.isAI&&i.action.isAI?-1:0)),{validActions:f,allActions:n,documentation:s.documentation,hasAutoFix:s.hasAutoFix,hasAIFix:s.hasAIFix,allAIFixes:s.allAIFixes,dispose:()=>{s.dispose()}}}}}return QZ(this._registry,t,i.selection,i.trigger,jO.None,e)}));1===i.trigger.type&&(null===(e=this._progressService)||void 0===e||e.showWhile(n,250)),this.setState(new _Q.Triggered(i.trigger,s,n))}),void 0),this._codeActionOracle.value.trigger({type:2,triggerAction:BZ.Default})}else this._supportedCodeActions.reset()}trigger(t){var i;null===(i=this._codeActionOracle.value)||void 0===i||i.trigger(t)}setState(t,i){t!==this._state&&(1===this._state.type&&this._state.cancel(),this._state=t,i||this._disposed||this._onDidChangeState.fire(t))}}var PQ,$Q=function(t,i){return function(e,s){i(e,s,t)}};let WQ=PQ=class extends te{static get(t){return t.getContribution(PQ.ID)}constructor(t,i,e,s,n,o,r,h,c,a){super(),this._commandService=r,this._configurationService=h,this._actionWidgetService=c,this._instantiationService=a,this._activeCodeActions=this._register(new ie),this._showDisabled=!1,this._disposed=!1,this._editor=t,this._model=this._register(new BQ(this._editor,n.codeActionProvider,i,e,o,h)),this._register(this._model.onDidChangeState((t=>this.update(t)))),this._lightBulbWidget=new zn((()=>{const t=this._editor.getContribution(hQ.ID);return t&&this._register(t.onClick((t=>this.showCodeActionList(t.actions,t,{includeDisabledActions:!1,fromLightbulb:!0})))),t})),this._resolver=s.createInstance(iQ),this._register(this._editor.onDidLayoutChange((()=>this._actionWidgetService.hide())))}dispose(){this._disposed=!0,super.dispose()}showCodeActions(t,i,e){return this.showCodeActionList(i,e,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(t,i,e,s){var n;if(!this._editor.hasModel())return;null===(n=gQ.get(this._editor))||void 0===n||n.closeMessage();const o=this._editor.getPosition();this._trigger({type:1,triggerAction:i,filter:e,autoApply:s,context:{notAvailableMessage:t,position:o}})}_trigger(t){return this._model.trigger(t)}async _applyCodeAction(t,i,e){try{await this._instantiationService.invokeFunction(XZ,t,YZ.FromCodeActions,{preview:e,editor:this._editor})}finally{i&&this._trigger({type:2,triggerAction:BZ.QuickFix,filter:{}})}}async update(t){var i,e,s,n,o,r,h;if(1!==t.type)return void(null===(i=this._lightBulbWidget.rawValue)||void 0===i||i.hide());let c;try{c=await t.actions}catch(t){return void Bi(t)}if(!this._disposed)if(null===(e=this._lightBulbWidget.value)||void 0===e||e.update(c,t.trigger,t.position),1===t.trigger.type){if(null===(s=t.trigger.filter)||void 0===s?void 0:s.include){const i=this.tryGetValidActionToApply(t.trigger,c);if(i){try{null===(n=this._lightBulbWidget.value)||void 0===n||n.hide(),await this._applyCodeAction(i,!1,!1)}finally{c.dispose()}return}if(t.trigger.context){const i=this.getInvalidActionThatWouldHaveBeenApplied(t.trigger,c);if(i&&i.action.disabled)return null===(o=gQ.get(this._editor))||void 0===o||o.showMessage(i.action.disabled,t.trigger.context.position),void c.dispose()}}const i=!!(null===(r=t.trigger.filter)||void 0===r?void 0:r.include);if(t.trigger.context&&(!c.allActions.length||!i&&!c.validActions.length))return null===(h=gQ.get(this._editor))||void 0===h||h.showMessage(t.trigger.context.notAvailableMessage,t.trigger.context.position),this._activeCodeActions.value=c,void c.dispose();this._activeCodeActions.value=c,this.showCodeActionList(c,this.toCoords(t.position),{includeDisabledActions:i,fromLightbulb:!1})}else this._actionWidgetService.isVisible?c.dispose():this._activeCodeActions.value=c}getInvalidActionThatWouldHaveBeenApplied(t,i){if(i.allActions.length)return"first"===t.autoApply&&0===i.validActions.length||"ifSingle"===t.autoApply&&1===i.allActions.length?i.allActions.find((({action:t})=>t.disabled)):void 0}tryGetValidActionToApply(t,i){if(i.validActions.length)return"first"===t.autoApply&&i.validActions.length>0||"ifSingle"===t.autoApply&&1===i.validActions.length?i.validActions[0]:void 0}async showCodeActionList(t,i,e){const s=this._editor.createDecorationsCollection(),n=this._editor.getDomNode();if(!n)return;const o=e.includeDisabledActions&&(this._showDisabled||0===t.validActions.length)?t.allActions:t.validActions;if(!o.length)return;const r=As.isIPosition(i)?this.toCoords(i):i,h={onSelect:async(t,i)=>{this._applyCodeAction(t,!0,!!i),this._actionWidgetService.hide(),s.clear()},onHide:()=>{var t;null===(t=this._editor)||void 0===t||t.focus(),s.clear()},onHover:async(t,i)=>{var e;if(await t.resolve(i),!i.isCancellationRequested)return{canPreview:!!(null===(e=t.action.edit)||void 0===e?void 0:e.edits.length)}},onFocus:t=>{var i,e;if(t&&t.highlightRange&&t.action.diagnostics){s.set([{range:t.action.diagnostics[0],options:PQ.DECORATION}]);const n=t.action.diagnostics[0];$m(ot(0,"Context: {0} at line {1} and column {2}.",null===(e=null===(i=this._editor.getModel())||void 0===i?void 0:i.getWordAtPosition({lineNumber:n.startLineNumber,column:n.startColumn}))||void 0===e?void 0:e.word,n.startLineNumber,n.startColumn))}else s.clear()}};this._actionWidgetService.show("codeActionWidget",!0,function(t,i,e){if(!i)return t.map((t=>{var i;return{kind:"action",item:t,group:eQ,disabled:!!t.action.disabled,label:t.action.disabled||t.action.title,canPreview:!!(null===(i=t.action.edit)||void 0===i?void 0:i.edits.length)}}));const s=sQ.map((t=>({group:t,actions:[]})));for(const i of t){const t=i.action.kind?new NZ(i.action.kind):NZ.None;for(const e of s)if(e.group.kind.contains(t)){e.actions.push(i);break}}const n=[];for(const t of s)if(t.actions.length){n.push({kind:"header",group:t.group});for(const i of t.actions){const s=t.group;n.push({kind:"action",item:i,group:i.action.isAI?{title:s.title,kind:s.kind,icon:Os.sparkle}:s,label:i.action.title,disabled:!!i.action.disabled,keybinding:e(i.action)})}}return n}(o,this._shouldShowHeaders(),this._resolver.getResolver()),h,r,n,this._getActionBarActions(t,i,e))}toCoords(t){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(t,1),this._editor.render();const i=this._editor.getScrolledVisiblePosition(t),e=nl(this._editor.getDomNode());return{x:e.left+i.left,y:e.top+i.top+i.height}}_shouldShowHeaders(){var t;const i=null===(t=this._editor)||void 0===t?void 0:t.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:null==i?void 0:i.uri})}_getActionBarActions(t,i,e){if(e.fromLightbulb)return[];const s=t.documentation.map((t=>{var i;return{id:t.id,label:t.title,tooltip:null!==(i=t.tooltip)&&void 0!==i?i:"",class:void 0,enabled:!0,run:()=>{var i;return this._commandService.executeCommand(t.id,...null!==(i=t.arguments)&&void 0!==i?i:[])}}}));return e.includeDisabledActions&&t.validActions.length>0&&t.allActions.length!==t.validActions.length&&s.push(this._showDisabled?{id:"hideMoreActions",label:ot(0,"Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(t,i,e))}:{id:"showMoreActions",label:ot(0,"Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(t,i,e))}),s}};function jQ(t){return zr.regex(OQ.keys()[0],new RegExp("(\\s|^)"+Gn(t.value)+"\\b"))}WQ.ID="editor.contrib.codeActionController",WQ.DECORATION=AL.register({description:"quickfix-highlight",className:"quickfix-edit-highlight"}),WQ=PQ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([$Q(1,kP),$Q(2,ah),$Q(3,ur),$Q(4,xg),$Q(5,zO),$Q(6,Sr),$Q(7,pd),$Q(8,FQ),$Q(9,ur)],WQ),nx(((t,i)=>{((t,e)=>{e&&i.addRule(`.monaco-editor .quickfix-edit-highlight { background-color: ${e}; }`)})(0,t.getColor(Lv));const e=t.getColor(Rv);e&&i.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${zy(t.type)?"dotted":"solid"} ${e}; box-sizing: border-box; }`)}));const zQ={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:ot(0,"Kind of the code action to run.")},apply:{type:"string",description:ot(0,"Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[ot(0,"Always apply the first returned code action."),ot(0,"Apply the first returned code action if it is the only one."),ot(0,"Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:ot(0,"Controls if only preferred code actions should be returned.")}}};function HQ(t,i,e,s,n=BZ.Default){if(t.hasModel()){const o=WQ.get(t);null==o||o.manualTriggerAtCurrentPosition(i,n,e,s)}}lu(WQ.ID,WQ,3),lu(hQ.ID,hQ,4),cu(class extends su{constructor(){super({id:zZ,label:ot(0,"Quick Fix..."),alias:"Quick Fix...",precondition:zr.and(YC.writable,YC.hasCodeActionsProvider),kbOpts:{kbExpr:YC.textInputFocus,primary:2137,weight:100}})}run(t,i){return HQ(i,ot(0,"No code actions available"),void 0,void 0,BZ.QuickFix)}}),cu(class extends su{constructor(){super({id:VZ,label:ot(0,"Refactor..."),alias:"Refactor...",precondition:zr.and(YC.writable,YC.hasCodeActionsProvider),kbOpts:{kbExpr:YC.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:zr.and(YC.writable,jQ(NZ.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:zQ}]}})}run(t,i,e){const s=$Z.fromUser(e,{kind:NZ.Refactor,apply:"never"});return HQ(i,"string"==typeof(null==e?void 0:e.kind)?ot(0,s.preferred?"No preferred refactorings for '{0}' available":"No refactorings for '{0}' available",e.kind):ot(0,s.preferred?"No preferred refactorings available":"No refactorings available"),{include:NZ.Refactor.contains(s.kind)?s.kind:NZ.None,onlyIncludePreferredActions:s.preferred},s.apply,BZ.Refactor)}}),cu(class extends su{constructor(){super({id:UZ,label:ot(0,"Source Action..."),alias:"Source Action...",precondition:zr.and(YC.writable,YC.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:zr.and(YC.writable,jQ(NZ.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:zQ}]}})}run(t,i,e){const s=$Z.fromUser(e,{kind:NZ.Source,apply:"never"});return HQ(i,"string"==typeof(null==e?void 0:e.kind)?ot(0,s.preferred?"No preferred source actions for '{0}' available":"No source actions for '{0}' available",e.kind):ot(0,s.preferred?"No preferred source actions available":"No source actions available"),{include:NZ.Source.contains(s.kind)?s.kind:NZ.None,includeSourceActions:!0,onlyIncludePreferredActions:s.preferred},s.apply,BZ.SourceAction)}}),cu(class extends su{constructor(){super({id:qZ,label:ot(0,"Organize Imports"),alias:"Organize Imports",precondition:zr.and(YC.writable,jQ(NZ.SourceOrganizeImports)),kbOpts:{kbExpr:YC.textInputFocus,primary:1581,weight:100}})}run(t,i){return HQ(i,ot(0,"No organize imports action available"),{include:NZ.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",BZ.OrganizeImports)}}),cu(class extends su{constructor(){super({id:HZ,label:ot(0,"Auto Fix..."),alias:"Auto Fix...",precondition:zr.and(YC.writable,jQ(NZ.QuickFix)),kbOpts:{kbExpr:YC.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(t,i){return HQ(i,ot(0,"No auto fixes available"),{include:NZ.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",BZ.AutoFix)}}),cu(class extends su{constructor(){super({id:KZ,label:ot(0,"Fix All"),alias:"Fix All",precondition:zr.and(YC.writable,jQ(NZ.SourceFixAll))})}run(t,i){return HQ(i,ot(0,"No fix all action available"),{include:NZ.SourceFixAll,includeSourceActions:!0},"ifSingle",BZ.FixAll)}}),hu(new class extends eu{constructor(){super({id:jZ,precondition:zr.and(YC.writable,YC.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:zQ}]}})}runEditorCommand(t,i,e){const s=$Z.fromUser(e,{kind:NZ.Empty,apply:"ifSingle"});return HQ(i,"string"==typeof(null==e?void 0:e.kind)?ot(0,s.preferred?"No preferred code actions for '{0}' available":"No code actions for '{0}' available",e.kind):ot(0,s.preferred?"No preferred code actions available":"No code actions available"),{include:s.kind,includeSourceActions:!0,onlyIncludePreferredActions:s.preferred},s.apply)}}),Dh.as(Md).registerConfiguration({...aO,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:5,description:ot(0,"Enable/disable showing group headers in the Code Action menu."),default:!0}}}),Dh.as(Md).registerConfiguration({...aO,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:5,description:ot(0,"Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."),default:!0}}});class VQ{constructor(){this.lenses=[],this._disposables=new Xi}dispose(){this._disposables.dispose()}get isDisposed(){return this._disposables.isDisposed}add(t,i){this._disposables.add(t);for(const e of t.lenses)this.lenses.push({symbol:e,provider:i})}}async function UQ(t,i,e){const s=t.ordered(i),n=new Map,o=new VQ,r=s.map((async(t,s)=>{n.set(t,s);try{const s=await Promise.resolve(t.provideCodeLenses(i,e));s&&o.add(s,t)}catch(t){Pi(t)}}));return await Promise.all(r),o.lenses=o.lenses.sort(((t,i)=>t.symbol.range.startLineNumberi.symbol.range.startLineNumber?1:n.get(t.provider)n.get(i.provider)?1:t.symbol.range.startColumni.symbol.range.startColumn?1:0)),o}Dr.registerCommand("_executeCodeLensProvider",(function(t,...i){let[e,s]=i;q(ms.isUri(e)),q("number"==typeof s||!s);const{codeLensProvider:n}=t.get(xg),o=t.get(pr).getModel(e);if(!o)throw Hi();const r=[],h=new Xi;return UQ(n,o,ke.None).then((t=>{h.add(t);const i=[];for(const e of t.lenses)null==s||Boolean(e.symbol.command)?r.push(e.symbol):s-- >0&&e.provider.resolveCodeLens&&i.push(Promise.resolve(e.provider.resolveCodeLens(o,e.symbol,ke.None)).then((t=>r.push(t||e.symbol))));return Promise.all(i)})).then((()=>r)).finally((()=>{setTimeout((()=>h.dispose()),100)}))}));const qQ=dr("ICodeLensCache");class KQ{constructor(t,i){this.lineCount=t,this.data=i}}let GQ=class{constructor(t){this._fakeProvider=new class{provideCodeLenses(){throw new Error("not supported")}},this._cache=new Vp(20,.75),Ka($n,(()=>t.remove("codelens/cache",1)));const i="codelens/cache2",e=t.get(i,1,"{}");this._deserialize(e),he.once(t.onWillSaveState)((e=>{e.reason===MB.SHUTDOWN&&t.store(i,this._serialize(),1,1)}))}put(t,i){const e=i.lenses.map((t=>{var i;return{range:t.symbol.range,command:t.symbol.command&&{id:"",title:null===(i=t.symbol.command)||void 0===i?void 0:i.title}}})),s=new VQ;s.add({lenses:e,dispose:()=>{}},this._fakeProvider);const n=new KQ(t.getLineCount(),s);this._cache.set(t.uri.toString(),n)}get(t){const i=this._cache.get(t.uri.toString());return i&&i.lineCount===t.getLineCount()?i.data:void 0}delete(t){this._cache.delete(t.uri.toString())}_serialize(){const t=Object.create(null);for(const[i,e]of this._cache){const s=new Set;for(const t of e.data.lenses)s.add(t.symbol.range.startLineNumber);t[i]={lineCount:e.lineCount,lines:[...s.values()]}}return JSON.stringify(t)}_deserialize(t){try{const i=JSON.parse(t);for(const t in i){const e=i[t],s=[];for(const t of e.lines)s.push({range:new Ms(t,1,t,11)});const n=new VQ;n.add({lenses:s,dispose(){}},this._fakeProvider),this._cache.set(t,new KQ(e.lineCount,n))}}catch(t){}}};GQ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(0,AB)],GQ),Cd(qQ,GQ,1);class ZQ{constructor(t,i,e){this.afterColumn=1073741824,this.afterLineNumber=t,this.heightInPx=i,this._onHeight=e,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(t){void 0===this._lastHeight?this._lastHeight=t:this._lastHeight!==t&&(this._lastHeight=t,this._onHeight())}isVisible(){return 0!==this._lastHeight&&this.domNode.hasAttribute("monaco-visible-view-zone")}}class QQ{constructor(t,i){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=t,this._id="codelens.widget-"+QQ._idPool++,this.updatePosition(i),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration"}withCommands(t,i){this._commands.clear();const e=[];let s=!1;for(let i=0;i{t.symbol.command&&h.push(t.symbol),e.addDecoration({range:t.symbol.range,options:YQ},(t=>this._decorationIds[i]=t)),r=r?Ms.plusRange(r,t.symbol.range):Ms.lift(t.symbol.range)})),this._viewZone=new ZQ(r.startLineNumber-1,n,o),this._viewZoneId=s.addZone(this._viewZone),h.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(h,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new QQ(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(t,i){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],null==i||i.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some(((t,i)=>{const e=this._editor.getModel().getDecorationRange(t);return!(!e||Ms.isEmpty(this._data[i].symbol.range)!==e.isEmpty())}))}updateCodeLensSymbols(t,i){this._decorationIds.forEach(i.removeDecoration,i),this._decorationIds=[],this._data=t,this._data.forEach(((t,e)=>{i.addDecoration({range:t.symbol.range,options:YQ},(t=>this._decorationIds[e]=t))}))}updateHeight(t,i){this._viewZone.heightInPx=t,i.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(t){if(!this._viewZone.isVisible())return null;for(let i=0;ithis._resolveCodeLensesInViewport()),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel((()=>this._onModelChange()))),this._disposables.add(this._editor.onDidChangeModelLanguage((()=>this._onModelChange()))),this._disposables.add(this._editor.onDidChangeConfiguration((t=>{(t.hasChanged(50)||t.hasChanged(19)||t.hasChanged(18))&&this._updateLensStyle(),t.hasChanged(17)&&this._onModelChange()}))),this._disposables.add(i.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){var t;this._localDispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),null===(t=this._currentCodeLensModel)||void 0===t||t.dispose()}_getLayoutInfo(){const t=Math.max(1.3,this._editor.getOption(66)/this._editor.getOption(52));let i=this._editor.getOption(19);return(!i||i<5)&&(i=.9*this._editor.getOption(52)|0),{fontSize:i,codeLensHeight:i*t|0}}_updateLensStyle(){const{codeLensHeight:t,fontSize:i}=this._getLayoutInfo(),e=this._editor.getOption(18),s=this._editor.getOption(50),{style:n}=this._editor.getContainerDomNode();n.setProperty("--vscode-editorCodeLens-lineHeight",`${t}px`),n.setProperty("--vscode-editorCodeLens-fontSize",`${i}px`),n.setProperty("--vscode-editorCodeLens-fontFeatureSettings",s.fontFeatureSettings),e&&(n.setProperty("--vscode-editorCodeLens-fontFamily",e),n.setProperty("--vscode-editorCodeLens-fontFamilyDefault",Ri.fontFamily)),this._editor.changeViewZones((i=>{for(const e of this._lenses)e.updateHeight(t,i)}))}_localDispose(){var t,i,e;null===(t=this._getCodeLensModelPromise)||void 0===t||t.cancel(),this._getCodeLensModelPromise=void 0,null===(i=this._resolveCodeLensesPromise)||void 0===i||i.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),null===(e=this._currentCodeLensModel)||void 0===e||e.dispose()}_onModelChange(){this._localDispose();const t=this._editor.getModel();if(!t)return;if(!this._editor.getOption(17)||t.isTooLargeForTokenization())return;const i=this._codeLensCache.get(t);if(i&&this._renderCodeLensSymbols(i),!this._languageFeaturesService.codeLensProvider.has(t))return void(i&&lc((()=>{const e=this._codeLensCache.get(t);i===e&&(this._codeLensCache.delete(t),this._onModelChange())}),3e4,this._localToDispose));for(const i of this._languageFeaturesService.codeLensProvider.all(t))if("function"==typeof i.onDidChange){const t=i.onDidChange((()=>e.schedule()));this._localToDispose.add(t)}const e=new pc((()=>{var i;const s=Date.now();null===(i=this._getCodeLensModelPromise)||void 0===i||i.cancel(),this._getCodeLensModelPromise=nc((i=>UQ(this._languageFeaturesService.codeLensProvider,t,i))),this._getCodeLensModelPromise.then((i=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=i,this._codeLensCache.put(t,i);const n=this._provideCodeLensDebounce.update(t,Date.now()-s);e.delay=n,this._renderCodeLensSymbols(i),this._resolveCodeLensesInViewportSoon()}),Bi)}),this._provideCodeLensDebounce.get(t));this._localToDispose.add(e),this._localToDispose.add(Yi((()=>this._resolveCodeLensesScheduler.cancel()))),this._localToDispose.add(this._editor.onDidChangeModelContent((()=>{var t;this._editor.changeDecorations((t=>{this._editor.changeViewZones((i=>{const e=[];let s=-1;this._lenses.forEach((t=>{t.isValid()&&s!==t.getLineNumber()?(t.update(i),s=t.getLineNumber()):e.push(t)}));const n=new JQ;e.forEach((t=>{t.dispose(n,i),this._lenses.splice(this._lenses.indexOf(t),1)})),n.commit(t)}))})),e.schedule(),this._resolveCodeLensesScheduler.cancel(),null===(t=this._resolveCodeLensesPromise)||void 0===t||t.cancel(),this._resolveCodeLensesPromise=void 0}))),this._localToDispose.add(this._editor.onDidFocusEditorWidget((()=>{e.schedule()}))),this._localToDispose.add(this._editor.onDidBlurEditorText((()=>{e.cancel()}))),this._localToDispose.add(this._editor.onDidScrollChange((t=>{t.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()}))),this._localToDispose.add(this._editor.onDidLayoutChange((()=>{this._resolveCodeLensesInViewportSoon()}))),this._localToDispose.add(Yi((()=>{if(this._editor.getModel()){const t=iU.capture(this._editor);this._editor.changeDecorations((t=>{this._editor.changeViewZones((i=>{this._disposeAllLenses(t,i)}))})),t.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)}))),this._localToDispose.add(this._editor.onMouseDown((t=>{if(9!==t.target.type)return;let i=t.target.element;if("SPAN"===(null==i?void 0:i.tagName)&&(i=i.parentElement),"A"===(null==i?void 0:i.tagName))for(const t of this._lenses){const e=t.getCommand(i);if(e){this._commandService.executeCommand(e.id,...e.arguments||[]).catch((t=>this._notificationService.error(t)));break}}}))),e.schedule()}_disposeAllLenses(t,i){const e=new JQ;for(const t of this._lenses)t.dispose(e,i);t&&e.commit(t),this._lenses.length=0}_renderCodeLensSymbols(t){if(!this._editor.hasModel())return;const i=this._editor.getModel().getLineCount(),e=[];let s;for(const n of t.lenses){const t=n.symbol.range.startLineNumber;t<1||t>i||(s&&s[s.length-1].symbol.range.startLineNumber===t?s.push(n):(s=[n],e.push(s)))}if(!e.length&&!this._lenses.length)return;const n=iU.capture(this._editor),o=this._getLayoutInfo();this._editor.changeDecorations((t=>{this._editor.changeViewZones((i=>{const s=new JQ;let n=0,r=0;for(;rthis._resolveCodeLensesInViewportSoon()))),n++,r++)}for(;nthis._resolveCodeLensesInViewportSoon()))),r++;s.commit(t)}))})),n.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){var t;null===(t=this._resolveCodeLensesPromise)||void 0===t||t.cancel(),this._resolveCodeLensesPromise=void 0;const i=this._editor.getModel();if(!i)return;const e=[],s=[];if(this._lenses.forEach((t=>{const n=t.computeIfNecessary(i);n&&(e.push(n),s.push(t))})),0===e.length)return;const n=Date.now(),o=nc((t=>{const n=e.map(((e,n)=>{const o=new Array(e.length),r=e.map(((e,s)=>e.symbol.command||"function"!=typeof e.provider.resolveCodeLens?(o[s]=e.symbol,Promise.resolve(void 0)):Promise.resolve(e.provider.resolveCodeLens(i,e.symbol,t)).then((t=>{o[s]=t}),Pi)));return Promise.all(r).then((()=>{t.isCancellationRequested||s[n].isDisposed()||s[n].updateCommands(o)}))}));return Promise.all(n)}));this._resolveCodeLensesPromise=o,this._resolveCodeLensesPromise.then((()=>{const t=this._resolveCodeLensesDebounce.update(i,Date.now()-n);this._resolveCodeLensesScheduler.delay=t,this._currentCodeLensModel&&this._codeLensCache.put(i,this._currentCodeLensModel),this._oldCodeLensModels.clear(),o===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)}),(t=>{Bi(t),o===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)}))}async getModel(){var t;return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,(null===(t=this._currentCodeLensModel)||void 0===t?void 0:t.isDisposed)?void 0:this._currentCodeLensModel}};iJ.ID="css.editor.codeLens",iJ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([tJ(1,xg),tJ(2,gR),tJ(3,Sr),tJ(4,oT),tJ(5,qQ)],iJ),lu(iJ.ID,iJ,1),cu(class extends su{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:YC.hasCodeLensProvider,label:ot(0,"Show CodeLens Commands For Current Line"),alias:"Show CodeLens Commands For Current Line"})}async run(t,i){if(!i.hasModel())return;const e=t.get(Oj),s=t.get(Sr),n=t.get(oT),o=i.getSelection().positionLineNumber,r=i.getContribution(iJ.ID);if(!r)return;const h=await r.getModel();if(!h)return;const c=[];for(const t of h.lenses)t.symbol.command&&t.symbol.range.startLineNumber===o&&c.push({label:t.symbol.command.title,command:t.symbol.command});if(0===c.length)return;const a=await e.pick(c,{canPickMany:!1,placeHolder:ot(0,"Select a command")});if(!a)return;let l=a.command;if(h.isDisposed){const t=await r.getModel(),i=null==t?void 0:t.lenses.find((t=>{var i;return t.symbol.range.startLineNumber===o&&(null===(i=t.symbol.command)||void 0===i?void 0:i.title)===l.title}));if(!i||!i.symbol.command)return;l=i.symbol.command}try{await s.executeCommand(l.id,...l.arguments||[])}catch(t){n.error(t)}}});var eJ=function(t,i){return function(e,s){i(e,s,t)}};class sJ{constructor(t,i){this._editorWorkerClient=new Tg(t,!1,"editorWorkerService",i)}async provideDocumentColors(t,i){return this._editorWorkerClient.computeDefaultDocumentColors(t.uri)}provideColorPresentations(t,i,e){const s=i.range,n=i.color,o=n.alpha,r=new lg(new hg(Math.round(255*n.red),Math.round(255*n.green),Math.round(255*n.blue),o)),h=o?lg.Format.CSS.formatRGB(r):lg.Format.CSS.formatRGBA(r),c=o?lg.Format.CSS.formatHSL(r):lg.Format.CSS.formatHSLA(r),a=o?lg.Format.CSS.formatHex(r):lg.Format.CSS.formatHexA(r),l=[];return l.push({label:h,textEdit:{range:s,text:h}}),l.push({label:c,textEdit:{range:s,text:c}}),l.push({label:a,textEdit:{range:s,text:a}}),l}}let nJ=class extends te{constructor(t,i,e){super(),this._register(e.colorProvider.register("*",new sJ(t,i)))}};async function oJ(t,i,e,s=!0){return lJ(new hJ,t,i,e,s)}function rJ(t,i,e,s){return Promise.resolve(e.provideColorPresentations(t,i,s))}nJ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([eJ(0,pr),eJ(1,Xd),eJ(2,xg)],nJ),GH(nJ);class hJ{constructor(){}async compute(t,i,e,s){const n=await t.provideDocumentColors(i,e);if(Array.isArray(n))for(const i of n)s.push({colorInfo:i,provider:t});return Array.isArray(n)}}class cJ{constructor(){}async compute(t,i,e,s){const n=await t.provideDocumentColors(i,e);if(Array.isArray(n))for(const t of n)s.push({range:t.range,color:[t.color.red,t.color.green,t.color.blue,t.color.alpha]});return Array.isArray(n)}}class aJ{constructor(t){this.colorInfo=t}async compute(t,i,e,s){const n=await t.provideColorPresentations(i,this.colorInfo,ke.None);return Array.isArray(n)&&s.push(...n),Array.isArray(n)}}async function lJ(t,i,e,s,n){let o,r=!1;const h=[],c=i.ordered(e);for(let i=c.length-1;i>=0;i--){const n=c[i];if(n instanceof sJ)o=n;else try{await t.compute(n,e,s,h)&&(r=!0)}catch(t){Pi(t)}}return r?h:o&&n?(await t.compute(o,e,s,h),h):[]}function uJ(t,i){const{colorProvider:e}=t.get(xg),s=t.get(pr).getModel(i);if(!s)throw Hi();return{model:s,colorProviderRegistry:e,isDefaultColorDecoratorsEnabled:t.get(pd).getValue("editor.defaultColorDecorators",{resource:i})}}Dr.registerCommand("_executeDocumentColorProvider",(function(t,...i){const[e]=i;if(!(e instanceof ms))throw Hi();const{model:s,colorProviderRegistry:n,isDefaultColorDecoratorsEnabled:o}=uJ(t,e);return lJ(new cJ,n,s,ke.None,o)})),Dr.registerCommand("_executeColorPresentationProvider",(function(t,...i){const[e,s]=i,{uri:n,range:o}=s;if(!(n instanceof ms&&Array.isArray(e)&&4===e.length&&Ms.isIRange(o)))throw Hi();const{model:r,colorProviderRegistry:h,isDefaultColorDecoratorsEnabled:c}=uJ(t,n),[a,l,u,d]=e;return lJ(new aJ({range:o,color:{red:a,green:l,blue:u,alpha:d}}),h,r,ke.None,c)}));var dJ,fJ=function(t,i){return function(e,s){i(e,s,t)}};const pJ=Object.create({});let gJ=dJ=class extends te{constructor(t,i,e,s){super(),this._editor=t,this._configurationService=i,this._languageFeaturesService=e,this._localToDispose=this._register(new Xi),this._decorationsIds=[],this._colorDatas=new Map,this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=new Ay(this._editor),this._decoratorLimitReporter=new mJ,this._colorDecorationClassRefs=this._register(new Xi),this._debounceInformation=s.for(e.colorProvider,"Document Colors",{min:dJ.RECOMPUTE_TIME}),this._register(t.onDidChangeModel((()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()}))),this._register(t.onDidChangeModelLanguage((()=>this.updateColors()))),this._register(e.colorProvider.onDidChange((()=>this.updateColors()))),this._register(t.onDidChangeConfiguration((t=>{const i=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(145);const e=i!==this._isColorDecoratorsEnabled||t.hasChanged(21),s=t.hasChanged(145);(e||s)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())}))),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(145),this.updateColors()}isEnabled(){const t=this._editor.getModel();if(!t)return!1;const i=t.getLanguageId(),e=this._configurationService.getValue(i);if(e&&"object"==typeof e){const t=e.colorDecorators;if(t&&void 0!==t.enable&&!t.enable)return t.enable}return this._editor.getOption(20)}static get(t){return t.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled)return;const t=this._editor.getModel();t&&this._languageFeaturesService.colorProvider.has(t)&&(this._localToDispose.add(this._editor.onDidChangeModelContent((()=>{this._timeoutTimer||(this._timeoutTimer=new dc,this._timeoutTimer.cancelAndSet((()=>{this._timeoutTimer=null,this.beginCompute()}),this._debounceInformation.get(t)))}))),this.beginCompute())}async beginCompute(){this._computePromise=nc((async t=>{const i=this._editor.getModel();if(!i)return[];const e=new re(!1),s=await oJ(this._languageFeaturesService.colorProvider,i,t,this._isDefaultColorDecoratorsEnabled);return this._debounceInformation.update(i,e.elapsed()),s}));try{const t=await this._computePromise;this.updateDecorations(t),this.updateColorDecorators(t),this._computePromise=null}catch(t){Bi(t)}}stop(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}updateDecorations(t){const i=t.map((t=>({range:{startLineNumber:t.colorInfo.range.startLineNumber,startColumn:t.colorInfo.range.startColumn,endLineNumber:t.colorInfo.range.endLineNumber,endColumn:t.colorInfo.range.endColumn},options:AL.EMPTY})));this._editor.changeDecorations((e=>{this._decorationsIds=e.deltaDecorations(this._decorationsIds,i),this._colorDatas=new Map,this._decorationsIds.forEach(((i,e)=>this._colorDatas.set(i,t[e])))}))}updateColorDecorators(t){this._colorDecorationClassRefs.clear();const i=[],e=this._editor.getOption(21);for(let s=0;sthis._colorDatas.has(t.id)));return 0===e.length?null:this._colorDatas.get(e[0].id)}isColorDecoration(t){return this._colorDecoratorIds.has(t)}};gJ.ID="editor.contrib.colorDetector",gJ.RECOMPUTE_TIME=1e3,gJ=dJ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([fJ(1,pd),fJ(2,xg),fJ(3,gR)],gJ);class mJ{constructor(){this._onDidChange=new de,this._computed=0,this._limited=!1}update(t,i){t===this._computed&&i===this._limited||(this._computed=t,this._limited=i,this._onDidChange.fire())}}lu(gJ.ID,gJ,1);class wJ{get color(){return this._color}set color(t){this._color.equals(t)||(this._color=t,this._onDidChangeColor.fire(t))}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(t){this._colorPresentations=t,this.presentationIndex>t.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}constructor(t,i,e){this.presentationIndex=e,this._onColorFlushed=new de,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new de,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new de,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=t,this._color=t,this._colorPresentations=i}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(t,i){let e=-1;for(let t=0;t{this.backgroundColor=t.getColor(Iv)||lg.white}))),this._register(Va(this._pickedColorNode,Ll.CLICK,(()=>this.model.selectNextColorPresentation()))),this._register(Va(this._originalColorNode,Ll.CLICK,(()=>{this.model.color=this.model.originalColor,this.model.flushColor()}))),this._register(i.onDidChangeColor(this.onDidChangeColor,this)),this._register(i.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=lg.Format.CSS.format(i.color)||"",this._pickedColorNode.classList.toggle("light",i.color.rgba.a<.5?this.backgroundColor.isLighter():i.color.isLighter()),this.onDidChangeColor(this.model.color),this.showingStandaloneColorPicker&&(this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new yJ(this._domNode)))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(t){this._pickedColorNode.style.backgroundColor=lg.Format.CSS.format(t)||"",this._pickedColorNode.classList.toggle("light",t.rgba.a<.5?this.backgroundColor.isLighter():t.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}class yJ extends te{constructor(t){super(),this._onClicked=this._register(new de),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),Ol(t,this._button);const i=document.createElement("div");i.classList.add("close-button-inner-div"),Ol(this._button,i),Ol(i,vJ(".button"+Cr.asCSSSelector(Hz("color-picker-close",Os.close,ot(0,"Icon to close the color picker"))))).classList.add("close-icon"),this._button.onclick=()=>{this._onClicked.fire()}}}class kJ extends te{constructor(t,i,e,s=!1){super(),this.model=i,this.pixelRatio=e,this._insertButton=null,this._domNode=vJ(".colorpicker-body"),Ol(t,this._domNode),this._saturationBox=new xJ(this._domNode,this.model,this.pixelRatio),this._register(this._saturationBox),this._register(this._saturationBox.onDidChange(this.onDidSaturationValueChange,this)),this._register(this._saturationBox.onColorFlushed(this.flushColor,this)),this._opacityStrip=new SJ(this._domNode,this.model,s),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new DJ(this._domNode,this.model,s),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),s&&(this._insertButton=this._register(new EJ(this._domNode)),this._domNode.classList.add("standalone-colorpicker"))}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:t,v:i}){const e=this.model.color.hsva;this.model.color=new lg(new ag(e.h,t,i,e.a))}onDidOpacityChange(t){const i=this.model.color.hsva;this.model.color=new lg(new ag(i.h,i.s,i.v,t))}onDidHueChange(t){const i=this.model.color.hsva,e=360*(1-t);this.model.color=new lg(new ag(360===e?0:e,i.s,i.v,i.a))}get domNode(){return this._domNode}get saturationBox(){return this._saturationBox}get enterButton(){return this._insertButton}layout(){this._saturationBox.layout(),this._opacityStrip.layout(),this._hueStrip.layout()}}class xJ extends te{constructor(t,i,e){super(),this.model=i,this.pixelRatio=e,this._onDidChange=new de,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new de,this.onColorFlushed=this._onColorFlushed.event,this._domNode=vJ(".saturation-wrap"),Ol(t,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",Ol(this._domNode,this._canvas),this.selection=vJ(".saturation-selection"),Ol(this._domNode,this.selection),this.layout(),this._register(Va(this._domNode,Ll.POINTER_DOWN,(t=>this.onPointerDown(t)))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(t){if(!(t.target&&t.target instanceof Element))return;this.monitor=this._register(new hw);const i=nl(this._domNode);t.target!==this.selection&&this.onDidChangePosition(t.offsetX,t.offsetY),this.monitor.startMonitoring(t.target,t.pointerId,t.buttons,(t=>this.onDidChangePosition(t.pageX-i.left,t.pageY-i.top)),(()=>null));const e=Va(t.target.ownerDocument,Ll.POINTER_UP,(()=>{this._onColorFlushed.fire(),e.dispose(),this.monitor&&(this.monitor.stopMonitoring(!0),this.monitor=null)}),!0)}onDidChangePosition(t,i){const e=Math.max(0,Math.min(1,t/this.width)),s=Math.max(0,Math.min(1,1-i/this.height));this.paintSelection(e,s),this._onDidChange.fire({s:e,v:s})}layout(){this.width=this._domNode.offsetWidth,this.height=this._domNode.offsetHeight,this._canvas.width=this.width*this.pixelRatio,this._canvas.height=this.height*this.pixelRatio,this.paint();const t=this.model.color.hsva;this.paintSelection(t.s,t.v)}paint(){const t=new lg(new ag(this.model.color.hsva.h,1,1,1)),i=this._canvas.getContext("2d"),e=i.createLinearGradient(0,0,this._canvas.width,0);e.addColorStop(0,"rgba(255, 255, 255, 1)"),e.addColorStop(.5,"rgba(255, 255, 255, 0.5)"),e.addColorStop(1,"rgba(255, 255, 255, 0)");const s=i.createLinearGradient(0,0,0,this._canvas.height);s.addColorStop(0,"rgba(0, 0, 0, 0)"),s.addColorStop(1,"rgba(0, 0, 0, 1)"),i.rect(0,0,this._canvas.width,this._canvas.height),i.fillStyle=lg.Format.CSS.format(t),i.fill(),i.fillStyle=e,i.fill(),i.fillStyle=s,i.fill()}paintSelection(t,i){this.selection.style.left=t*this.width+"px",this.selection.style.top=this.height-i*this.height+"px"}onDidChangeColor(t){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();const i=t.hsva;this.paintSelection(i.s,i.v)}}class CJ extends te{constructor(t,i,e=!1){super(),this.model=i,this._onDidChange=new de,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new de,this.onColorFlushed=this._onColorFlushed.event,e?(this.domNode=Ol(t,vJ(".standalone-strip")),this.overlay=Ol(this.domNode,vJ(".standalone-overlay"))):(this.domNode=Ol(t,vJ(".strip")),this.overlay=Ol(this.domNode,vJ(".overlay"))),this.slider=Ol(this.domNode,vJ(".slider")),this.slider.style.top="0px",this._register(Va(this.domNode,Ll.POINTER_DOWN,(t=>this.onPointerDown(t)))),this._register(i.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;const t=this.getValue(this.model.color);this.updateSliderPosition(t)}onDidChangeColor(t){const i=this.getValue(t);this.updateSliderPosition(i)}onPointerDown(t){if(!(t.target&&t.target instanceof Element))return;const i=this._register(new hw),e=nl(this.domNode);this.domNode.classList.add("grabbing"),t.target!==this.slider&&this.onDidChangeTop(t.offsetY),i.startMonitoring(t.target,t.pointerId,t.buttons,(t=>this.onDidChangeTop(t.pageY-e.top)),(()=>null));const s=Va(t.target.ownerDocument,Ll.POINTER_UP,(()=>{this._onColorFlushed.fire(),s.dispose(),i.stopMonitoring(!0),this.domNode.classList.remove("grabbing")}),!0)}onDidChangeTop(t){const i=Math.max(0,Math.min(1,1-t/this.height));this.updateSliderPosition(i),this._onDidChange.fire(i)}updateSliderPosition(t){this.slider.style.top=(1-t)*this.height+"px"}}class SJ extends CJ{constructor(t,i,e=!1){super(t,i,e),this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(t){super.onDidChangeColor(t);const{r:i,g:e,b:s}=t.rgba,n=new lg(new hg(i,e,s,1)),o=new lg(new hg(i,e,s,0));this.overlay.style.background=`linear-gradient(to bottom, ${n} 0%, ${o} 100%)`}getValue(t){return t.hsva.a}}class DJ extends CJ{constructor(t,i,e=!1){super(t,i,e),this.domNode.classList.add("hue-strip")}getValue(t){return 1-t.hsva.h/360}}class EJ extends te{constructor(t){super(),this._onClicked=this._register(new de),this.onClicked=this._onClicked.event,this._button=Ol(t,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._button.onclick=()=>{this._onClicked.fire()}}get button(){return this._button}}class AJ extends pk{constructor(t,i,e,s,n=!1){super(),this.model=i,this.pixelRatio=e,this._register(Ho.onDidChange((()=>this.layout())));const o=vJ(".colorpicker-widget");t.appendChild(o),this.header=this._register(new bJ(o,this.model,s,n)),this.body=this._register(new kJ(o,this.model,this.pixelRatio,n))}layout(){this.body.layout()}}var MJ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},LJ=function(t,i){return function(e,s){i(e,s,t)}};class FJ{constructor(t,i,e,s){this.owner=t,this.range=i,this.model=e,this.provider=s,this.forceShowAtRange=!0}isValidForHoverAnchor(t){return 1===t.type&&this.range.startColumn<=t.range.startColumn&&this.range.endColumn>=t.range.endColumn}}let TJ=class{constructor(t,i){this._editor=t,this._themeService=i,this.hoverOrdinal=2}computeSync(t,i){return[]}computeAsync(t,i,e){return kc.fromPromise(this._computeAsync(t,i,e))}async _computeAsync(t,i,e){if(!this._editor.hasModel())return[];const s=gJ.get(this._editor);if(!s)return[];for(const t of i){if(!s.isColorDecoration(t))continue;const i=s.getColorData(t.range.getStartPosition());if(i)return[await IJ(this,this._editor.getModel(),i.colorInfo,i.provider)]}return[]}renderHoverParts(t,i){return _J(this,this._editor,this._themeService,i,t)}};TJ=MJ([LJ(1,Xk)],TJ);class RJ{constructor(t,i,e,s){this.owner=t,this.range=i,this.model=e,this.provider=s}}let OJ=class{constructor(t,i){this._editor=t,this._themeService=i,this._color=null}async createColorHover(t,i,e){if(!this._editor.hasModel())return null;if(!gJ.get(this._editor))return null;const s=await oJ(e,this._editor.getModel(),ke.None);let n=null,o=null;for(const i of s){const e=i.colorInfo;Ms.containsRange(e.range,t.range)&&(n=e,o=i.provider)}const r=null!=n?n:t,h=null!=o?o:i,c=!!n;return{colorHover:await IJ(this,this._editor.getModel(),r,h),foundInEditor:c}}async updateEditorModel(t){if(!this._editor.hasModel())return;const i=t.model;let e=new Ms(t.range.startLineNumber,t.range.startColumn,t.range.endLineNumber,t.range.endColumn);this._color&&(await BJ(this._editor.getModel(),i,this._color,e,t),e=NJ(this._editor,e,i))}renderHoverParts(t,i){return _J(this,this._editor,this._themeService,i,t)}set color(t){this._color=t}get color(){return this._color}};async function IJ(t,i,e,s){const n=i.getValueInRange(e.range),{red:o,green:r,blue:h,alpha:c}=e.color,a=new hg(Math.round(255*o),Math.round(255*r),Math.round(255*h),c),l=new lg(a),u=await rJ(i,e,s,ke.None),d=new wJ(l,[],0);return d.colorPresentations=u||[],d.guessColorPresentation(l,n),t instanceof TJ?new FJ(t,Ms.lift(e.range),d,s):new RJ(t,Ms.lift(e.range),d,s)}function _J(t,i,e,s,n){if(0===s.length||!i.hasModel())return te.None;if(n.setMinimumDimensions){const t=i.getOption(66)+8;n.setMinimumDimensions(new el(302,t))}const o=new Xi,r=s[0],h=i.getModel(),c=r.model,a=o.add(new AJ(n.fragment,c,i.getOption(141),e,t instanceof OJ));n.setColorPicker(a);let l=!1,u=new Ms(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn);if(t instanceof OJ){const i=s[0].model.color;t.color=i,BJ(h,c,i,u,r),o.add(c.onColorFlushed((i=>{t.color=i})))}else o.add(c.onColorFlushed((async t=>{await BJ(h,c,t,u,r),l=!0,u=NJ(i,u,c,n)})));return o.add(c.onDidChangeColor((t=>{BJ(h,c,t,u,r)}))),o.add(i.onDidChangeModelContent((()=>{l?l=!1:(n.hide(),i.focus())}))),o}function NJ(t,i,e,s){let n,o;if(e.presentation.textEdit){n=[e.presentation.textEdit],o=new Ms(e.presentation.textEdit.range.startLineNumber,e.presentation.textEdit.range.startColumn,e.presentation.textEdit.range.endLineNumber,e.presentation.textEdit.range.endColumn);const i=t.getModel()._setTrackedRange(null,o,3);t.pushUndoStop(),t.executeEdits("colorpicker",n),o=t.getModel()._getTrackedRange(i)||o}else n=[{range:i,text:e.presentation.label,forceMoveMarkers:!1}],o=i.setEndPosition(i.endLineNumber,i.startColumn+e.presentation.label.length),t.pushUndoStop(),t.executeEdits("colorpicker",n);return e.presentation.additionalTextEdits&&(n=[...e.presentation.additionalTextEdits],t.executeEdits("colorpicker",n),s&&s.hide()),t.pushUndoStop(),o}async function BJ(t,i,e,s,n){const o=await rJ(t,{range:s,color:{red:e.rgba.r/255,green:e.rgba.g/255,blue:e.rgba.b/255,alpha:e.rgba.a}},n.provider,ke.None);i.colorPresentations=o||[]}function PJ(t,i){return!!t[i]}OJ=MJ([LJ(1,Xk)],OJ);class $J{constructor(t,i){this.target=t.target,this.isLeftClick=t.event.leftButton,this.isMiddleClick=t.event.middleButton,this.isRightClick=t.event.rightButton,this.hasTriggerModifier=PJ(t.event,i.triggerModifier),this.hasSideBySideModifier=PJ(t.event,i.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=t.event.detail<=1}}class WJ{constructor(t,i){this.keyCodeIsTriggerKey=t.keyCode===i.triggerKey,this.keyCodeIsSideBySideKey=t.keyCode===i.triggerSideBySideKey,this.hasTriggerModifier=PJ(t,i.triggerModifier)}}class jJ{constructor(t,i,e,s){this.triggerKey=t,this.triggerModifier=i,this.triggerSideBySideKey=e,this.triggerSideBySideModifier=s}equals(t){return this.triggerKey===t.triggerKey&&this.triggerModifier===t.triggerModifier&&this.triggerSideBySideKey===t.triggerSideBySideKey&&this.triggerSideBySideModifier===t.triggerSideBySideModifier}}function zJ(t){return"altKey"===t?Ct?new jJ(57,"metaKey",6,"altKey"):new jJ(5,"ctrlKey",6,"altKey"):Ct?new jJ(6,"altKey",57,"metaKey"):new jJ(6,"altKey",5,"ctrlKey")}class HJ extends te{constructor(t,i){var e;super(),this._onMouseMoveOrRelevantKeyDown=this._register(new de),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new de),this.onExecute=this._onExecute.event,this._onCancel=this._register(new de),this.onCancel=this._onCancel.event,this._editor=t,this._extractLineNumberFromMouseEvent=null!==(e=null==i?void 0:i.extractLineNumberFromMouseEvent)&&void 0!==e?e:t=>t.target.position?t.target.position.lineNumber:0,this._opts=zJ(this._editor.getOption(77)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration((t=>{if(t.hasChanged(77)){const t=zJ(this._editor.getOption(77));if(this._opts.equals(t))return;this._opts=t,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}}))),this._register(this._editor.onMouseMove((t=>this._onEditorMouseMove(new $J(t,this._opts))))),this._register(this._editor.onMouseDown((t=>this._onEditorMouseDown(new $J(t,this._opts))))),this._register(this._editor.onMouseUp((t=>this._onEditorMouseUp(new $J(t,this._opts))))),this._register(this._editor.onKeyDown((t=>this._onEditorKeyDown(new WJ(t,this._opts))))),this._register(this._editor.onKeyUp((t=>this._onEditorKeyUp(new WJ(t,this._opts))))),this._register(this._editor.onMouseDrag((()=>this._resetHandler()))),this._register(this._editor.onDidChangeCursorSelection((t=>this._onDidChangeCursorSelection(t)))),this._register(this._editor.onDidChangeModel((()=>this._resetHandler()))),this._register(this._editor.onDidChangeModelContent((()=>this._resetHandler()))),this._register(this._editor.onDidScrollChange((t=>{(t.scrollTopChanged||t.scrollLeftChanged)&&this._resetHandler()})))}_onDidChangeCursorSelection(t){t.selection&&t.selection.startColumn!==t.selection.endColumn&&this._resetHandler()}_onEditorMouseMove(t){this._lastMouseMoveEvent=t,this._onMouseMoveOrRelevantKeyDown.fire([t,null])}_onEditorMouseDown(t){this._hasTriggerKeyOnMouseDown=t.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(t)}_onEditorMouseUp(t){const i=this._extractLineNumberFromMouseEvent(t);this._hasTriggerKeyOnMouseDown&&this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===i&&this._onExecute.fire(t)}_onEditorKeyDown(t){this._lastMouseMoveEvent&&(t.keyCodeIsTriggerKey||t.keyCodeIsSideBySideKey&&t.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,t]):t.hasTriggerModifier&&this._onCancel.fire()}_onEditorKeyUp(t){t.keyCodeIsTriggerKey&&this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}var VJ=function(t,i){return function(e,s){i(e,s,t)}};let UJ=class extends TT{constructor(t,i,e,s,n,o,r,h,c,a,l,u,d){super(t,{...s.getRawOptions(),overflowWidgetsDomNode:s.getOverflowWidgetsDomNode()},e,n,o,r,h,c,a,l,u,d),this._parentEditor=s,this._overwriteOptions=i,super.updateOptions(this._overwriteOptions),this._register(s.onDidChangeConfiguration((t=>this._onParentConfigurationChanged(t))))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(t){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(t){tt(this._overwriteOptions,t,!0),super.updateOptions(this._overwriteOptions)}};UJ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([VJ(4,ur),VJ(5,fr),VJ(6,Sr),VJ(7,ah),VJ(8,Xk),VJ(9,oT),VJ(10,Zm),VJ(11,Xd),VJ(12,xg)],UJ);const qJ=new lg(new hg(0,122,204)),KJ={showArrow:!0,showFrame:!0,className:"",frameColor:qJ,arrowColor:qJ,keepEditorSelection:!1};class GJ{constructor(t,i,e,s,n,o,r,h){this.id="",this.domNode=t,this.afterLineNumber=i,this.afterColumn=e,this.heightInLines=s,this.showInHiddenAreas=r,this.ordinal=h,this._onDomNodeTop=n,this._onComputedHeight=o}onDomNodeTop(t){this._onDomNodeTop(t)}onComputedHeight(t){this._onComputedHeight(t)}}class ZJ{constructor(t,i){this._id=t,this._domNode=i}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}class QJ{constructor(t){this._editor=t,this._ruleName=QJ._IdGenerator.nextId(),this._decorations=this._editor.createDecorationsCollection(),this._color=null,this._height=-1}dispose(){this.hide(),Dl(this._ruleName)}set color(t){this._color!==t&&(this._color=t,this._updateStyle())}set height(t){this._height!==t&&(this._height=t,this._updateStyle())}_updateStyle(){Dl(this._ruleName),Sl(`.monaco-editor ${this._ruleName}`,`border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px; margin-left: -${this._height}px; `)}show(t){1===t.column&&(t={lineNumber:t.lineNumber,column:2}),this._decorations.set([{range:Ms.fromPositions(t),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}QJ._IdGenerator=new J_(".arrow-decoration-");class JJ{constructor(t,i={}){this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._viewZone=null,this._disposables=new Xi,this.container=null,this._isShowing=!1,this.editor=t,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=Q(i),tt(this.options,KJ,!1),this.domNode=document.createElement("div"),this.options.isAccessible||(this.domNode.setAttribute("aria-hidden","true"),this.domNode.setAttribute("role","presentation")),this._disposables.add(this.editor.onDidLayoutChange((t=>{const i=this._getWidth(t);this.domNode.style.width=i+"px",this.domNode.style.left=this._getLeft(t)+"px",this._onWidth(i)})))}dispose(){this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones((t=>{this._viewZone&&t.removeZone(this._viewZone.id),this._viewZone=null})),this._positionMarkerId.clear(),this._disposables.dispose()}create(){this.domNode.classList.add("zone-widget"),this.options.className&&this.domNode.classList.add(this.options.className),this.container=document.createElement("div"),this.container.classList.add("zone-widget-container"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new QJ(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(t){t.frameColor&&(this.options.frameColor=t.frameColor),t.arrowColor&&(this.options.arrowColor=t.arrowColor),this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){const t=this.options.frameColor.toString();this.container.style.borderTopColor=t,this.container.style.borderBottomColor=t}if(this._arrow&&this.options.arrowColor){const t=this.options.arrowColor.toString();this._arrow.color=t}}_getWidth(t){return t.width-t.minimap.minimapWidth-t.verticalScrollbarWidth}_getLeft(t){return t.minimap.minimapWidth>0&&0===t.minimap.minimapLeft?t.minimap.minimapWidth:0}_onViewZoneTop(t){this.domNode.style.top=t+"px"}_onViewZoneHeight(t){var i;if(this.domNode.style.height=`${t}px`,this.container){const i=t-this._decoratingElementsHeight();this.container.style.height=`${i}px`;const e=this.editor.getLayoutInfo();this._doLayout(i,this._getWidth(e))}null===(i=this._resizeSash)||void 0===i||i.layout()}get position(){const t=this._positionMarkerId.getRange(0);if(t)return t.getStartPosition()}show(t,i){const e=Ms.isIRange(t)?Ms.lift(t):Ms.fromPositions(t);this._isShowing=!0,this._showImpl(e,i),this._isShowing=!1,this._positionMarkerId.set([{range:e,options:AL.EMPTY}])}hide(){var t;this._viewZone&&(this.editor.changeViewZones((t=>{this._viewZone&&t.removeZone(this._viewZone.id)})),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),null===(t=this._arrow)||void 0===t||t.hide(),this._positionMarkerId.clear()}_decoratingElementsHeight(){const t=this.editor.getOption(66);let i=0;return this.options.showArrow&&(i+=2*Math.round(t/3)),this.options.showFrame&&(i+=2*Math.round(t/9)),i}_showImpl(t,i){const e=t.getStartPosition(),s=this.editor.getLayoutInfo(),n=this._getWidth(s);this.domNode.style.width=`${n}px`,this.domNode.style.left=this._getLeft(s)+"px";const o=document.createElement("div");o.style.overflow="hidden";const r=this.editor.getOption(66);if(!this.options.allowUnlimitedHeight){const t=Math.max(12,this.editor.getLayoutInfo().height/r*.8);i=Math.min(i,t)}let h=0,c=0;if(this._arrow&&this.options.showArrow&&(h=Math.round(r/3),this._arrow.height=h,this._arrow.show(e)),this.options.showFrame&&(c=Math.round(r/9)),this.editor.changeViewZones((t=>{this._viewZone&&t.removeZone(this._viewZone.id),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this.domNode.style.top="-1000px",this._viewZone=new GJ(o,e.lineNumber,e.column,i,(t=>this._onViewZoneTop(t)),(t=>this._onViewZoneHeight(t)),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=t.addZone(this._viewZone),this._overlayWidget=new ZJ("vs.editor.contrib.zoneWidget"+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)})),this.container&&this.options.showFrame){const t=this.options.frameWidth?this.options.frameWidth:c;this.container.style.borderTopWidth=t+"px",this.container.style.borderBottomWidth=t+"px"}const a=i*r-this._decoratingElementsHeight();this.container&&(this.container.style.top=h+"px",this.container.style.height=a+"px",this.container.style.overflow="hidden"),this._doLayout(a,n),this.options.keepEditorSelection||this.editor.setSelection(t);const l=this.editor.getModel();if(l){const i=l.validateRange(new Ms(t.startLineNumber,1,t.endLineNumber+1,1));this.revealRange(i,i.startLineNumber===l.getLineCount())}}revealRange(t,i){i?this.editor.revealLineNearTop(t.endLineNumber,0):this.editor.revealRange(t,0)}setCssClass(t,i){this.container&&(i&&this.container.classList.remove(i),this.container.classList.add(t))}_onWidth(t){}_doLayout(t,i){}_relayout(t){this._viewZone&&this._viewZone.heightInLines!==t&&this.editor.changeViewZones((i=>{this._viewZone&&(this._viewZone.heightInLines=t,i.layoutZone(this._viewZone.id))}))}_initSash(){if(this._resizeSash)return;let t;this._resizeSash=this._disposables.add(new VP(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.state=0),this._disposables.add(this._resizeSash.onDidStart((i=>{this._viewZone&&(t={startY:i.startY,heightInLines:this._viewZone.heightInLines})}))),this._disposables.add(this._resizeSash.onDidEnd((()=>{t=void 0}))),this._disposables.add(this._resizeSash.onDidChange((i=>{if(t){const e=(i.currentY-t.startY)/this.editor.getOption(66),s=e<0?Math.ceil(e):Math.floor(e),n=t.heightInLines+s;n>5&&n<35&&this._relayout(n)}})))}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(null===this.domNode.style.height?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){const t=this.editor.getLayoutInfo();return t.width-t.minimap.minimapWidth}}var YJ=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},XJ=function(t,i){return function(e,s){i(e,s,t)}};const tY=dr("IPeekViewService");var iY;Cd(tY,class{constructor(){this._widgets=new Map}addExclusiveWidget(t,i){const e=this._widgets.get(t);e&&(e.listener.dispose(),e.widget.dispose()),this._widgets.set(t,{widget:i,listener:i.onDidClose((()=>{const e=this._widgets.get(t);e&&e.widget===i&&(e.listener.dispose(),this._widgets.delete(t))}))})}},1),function(t){t.inPeekEditor=new ch("inReferenceSearchEditor",!0,ot(0,"Whether the current code editor is embedded inside peek")),t.notInPeekEditor=t.inPeekEditor.toNegated()}(iY||(iY={}));let eY=class{constructor(t,i){t instanceof UJ&&iY.inPeekEditor.bindTo(i)}dispose(){}};eY.ID="editor.contrib.referenceController",eY=YJ([XJ(1,ah)],eY),lu(eY.ID,eY,0);const sY={headerBackgroundColor:lg.white,primaryHeadingColor:lg.fromHex("#333333"),secondaryHeadingColor:lg.fromHex("#6c6c6cb3")};let nY=class extends JJ{constructor(t,i,e){super(t,i),this.instantiationService=e,this._onDidClose=new de,this.onDidClose=this._onDidClose.event,tt(this.options,sY,!1)}dispose(){this.disposed||(this.disposed=!0,super.dispose(),this._onDidClose.fire(this))}style(t){const i=this.options;t.headerBackgroundColor&&(i.headerBackgroundColor=t.headerBackgroundColor),t.primaryHeadingColor&&(i.primaryHeadingColor=t.primaryHeadingColor),t.secondaryHeadingColor&&(i.secondaryHeadingColor=t.secondaryHeadingColor),super.style(t)}_applyStyles(){super._applyStyles();const t=this.options;this._headElement&&t.headerBackgroundColor&&(this._headElement.style.backgroundColor=t.headerBackgroundColor.toString()),this._primaryHeading&&t.primaryHeadingColor&&(this._primaryHeading.style.color=t.primaryHeadingColor.toString()),this._secondaryHeading&&t.secondaryHeadingColor&&(this._secondaryHeading.style.color=t.secondaryHeadingColor.toString()),this._bodyElement&&t.frameColor&&(this._bodyElement.style.borderColor=t.frameColor.toString())}_fillContainer(t){this.setCssClass("peekview-widget"),this._headElement=$l(".head"),this._bodyElement=$l(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),t.appendChild(this._headElement),t.appendChild(this._bodyElement)}_fillHead(t,i){this._titleElement=$l(".peekview-title"),this.options.supportOnTitleClick&&(this._titleElement.classList.add("clickable"),qa(this._titleElement,"click",(t=>this._onTitleClick(t)))),Ol(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=$l("span.filename"),this._secondaryHeading=$l("span.dirname"),this._metaHeading=$l("span.meta"),Ol(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);const e=$l(".peekview-actions");Ol(this._headElement,e);const s=this._getActionBarOptions();this._actionbarWidget=new YB(e,s),this._disposables.add(this._actionbarWidget),i||this._actionbarWidget.push(new mr("peekview.close",ot(0,"Close"),Cr.asClassName(Os.close),!0,(()=>(this.dispose(),Promise.resolve()))),{label:!1,icon:!0})}_fillTitleIcon(t){}_getActionBarOptions(){return{actionViewItemProvider:JB.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(t){}setTitle(t,i){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerText=t,this._primaryHeading.setAttribute("title",t),i?this._secondaryHeading.innerText=i:za(this._secondaryHeading))}setMetaTitle(t){this._metaHeading&&(t?(this._metaHeading.innerText=t,Wl(this._metaHeading)):jl(this._metaHeading))}_doLayout(t,i){if(!this._isShowing&&t<0)return void this.dispose();const e=Math.ceil(1.2*this.editor.getOption(66)),s=Math.round(t-(e+2));this._doLayoutHead(e,i),this._doLayoutBody(s,i)}_doLayoutHead(t,i){this._headElement&&(this._headElement.style.height=`${t}px`,this._headElement.style.lineHeight=this._headElement.style.height)}_doLayoutBody(t,i){this._bodyElement&&(this._bodyElement.style.height=`${t}px`)}};nY=YJ([XJ(2,ur)],nY);const oY=dw("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:lg.black,hcLight:lg.white},ot(0,"Background color of the peek view title area.")),rY=dw("peekViewTitleLabel.foreground",{dark:lg.white,light:lg.black,hcDark:lg.white,hcLight:lv},ot(0,"Color of the peek view title.")),hY=dw("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},ot(0,"Color of the peek view title info.")),cY=dw("peekView.border",{dark:rv,light:rv,hcDark:ww,hcLight:ww},ot(0,"Color of the peek view borders and arrow.")),aY=dw("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:lg.black,hcLight:lg.white},ot(0,"Background color of the peek view result list."));dw("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:lg.white,hcLight:lv},ot(0,"Foreground color for line nodes in the peek view result list.")),dw("peekViewResult.fileForeground",{dark:lg.white,light:"#1E1E1E",hcDark:lg.white,hcLight:lv},ot(0,"Foreground color for file nodes in the peek view result list.")),dw("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},ot(0,"Background color of the selected entry in the peek view result list.")),dw("peekViewResult.selectionForeground",{dark:lg.white,light:"#6C6C6C",hcDark:lg.white,hcLight:lv},ot(0,"Foreground color of the selected entry in the peek view result list."));const lY=dw("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:lg.black,hcLight:lg.white},ot(0,"Background color of the peek view editor."));dw("peekViewEditorGutter.background",{dark:lY,light:lY,hcDark:lY,hcLight:lY},ot(0,"Background color of the gutter in the peek view editor.")),dw("peekViewEditorStickyScroll.background",{dark:lY,light:lY,hcDark:lY,hcLight:lY},ot(0,"Background color of sticky scroll in the peek view editor.")),dw("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},ot(0,"Match highlight color in the peek view result list.")),dw("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},ot(0,"Match highlight color in the peek view editor.")),dw("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:vw,hcLight:vw},ot(0,"Match highlight border in the peek view editor."));class uY{constructor(t,i,e,s){this.isProviderFirst=t,this.parent=i,this.link=e,this._rangeCallback=s,this.id=Y_.nextId()}get uri(){return this.link.uri}get range(){var t,i;return null!==(i=null!==(t=this._range)&&void 0!==t?t:this.link.targetSelectionRange)&&void 0!==i?i:this.link.range}set range(t){this._range=t,this._rangeCallback(this)}get ariaMessage(){var t;const i=null===(t=this.parent.getPreview(this))||void 0===t?void 0:t.preview(this.range);return i?ot(0,"{0} in {1} on line {2} at column {3}",i.value,bA(this.uri),this.range.startLineNumber,this.range.startColumn):ot(0,"in {0} on line {1} at column {2}",bA(this.uri),this.range.startLineNumber,this.range.startColumn)}}class dY{constructor(t){this._modelReference=t}dispose(){this._modelReference.dispose()}preview(t,i=8){const e=this._modelReference.object.textEditorModel;if(!e)return;const{startLineNumber:s,startColumn:n,endLineNumber:o,endColumn:r}=t,h=e.getWordUntilPosition({lineNumber:s,column:n-i}),c=new Ms(s,h.startColumn,s,n),a=new Ms(o,r,o,1073741824),l=e.getValueInRange(c).replace(/^\s+/,""),u=e.getValueInRange(t);return{value:l+u+e.getValueInRange(a).replace(/\s+$/,""),highlight:{start:l.length,end:l.length+u.length}}}}class fY{constructor(t,i){this.parent=t,this.uri=i,this.children=[],this._previews=new zp}dispose(){Qi(this._previews.values()),this._previews.clear()}getPreview(t){return this._previews.get(t.uri)}get ariaMessage(){const t=this.children.length;return 1===t?ot(0,"1 symbol in {0}, full path {1}",bA(this.uri),this.uri.fsPath):ot(0,"{0} symbols in {1}, full path {2}",t,bA(this.uri),this.uri.fsPath)}async resolve(t){if(0!==this._previews.size)return this;for(const i of this.children)if(!this._previews.has(i.uri))try{const e=await t.createModelReference(i.uri);this._previews.set(i.uri,new dY(e))}catch(t){Bi(t)}return this}}class pY{constructor(t,i){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new de,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=t,this._title=i;const[e]=t;let s;t.sort(pY._compareReferences);for(const i of t)if(s&&mA.isEqual(s.uri,i.uri,!0)||(s=new fY(this,i.uri),this.groups.push(s)),0===s.children.length||0!==pY._compareReferences(i,s.children[s.children.length-1])){const t=new uY(e===i,s,i,(t=>this._onDidChangeReferenceRange.fire(t)));this.references.push(t),s.children.push(t)}}dispose(){Qi(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new pY(this._links,this._title)}get title(){return this._title}get isEmpty(){return 0===this.groups.length}get ariaMessage(){return this.isEmpty?ot(0,"No results found"):1===this.references.length?ot(0,"Found 1 symbol in {0}",this.references[0].uri.fsPath):1===this.groups.length?ot(0,"Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath):ot(0,"Found {0} symbols in {1} files",this.references.length,this.groups.length)}nextOrPreviousReference(t,i){const{parent:e}=t;let s=e.children.indexOf(t);const n=e.children.length,o=e.parent.groups.length;return 1===o||i&&s+10?(s=i?(s+1)%n:(s+n-1)%n,e.children[s]):(s=e.parent.groups.indexOf(e),i?(s=(s+1)%o,e.parent.groups[s].children[0]):(s=(s+o-1)%o,e.parent.groups[s].children[e.parent.groups[s].children.length-1]))}nearestReference(t,i){const e=this.references.map(((e,s)=>({idx:s,prefixLen:fo(e.uri.toString(),t.toString()),offsetDist:100*Math.abs(e.range.startLineNumber-i.lineNumber)+Math.abs(e.range.startColumn-i.column)}))).sort(((t,i)=>t.prefixLen>i.prefixLen?-1:t.prefixLeni.offsetDist?1:0))[0];if(e)return this.references[e.idx]}referenceAt(t,i){for(const e of this.references)if(e.uri.toString()===t.toString()&&Ms.containsPosition(e.range,i))return e}firstReference(){for(const t of this.references)if(t.isProviderFirst)return t;return this.references[0]}static _compareReferences(t,i){return mA.compare(t.uri,i.uri)||Ms.compareRangesUsingStarts(t.range,i.range)}}var gY,mY=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},wY=function(t,i){return function(e,s){i(e,s,t)}};let vY=class{constructor(t){this._resolverService=t}hasChildren(t){return t instanceof pY||t instanceof fY}getChildren(t){if(t instanceof pY)return t.groups;if(t instanceof fY)return t.resolve(this._resolverService).then((t=>t.children));throw new Error("bad tree")}};vY=mY([wY(0,gr)],vY);class bY{getHeight(){return 23}getTemplateId(t){return t instanceof fY?CY.id:DY.id}}let yY=class{constructor(t){this._keybindingService=t}getKeyboardNavigationLabel(t){var i;if(t instanceof uY){const e=null===(i=t.parent.getPreview(t))||void 0===i?void 0:i.preview(t.range);if(e)return e.value}return bA(t.uri)}};yY=mY([wY(0,oC)],yY);class kY{getId(t){return t instanceof uY?t.id:t.uri}}let xY=class extends te{constructor(t,i){super(),this._labelService=i;const e=document.createElement("div");e.classList.add("reference-file"),this.file=this._register(new Gj(e,{supportHighlights:!0})),this.badge=new Bj(Ol(e,$l(".count")),{},NB),t.appendChild(e)}set(t,i){const e=kA(t.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(t.uri),this._labelService.getUriLabel(e,{relative:!0}),{title:this._labelService.getUriLabel(t.uri),matches:i});const s=t.children.length;this.badge.setCount(s),this.badge.setTitleFormat(ot(0,s>1?"{0} references":"{0} reference",s))}};xY=mY([wY(1,$O)],xY);let CY=gY=class{constructor(t){this._instantiationService=t,this.templateId=gY.id}renderTemplate(t){return this._instantiationService.createInstance(xY,t)}renderElement(t,i,e){e.set(t.element,l_(t.filterData))}disposeTemplate(t){t.dispose()}};CY.id="FileReferencesRenderer",CY=gY=mY([wY(0,ur)],CY);class SY{constructor(t){this.label=new qj(t)}set(t,i){var e;const s=null===(e=t.parent.getPreview(t))||void 0===e?void 0:e.preview(t.range);if(s&&s.value){const{value:t,highlight:e}=s;i&&!x_.isDefault(i)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(t,l_(i))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(t,[e]))}else this.label.set(`${bA(t.uri)}:${t.range.startLineNumber+1}:${t.range.startColumn+1}`)}}class DY{constructor(){this.templateId=DY.id}renderTemplate(t){return new SY(t)}renderElement(t,i,e){e.set(t.element,t.filterData)}disposeTemplate(){}}DY.id="OneReferenceRenderer";class EY{getWidgetAriaLabel(){return ot(0,"References")}getAriaLabel(t){return t.ariaMessage}}var AY=function(t,i){return function(e,s){i(e,s,t)}};class MY{constructor(t,i){this._editor=t,this._model=i,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new Xi,this._callOnModelChange=new Xi,this._callOnDispose.add(this._editor.onDidChangeModel((()=>this._onModelChanged()))),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();const t=this._editor.getModel();if(t)for(const i of this._model.references)if(i.uri.toString()===t.uri.toString())return void this._addDecorations(i.parent)}_addDecorations(t){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations((()=>this._onDecorationChanged())));const i=[],e=[];for(let s=0,n=t.children.length;s{const n=s.deltaDecorations([],i);for(let i=0;i{t.equals(9)&&(this._keybindingService.dispatchEvent(t,t.target),t.stopPropagation())}),!0)),this._tree=this._instantiationService.createInstance(FY,"ReferencesWidget",this._treeContainer,new bY,[this._instantiationService.createInstance(CY),this._instantiationService.createInstance(DY)],this._instantiationService.createInstance(vY),i),this._splitView.addView({onDidChange:he.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:t=>{this._preview.layout({height:this._dim.height,width:t})}},QP.Distribute),this._splitView.addView({onDidChange:he.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:t=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${t}px`,this._tree.layout(this._dim.height,t)}},QP.Distribute),this._disposables.add(this._splitView.onDidSashChange((()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)}),void 0));const e=(t,i)=>{t instanceof uY&&("show"===i&&this._revealReference(t,!1),this._onDidSelectReference.fire({element:t,kind:i,source:"tree"}))};this._tree.onDidOpen((t=>{e(t.element,t.sideBySide?"side":t.editorOptions.pinned?"goto":"show")})),jl(this._treeContainer)}_onWidth(t){this._dim&&this._doLayoutBody(this._dim.height,t)}_doLayoutBody(t,i){super._doLayoutBody(t,i),this._dim=new el(i,t),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(i),this._splitView.resizeView(0,i*this.layoutData.ratio)}setSelection(t){return this._revealReference(t,!0).then((()=>{this._model&&(this._tree.setSelection([t]),this._tree.setFocus([t]))}))}setModel(t){return this._disposeOnNewModel.clear(),this._model=t,this._model?this._onNewModel():Promise.resolve()}_onNewModel(){return this._model?this._model.isEmpty?(this.setTitle(""),this._messageContainer.innerText=ot(0,"No results"),Wl(this._messageContainer),Promise.resolve(void 0)):(jl(this._messageContainer),this._decorationsManager=new MY(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange((t=>this._tree.rerender(t)))),this._disposeOnNewModel.add(this._preview.onMouseDown((t=>{const{event:i,target:e}=t;if(2!==i.detail)return;const s=this._getFocusedReference();s&&this._onDidSelectReference.fire({element:{uri:s.uri,range:e.range},kind:i.ctrlKey||i.metaKey||i.altKey?"side":"open",source:"editor"})}))),this.container.classList.add("results-loaded"),Wl(this._treeContainer),Wl(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(1===this._model.groups.length?this._model.groups[0]:this._model)):Promise.resolve(void 0)}_getFocusedReference(){const[t]=this._tree.getFocus();return t instanceof uY?t:t instanceof fY&&t.children.length>0?t.children[0]:void 0}async revealReference(t){await this._revealReference(t,!1),this._onDidSelectReference.fire({element:t,kind:"goto",source:"tree"})}async _revealReference(t,i){if(this._revealedReference===t)return;this._revealedReference=t,t.uri.scheme!==ka.inMemory?this.setTitle(vA(t.uri),this._uriLabel.getUriLabel(kA(t.uri))):this.setTitle(ot(0,"References"));const e=this._textModelResolverService.createModelReference(t.uri);this._tree.getInput()===t.parent||(i&&this._tree.reveal(t.parent),await this._tree.expand(t.parent)),this._tree.reveal(t);const s=await e;if(!this._model)return void s.dispose();Qi(this._previewModelReference);const n=s.object;if(n){const i=this._preview.getModel()===n.textEditorModel?0:1,e=Ms.lift(t.range).collapseToStart();this._previewModelReference=s,this._preview.setModel(n.textEditorModel),this._preview.setSelection(e),this._preview.revealRangeInCenter(e,i)}else this._preview.setModel(this._previewNotAvailableMessage),s.dispose()}};TY=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([AY(3,Xk),AY(4,gr),AY(5,ur),AY(6,tY),AY(7,$O),AY(8,hL),AY(9,oC),AY(10,yd),AY(11,Xd)],TY);var RY,OY=function(t,i){return function(e,s){i(e,s,t)}};const IY=new ch("referenceSearchVisible",!1,ot(0,"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'"));let _Y=RY=class{static get(t){return t.getContribution(RY.ID)}constructor(t,i,e,s,n,o,r,h){this._defaultTreeKeyboardSupport=t,this._editor=i,this._editorService=s,this._notificationService=n,this._instantiationService=o,this._storageService=r,this._configurationService=h,this._disposables=new Xi,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=IY.bindTo(e)}dispose(){var t,i;this._referenceSearchVisible.reset(),this._disposables.dispose(),null===(t=this._widget)||void 0===t||t.dispose(),null===(i=this._model)||void 0===i||i.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(t,i,e){let s;if(this._widget&&(s=this._widget.position),this.closeWidget(),s&&t.containsPosition(s))return;this._peekMode=e,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage((()=>{this.closeWidget()}))),this._disposables.add(this._editor.onDidChangeModel((()=>{this._ignoreModelChangeEvent||this.closeWidget()})));const n="peekViewLayout",o=LY.fromJSON(this._storageService.get(n,0,"{}"));this._widget=this._instantiationService.createInstance(TY,this._editor,this._defaultTreeKeyboardSupport,o),this._widget.setTitle(ot(0,"Loading...")),this._widget.show(t),this._disposables.add(this._widget.onDidClose((()=>{i.cancel(),this._widget&&(this._storageService.store(n,JSON.stringify(this._widget.layoutData),0,1),this._widget=void 0),this.closeWidget()}))),this._disposables.add(this._widget.onDidSelectReference((t=>{const{element:i,kind:s}=t;if(i)switch(s){case"open":"editor"===t.source&&this._configurationService.getValue("editor.stablePeek")||this.openReference(i,!1,!1);break;case"side":this.openReference(i,!0,!1);break;case"goto":e?this._gotoReference(i,!0):this.openReference(i,!1,!0)}})));const r=++this._requestIdPool;i.then((i=>{var e;if(r===this._requestIdPool&&this._widget)return null===(e=this._model)||void 0===e||e.dispose(),this._model=i,this._widget.setModel(this._model).then((()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._widget.setMetaTitle(this._model.isEmpty?"":ot(0,"{0} ({1})",this._model.title,this._model.references.length));const i=this._editor.getModel().uri,e=new As(t.startLineNumber,t.startColumn),s=this._model.nearestReference(i,e);if(s)return this._widget.setSelection(s).then((()=>{this._widget&&"editor"===this._editor.getOption(86)&&this._widget.focusOnPreviewEditor()}))}}));i.dispose()}),(t=>{this._notificationService.error(t)}))}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}async goToNextOrPreviousReference(t){if(!this._editor.hasModel()||!this._model||!this._widget)return;const i=this._widget.position;if(!i)return;const e=this._model.nearestReference(this._editor.getModel().uri,i);if(!e)return;const s=this._model.nextOrPreviousReference(e,t),n=this._editor.hasTextFocus(),o=this._widget.isPreviewEditorFocused();await this._widget.setSelection(s),await this._gotoReference(s,!1),n?this._editor.focus():this._widget&&o&&this._widget.focusOnPreviewEditor()}async revealReference(t){this._editor.hasModel()&&this._model&&this._widget&&await this._widget.revealReference(t)}closeWidget(t=!0){var i,e;null===(i=this._widget)||void 0===i||i.dispose(),null===(e=this._model)||void 0===e||e.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,t&&this._editor.focus(),this._requestIdPool+=1}_gotoReference(t,i){var e;null===(e=this._widget)||void 0===e||e.hide(),this._ignoreModelChangeEvent=!0;const s=Ms.lift(t.range).collapseToStart();return this._editorService.openCodeEditor({resource:t.uri,options:{selection:s,selectionSource:"code.jump",pinned:i}},this._editor).then((t=>{var i;if(this._ignoreModelChangeEvent=!1,t&&this._widget)if(this._editor===t)this._widget.show(s),this._widget.focusOnReferenceTree();else{const e=RY.get(t),n=this._model.clone();this.closeWidget(),t.focus(),null==e||e.toggleWidget(s,nc((()=>Promise.resolve(n))),null!==(i=this._peekMode)&&void 0!==i&&i)}else this.closeWidget()}),(t=>{this._ignoreModelChangeEvent=!1,Bi(t)}))}openReference(t,i,e){i||this.closeWidget();const{uri:s,range:n}=t;this._editorService.openCodeEditor({resource:s,options:{selection:n,selectionSource:"code.jump",pinned:e}},this._editor,i)}};function NY(t,i){const e=function(t){const i=t.get(fr).getFocusedCodeEditor();return i instanceof UJ?i.getParentEditor():i}(t);if(!e)return;const s=_Y.get(e);s&&i(s)}_Y.ID="editor.contrib.referencesController",_Y=RY=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([OY(2,ah),OY(3,fr),OY(4,oT),OY(5,ur),OY(6,AB),OY(7,pd)],_Y),Ah.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:Ne(2089,60),when:zr.or(IY,iY.inPeekEditor),handler(t){NY(t,(t=>{t.changeFocusBetweenPreviewAndReferences()}))}}),Ah.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:zr.or(IY,iY.inPeekEditor),handler(t){NY(t,(t=>{t.goToNextOrPreviousReference(!0)}))}}),Ah.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:zr.or(IY,iY.inPeekEditor),handler(t){NY(t,(t=>{t.goToNextOrPreviousReference(!1)}))}}),Dr.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference"),Dr.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference"),Dr.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch"),Dr.registerCommand("closeReferenceSearch",(t=>NY(t,(t=>t.closeWidget())))),Ah.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:zr.and(iY.inPeekEditor,zr.not("config.editor.stablePeek"))}),Ah.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:zr.and(IY,zr.not("config.editor.stablePeek"))}),Ah.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:zr.and(IY,TW,BW.negate(),$W.negate()),handler(t){var i;const e=null===(i=t.get(AW).lastFocusedList)||void 0===i?void 0:i.getFocus();Array.isArray(e)&&e[0]instanceof uY&&NY(t,(t=>t.revealReference(e[0])))}}),Ah.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:zr.and(IY,TW,BW.negate(),$W.negate()),handler(t){var i;const e=null===(i=t.get(AW).lastFocusedList)||void 0===i?void 0:i.getFocus();Array.isArray(e)&&e[0]instanceof uY&&NY(t,(t=>t.openReference(e[0],!0,!0)))}}),Dr.registerCommand("openReference",(t=>{var i;const e=null===(i=t.get(AW).lastFocusedList)||void 0===i?void 0:i.getFocus();Array.isArray(e)&&e[0]instanceof uY&&NY(t,(t=>t.openReference(e[0],!1,!0)))}));var BY=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},PY=function(t,i){return function(e,s){i(e,s,t)}};const $Y=new ch("hasSymbols",!1,ot(0,"Whether there are symbol locations that can be navigated via keyboard-only.")),WY=dr("ISymbolNavigationService");let jY=class{constructor(t,i,e,s){this._editorService=i,this._notificationService=e,this._keybindingService=s,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=$Y.bindTo(t)}reset(){var t,i;this._ctxHasSymbols.reset(),null===(t=this._currentState)||void 0===t||t.dispose(),null===(i=this._currentMessage)||void 0===i||i.dispose(),this._currentModel=void 0,this._currentIdx=-1}put(t){const i=t.parent.parent;if(i.references.length<=1)return void this.reset();this._currentModel=i,this._currentIdx=i.references.indexOf(t),this._ctxHasSymbols.set(!0),this._showMessage();const e=new zY(this._editorService),s=e.onDidChange((()=>{if(this._ignoreEditorChange)return;const t=this._editorService.getActiveCodeEditor();if(!t)return;const e=t.getModel(),s=t.getPosition();if(!e||!s)return;let n=!1,o=!1;for(const t of i.references)if(wA(t.uri,e.uri))n=!0,o=o||Ms.containsPosition(t.range,s);else if(n)break;n&&o||this.reset()}));this._currentState=Ji(e,s)}revealNext(t){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;const i=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:i.uri,options:{selection:Ms.collapseToStart(i.range),selectionRevealType:3}},t).finally((()=>{this._ignoreEditorChange=!1}))}_showMessage(){var t;null===(t=this._currentMessage)||void 0===t||t.dispose();const i=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),e=i?ot(0,"Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,i.getLabel()):ot(0,"Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(e)}};jY=BY([PY(0,ah),PY(1,fr),PY(2,oT),PY(3,oC)],jY),Cd(WY,jY,1),hu(new class extends eu{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:$Y,kbOpts:{weight:100,primary:70}})}runEditorCommand(t,i){return t.get(WY).revealNext(i)}}),Ah.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:$Y,primary:9,handler(t){t.get(WY).reset()}});let zY=class{constructor(t){this._listener=new Map,this._disposables=new Xi,this._onDidChange=new de,this.onDidChange=this._onDidChange.event,this._disposables.add(t.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(t.onCodeEditorAdd(this._onDidAddEditor,this)),t.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),Qi(this._listener.values())}_onDidAddEditor(t){this._listener.set(t,Ji(t.onDidChangeCursorPosition((()=>this._onDidChange.fire({editor:t}))),t.onDidChangeModelContent((()=>this._onDidChange.fire({editor:t})))))}_onDidRemoveEditor(t){var i;null===(i=this._listener.get(t))||void 0===i||i.dispose(),this._listener.delete(t)}};async function HY(t,i,e,s){const n=e.ordered(t).map((e=>Promise.resolve(s(e,t,i)).then(void 0,(t=>{Pi(t)}))));return m((await Promise.all(n)).flat())}function VY(t,i,e,s){return HY(i,e,t,((t,i,e)=>t.provideDefinition(i,e,s)))}function UY(t,i,e,s){return HY(i,e,t,((t,i,e)=>t.provideDeclaration(i,e,s)))}function qY(t,i,e,s){return HY(i,e,t,((t,i,e)=>t.provideImplementation(i,e,s)))}function KY(t,i,e,s){return HY(i,e,t,((t,i,e)=>t.provideTypeDefinition(i,e,s)))}function GY(t,i,e,s,n){return HY(i,e,t,(async(t,i,e)=>{const o=await t.provideReferences(i,e,{includeDeclaration:!0},n);if(!s||!o||2!==o.length)return o;const r=await t.provideReferences(i,e,{includeDeclaration:!1},n);return r&&1===r.length?r:o}))}async function ZY(t){const i=await t(),e=new pY(i,""),s=e.references.map((t=>t.link));return e.dispose(),s}var QY,JY,YY,XY,tX,iX,eX,sX;zY=BY([PY(0,fr)],zY),ru("_executeDefinitionProvider",((t,i,e)=>{const s=VY(t.get(xg).definitionProvider,i,e,ke.None);return ZY((()=>s))})),ru("_executeTypeDefinitionProvider",((t,i,e)=>{const s=KY(t.get(xg).typeDefinitionProvider,i,e,ke.None);return ZY((()=>s))})),ru("_executeDeclarationProvider",((t,i,e)=>{const s=UY(t.get(xg).declarationProvider,i,e,ke.None);return ZY((()=>s))})),ru("_executeReferenceProvider",((t,i,e)=>{const s=GY(t.get(xg).referenceProvider,i,e,!1,ke.None);return ZY((()=>s))})),ru("_executeImplementationProvider",((t,i,e)=>{const s=qY(t.get(xg).implementationProvider,i,e,ke.None);return ZY((()=>s))})),_h.appendMenuItem(Rh.EditorContext,{submenu:Rh.EditorContextPeek,title:ot(0,"Peek"),group:"navigation",order:100});class nX{static is(t){return!(!t||"object"!=typeof t)&&(t instanceof nX||!(!As.isIPosition(t.position)||!t.model))}constructor(t,i){this.model=t,this.position=i}}class oX extends ou{static all(){return oX._allSymbolNavigationCommands.values()}static _patchConfig(t){const i={...t,f1:!0};if(i.menu)for(const e of Ht.wrap(i.menu))e.id!==Rh.EditorContext&&e.id!==Rh.EditorContextPeek||(e.when=zr.and(t.precondition,e.when));return i}constructor(t,i){super(oX._patchConfig(i)),this.configuration=t,oX._allSymbolNavigationCommands.set(i.id,this)}runEditorCommand(t,i,e,s){if(!i.hasModel())return Promise.resolve(void 0);const n=t.get(oT),o=t.get(fr),r=t.get(zO),h=t.get(WY),c=t.get(xg),a=t.get(ur),l=i.getModel(),u=i.getPosition(),d=nX.is(e)?e:new nX(l,u),f=new CK(i,5),p=oc(this._getLocationModel(c,d.model,d.position,f.token),f.token).then((async t=>{var n;if(!t||f.token.isCancellationRequested)return;let r;if(Pm(t.ariaMessage),t.referenceAt(l.uri,u)){const t=this._getAlternativeCommand(i);!oX._activeAlternativeCommands.has(t)&&oX._allSymbolNavigationCommands.has(t)&&(r=oX._allSymbolNavigationCommands.get(t))}const c=t.references.length;if(0===c){if(!this.configuration.muteMessage){const t=l.getWordAtPosition(u);null===(n=gQ.get(i))||void 0===n||n.showMessage(this._getNoResultFoundMessage(t),u)}}else{if(1!==c||!r)return this._onResult(o,h,i,t,s);oX._activeAlternativeCommands.add(this.desc.id),a.invokeFunction((t=>r.runEditorCommand(t,i,e,s).finally((()=>{oX._activeAlternativeCommands.delete(this.desc.id)}))))}}),(t=>{n.error(t)})).finally((()=>{f.dispose()}));return r.showWhile(p,250),p}async _onResult(t,i,e,s,n){const o=this._getGoToPreference(e);if(e instanceof UJ||!(this.configuration.openInPeek||"peek"===o&&s.references.length>1)){const r=s.firstReference(),h=s.references.length>1&&"gotoAndPeek"===o,c=await this._openReference(e,t,r,this.configuration.openToSide,!h);h&&c?this._openInPeek(c,s,n):s.dispose(),"goto"===o&&i.put(r)}else this._openInPeek(e,s,n)}async _openReference(t,i,e,s,n){let o;var r;if((r=e)&&ms.isUri(r.uri)&&Ms.isIRange(r.range)&&(Ms.isIRange(r.originSelectionRange)||Ms.isIRange(r.targetSelectionRange))&&(o=e.targetSelectionRange),o||(o=e.range),!o)return;const h=await i.openCodeEditor({resource:e.uri,options:{selection:Ms.collapseToStart(o),selectionRevealType:3,selectionSource:"code.jump"}},t,s);if(h){if(n){const t=h.getModel(),i=h.createDecorationsCollection([{range:o,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout((()=>{h.getModel()===t&&i.clear()}),350)}return h}}_openInPeek(t,i,e){const s=_Y.get(t);s&&t.hasModel()?s.toggleWidget(null!=e?e:t.getSelection(),nc((()=>Promise.resolve(i))),this.configuration.openInPeek):i.dispose()}}oX._allSymbolNavigationCommands=new Map,oX._activeAlternativeCommands=new Set;class rX extends oX{async _getLocationModel(t,i,e,s){return new pY(await VY(t.definitionProvider,i,e,s),ot(0,"Definitions"))}_getNoResultFoundMessage(t){return t&&t.word?ot(0,"No definition found for '{0}'",t.word):ot(0,"No definition found")}_getAlternativeCommand(t){return t.getOption(58).alternativeDefinitionCommand}_getGoToPreference(t){return t.getOption(58).multipleDefinitions}}$h(((QY=class extends rX{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:QY.id,title:{value:ot(0,"Go to Definition"),original:"Go to Definition",mnemonicTitle:ot(0,"Go to &&Definition")},precondition:zr.and(YC.hasDefinitionProvider,YC.isInWalkThroughSnippet.toNegated()),keybinding:[{when:YC.editorTextFocus,primary:70,weight:100},{when:zr.and(YC.editorTextFocus,yW),primary:2118,weight:100}],menu:[{id:Rh.EditorContext,group:"navigation",order:1.1},{id:Rh.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]}),Dr.registerCommandAlias("editor.action.goToDeclaration",QY.id)}}).id="editor.action.revealDefinition",QY)),$h(((JY=class extends rX{constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:JY.id,title:{value:ot(0,"Open Definition to the Side"),original:"Open Definition to the Side"},precondition:zr.and(YC.hasDefinitionProvider,YC.isInWalkThroughSnippet.toNegated()),keybinding:[{when:YC.editorTextFocus,primary:Ne(2089,70),weight:100},{when:zr.and(YC.editorTextFocus,yW),primary:Ne(2089,2118),weight:100}]}),Dr.registerCommandAlias("editor.action.openDeclarationToTheSide",JY.id)}}).id="editor.action.revealDefinitionAside",JY)),$h(((YY=class extends rX{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:YY.id,title:{value:ot(0,"Peek Definition"),original:"Peek Definition"},precondition:zr.and(YC.hasDefinitionProvider,iY.notInPeekEditor,YC.isInWalkThroughSnippet.toNegated()),keybinding:{when:YC.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:Rh.EditorContextPeek,group:"peek",order:2}}),Dr.registerCommandAlias("editor.action.previewDeclaration",YY.id)}}).id="editor.action.peekDefinition",YY));class hX extends oX{async _getLocationModel(t,i,e,s){return new pY(await UY(t.declarationProvider,i,e,s),ot(0,"Declarations"))}_getNoResultFoundMessage(t){return t&&t.word?ot(0,"No declaration found for '{0}'",t.word):ot(0,"No declaration found")}_getAlternativeCommand(t){return t.getOption(58).alternativeDeclarationCommand}_getGoToPreference(t){return t.getOption(58).multipleDeclarations}}$h(((XY=class extends hX{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:XY.id,title:{value:ot(0,"Go to Declaration"),original:"Go to Declaration",mnemonicTitle:ot(0,"Go to &&Declaration")},precondition:zr.and(YC.hasDeclarationProvider,YC.isInWalkThroughSnippet.toNegated()),menu:[{id:Rh.EditorContext,group:"navigation",order:1.3},{id:Rh.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(t){return t&&t.word?ot(0,"No declaration found for '{0}'",t.word):ot(0,"No declaration found")}}).id="editor.action.revealDeclaration",XY)),$h(class extends hX{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:{value:ot(0,"Peek Declaration"),original:"Peek Declaration"},precondition:zr.and(YC.hasDeclarationProvider,iY.notInPeekEditor,YC.isInWalkThroughSnippet.toNegated()),menu:{id:Rh.EditorContextPeek,group:"peek",order:3}})}});class cX extends oX{async _getLocationModel(t,i,e,s){return new pY(await KY(t.typeDefinitionProvider,i,e,s),ot(0,"Type Definitions"))}_getNoResultFoundMessage(t){return t&&t.word?ot(0,"No type definition found for '{0}'",t.word):ot(0,"No type definition found")}_getAlternativeCommand(t){return t.getOption(58).alternativeTypeDefinitionCommand}_getGoToPreference(t){return t.getOption(58).multipleTypeDefinitions}}$h(((tX=class extends cX{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:tX.ID,title:{value:ot(0,"Go to Type Definition"),original:"Go to Type Definition",mnemonicTitle:ot(0,"Go to &&Type Definition")},precondition:zr.and(YC.hasTypeDefinitionProvider,YC.isInWalkThroughSnippet.toNegated()),keybinding:{when:YC.editorTextFocus,primary:0,weight:100},menu:[{id:Rh.EditorContext,group:"navigation",order:1.4},{id:Rh.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}}).ID="editor.action.goToTypeDefinition",tX)),$h(((iX=class extends cX{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:iX.ID,title:{value:ot(0,"Peek Type Definition"),original:"Peek Type Definition"},precondition:zr.and(YC.hasTypeDefinitionProvider,iY.notInPeekEditor,YC.isInWalkThroughSnippet.toNegated()),menu:{id:Rh.EditorContextPeek,group:"peek",order:4}})}}).ID="editor.action.peekTypeDefinition",iX));class aX extends oX{async _getLocationModel(t,i,e,s){return new pY(await qY(t.implementationProvider,i,e,s),ot(0,"Implementations"))}_getNoResultFoundMessage(t){return t&&t.word?ot(0,"No implementation found for '{0}'",t.word):ot(0,"No implementation found")}_getAlternativeCommand(t){return t.getOption(58).alternativeImplementationCommand}_getGoToPreference(t){return t.getOption(58).multipleImplementations}}$h(((eX=class extends aX{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:eX.ID,title:{value:ot(0,"Go to Implementations"),original:"Go to Implementations",mnemonicTitle:ot(0,"Go to &&Implementations")},precondition:zr.and(YC.hasImplementationProvider,YC.isInWalkThroughSnippet.toNegated()),keybinding:{when:YC.editorTextFocus,primary:2118,weight:100},menu:[{id:Rh.EditorContext,group:"navigation",order:1.45},{id:Rh.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}}).ID="editor.action.goToImplementation",eX)),$h(((sX=class extends aX{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:sX.ID,title:{value:ot(0,"Peek Implementations"),original:"Peek Implementations"},precondition:zr.and(YC.hasImplementationProvider,iY.notInPeekEditor,YC.isInWalkThroughSnippet.toNegated()),keybinding:{when:YC.editorTextFocus,primary:3142,weight:100},menu:{id:Rh.EditorContextPeek,group:"peek",order:5}})}}).ID="editor.action.peekImplementation",sX));class lX extends oX{_getNoResultFoundMessage(t){return t?ot(0,"No references found for '{0}'",t.word):ot(0,"No references found")}_getAlternativeCommand(t){return t.getOption(58).alternativeReferenceCommand}_getGoToPreference(t){return t.getOption(58).multipleReferences}}$h(class extends lX{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{value:ot(0,"Go to References"),original:"Go to References",mnemonicTitle:ot(0,"Go to &&References")},precondition:zr.and(YC.hasReferenceProvider,iY.notInPeekEditor,YC.isInWalkThroughSnippet.toNegated()),keybinding:{when:YC.editorTextFocus,primary:1094,weight:100},menu:[{id:Rh.EditorContext,group:"navigation",order:1.45},{id:Rh.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(t,i,e,s){return new pY(await GY(t.referenceProvider,i,e,!0,s),ot(0,"References"))}}),$h(class extends lX{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:{value:ot(0,"Peek References"),original:"Peek References"},precondition:zr.and(YC.hasReferenceProvider,iY.notInPeekEditor,YC.isInWalkThroughSnippet.toNegated()),menu:{id:Rh.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(t,i,e,s){return new pY(await GY(t.referenceProvider,i,e,!1,s),ot(0,"References"))}});class uX extends oX{constructor(t,i,e){super(t,{id:"editor.action.goToLocation",title:{value:ot(0,"Go to Any Symbol"),original:"Go to Any Symbol"},precondition:zr.and(iY.notInPeekEditor,YC.isInWalkThroughSnippet.toNegated())}),this._references=i,this._gotoMultipleBehaviour=e}async _getLocationModel(t,i,e,s){return new pY(this._references,ot(0,"Locations"))}_getNoResultFoundMessage(t){return t&&ot(0,"No results for '{0}'",t.word)||""}_getGoToPreference(t){var i;return null!==(i=this._gotoMultipleBehaviour)&&void 0!==i?i:t.getOption(58).multipleReferences}_getAlternativeCommand(){return""}}Dr.registerCommand({id:"editor.action.goToLocations",metadata:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:ms},{name:"position",description:"The position at which to start",constraint:As.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:async(t,i,e,s,n,o,r)=>{q(ms.isUri(i)),q(As.isIPosition(e)),q(Array.isArray(s)),q(void 0===n||"string"==typeof n),q(void 0===r||"boolean"==typeof r);const h=t.get(fr),c=await h.openCodeEditor({resource:i},h.getFocusedCodeEditor());if(DK(c))return c.setPosition(e),c.revealPositionInCenterIfOutsideViewport(e,0),c.invokeWithinContext((t=>{const i=new class extends uX{_getNoResultFoundMessage(t){return o||super._getNoResultFoundMessage(t)}}({muteMessage:!Boolean(o),openInPeek:Boolean(r),openToSide:!1},s,n);t.get(ur).invokeFunction(i.run.bind(i),c)}))}}),Dr.registerCommand({id:"editor.action.peekLocations",metadata:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:ms},{name:"position",description:"The position at which to start",constraint:As.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto"}]},handler:async(t,i,e,s,n)=>{t.get(Sr).executeCommand("editor.action.goToLocations",i,e,s,n,void 0,!0)}}),Dr.registerCommand({id:"editor.action.findReferences",handler:(t,i,e)=>{q(ms.isUri(i)),q(As.isIPosition(e));const s=t.get(xg),n=t.get(fr);return n.openCodeEditor({resource:i},n.getFocusedCodeEditor()).then((t=>{if(!DK(t)||!t.hasModel())return;const i=_Y.get(t);if(!i)return;const n=nc((i=>GY(s.referenceProvider,t.getModel(),As.lift(e),!1,i).then((t=>new pY(t,ot(0,"References")))))),o=new Ms(e.lineNumber,e.column,e.lineNumber,e.column);return Promise.resolve(i.toggleWidget(o,n,!1))}))}}),Dr.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");var dX,fX=function(t,i){return function(e,s){i(e,s,t)}};let pX=dX=class{constructor(t,i,e,s){this.textModelResolverService=i,this.languageService=e,this.languageFeaturesService=s,this.toUnhook=new Xi,this.toUnhookForKeyboard=new Xi,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=t,this.linkDecorations=this.editor.createDecorationsCollection();const n=new HJ(t);this.toUnhook.add(n),this.toUnhook.add(n.onMouseMoveOrRelevantKeyDown((([t,i])=>{this.startFindDefinitionFromMouse(t,null!=i?i:void 0)}))),this.toUnhook.add(n.onExecute((t=>{this.isEnabled(t)&&this.gotoDefinition(t.target.position,t.hasSideBySideModifier).catch((t=>{Bi(t)})).finally((()=>{this.removeLinkDecorations()}))}))),this.toUnhook.add(n.onCancel((()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null})))}static get(t){return t.getContribution(dX.ID)}async startFindDefinitionFromCursor(t){await this.startFindDefinition(t),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition((()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()}))),this.toUnhookForKeyboard.add(this.editor.onKeyDown((t=>{t&&(this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear())})))}startFindDefinitionFromMouse(t,i){if(!(9===t.target.type&&this.linkDecorations.length>0))return this.editor.hasModel()&&this.isEnabled(t,i)?void this.startFindDefinition(t.target.position):(this.currentWordAtPosition=null,void this.removeLinkDecorations())}async startFindDefinition(t){var i;this.toUnhookForKeyboard.clear();const e=t?null===(i=this.editor.getModel())||void 0===i?void 0:i.getWordAtPosition(t):null;if(!e)return this.currentWordAtPosition=null,void this.removeLinkDecorations();if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===e.startColumn&&this.currentWordAtPosition.endColumn===e.endColumn&&this.currentWordAtPosition.word===e.word)return;this.currentWordAtPosition=e;const s=new xK(this.editor,15);let n;this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=nc((i=>this.findDefinition(t,i)));try{n=await this.previousPromise}catch(t){return void Bi(t)}if(!n||!n.length||!s.validate(this.editor))return void this.removeLinkDecorations();const o=n[0].originSelectionRange?Ms.lift(n[0].originSelectionRange):new Ms(t.lineNumber,e.startColumn,t.lineNumber,e.endColumn);if(n.length>1){let t=o;for(const{originSelectionRange:i}of n)i&&(t=Ms.plusRange(t,i));this.addDecoration(t,(new N_).appendText(ot(0,"Click to show {0} definitions.",n.length)))}else{const t=n[0];if(!t.uri)return;this.textModelResolverService.createModelReference(t.uri).then((i=>{if(!i.object||!i.object.textEditorModel)return void i.dispose();const{object:{textEditorModel:e}}=i,{startLineNumber:s}=t.range;if(s<1||s>e.getLineCount())return void i.dispose();const n=this.getPreviewValue(e,s,t),r=this.languageService.guessLanguageIdByFilepathOrFirstLine(e.uri);this.addDecoration(o,n?(new N_).appendCodeblock(r||"",n):void 0),i.dispose()}))}}getPreviewValue(t,i,e){let s=e.range;return s.endLineNumber-s.startLineNumber>=dX.MAX_SOURCE_PREVIEW_LINES&&(s=this.getPreviewRangeBasedOnIndentation(t,i)),this.stripIndentationFromPreviewRange(t,i,s)}stripIndentationFromPreviewRange(t,i,e){let s=t.getLineFirstNonWhitespaceColumn(i);for(let n=i+1;n{const e=!i&&this.editor.getOption(87)&&!this.isInPeekEditor(t);return new rX({openToSide:i,openInPeek:e,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(t)}))}isInPeekEditor(t){const i=t.get(ah);return iY.inPeekEditor.getValue(i)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};pX.ID="editor.contrib.gotodefinitionatposition",pX.MAX_SOURCE_PREVIEW_LINES=8,pX=dX=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([fX(1,gr),fX(2,yd),fX(3,xg)],pX),lu(pX.ID,pX,2);const gX=$l;class mX extends te{constructor(){super(),this.containerDomNode=document.createElement("div"),this.containerDomNode.className="monaco-hover",this.containerDomNode.tabIndex=0,this.containerDomNode.setAttribute("role","tooltip"),this.contentsDomNode=document.createElement("div"),this.contentsDomNode.className="monaco-hover-content",this.scrollbar=this._register(new Tk(this.contentsDomNode,{consumeMouseWheelIfScrollbarIsNeeded:!0})),this.containerDomNode.appendChild(this.scrollbar.getDomNode())}onContentsChanged(){this.scrollbar.scanDomNode()}}class wX extends te{static render(t,i,e){return new wX(t,i,e)}constructor(t,i,e){super(),this.actionContainer=Ol(t,gX("div.action-container")),this.actionContainer.setAttribute("tabindex","0"),this.action=Ol(this.actionContainer,gX("a.action")),this.action.setAttribute("role","button"),i.iconClass&&Ol(this.action,gX(`span.icon.${i.iconClass}`)),Ol(this.action,gX("span")).textContent=e?`${i.label} (${e})`:i.label,this._register(Va(this.actionContainer,Ll.CLICK,(t=>{t.stopPropagation(),t.preventDefault(),i.run(this.actionContainer)}))),this._register(Va(this.actionContainer,Ll.KEY_DOWN,(t=>{const e=new Qh(t);(e.equals(3)||e.equals(10))&&(t.stopPropagation(),t.preventDefault(),i.run(this.actionContainer))}))),this.setEnabled(!0)}setEnabled(t){t?(this.actionContainer.classList.remove("disabled"),this.actionContainer.removeAttribute("aria-disabled")):(this.actionContainer.classList.add("disabled"),this.actionContainer.setAttribute("aria-disabled","true"))}}class vX{constructor(t,i,e){this.value=t,this.isComplete=i,this.hasLoadingMessage=e}}class bX extends te{constructor(t,i){super(),this._editor=t,this._computer=i,this._onResult=this._register(new de),this.onResult=this._onResult.event,this._firstWaitScheduler=this._register(new pc((()=>this._triggerAsyncComputation()),0)),this._secondWaitScheduler=this._register(new pc((()=>this._triggerSyncComputation()),0)),this._loadingMessageScheduler=this._register(new pc((()=>this._triggerLoadingMessage()),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),super.dispose()}get _hoverTime(){return this._editor.getOption(60).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(t,i=!0){this._state=t,i&&this._fireResult()}_triggerAsyncComputation(){this._setState(2),this._secondWaitScheduler.schedule(this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=function(t){const i=new Ce,e=t(i.token);return new xc(i,(async t=>{const s=i.token.onCancellationRequested((()=>{s.dispose(),i.dispose(),t.reject(new zi)}));try{for await(const s of e){if(i.token.isCancellationRequested)return;t.emitOne(s)}s.dispose(),i.dispose()}catch(e){s.dispose(),i.dispose(),t.reject(e)}}))}((t=>this._computer.computeAsync(t))),(async()=>{try{for await(const t of this._asyncIterable)t&&(this._result.push(t),this._fireResult());this._asyncIterableDone=!0,3!==this._state&&4!==this._state||this._setState(0)}catch(t){Bi(t)}})()):this._asyncIterableDone=!0}_triggerSyncComputation(){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync())),this._setState(this._asyncIterableDone?0:3)}_triggerLoadingMessage(){3===this._state&&this._setState(4)}_fireResult(){if(1===this._state||2===this._state)return;const t=0===this._state,i=4===this._state;this._onResult.fire(new vX(this._result.slice(0),t,i))}start(t){if(0===t)0===this._state&&(this._setState(1),this._firstWaitScheduler.schedule(this._firstWaitTime),this._loadingMessageScheduler.schedule(this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation()}}cancel(){this._firstWaitScheduler.cancel(),this._secondWaitScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._result=[],this._setState(0,!1)}}class yX{constructor(t,i,e,s){this.priority=t,this.range=i,this.initialMousePosX=e,this.initialMousePosY=s,this.type=1}equals(t){return 1===t.type&&this.range.equalsRange(t.range)}canAdoptVisibleHover(t,i){return 1===t.type&&i.lineNumber===this.range.startLineNumber}}class kX{constructor(t,i,e,s,n,o){this.priority=t,this.owner=i,this.range=e,this.initialMousePosX=s,this.initialMousePosY=n,this.supportsMarkerHover=o,this.type=2}equals(t){return 2===t.type&&this.owner===t.owner}canAdoptVisibleHover(t,i){return 2===t.type&&this.owner===t.owner}}const xX=new class{constructor(){this._participants=[]}register(t){this._participants.push(t)}getAll(){return this._participants}};class CX{constructor(){let t;this._onDidWillResize=new de,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new de,this.onDidResize=this._onDidResize.event,this._sashListener=new Xi,this._size=new el(0,0),this._minSize=new el(0,0),this._maxSize=new el(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new VP(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new VP(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new VP(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:NP.North}),this._southSash=new VP(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:NP.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let i=0,e=0;this._sashListener.add(he.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)((()=>{void 0===t&&(this._onDidWillResize.fire(),t=this._size,i=0,e=0)}))),this._sashListener.add(he.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)((()=>{void 0!==t&&(t=void 0,i=0,e=0,this._onDidResize.fire({dimension:this._size,done:!0}))}))),this._sashListener.add(this._eastSash.onDidChange((s=>{t&&(e=s.currentX-s.startX,this.layout(t.height+i,t.width+e),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))}))),this._sashListener.add(this._westSash.onDidChange((s=>{t&&(e=-(s.currentX-s.startX),this.layout(t.height+i,t.width+e),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))}))),this._sashListener.add(this._northSash.onDidChange((s=>{t&&(i=-(s.currentY-s.startY),this.layout(t.height+i,t.width+e),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))}))),this._sashListener.add(this._southSash.onDidChange((s=>{t&&(i=s.currentY-s.startY,this.layout(t.height+i,t.width+e),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))}))),this._sashListener.add(he.any(this._eastSash.onDidReset,this._westSash.onDidReset)((()=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))),this._sashListener.add(he.any(this._northSash.onDidReset,this._southSash.onDidReset)((()=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))})))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(t,i,e,s){this._northSash.state=t?3:0,this._eastSash.state=i?3:0,this._southSash.state=e?3:0,this._westSash.state=s?3:0}layout(t=this.size.height,i=this.size.width){const{height:e,width:s}=this._minSize,{height:n,width:o}=this._maxSize;t=Math.max(e,Math.min(n,t)),i=Math.max(s,Math.min(o,i));const r=new el(i,t);el.equals(r,this._size)||(this.domNode.style.height=t+"px",this.domNode.style.width=i+"px",this._size=r,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(t){this._maxSize=t}get maxSize(){return this._maxSize}set minSize(t){this._minSize=t}get minSize(){return this._minSize}set preferredSize(t){this._preferredSize=t}get preferredSize(){return this._preferredSize}}class SX extends te{constructor(t,i=new el(10,10)){super(),this._editor=t,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new CX),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=el.lift(i),this._resizableNode.layout(i.height,i.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize((t=>{this._resize(new el(t.dimension.width,t.dimension.height)),t.done&&(this._isResizing=!1)}))),this._register(this._resizableNode.onDidWillResize((()=>{this._isResizing=!0})))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){var t;return(null===(t=this._contentPosition)||void 0===t?void 0:t.position)?As.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(t){const i=this._editor.getDomNode(),e=this._editor.getScrolledVisiblePosition(t);if(i&&e)return nl(i).top+e.top-30}_availableVerticalSpaceBelow(t){const i=this._editor.getDomNode(),e=this._editor.getScrolledVisiblePosition(t);if(!i||!e)return;const s=nl(i);return tl(i.ownerDocument.body).height-(s.top+e.top+e.height)-24}_findPositionPreference(t,i){var e,s;const n=Math.min(null!==(e=this._availableVerticalSpaceBelow(i))&&void 0!==e?e:1/0,t),o=Math.min(null!==(s=this._availableVerticalSpaceAbove(i))&&void 0!==s?s:1/0,t),r=Math.min(Math.max(o,n),t),h=Math.min(t,r);let c;return c=this._editor.getOption(60).above?h<=o?1:2:h<=n?2:1,1===c?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),c}_resize(t){this._resizableNode.layout(t.height,t.width)}}var DX,EX,AX=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},MX=function(t,i){return function(e,s){i(e,s,t)}};const LX=$l;let FX=DX=class extends te{constructor(t,i,e){super(),this._editor=t,this._instantiationService=i,this._keybindingService=e,this._currentResult=null,this._widget=this._register(this._instantiationService.createInstance(IX,this._editor)),this._participants=[];for(const t of xX.getAll())this._participants.push(this._instantiationService.createInstance(t,this._editor));this._participants.sort(((t,i)=>t.hoverOrdinal-i.hoverOrdinal)),this._computer=new NX(this._editor,this._participants),this._hoverOperation=this._register(new bX(this._editor,this._computer)),this._register(this._hoverOperation.onResult((t=>{if(!this._computer.anchor)return;const i=t.hasLoadingMessage?this._addLoadingMessage(t.value):t.value;this._withResult(new TX(this._computer.anchor,i,t.isComplete))}))),this._register(qa(this._widget.getDomNode(),"keydown",(t=>{t.equals(9)&&this.hide()}))),this._register(Zs.onDidChange((()=>{this._widget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)})))}get widget(){return this._widget}maybeShowAt(t){if(this._widget.isResizing)return!0;const i=[];for(const e of this._participants)if(e.suggestHoverAnchor){const s=e.suggestHoverAnchor(t);s&&i.push(s)}const e=t.target;if(6===e.type&&i.push(new yX(0,e.range,t.event.posx,t.event.posy)),7===e.type){const s=this._editor.getOption(50).typicalHalfwidthCharacterWidth/2;!e.detail.isAfterLines&&"number"==typeof e.detail.horizontalDistanceToText&&e.detail.horizontalDistanceToTexti.priority-t.priority)),this._startShowingOrUpdateHover(i[0],0,0,!1,t))}startShowingAtRange(t,i,e,s){this._startShowingOrUpdateHover(new yX(0,t,void 0,void 0),i,e,s,null)}_startShowingOrUpdateHover(t,i,e,s,n){return this._widget.position&&this._currentResult?this._editor.getOption(60).sticky&&n&&this._widget.isMouseGettingCloser(n.event.posx,n.event.posy)?(t&&this._startHoverOperationIfNecessary(t,i,e,s,!0),!0):t?!(!t||!this._currentResult.anchor.equals(t))||(t.canAdoptVisibleHover(this._currentResult.anchor,this._widget.position)?(this._setCurrentResult(this._currentResult.filter(t)),this._startHoverOperationIfNecessary(t,i,e,s,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(t,i,e,s,!1),!0)):(this._setCurrentResult(null),!1):!!t&&(this._startHoverOperationIfNecessary(t,i,e,s,!1),!0)}_startHoverOperationIfNecessary(t,i,e,s,n){this._computer.anchor&&this._computer.anchor.equals(t)||(this._hoverOperation.cancel(),this._computer.anchor=t,this._computer.shouldFocus=s,this._computer.source=e,this._computer.insistOnKeepingHoverVisible=n,this._hoverOperation.start(i))}_setCurrentResult(t){this._currentResult!==t&&(t&&0===t.messages.length&&(t=null),this._currentResult=t,this._currentResult?this._renderMessages(this._currentResult.anchor,this._currentResult.messages):this._widget.hide())}hide(){this._computer.anchor=null,this._hoverOperation.cancel(),this._setCurrentResult(null)}get isColorPickerVisible(){return this._widget.isColorPickerVisible}get isVisibleFromKeyboard(){return this._widget.isVisibleFromKeyboard}get isVisible(){return this._widget.isVisible}get isFocused(){return this._widget.isFocused}get isResizing(){return this._widget.isResizing}containsNode(t){return!!t&&this._widget.getDomNode().contains(t)}_addLoadingMessage(t){if(this._computer.anchor)for(const i of this._participants)if(i.createLoadingMessage){const e=i.createLoadingMessage(this._computer.anchor);if(e)return t.slice(0).concat([e])}return t}_withResult(t){if(this._widget.position&&this._currentResult&&this._currentResult.isComplete){if(!t.isComplete)return;if(this._computer.insistOnKeepingHoverVisible&&0===t.messages.length)return}this._setCurrentResult(t)}_renderMessages(t,i){const{showAtPosition:e,showAtSecondaryPosition:s,highlightRange:n}=DX.computeHoverRanges(this._editor,t.range,i),o=new Xi,r=o.add(new _X(this._keybindingService)),h=document.createDocumentFragment();let c=null;const a={fragment:h,statusBar:r,setColorPicker:t=>c=t,onContentsChanged:()=>this._widget.onContentsChanged(),setMinimumDimensions:t=>this._widget.setMinimumDimensions(t),hide:()=>this.hide()};for(const t of this._participants){const e=i.filter((i=>i.owner===t));e.length>0&&o.add(t.renderHoverParts(a,e))}const l=i.some((t=>t.isBeforeContent));if(r.hasContent&&h.appendChild(r.hoverElement),h.hasChildNodes()){if(n){const t=this._editor.createDecorationsCollection();t.set([{range:n,options:DX._DECORATION_OPTIONS}]),o.add(Yi((()=>{t.clear()})))}this._widget.showAt(h,new OX(c,e,s,this._editor.getOption(60).above,this._computer.shouldFocus,this._computer.source,l,t.initialMousePosX,t.initialMousePosY,o))}else o.dispose()}static computeHoverRanges(t,i,e){let s=1;if(t.hasModel()){const e=t._getViewModel(),n=e.coordinatesConverter,o=n.convertModelRangeToViewRange(i),r=new As(o.startLineNumber,e.getLineMinColumn(o.startLineNumber));s=n.convertViewPositionToModelPosition(r).column}const n=i.startLineNumber;let o=i.startColumn,r=e[0].range,h=null;for(const t of e)r=Ms.plusRange(r,t.range),t.range.startLineNumber===n&&t.range.endLineNumber===n&&(o=Math.max(Math.min(o,t.range.startColumn),s)),t.forceShowAtRange&&(h=t.range);return{showAtPosition:h?h.getStartPosition():new As(n,i.startColumn),showAtSecondaryPosition:h?h.getStartPosition():new As(n,o),highlightRange:r}}focus(){this._widget.focus()}scrollUp(){this._widget.scrollUp()}scrollDown(){this._widget.scrollDown()}scrollLeft(){this._widget.scrollLeft()}scrollRight(){this._widget.scrollRight()}pageUp(){this._widget.pageUp()}pageDown(){this._widget.pageDown()}goToTop(){this._widget.goToTop()}goToBottom(){this._widget.goToBottom()}};FX._DECORATION_OPTIONS=AL.register({description:"content-hover-highlight",className:"hoverHighlight"}),FX=DX=AX([MX(1,ur),MX(2,oC)],FX);class TX{constructor(t,i,e){this.anchor=t,this.messages=i,this.isComplete=e}filter(t){const i=this.messages.filter((i=>i.isValidForHoverAnchor(t)));return i.length===this.messages.length?this:new RX(this,this.anchor,i,this.isComplete)}}class RX extends TX{constructor(t,i,e,s){super(i,e,s),this.original=t}filter(t){return this.original.filter(t)}}class OX{constructor(t,i,e,s,n,o,r,h,c,a){this.colorPicker=t,this.showAtPosition=i,this.showAtSecondaryPosition=e,this.preferAbove=s,this.stoleFocus=n,this.source=o,this.isBeforeContent=r,this.initialMousePosX=h,this.initialMousePosY=c,this.disposables=a,this.closestMouseDistance=void 0}}let IX=EX=class extends SX{get isColorPickerVisible(){var t;return Boolean(null===(t=this._visibleData)||void 0===t?void 0:t.colorPicker)}get isVisibleFromKeyboard(){var t;return 1===(null===(t=this._visibleData)||void 0===t?void 0:t.source)}get isVisible(){var t;return null!==(t=this._hoverVisibleKey.get())&&void 0!==t&&t}get isFocused(){var t;return null!==(t=this._hoverFocusedKey.get())&&void 0!==t&&t}constructor(t,i,e,s,n){const o=t.getOption(66)+8,r=new el(150,o);super(t,r),this._configurationService=e,this._accessibilityService=s,this._keybindingService=n,this._hover=this._register(new mX),this._minimumSize=r,this._hoverVisibleKey=YC.hoverVisible.bindTo(i),this._hoverFocusedKey=YC.hoverFocused.bindTo(i),Ol(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._register(this._editor.onDidLayoutChange((()=>{this.isVisible&&this._updateMaxDimensions()}))),this._register(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(50)&&this._updateFont()})));const h=this._register(Rl(this._resizableNode.domNode));this._register(h.onDidFocus((()=>{this._hoverFocusedKey.set(!0)}))),this._register(h.onDidBlur((()=>{this._hoverFocusedKey.set(!1)}))),this._setHoverData(void 0),this._editor.addContentWidget(this)}dispose(){var t;super.dispose(),null===(t=this._visibleData)||void 0===t||t.disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return EX.ID}static _applyDimensions(t,i,e){const s="number"==typeof e?`${e}px`:e;t.style.width="number"==typeof i?`${i}px`:i,t.style.height=s}_setContentsDomNodeDimensions(t,i){return EX._applyDimensions(this._hover.contentsDomNode,t,i)}_setContainerDomNodeDimensions(t,i){return EX._applyDimensions(this._hover.containerDomNode,t,i)}_setHoverWidgetDimensions(t,i){this._setContentsDomNodeDimensions(t,i),this._setContainerDomNodeDimensions(t,i),this._layoutContentWidget()}static _applyMaxDimensions(t,i,e){const s="number"==typeof e?`${e}px`:e;t.style.maxWidth="number"==typeof i?`${i}px`:i,t.style.maxHeight=s}_setHoverWidgetMaxDimensions(t,i){EX._applyMaxDimensions(this._hover.contentsDomNode,t,i),EX._applyMaxDimensions(this._hover.containerDomNode,t,i),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth","number"==typeof t?`${t}px`:t),this._layoutContentWidget()}_hasHorizontalScrollbar(){const t=this._hover.scrollbar.getScrollDimensions();return t.scrollWidth>t.width}_adjustContentsBottomPadding(){const t=this._hover.contentsDomNode,i=`${this._hover.scrollbar.options.horizontalScrollbarSize}px`;t.style.paddingBottom!==i&&(t.style.paddingBottom=i)}_setAdjustedHoverWidgetDimensions(t){this._setHoverWidgetMaxDimensions("none","none");const i=t.width,e=t.height;this._setHoverWidgetDimensions(i,e),this._hasHorizontalScrollbar()&&(this._adjustContentsBottomPadding(),this._setContentsDomNodeDimensions(i,e-10))}_updateResizableNodeMaxDimensions(){var t,i;const e=null!==(t=this._findMaximumRenderingWidth())&&void 0!==t?t:1/0,s=null!==(i=this._findMaximumRenderingHeight())&&void 0!==i?i:1/0;this._resizableNode.maxSize=new el(e,s),this._setHoverWidgetMaxDimensions(e,s)}_resize(t){var i,e;EX._lastDimensions=new el(t.width,t.height),this._setAdjustedHoverWidgetDimensions(t),this._resizableNode.layout(t.height,t.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),null===(e=null===(i=this._visibleData)||void 0===i?void 0:i.colorPicker)||void 0===e||e.layout()}_findAvailableSpaceVertically(){var t;const i=null===(t=this._visibleData)||void 0===t?void 0:t.showAtPosition;if(i)return 1===this._positionPreference?this._availableVerticalSpaceAbove(i):this._availableVerticalSpaceBelow(i)}_findMaximumRenderingHeight(){const t=this._findAvailableSpaceVertically();if(!t)return;let i=6;return Array.from(this._hover.contentsDomNode.children).forEach((t=>{i+=t.clientHeight})),this._hasHorizontalScrollbar()&&(i+=10),Math.min(t,i)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");const t=Array.from(this._hover.contentsDomNode.children).some((t=>t.scrollWidth>t.clientWidth));return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),t}_findMaximumRenderingWidth(){if(this._editor&&this._editor.hasModel())return this._isHoverTextOverflowing()||this._hover.containerDomNode.clientWidth<(void 0===this._contentWidth?0:this._contentWidth-2)?tl(this._hover.containerDomNode.ownerDocument.body).width-14:this._hover.containerDomNode.clientWidth+2}isMouseGettingCloser(t,i){if(!this._visibleData)return!1;if(void 0===this._visibleData.initialMousePosX||void 0===this._visibleData.initialMousePosY)return this._visibleData.initialMousePosX=t,this._visibleData.initialMousePosY=i,!1;const e=nl(this.getDomNode());void 0===this._visibleData.closestMouseDistance&&(this._visibleData.closestMouseDistance=BX(this._visibleData.initialMousePosX,this._visibleData.initialMousePosY,e.left,e.top,e.width,e.height));const s=BX(t,i,e.left,e.top,e.width,e.height);return!(s>this._visibleData.closestMouseDistance+4||(this._visibleData.closestMouseDistance=Math.min(this._visibleData.closestMouseDistance,s),0))}_setHoverData(t){var i;null===(i=this._visibleData)||void 0===i||i.disposables.dispose(),this._visibleData=t,this._hoverVisibleKey.set(!!t),this._hover.containerDomNode.classList.toggle("hidden",!t)}_updateFont(){const{fontSize:t,lineHeight:i}=this._editor.getOption(50),e=this._hover.contentsDomNode;e.style.fontSize=`${t}px`,e.style.lineHeight=""+i/t,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((t=>this._editor.applyFontInfo(t)))}_updateContent(t){const i=this._hover.contentsDomNode;i.style.paddingBottom="",i.textContent="",i.appendChild(t)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){const t=Math.max(this._editor.getLayoutInfo().height/4,250,EX._lastDimensions.height),i=Math.max(.66*this._editor.getLayoutInfo().width,500,EX._lastDimensions.width);this._setHoverWidgetMaxDimensions(i,t)}_render(t,i){this._setHoverData(i),this._updateFont(),this._updateContent(t),this._updateMaxDimensions(),this.onContentsChanged(),this._editor.render()}getPosition(){var t;return this._visibleData?{position:this._visibleData.showAtPosition,secondaryPosition:this._visibleData.showAtSecondaryPosition,positionAffinity:this._visibleData.isBeforeContent?3:void 0,preference:[null!==(t=this._positionPreference)&&void 0!==t?t:1]}:null}showAt(t,i){var e,s,n,o;if(!this._editor||!this._editor.hasModel())return;this._render(t,i);const r=cl(this._hover.containerDomNode);this._positionPreference=null!==(e=this._findPositionPreference(r,i.showAtPosition))&&void 0!==e?e:1,this.onContentsChanged(),i.stoleFocus&&this._hover.containerDomNode.focus(),null===(s=i.colorPicker)||void 0===s||s.layout();const h=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&(c=!0===this._configurationService.getValue("accessibility.verbosity.hover")&&this._accessibilityService.isScreenReaderOptimized(),a=null!==(o=null===(n=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))||void 0===n?void 0:n.getAriaLabel())&&void 0!==o?o:"",c&&a?ot(0,"Inspect this in the accessible view with {0}.",a):c?ot(0,"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding."):"");var c,a;h&&(this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+h)}hide(){if(!this._visibleData)return;const t=this._visibleData.stoleFocus||this._hoverFocusedKey.get();this._setHoverData(void 0),this._resizableNode.maxSize=new el(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),t&&this._editor.focus()}_removeConstraintsRenderNormally(){const t=this._editor.getLayoutInfo();this._resizableNode.layout(t.height,t.width),this._setHoverWidgetDimensions("auto","auto")}_adjustHoverHeightForScrollbar(t){var i;const e=this._hover.containerDomNode,s=this._hover.contentsDomNode,n=null!==(i=this._findMaximumRenderingHeight())&&void 0!==i?i:1/0;this._setContainerDomNodeDimensions(ol(e),Math.min(n,t)),this._setContentsDomNodeDimensions(ol(s),Math.min(n,t-10))}setMinimumDimensions(t){this._minimumSize=new el(Math.max(this._minimumSize.width,t.width),Math.max(this._minimumSize.height,t.height)),this._updateMinimumWidth()}_updateMinimumWidth(){const t=void 0===this._contentWidth?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new el(t,this._minimumSize.height)}onContentsChanged(){var t;this._removeConstraintsRenderNormally();const i=this._hover.containerDomNode;let e=cl(i),s=ol(i);if(this._resizableNode.layout(e,s),this._setHoverWidgetDimensions(s,e),e=cl(i),s=ol(i),this._contentWidth=s,this._updateMinimumWidth(),this._resizableNode.layout(e,s),this._hasHorizontalScrollbar()&&(this._adjustContentsBottomPadding(),this._adjustHoverHeightForScrollbar(e)),null===(t=this._visibleData)||void 0===t?void 0:t.showAtPosition){const t=cl(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(t,this._visibleData.showAtPosition)}this._layoutContentWidget()}focus(){this._hover.containerDomNode.focus()}scrollUp(){const t=this._hover.scrollbar.getScrollPosition().scrollTop,i=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:t-i.lineHeight})}scrollDown(){const t=this._hover.scrollbar.getScrollPosition().scrollTop,i=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:t+i.lineHeight})}scrollLeft(){const t=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:t-30})}scrollRight(){const t=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:t+30})}pageUp(){const t=this._hover.scrollbar.getScrollPosition().scrollTop,i=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:t-i})}pageDown(){const t=this._hover.scrollbar.getScrollPosition().scrollTop,i=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:t+i})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}};IX.ID="editor.contrib.resizableContentHoverWidget",IX._lastDimensions=new el(0,0),IX=EX=AX([MX(1,ah),MX(2,pd),MX(3,Zm),MX(4,oC)],IX);let _X=class extends te{get hasContent(){return this._hasContent}constructor(t){super(),this._keybindingService=t,this._hasContent=!1,this.hoverElement=LX("div.hover-row.status-bar"),this.actionsElement=Ol(this.hoverElement,LX("div.actions"))}addAction(t){const i=this._keybindingService.lookupKeybinding(t.commandId),e=i?i.getLabel():null;return this._hasContent=!0,this._register(wX.render(this.actionsElement,t,e))}append(t){const i=Ol(this.actionsElement,t);return this._hasContent=!0,i}};_X=AX([MX(0,oC)],_X);class NX{get anchor(){return this._anchor}set anchor(t){this._anchor=t}get shouldFocus(){return this._shouldFocus}set shouldFocus(t){this._shouldFocus=t}get source(){return this._source}set source(t){this._source=t}get insistOnKeepingHoverVisible(){return this._insistOnKeepingHoverVisible}set insistOnKeepingHoverVisible(t){this._insistOnKeepingHoverVisible=t}constructor(t,i){this._editor=t,this._participants=i,this._anchor=null,this._shouldFocus=!1,this._source=0,this._insistOnKeepingHoverVisible=!1}static _getLineDecorations(t,i){if(1!==i.type&&!i.supportsMarkerHover)return[];const e=t.getModel(),s=i.range.startLineNumber;if(s>e.getLineCount())return[];const n=e.getLineMaxColumn(s);return t.getLineDecorations(s).filter((t=>{if(t.options.isWholeLine)return!0;const e=t.range.startLineNumber===s?t.range.startColumn:1,o=t.range.endLineNumber===s?t.range.endColumn:n;if(t.options.showIfCollapsed){if(e>i.range.startColumn+1||i.range.endColumn-1>o)return!1}else if(e>i.range.startColumn||i.range.endColumn>o)return!1;return!0}))}computeAsync(t){const i=this._anchor;if(!this._editor.hasModel()||!i)return kc.EMPTY;const e=NX._getLineDecorations(this._editor,i);return kc.merge(this._participants.map((s=>s.computeAsync?s.computeAsync(i,e,t):kc.EMPTY)))}computeSync(){if(!this._editor.hasModel()||!this._anchor)return[];const t=NX._getLineDecorations(this._editor,this._anchor);let i=[];for(const e of this._participants)i=i.concat(e.computeSync(this._anchor,t));return m(i)}}function BX(t,i,e,s,n,o){const r=s+o/2,h=Math.max(Math.abs(t-(e+n/2))-n/2,0),c=Math.max(Math.abs(i-r)-o/2,0);return Math.sqrt(h*h+c*c)}const PX=$l;class $X extends te{constructor(t,i,e){super(),this._renderDisposeables=this._register(new Xi),this._editor=t,this._isVisible=!1,this._messages=[],this._hover=this._register(new mX),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._markdownRenderer=this._register(new lQ({editor:this._editor},i,e)),this._computer=new WX(this._editor),this._hoverOperation=this._register(new bX(this._editor,this._computer)),this._register(this._hoverOperation.onResult((t=>{this._withResult(t.value)}))),this._register(this._editor.onDidChangeModelDecorations((()=>this._onModelDecorationsChanged()))),this._register(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(50)&&this._updateFont()}))),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return $X.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((t=>this._editor.applyFontInfo(t)))}_onModelDecorationsChanged(){this._isVisible&&(this._hoverOperation.cancel(),this._hoverOperation.start(0))}startShowingAt(t){this._computer.lineNumber!==t&&(this._hoverOperation.cancel(),this.hide(),this._computer.lineNumber=t,this._hoverOperation.start(0))}hide(){this._computer.lineNumber=-1,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible))}_withResult(t){this._messages=t,this._messages.length>0?this._renderMessages(this._computer.lineNumber,this._messages):this.hide()}_renderMessages(t,i){this._renderDisposeables.clear();const e=document.createDocumentFragment();for(const t of i){const i=PX("div.hover-row.markdown-hover"),s=Ol(i,PX("div.hover-contents")),n=this._renderDisposeables.add(this._markdownRenderer.render(t.value));s.appendChild(n.element),e.appendChild(i)}this._updateContents(e),this._showAt(t)}_updateContents(t){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(t),this._updateFont()}_showAt(t){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible));const i=this._editor.getLayoutInfo(),e=this._editor.getTopForLineNumber(t),s=this._editor.getScrollTop(),n=this._editor.getOption(66),o=e-s-(this._hover.containerDomNode.clientHeight-n)/2;this._hover.containerDomNode.style.left=`${i.glyphMarginLeft+i.glyphMarginWidth}px`,this._hover.containerDomNode.style.top=`${Math.max(Math.round(o),0)}px`}}$X.ID="editor.contrib.modesGlyphHoverWidget";class WX{get lineNumber(){return this._lineNumber}set lineNumber(t){this._lineNumber=t}constructor(t){this._editor=t,this._lineNumber=-1}computeSync(){const t=t=>({value:t}),i=this._editor.getLineDecorations(this._lineNumber),e=[];if(!i)return e;for(const s of i){if(!s.options.glyphMarginClassName)continue;const i=s.options.glyphMarginHoverMessage;i&&!B_(i)&&e.push(...A(i).map(t))}return e}}class jX{constructor(t,i,e){this.provider=t,this.hover=i,this.ordinal=e}}function zX(t,i,e,s){const n=t.ordered(i).map(((t,n)=>async function(t,i,e,s,n){try{const o=await Promise.resolve(t.provideHover(e,s,n));if(o&&function(t){return void 0!==t.range&&void 0!==t.contents&&t.contents&&t.contents.length>0}(o))return new jX(t,o,i)}catch(t){Pi(t)}}(t,n,i,e,s)));return kc.fromPromises(n).coalesce()}ru("_executeHoverProvider",((t,i,e)=>function(t,i,e){return zX(t,i,e,ke.None).map((t=>t.hover)).toPromise()}(t.get(xg).hoverProvider,i,e)));var HX=function(t,i){return function(e,s){i(e,s,t)}};const VX=$l;class UX{constructor(t,i,e,s,n){this.owner=t,this.range=i,this.contents=e,this.isBeforeContent=s,this.ordinal=n}isValidForHoverAnchor(t){return 1===t.type&&this.range.startColumn<=t.range.startColumn&&this.range.endColumn>=t.range.endColumn}}let qX=class{constructor(t,i,e,s,n){this._editor=t,this._languageService=i,this._openerService=e,this._configurationService=s,this._languageFeaturesService=n,this.hoverOrdinal=3}createLoadingMessage(t){return new UX(this,t.range,[(new N_).appendText(ot(0,"Loading..."))],!1,2e3)}computeSync(t,i){if(!this._editor.hasModel()||1!==t.type)return[];const e=this._editor.getModel(),s=t.range.startLineNumber,n=e.getLineMaxColumn(s),o=[];let r=1e3;const h=e.getLineLength(s),c=e.getLanguageIdAtPosition(t.range.startLineNumber,t.range.startColumn),a=this._editor.getOption(116),l=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:c});let u=!1;a>=0&&h>a&&t.range.startColumn>=a&&(u=!0,o.push(new UX(this,t.range,[{value:ot(0,"Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.")}],!1,r++))),!u&&"number"==typeof l&&h>=l&&o.push(new UX(this,t.range,[{value:ot(0,"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.")}],!1,r++));let d=!1;for(const e of i){const i=e.range.startLineNumber===s?e.range.startColumn:1,h=e.range.endLineNumber===s?e.range.endColumn:n,c=e.options.hoverMessage;if(!c||B_(c))continue;e.options.beforeContentClassName&&(d=!0);const a=new Ms(t.range.startLineNumber,i,t.range.startLineNumber,h);o.push(new UX(this,a,A(c),d,r++))}return o}computeAsync(t,i,e){if(!this._editor.hasModel()||1!==t.type)return kc.EMPTY;const s=this._editor.getModel();if(!this._languageFeaturesService.hoverProvider.has(s))return kc.EMPTY;const n=new As(t.range.startLineNumber,t.range.startColumn);return zX(this._languageFeaturesService.hoverProvider,s,n,e).filter((t=>!B_(t.hover.contents))).map((i=>{const e=i.hover.range?Ms.lift(i.hover.range):t.range;return new UX(this,e,i.hover.contents,!1,i.ordinal)}))}renderHoverParts(t,i){return KX(t,i,this._editor,this._languageService,this._openerService)}};function KX(t,i,e,s,n){i.sort(((t,i)=>t.ordinal-i.ordinal));const o=new Xi;for(const r of i)for(const i of r.contents){if(B_(i))continue;const r=VX("div.hover-row.markdown-hover"),h=Ol(r,VX("div.hover-contents")),c=o.add(new lQ({editor:e},s,n));o.add(c.onDidRenderAsync((()=>{h.className="hover-contents code-hover-contents",t.onContentsChanged()})));const a=o.add(c.render(i));h.appendChild(a.element),t.fragment.appendChild(r)}return o}qX=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([HX(1,yd),HX(2,dP),HX(3,pd),HX(4,xg)],qX);var GX=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},ZX=function(t,i){return function(e,s){i(e,s,t)}};class QX{constructor(t,i,e){this.marker=t,this.index=i,this.total=e}}let JX=class{constructor(t,i,e){this._markerService=i,this._configService=e,this._onDidChange=new de,this.onDidChange=this._onDidChange.event,this._dispoables=new Xi,this._markers=[],this._nextIdx=-1,ms.isUri(t)?this._resourceFilter=i=>i.toString()===t.toString():t&&(this._resourceFilter=t);const s=this._configService.getValue("problems.sortOrder"),n=(t,i)=>{let e=so(t.resource.toString(),i.resource.toString());return 0===e&&(e="position"===s?Ms.compareRangesUsingStarts(t,i)||bP.compare(t.severity,i.severity):bP.compare(t.severity,i.severity)||Ms.compareRangesUsingStarts(t,i)),e},o=()=>{this._markers=this._markerService.read({resource:ms.isUri(t)?t:void 0,severities:bP.Error|bP.Warning|bP.Info}),"function"==typeof t&&(this._markers=this._markers.filter((t=>this._resourceFilter(t.resource)))),this._markers.sort(n)};o(),this._dispoables.add(i.onMarkerChanged((t=>{this._resourceFilter&&!t.some((t=>this._resourceFilter(t)))||(o(),this._nextIdx=-1,this._onDidChange.fire())})))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(t){return!this._resourceFilter&&!t||!(!this._resourceFilter||!t)&&this._resourceFilter(t)}get selected(){const t=this._markers[this._nextIdx];return t&&new QX(t,this._nextIdx+1,this._markers.length)}_initIdx(t,i,e){let s=!1,n=this._markers.findIndex((i=>i.resource.toString()===t.uri.toString()));n<0&&(n=u(this._markers,{resource:t.uri},((t,i)=>so(t.resource.toString(),i.resource.toString()))),n<0&&(n=~n));for(let e=n;ei.resource.toString()===t.toString()));if(!(e<0))for(;e{t.preventDefault();const i=this._relatedDiagnostics.get(t.target);i&&e(i)}))),this._scrollable=new Lk(o,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),t.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll((t=>{o.style.left=`-${t.scrollLeft}px`,o.style.top=`-${t.scrollTop}px`}))),this._disposables.add(this._scrollable)}dispose(){Qi(this._disposables)}update(t){const{source:i,message:e,relatedInformation:s,code:n}=t;let o=((null==i?void 0:i.length)||0)+2;n&&(o+="string"==typeof n?n.length:n.value.length);const r=Xn(e);this._lines=r.length,this._longestLineLength=0;for(const t of r)this._longestLineLength=Math.max(t.length+o,this._longestLineLength);za(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(t)),this._editor.applyFontInfo(this._messageBlock);let h=this._messageBlock;for(const t of r)h=document.createElement("div"),h.innerText=t,""===t&&(h.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(h);if(i||n){const t=document.createElement("span");if(t.classList.add("details"),h.appendChild(t),i){const e=document.createElement("span");e.innerText=i,e.classList.add("source"),t.appendChild(e)}if(n)if("string"==typeof n){const i=document.createElement("span");i.innerText=`(${n})`,i.classList.add("code"),t.appendChild(i)}else this._codeLink=$l("a.code-link"),this._codeLink.setAttribute("href",`${n.target.toString()}`),this._codeLink.onclick=t=>{this._openerService.open(n.target,{allowCommands:!0}),t.preventDefault(),t.stopPropagation()},Ol(this._codeLink,$l("span")).innerText=n.value,t.appendChild(this._codeLink)}if(za(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),b(s)){const t=this._relatedBlock.appendChild(document.createElement("div"));t.style.paddingTop=`${Math.floor(.66*this._editor.getOption(66))}px`,this._lines+=1;for(const i of s){const e=document.createElement("div"),s=document.createElement("a");s.classList.add("filename"),s.innerText=`${this._labelService.getUriBasenameLabel(i.resource)}(${i.startLineNumber}, ${i.startColumn}): `,s.title=this._labelService.getUriLabel(i.resource),this._relatedDiagnostics.set(s,i);const n=document.createElement("span");n.innerText=i.message,e.appendChild(s),e.appendChild(n),this._lines+=1,t.appendChild(e)}}const c=this._editor.getOption(50),a=Math.ceil(c.typicalFullwidthCharacterWidth*this._longestLineLength*.75);this._scrollable.setScrollDimensions({scrollWidth:a,scrollHeight:c.lineHeight*this._lines})}layout(t,i){this._scrollable.getDomNode().style.height=`${t}px`,this._scrollable.getDomNode().style.width=`${i}px`,this._scrollable.setScrollDimensions({width:i,height:t})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(t){let i="";switch(t.severity){case bP.Error:i=ot(0,"Error");break;case bP.Warning:i=ot(0,"Warning");break;case bP.Info:i=ot(0,"Info");break;case bP.Hint:i=ot(0,"Hint")}let e=ot(0,"{0} at {1}. ",i,t.startLineNumber+":"+t.startColumn);const s=this._editor.getModel();return s&&t.startLineNumber<=s.getLineCount()&&t.startLineNumber>=1&&(e=`${s.getLineContent(t.startLineNumber)}, ${e}`),e}}let n0=i0=class extends nY{constructor(t,i,e,s,n,o,r){super(t,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},n),this._themeService=i,this._openerService=e,this._menuService=s,this._contextKeyService=o,this._labelService=r,this._callOnDispose=new Xi,this._onDidSelectRelatedInformation=new de,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=bP.Warning,this._backgroundColor=lg.white,this._applyTheme(i.getColorTheme()),this._callOnDispose.add(i.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(t){this._backgroundColor=t.getColor(p0);let i=c0,e=a0;this._severity===bP.Warning?(i=l0,e=u0):this._severity===bP.Info&&(i=d0,e=f0);const s=t.getColor(i),n=t.getColor(e);this.style({arrowColor:s,frameColor:s,headerBackgroundColor:n,primaryHeadingColor:t.getColor(rY),secondaryHeadingColor:t.getColor(hY)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(t){super._fillHead(t),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun((()=>this.editor.focus())));const i=[],e=this._menuService.createMenu(i0.TitleMenu,this._contextKeyService);UB(e,void 0,i),this._actionbarWidget.push(i,{label:!1,icon:!0,index:0}),e.dispose()}_fillTitleIcon(t){this._icon=Ol(t,$l(""))}_fillBody(t){this._parentContainer=t,t.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),t.appendChild(this._container),this._message=new s0(this._container,this.editor,(t=>this._onDidSelectRelatedInformation.fire(t)),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw new Error("call showAtMarker")}showAtMarker(t,i,e){this._container.classList.remove("stale"),this._message.update(t),this._severity=t.severity,this._applyTheme(this._themeService.getColorTheme());const s=Ms.lift(t),n=this.editor.getPosition(),o=n&&s.containsPosition(n)?n:s.getStartPosition();super.show(o,this.computeRequiredHeight());const r=this.editor.getModel();if(r){const t=ot(0,e>1?"{0} of {1} problems":"{0} of {1} problem",i,e);this.setTitle(bA(r.uri),t)}this._icon.className=`codicon ${t0.className(bP.toSeverity(this._severity))}`,this.editor.revealPositionNearTop(o,0),this.editor.focus()}updateMarker(t){this._container.classList.remove("stale"),this._message.update(t)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(t,i){super._doLayoutBody(t,i),this._heightInPixel=t,this._message.layout(t,i),this._container.style.height=`${t}px`}_onWidth(t){this._message.layout(this._heightInPixel,t)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};n0.TitleMenu=new Rh("gotoErrorTitleMenu"),n0=i0=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([e0(1,Xk),e0(2,dP),e0(3,Oh),e0(4,ur),e0(5,ah),e0(6,$O)],n0);const o0=uy(ev,sv),r0=uy(nv,ov),h0=uy(rv,hv),c0=dw("editorMarkerNavigationError.background",{dark:o0,light:o0,hcDark:ww,hcLight:ww},ot(0,"Editor marker navigation widget error color.")),a0=dw("editorMarkerNavigationError.headerBackground",{dark:ly(c0,.1),light:ly(c0,.1),hcDark:null,hcLight:null},ot(0,"Editor marker navigation widget error heading background.")),l0=dw("editorMarkerNavigationWarning.background",{dark:r0,light:r0,hcDark:ww,hcLight:ww},ot(0,"Editor marker navigation widget warning color.")),u0=dw("editorMarkerNavigationWarning.headerBackground",{dark:ly(l0,.1),light:ly(l0,.1),hcDark:"#0C141F",hcLight:ly(l0,.2)},ot(0,"Editor marker navigation widget warning heading background.")),d0=dw("editorMarkerNavigationInfo.background",{dark:h0,light:h0,hcDark:ww,hcLight:ww},ot(0,"Editor marker navigation widget info color.")),f0=dw("editorMarkerNavigationInfo.headerBackground",{dark:ly(d0,.1),light:ly(d0,.1),hcDark:null,hcLight:null},ot(0,"Editor marker navigation widget info heading background.")),p0=dw("editorMarkerNavigation.background",{dark:av,light:av,hcDark:av,hcLight:av},ot(0,"Editor marker navigation widget background."));var g0,m0=function(t,i){return function(e,s){i(e,s,t)}};let w0=g0=class{static get(t){return t.getContribution(g0.ID)}constructor(t,i,e,s,n){this._markerNavigationService=i,this._contextKeyService=e,this._editorService=s,this._instantiationService=n,this._sessionDispoables=new Xi,this._editor=t,this._widgetVisible=k0.bindTo(this._contextKeyService)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(t){if(this._model&&this._model.matches(t))return this._model;let i=!1;return this._model&&(i=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(t),i&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(n0,this._editor),this._widget.onDidClose((()=>this.close()),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition((t=>{var i,e,s;(null===(i=this._model)||void 0===i?void 0:i.selected)&&Ms.containsPosition(null===(e=this._model)||void 0===e?void 0:e.selected.marker,t.position)||null===(s=this._model)||void 0===s||s.resetIndex()}))),this._sessionDispoables.add(this._model.onDidChange((()=>{if(!this._widget||!this._widget.position||!this._model)return;const t=this._model.find(this._editor.getModel().uri,this._widget.position);t?this._widget.updateMarker(t.marker):this._widget.showStale()}))),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation((t=>{this._editorService.openCodeEditor({resource:t.resource,options:{pinned:!0,revealIfOpened:!0,selection:Ms.lift(t).collapseToStart()}},this._editor),this.close(!1)}))),this._sessionDispoables.add(this._editor.onDidChangeModel((()=>this._cleanUp()))),this._model}close(t=!0){this._cleanUp(),t&&this._editor.focus()}showAtMarker(t){if(this._editor.hasModel()){const i=this._getOrCreateModel(this._editor.getModel().uri);i.resetIndex(),i.move(!0,this._editor.getModel(),new As(t.startLineNumber,t.startColumn)),i.selected&&this._widget.showAtMarker(i.selected.marker,i.selected.index,i.selected.total)}}async nagivate(t,i){var e,s;if(this._editor.hasModel()){const n=this._getOrCreateModel(i?void 0:this._editor.getModel().uri);if(n.move(t,this._editor.getModel(),this._editor.getPosition()),!n.selected)return;if(n.selected.marker.resource.toString()!==this._editor.getModel().uri.toString()){this._cleanUp();const o=await this._editorService.openCodeEditor({resource:n.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:n.selected.marker}},this._editor);o&&(null===(e=g0.get(o))||void 0===e||e.close(),null===(s=g0.get(o))||void 0===s||s.nagivate(t,i))}else this._widget.showAtMarker(n.selected.marker,n.selected.index,n.selected.total)}}};w0.ID="editor.contrib.markerController",w0=g0=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([m0(1,YX),m0(2,ah),m0(3,fr),m0(4,ur)],w0);class v0 extends su{constructor(t,i,e){super(e),this._next=t,this._multiFile=i}async run(t,i){var e;i.hasModel()&&(null===(e=w0.get(i))||void 0===e||e.nagivate(this._next,this._multiFile))}}class b0 extends v0{constructor(){super(!0,!1,{id:b0.ID,label:b0.LABEL,alias:"Go to Next Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:578,weight:100},menuOpts:{menuId:n0.TitleMenu,title:b0.LABEL,icon:Hz("marker-navigation-next",Os.arrowDown,ot(0,"Icon for goto next marker.")),group:"navigation",order:1}})}}b0.ID="editor.action.marker.next",b0.LABEL=ot(0,"Go to Next Problem (Error, Warning, Info)");class y0 extends v0{constructor(){super(!1,!1,{id:y0.ID,label:y0.LABEL,alias:"Go to Previous Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:1602,weight:100},menuOpts:{menuId:n0.TitleMenu,title:y0.LABEL,icon:Hz("marker-navigation-previous",Os.arrowUp,ot(0,"Icon for goto previous marker.")),group:"navigation",order:2}})}}y0.ID="editor.action.marker.prev",y0.LABEL=ot(0,"Go to Previous Problem (Error, Warning, Info)"),lu(w0.ID,w0,4),cu(b0),cu(y0),cu(class extends v0{constructor(){super(!0,!0,{id:"editor.action.marker.nextInFiles",label:ot(0,"Go to Next Problem in Files (Error, Warning, Info)"),alias:"Go to Next Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:66,weight:100},menuOpts:{menuId:Rh.MenubarGoMenu,title:ot(0,"Next &&Problem"),group:"6_problem_nav",order:1}})}}),cu(class extends v0{constructor(){super(!1,!0,{id:"editor.action.marker.prevInFiles",label:ot(0,"Go to Previous Problem in Files (Error, Warning, Info)"),alias:"Go to Previous Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:1090,weight:100},menuOpts:{menuId:Rh.MenubarGoMenu,title:ot(0,"Previous &&Problem"),group:"6_problem_nav",order:2}})}});const k0=new ch("markersNavigationVisible",!1);hu(new(eu.bindToContribution(w0.get))({id:"closeMarkersNavigation",precondition:k0,handler:t=>t.close(),kbOpts:{weight:150,kbExpr:YC.focus,primary:9,secondary:[1033]}}));var x0=function(t,i){return function(e,s){i(e,s,t)}};const C0=$l;class S0{constructor(t,i,e){this.owner=t,this.range=i,this.marker=e}isValidForHoverAnchor(t){return 1===t.type&&this.range.startColumn<=t.range.startColumn&&this.range.endColumn>=t.range.endColumn}}const D0={type:1,filter:{include:NZ.QuickFix},triggerAction:BZ.QuickFixHover};let E0=class{constructor(t,i,e,s){this._editor=t,this._markerDecorationsService=i,this._openerService=e,this._languageFeaturesService=s,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(t,i){if(!this._editor.hasModel()||1!==t.type&&!t.supportsMarkerHover)return[];const e=this._editor.getModel(),s=t.range.startLineNumber,n=e.getLineMaxColumn(s),o=[];for(const r of i){const i=r.range.startLineNumber===s?r.range.startColumn:1,h=r.range.endLineNumber===s?r.range.endColumn:n,c=this._markerDecorationsService.getMarker(e.uri,r);if(!c)continue;const a=new Ms(t.range.startLineNumber,i,t.range.startLineNumber,h);o.push(new S0(this,a,c))}return o}renderHoverParts(t,i){if(!i.length)return te.None;const e=new Xi;i.forEach((i=>t.fragment.appendChild(this.renderMarkerHover(i,e))));const s=1===i.length?i[0]:i.sort(((t,i)=>bP.compare(t.marker.severity,i.marker.severity)))[0];return this.renderMarkerStatusbar(t,s,e),e}renderMarkerHover(t,i){const e=C0("div.hover-row"),s=Ol(e,C0("div.marker.hover-contents")),{source:n,message:o,code:r,relatedInformation:h}=t.marker;this._editor.applyFontInfo(s);const c=Ol(s,C0("span"));if(c.style.whiteSpace="pre-wrap",c.innerText=o,n||r)if(r&&"string"!=typeof r){const t=C0("span");n&&(Ol(t,C0("span")).innerText=n);const e=Ol(t,C0("a.code-link"));e.setAttribute("href",r.target.toString()),i.add(Va(e,"click",(t=>{this._openerService.open(r.target,{allowCommands:!0}),t.preventDefault(),t.stopPropagation()}))),Ol(e,C0("span")).innerText=r.value;const o=Ol(s,t);o.style.opacity="0.6",o.style.paddingLeft="6px"}else{const t=Ol(s,C0("span"));t.style.opacity="0.6",t.style.paddingLeft="6px",t.innerText=n&&r?`${n}(${r})`:n||`(${r})`}if(b(h))for(const{message:t,resource:e,startLineNumber:n,startColumn:o}of h){const r=Ol(s,C0("div"));r.style.marginTop="8px";const h=Ol(r,C0("a"));h.innerText=`${bA(e)}(${n}, ${o}): `,h.style.cursor="pointer",i.add(Va(h,"click",(t=>{t.stopPropagation(),t.preventDefault(),this._openerService&&this._openerService.open(e,{fromUserGesture:!0,editorOptions:{selection:{startLineNumber:n,startColumn:o}}}).catch(Bi)})));const c=Ol(r,C0("span"));c.innerText=t,this._editor.applyFontInfo(c)}return e}renderMarkerStatusbar(t,i,e){if(i.marker.severity!==bP.Error&&i.marker.severity!==bP.Warning&&i.marker.severity!==bP.Info||t.statusBar.addAction({label:ot(0,"View Problem"),commandId:b0.ID,run:()=>{var e;t.hide(),null===(e=w0.get(this._editor))||void 0===e||e.showAtMarker(i.marker),this._editor.focus()}}),!this._editor.getOption(90)){const s=t.statusBar.append(C0("div"));this.recentMarkerCodeActionsInfo&&(yP.makeKey(this.recentMarkerCodeActionsInfo.marker)===yP.makeKey(i.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(s.textContent=ot(0,"No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);const n=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?te.None:e.add(lc((()=>s.textContent=ot(0,"Checking for quick fixes...")),200));s.textContent||(s.textContent=String.fromCharCode(160));const o=this.getCodeActions(i.marker);e.add(Yi((()=>o.cancel()))),o.then((o=>{if(n.dispose(),this.recentMarkerCodeActionsInfo={marker:i.marker,hasCodeActions:o.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions)return o.dispose(),void(s.textContent=ot(0,"No quick fixes available"));s.style.display="none";let r=!1;e.add(Yi((()=>{r||o.dispose()}))),t.statusBar.addAction({label:ot(0,"Quick Fix..."),commandId:zZ,run:i=>{r=!0;const e=WQ.get(this._editor),s=nl(i);t.hide(),null==e||e.showCodeActions(D0,o,{x:s.left,y:s.top,width:s.width,height:s.height})}})}),Bi)}}getCodeActions(t){return nc((i=>QZ(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new Ms(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn),D0,jO.None,i)))}};E0=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([x0(1,jm),x0(2,dP),x0(3,xg)],E0);const A0="editor.action.inlineSuggest.commit",M0="editor.action.inlineSuggest.showPrevious",L0="editor.action.inlineSuggest.showNext";var F0,T0=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},R0=function(t,i){return function(e,s){i(e,s,t)}};let O0=class extends te{constructor(t,i,e){super(),this.editor=t,this.model=i,this.instantiationService=e,this.alwaysShowToolbar=KV(this.editor.onDidChangeConfiguration,(()=>"always"===this.editor.getOption(62).showToolbar)),this.sessionPosition=void 0,this.position=_V(this,(t=>{var i,e,s;const n=null===(i=this.model.read(t))||void 0===i?void 0:i.ghostText.read(t);if(!this.alwaysShowToolbar.read(t)||!n||0===n.parts.length)return this.sessionPosition=void 0,null;const o=n.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==n.lineNumber&&(this.sessionPosition=void 0);const r=new As(n.lineNumber,Math.min(o,null!==(s=null===(e=this.sessionPosition)||void 0===e?void 0:e.column)&&void 0!==s?s:Number.MAX_SAFE_INTEGER));return this.sessionPosition=r,r})),this._register(HV(((i,e)=>{const s=this.model.read(i);if(!s||!this.alwaysShowToolbar.read(i))return;const n=e.add(this.instantiationService.createInstance(N0,this.editor,!0,this.position,s.selectedInlineCompletionIndex,s.inlineCompletionsCount,s.selectedInlineCompletion.map((t=>{var i;return null!==(i=null==t?void 0:t.inlineCompletion.source.inlineCompletions.commands)&&void 0!==i?i:[]}))));t.addContentWidget(n),e.add(Yi((()=>t.removeContentWidget(n)))),e.add(WV((t=>{this.position.read(t)&&s.lastTriggerKind.read(t)!==$s.Explicit&&s.triggerExplicitly()})))})))}};O0=T0([R0(2,ur)],O0);const I0=Hz("inline-suggestion-hints-next",Os.chevronRight,ot(0,"Icon for show next parameter hint.")),_0=Hz("inline-suggestion-hints-previous",Os.chevronLeft,ot(0,"Icon for show previous parameter hint."));let N0=F0=class extends te{static get dropDownVisible(){return this._dropDownVisible}createCommandAction(t,i,e){const s=new mr(t,i,e,!0,(()=>this._commandService.executeCommand(t))),n=this.keybindingService.lookupKeybinding(t,this._contextKeyService);let o=i;return n&&(o=ot(0,"{0} ({1})",i,n.getLabel())),s.tooltip=o,s}constructor(t,i,e,s,n,o,r,h,c,a,u){super(),this.editor=t,this.withBorder=i,this._position=e,this._currentSuggestionIdx=s,this._suggestionCount=n,this._extraCommands=o,this._commandService=r,this.keybindingService=c,this._contextKeyService=a,this._menuService=u,this.id="InlineSuggestionHintsContentWidget"+F0.id++,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=Jl("div.inlineSuggestionsHints",{className:this.withBorder?".withBorder":""},[Jl("div@toolBar")]),this.previousAction=this.createCommandAction(M0,ot(0,"Previous"),Cr.asClassName(_0)),this.availableSuggestionCountAction=new mr("inlineSuggestionHints.availableSuggestionCount","",void 0,!1),this.nextAction=this.createCommandAction(L0,ot(0,"Next"),Cr.asClassName(I0)),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(Rh.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new pc((()=>{this.availableSuggestionCountAction.label=""}),100)),this.disableButtonsDebounced=this._register(new pc((()=>{this.previousAction.enabled=this.nextAction.enabled=!1}),100)),this.lastCommands=[],this.toolBar=this._register(h.createInstance($0,this.nodes.toolBar,Rh.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:t=>t.startsWith("primary")},actionViewItemProvider:t=>{if(t instanceof Bh)return h.createInstance(P0,t,void 0);if(t===this.availableSuggestionCountAction){const i=new B0(void 0,t,{label:!0,icon:!1});return i.setClass("availableSuggestionCount"),i}},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility((t=>{F0._dropDownVisible=t}))),this._register(WV((t=>{this._position.read(t),this.editor.layoutContentWidget(this)}))),this._register(WV((t=>{const i=this._suggestionCount.read(t),e=this._currentSuggestionIdx.read(t);void 0!==i?(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${e+1}/${i}`):this.clearAvailableSuggestionCountLabelDebounced.schedule(),void 0!==i&&i>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()}))),this._register(WV((t=>{const i=this._extraCommands.read(t);if(l(this.lastCommands,i))return;this.lastCommands=i;const e=i.map((t=>({class:void 0,id:t.id,enabled:!0,tooltip:t.tooltip||"",label:t.title,run:()=>this._commandService.executeCommand(t.id)})));for(const[t,i]of this.inlineCompletionsActionsMenus.getActions())for(const t of i)t instanceof Bh&&e.push(t);e.length>0&&e.unshift(new vr),this.toolBar.setAdditionalSecondaryActions(e)})))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};N0._dropDownVisible=!1,N0.id=0,N0=F0=T0([R0(6,Sr),R0(7,ur),R0(8,oC),R0(9,ah),R0(10,Oh)],N0);class B0 extends wB{constructor(){super(...arguments),this._className=void 0}setClass(t){this._className=t}render(t){super.render(t),this._className&&t.classList.add(this._className)}}class P0 extends KB{updateLabel(){const t=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!t)return super.updateLabel();if(this.label){const i=Jl("div.keybinding").root;new Xj(i,It,{disableTitle:!0,...Yj}).set(t),this.label.textContent=this._action.label,this.label.appendChild(i),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}}let $0=class extends Gq{constructor(t,i,e,s,n,o,r,h){super(t,{resetMenu:i,...e},s,n,o,r,h),this.menuId=i,this.options2=e,this.menuService=s,this.contextKeyService=n,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange((()=>this.updateToolbar()))),this.updateToolbar()}updateToolbar(){var t,i,e,s,n,o,r;const h=[],c=[];UB(this.menu,null===(t=this.options2)||void 0===t?void 0:t.menuOptions,{primary:h,secondary:c},null===(e=null===(i=this.options2)||void 0===i?void 0:i.toolbarOptions)||void 0===e?void 0:e.primaryGroup,null===(n=null===(s=this.options2)||void 0===s?void 0:s.toolbarOptions)||void 0===n?void 0:n.shouldInlineSubmenu,null===(r=null===(o=this.options2)||void 0===o?void 0:o.toolbarOptions)||void 0===r?void 0:r.useSeparatorsInPrimaryActions),c.push(...this.additionalActions),h.unshift(...this.prependedPrimaryActions),this.setActions(h,c)}setPrependedPrimaryActions(t){l(this.prependedPrimaryActions,t,((t,i)=>t===i))||(this.prependedPrimaryActions=t,this.updateToolbar())}setAdditionalSecondaryActions(t){l(this.additionalActions,t,((t,i)=>t===i))||(this.additionalActions=t,this.updateToolbar())}};$0=T0([R0(3,Oh),R0(4,ah),R0(5,lI),R0(6,oC),R0(7,Wh)],$0);var W0,j0=function(t,i){return function(e,s){i(e,s,t)}};let z0=W0=class extends te{static get(t){return t.getContribution(W0.ID)}constructor(t,i,e,s,n){super(),this._editor=t,this._instantiationService=i,this._openerService=e,this._languageService=s,this._keybindingService=n,this._toUnhook=new Xi,this._hoverActivatedByColorDecoratorClick=!1,this._isMouseDown=!1,this._hoverClicked=!1,this._contentWidget=null,this._glyphWidget=null,this._reactToEditorMouseMoveRunner=this._register(new pc((()=>this._reactToEditorMouseMove(this._mouseMoveEvent)),0)),this._hookEvents(),this._register(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(60)&&(this._unhookEvents(),this._hookEvents())})))}_hookEvents(){const t=this._editor.getOption(60);this._isHoverEnabled=t.enabled,this._isHoverSticky=t.sticky,this._hidingDelay=t.hidingDelay,this._isHoverEnabled?(this._toUnhook.add(this._editor.onMouseDown((t=>this._onEditorMouseDown(t)))),this._toUnhook.add(this._editor.onMouseUp((t=>this._onEditorMouseUp(t)))),this._toUnhook.add(this._editor.onMouseMove((t=>this._onEditorMouseMove(t)))),this._toUnhook.add(this._editor.onKeyDown((t=>this._onKeyDown(t))))):(this._toUnhook.add(this._editor.onMouseMove((t=>this._onEditorMouseMove(t)))),this._toUnhook.add(this._editor.onKeyDown((t=>this._onKeyDown(t))))),this._toUnhook.add(this._editor.onMouseLeave((t=>this._onEditorMouseLeave(t)))),this._toUnhook.add(this._editor.onDidChangeModel((()=>{this._cancelScheduler(),this._hideWidgets()}))),this._toUnhook.add(this._editor.onDidChangeModelContent((()=>this._cancelScheduler()))),this._toUnhook.add(this._editor.onDidScrollChange((t=>this._onEditorScrollChanged(t))))}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_unhookEvents(){this._toUnhook.clear()}_onEditorScrollChanged(t){(t.scrollTopChanged||t.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(t){var i;this._isMouseDown=!0;const e=t.target;9!==e.type||e.detail!==IX.ID?12===e.type&&e.detail===$X.ID||(12!==e.type&&(this._hoverClicked=!1),(null===(i=this._contentWidget)||void 0===i?void 0:i.widget.isResizing)||this._hideWidgets()):this._hoverClicked=!0}_onEditorMouseUp(t){this._isMouseDown=!1}_onEditorMouseLeave(t){var i,e;this._cancelScheduler(),(null===(i=this._contentWidget)||void 0===i?void 0:i.widget.isResizing)||(null===(e=this._contentWidget)||void 0===e?void 0:e.containsNode(t.event.browserEvent.relatedTarget))||this._hideWidgets()}_isMouseOverWidget(t){var i,e,s,n,o;const r=t.target;return!((!this._isHoverSticky||9!==r.type||r.detail!==IX.ID)&&(!this._isHoverSticky||!(null===(i=this._contentWidget)||void 0===i?void 0:i.containsNode(null===(e=t.event.browserEvent.view)||void 0===e?void 0:e.document.activeElement))||(null===(n=null===(s=t.event.browserEvent.view)||void 0===s?void 0:s.getSelection())||void 0===n?void 0:n.isCollapsed))&&(this._isHoverSticky||9!==r.type||r.detail!==IX.ID||!(null===(o=this._contentWidget)||void 0===o?void 0:o.isColorPickerVisible))&&(!this._isHoverSticky||12!==r.type||r.detail!==$X.ID))}_onEditorMouseMove(t){var i,e,s,n;this._mouseMoveEvent=t,(null===(i=this._contentWidget)||void 0===i?void 0:i.isFocused)||(null===(e=this._contentWidget)||void 0===e?void 0:e.isResizing)||this._isMouseDown&&this._hoverClicked||this._isHoverSticky&&(null===(s=this._contentWidget)||void 0===s?void 0:s.isVisibleFromKeyboard)||(this._isMouseOverWidget(t)?this._reactToEditorMouseMoveRunner.cancel():(null===(n=this._contentWidget)||void 0===n?void 0:n.isVisible)&&this._isHoverSticky&&this._hidingDelay>0?this._reactToEditorMouseMoveRunner.isScheduled()||this._reactToEditorMouseMoveRunner.schedule(this._hidingDelay):this._reactToEditorMouseMove(t))}_reactToEditorMouseMove(t){var i,e,s;if(!t)return;const n=t.target,o=null===(i=n.element)||void 0===i?void 0:i.classList.contains("colorpicker-color-decoration"),r=this._editor.getOption(146);if((!o||("click"!==r||this._hoverActivatedByColorDecoratorClick)&&("hover"!==r||this._isHoverEnabled)&&("clickAndHover"!==r||this._isHoverEnabled||this._hoverActivatedByColorDecoratorClick))&&(o||this._isHoverEnabled||this._hoverActivatedByColorDecoratorClick))return this._getOrCreateContentWidget().maybeShowAt(t)?void(null===(e=this._glyphWidget)||void 0===e||e.hide()):2===n.type&&n.position?(null===(s=this._contentWidget)||void 0===s||s.hide(),this._glyphWidget||(this._glyphWidget=new $X(this._editor,this._languageService,this._openerService)),void this._glyphWidget.startShowingAt(n.position.lineNumber)):void this._hideWidgets();this._hideWidgets()}_onKeyDown(t){var i;if(!this._editor.hasModel())return;const e=this._keybindingService.softDispatch(t,this._editor.getDomNode()),s=1===e.kind||2===e.kind&&"editor.action.showHover"===e.commandId&&(null===(i=this._contentWidget)||void 0===i?void 0:i.isVisible);5===t.keyCode||6===t.keyCode||57===t.keyCode||4===t.keyCode||s||this._hideWidgets()}_hideWidgets(){var t,i,e;this._isMouseDown&&this._hoverClicked&&(null===(t=this._contentWidget)||void 0===t?void 0:t.isColorPickerVisible)||N0.dropDownVisible||(this._hoverActivatedByColorDecoratorClick=!1,this._hoverClicked=!1,null===(i=this._glyphWidget)||void 0===i||i.hide(),null===(e=this._contentWidget)||void 0===e||e.hide())}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(FX,this._editor)),this._contentWidget}showContentHover(t,i,e,s,n=!1){this._hoverActivatedByColorDecoratorClick=n,this._getOrCreateContentWidget().startShowingAtRange(t,i,e,s)}focus(){var t;null===(t=this._contentWidget)||void 0===t||t.focus()}scrollUp(){var t;null===(t=this._contentWidget)||void 0===t||t.scrollUp()}scrollDown(){var t;null===(t=this._contentWidget)||void 0===t||t.scrollDown()}scrollLeft(){var t;null===(t=this._contentWidget)||void 0===t||t.scrollLeft()}scrollRight(){var t;null===(t=this._contentWidget)||void 0===t||t.scrollRight()}pageUp(){var t;null===(t=this._contentWidget)||void 0===t||t.pageUp()}pageDown(){var t;null===(t=this._contentWidget)||void 0===t||t.pageDown()}goToTop(){var t;null===(t=this._contentWidget)||void 0===t||t.goToTop()}goToBottom(){var t;null===(t=this._contentWidget)||void 0===t||t.goToBottom()}get isColorPickerVisible(){var t;return null===(t=this._contentWidget)||void 0===t?void 0:t.isColorPickerVisible}get isHoverVisible(){var t;return null===(t=this._contentWidget)||void 0===t?void 0:t.isVisible}dispose(){var t,i;super.dispose(),this._unhookEvents(),this._toUnhook.dispose(),null===(t=this._glyphWidget)||void 0===t||t.dispose(),null===(i=this._contentWidget)||void 0===i||i.dispose()}};var H0;z0.ID="editor.contrib.hover",z0=W0=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([j0(1,ur),j0(2,dP),j0(3,yd),j0(4,oC)],z0),function(t){t.NoAutoFocus="noAutoFocus",t.FocusIfVisible="focusIfVisible",t.AutoFocusImmediately="autoFocusImmediately"}(H0||(H0={})),lu(z0.ID,z0,2),cu(class extends su{constructor(){super({id:"editor.action.showHover",label:ot(0,"Show or Focus Hover"),metadata:{description:"Show or Focus Hover",args:[{name:"args",schema:{type:"object",properties:{focus:{description:"Controls if and when the hover should take focus upon being triggered by this action.",enum:[H0.NoAutoFocus,H0.FocusIfVisible,H0.AutoFocusImmediately],enumDescriptions:[ot(0,"The hover will not automatically take focus."),ot(0,"The hover will take focus only if it is already visible."),ot(0,"The hover will automatically take focus when it appears.")],default:H0.FocusIfVisible}}}}]},alias:"Show or Focus Hover",precondition:void 0,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2087),weight:100}})}run(t,i,e){if(!i.hasModel())return;const s=z0.get(i);if(!s)return;const n=null==e?void 0:e.focus;let o=H0.FocusIfVisible;n in H0?o=n:"boolean"==typeof n&&n&&(o=H0.AutoFocusImmediately);const r=t=>{const e=i.getPosition(),n=new Ms(e.lineNumber,e.column,e.lineNumber,e.column);s.showContentHover(n,1,1,t)},h=2===i.getOption(2);s.isHoverVisible?o!==H0.NoAutoFocus?s.focus():r(h):r(h||o===H0.AutoFocusImmediately)}}),cu(class extends su{constructor(){super({id:"editor.action.showDefinitionPreviewHover",label:ot(0,"Show Definition Preview Hover"),alias:"Show Definition Preview Hover",precondition:void 0})}run(t,i){const e=z0.get(i);if(!e)return;const s=i.getPosition();if(!s)return;const n=new Ms(s.lineNumber,s.column,s.lineNumber,s.column),o=pX.get(i);o&&o.startFindDefinitionFromCursor(s).then((()=>{e.showContentHover(n,1,1,!0)}))}}),cu(class extends su{constructor(){super({id:"editor.action.scrollUpHover",label:ot(0,"Scroll Up Hover"),alias:"Scroll Up Hover",precondition:YC.hoverFocused,kbOpts:{kbExpr:YC.hoverFocused,primary:16,weight:100}})}run(t,i){const e=z0.get(i);e&&e.scrollUp()}}),cu(class extends su{constructor(){super({id:"editor.action.scrollDownHover",label:ot(0,"Scroll Down Hover"),alias:"Scroll Down Hover",precondition:YC.hoverFocused,kbOpts:{kbExpr:YC.hoverFocused,primary:18,weight:100}})}run(t,i){const e=z0.get(i);e&&e.scrollDown()}}),cu(class extends su{constructor(){super({id:"editor.action.scrollLeftHover",label:ot(0,"Scroll Left Hover"),alias:"Scroll Left Hover",precondition:YC.hoverFocused,kbOpts:{kbExpr:YC.hoverFocused,primary:15,weight:100}})}run(t,i){const e=z0.get(i);e&&e.scrollLeft()}}),cu(class extends su{constructor(){super({id:"editor.action.scrollRightHover",label:ot(0,"Scroll Right Hover"),alias:"Scroll Right Hover",precondition:YC.hoverFocused,kbOpts:{kbExpr:YC.hoverFocused,primary:17,weight:100}})}run(t,i){const e=z0.get(i);e&&e.scrollRight()}}),cu(class extends su{constructor(){super({id:"editor.action.pageUpHover",label:ot(0,"Page Up Hover"),alias:"Page Up Hover",precondition:YC.hoverFocused,kbOpts:{kbExpr:YC.hoverFocused,primary:11,secondary:[528],weight:100}})}run(t,i){const e=z0.get(i);e&&e.pageUp()}}),cu(class extends su{constructor(){super({id:"editor.action.pageDownHover",label:ot(0,"Page Down Hover"),alias:"Page Down Hover",precondition:YC.hoverFocused,kbOpts:{kbExpr:YC.hoverFocused,primary:12,secondary:[530],weight:100}})}run(t,i){const e=z0.get(i);e&&e.pageDown()}}),cu(class extends su{constructor(){super({id:"editor.action.goToTopHover",label:ot(0,"Go To Top Hover"),alias:"Go To Bottom Hover",precondition:YC.hoverFocused,kbOpts:{kbExpr:YC.hoverFocused,primary:14,secondary:[2064],weight:100}})}run(t,i){const e=z0.get(i);e&&e.goToTop()}}),cu(class extends su{constructor(){super({id:"editor.action.goToBottomHover",label:ot(0,"Go To Bottom Hover"),alias:"Go To Bottom Hover",precondition:YC.hoverFocused,kbOpts:{kbExpr:YC.hoverFocused,primary:13,secondary:[2066],weight:100}})}run(t,i){const e=z0.get(i);e&&e.goToBottom()}}),xX.register(qX),xX.register(E0),nx(((t,i)=>{const e=t.getColor(_v);e&&(i.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${e.transparent(.5)}; }`),i.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${e.transparent(.5)}; }`),i.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${e.transparent(.5)}; }`))}));class V0 extends te{constructor(t){super(),this._editor=t,this._register(t.onMouseDown((t=>this.onMouseDown(t))))}dispose(){super.dispose()}onMouseDown(t){const i=this._editor.getOption(146);if("click"!==i&&"clickAndHover"!==i)return;const e=t.target;if(6!==e.type)return;if(!e.detail.injectedText)return;if(e.detail.injectedText.options.attachedData!==pJ)return;if(!e.range)return;const s=this._editor.getContribution(z0.ID);if(s&&!s.isColorPickerVisible){const t=new Ms(e.range.startLineNumber,e.range.startColumn+1,e.range.endLineNumber,e.range.endColumn+1);s.showContentHover(t,1,0,!1,!0)}}}V0.ID="editor.contrib.colorContribution",lu(V0.ID,V0,2),xX.register(TJ);var U0,q0,K0=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},G0=function(t,i){return function(e,s){i(e,s,t)}};let Z0=U0=class extends te{constructor(t,i,e,s,n,o,r){super(),this._editor=t,this._modelService=e,this._keybindingService=s,this._instantiationService=n,this._languageFeatureService=o,this._languageConfigurationService=r,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=YC.standaloneColorPickerVisible.bindTo(i),this._standaloneColorPickerFocused=YC.standaloneColorPickerFocused.bindTo(i)}showOrFocus(){var t;this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||null===(t=this._standaloneColorPickerWidget)||void 0===t||t.focus():this._standaloneColorPickerWidget=new Q0(this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused,this._instantiationService,this._modelService,this._keybindingService,this._languageFeatureService,this._languageConfigurationService))}hide(){var t;this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),null===(t=this._standaloneColorPickerWidget)||void 0===t||t.hide(),this._editor.focus()}insertColor(){var t;null===(t=this._standaloneColorPickerWidget)||void 0===t||t.updateEditor(),this.hide()}static get(t){return t.getContribution(U0.ID)}};Z0.ID="editor.contrib.standaloneColorPickerController",Z0=U0=K0([G0(1,ah),G0(2,pr),G0(3,oC),G0(4,ur),G0(5,xg),G0(6,Xd)],Z0),lu(Z0.ID,Z0,1);let Q0=q0=class extends te{constructor(t,i,e,s,n,o,r,h){var c;super(),this._editor=t,this._standaloneColorPickerVisible=i,this._standaloneColorPickerFocused=e,this._modelService=n,this._keybindingService=o,this._languageFeaturesService=r,this._languageConfigurationService=h,this.allowEditorOverflow=!0,this._position=void 0,this._body=document.createElement("div"),this._colorHover=null,this._selectionSetInEditor=!1,this._onResult=this._register(new de),this.onResult=this._onResult.event,this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=s.createInstance(OJ,this._editor),this._position=null===(c=this._editor._getViewModel())||void 0===c?void 0:c.getPrimaryCursorState().modelState.position;const a=this._editor.getSelection(),l=a?{startLineNumber:a.startLineNumber,startColumn:a.startColumn,endLineNumber:a.endLineNumber,endColumn:a.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},u=this._register(Rl(this._body));this._register(u.onDidBlur((()=>{this.hide()}))),this._register(u.onDidFocus((()=>{this.focus()}))),this._register(this._editor.onDidChangeCursorPosition((()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()}))),this._register(this._editor.onMouseMove((t=>{var i;const e=null===(i=t.target.element)||void 0===i?void 0:i.classList;e&&e.contains("colorpicker-color-decoration")&&this.hide()}))),this._register(this.onResult((t=>{this._render(t.value,t.foundInEditor)}))),this._start(l),this._body.style.zIndex="50",this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return q0.ID}getDomNode(){return this._body}getPosition(){if(!this._position)return null;const t=this._editor.getOption(60).above;return{position:this._position,secondaryPosition:this._position,preference:t?[1,2]:[2,1],positionAffinity:2}}hide(){this.dispose(),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerFocused.set(!1),this._editor.removeContentWidget(this),this._editor.focus()}focus(){this._standaloneColorPickerFocused.set(!0),this._body.focus()}async _start(t){const i=await this._computeAsync(t);i&&this._onResult.fire(new J0(i.result,i.foundInEditor))}async _computeAsync(t){if(!this._editor.hasModel())return null;const i={range:t,color:{red:0,green:0,blue:0,alpha:1}},e=await this._standaloneColorPickerParticipant.createColorHover(i,new sJ(this._modelService,this._languageConfigurationService),this._languageFeaturesService.colorProvider);return e?{result:e.colorHover,foundInEditor:e.foundInEditor}:null}_render(t,i){const e=document.createDocumentFragment();let s;const n={fragment:e,statusBar:this._register(new _X(this._keybindingService)),setColorPicker:t=>s=t,onContentsChanged:()=>{},hide:()=>this.hide()};if(this._colorHover=t,this._register(this._standaloneColorPickerParticipant.renderHoverParts(n,[t])),void 0===s)return;this._body.classList.add("standalone-colorpicker-body"),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+"px",this._body.style.maxWidth=Math.max(.66*this._editor.getLayoutInfo().width,500)+"px",this._body.tabIndex=0,this._body.appendChild(e),s.layout();const o=s.body,r=o.saturationBox.domNode.clientWidth,h=o.domNode.clientWidth-r-22-8,c=s.body.enterButton;null==c||c.onClicked((()=>{this.updateEditor(),this.hide()}));const a=s.header;a.pickedColorNode.style.width=r+8+"px",a.originalColorNode.style.width=h+"px";const l=s.header.closeButton;null==l||l.onClicked((()=>{this.hide()})),i&&(c&&(c.button.textContent="Replace"),this._selectionSetInEditor=!0,this._editor.setSelection(t.range)),this._editor.layoutContentWidget(this)}};Q0.ID="editor.contrib.standaloneColorPickerWidget",Q0=q0=K0([G0(3,ur),G0(4,pr),G0(5,oC),G0(6,xg),G0(7,Xd)],Q0);class J0{constructor(t,i){this.value=t,this.foundInEditor=i}}cu(class extends su{constructor(){super({id:"editor.action.hideColorPicker",label:ot(0,"Hide the Color Picker"),alias:"Hide the Color Picker",precondition:YC.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100}})}run(t,i){var e;null===(e=Z0.get(i))||void 0===e||e.hide()}}),cu(class extends su{constructor(){super({id:"editor.action.insertColorWithStandaloneColorPicker",label:ot(0,"Insert Color with Standalone Color Picker"),alias:"Insert Color with Standalone Color Picker",precondition:YC.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100}})}run(t,i){var e;null===(e=Z0.get(i))||void 0===e||e.insertColor()}}),$h(class extends ou{constructor(){super({id:"editor.action.showOrFocusStandaloneColorPicker",title:{value:ot(0,"Show or Focus Standalone Color Picker"),mnemonicTitle:ot(0,"&&Show or Focus Standalone Color Picker"),original:"Show or Focus Standalone Color Picker"},precondition:void 0,menu:[{id:Rh.CommandPalette}]})}runEditorCommand(t,i){var e;null===(e=Z0.get(i))||void 0===e||e.showOrFocus()}});class Y0{constructor(t,i,e){this.languageConfigurationService=e,this._selection=t,this._insertSpace=i,this._usedEndToken=null}static _haystackHasNeedleAtOffset(t,i,e){if(e<0)return!1;const s=i.length;if(e+s>t.length)return!1;for(let n=0;n=65&&s<=90&&s+32===o||o>=65&&o<=90&&o+32===s))return!1}return!0}_createOperationsForBlockComment(t,i,e,s,n,o){const r=t.startLineNumber,h=t.startColumn,c=t.endLineNumber,a=t.endColumn,l=n.getLineContent(r),u=n.getLineContent(c);let d,f=l.lastIndexOf(i,h-1+i.length),p=u.indexOf(e,a-1-e.length);if(-1!==f&&-1!==p)if(r===c)l.substring(f+i.length,p).indexOf(e)>=0&&(f=-1,p=-1);else{const t=l.substring(f+i.length),s=u.substring(0,p);(t.indexOf(e)>=0||s.indexOf(e)>=0)&&(f=-1,p=-1)}-1!==f&&-1!==p?(s&&f+i.length0&&32===u.charCodeAt(p-1)&&(e=" "+e,p-=1),d=Y0._createRemoveBlockCommentOperations(new Ms(r,f+i.length+1,c,p+1),i,e)):(d=Y0._createAddBlockCommentOperations(t,i,e,this._insertSpace),this._usedEndToken=1===d.length?e:null);for(const t of d)o.addTrackedEditOperation(t.range,t.text)}static _createRemoveBlockCommentOperations(t,i,e){const s=[];return Ms.isEmpty(t)?s.push(pO.delete(new Ms(t.startLineNumber,t.startColumn-i.length,t.endLineNumber,t.endColumn+e.length))):(s.push(pO.delete(new Ms(t.startLineNumber,t.startColumn-i.length,t.startLineNumber,t.startColumn))),s.push(pO.delete(new Ms(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn+e.length)))),s}static _createAddBlockCommentOperations(t,i,e,s){const n=[];return Ms.isEmpty(t)?n.push(pO.replace(new Ms(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn),i+" "+e)):(n.push(pO.insert(new As(t.startLineNumber,t.startColumn),i+(s?" ":""))),n.push(pO.insert(new As(t.endLineNumber,t.endColumn),(s?" ":"")+e))),n}getEditOperations(t,i){const e=this._selection.startLineNumber,s=this._selection.startColumn;t.tokenization.tokenizeIfCheap(e);const n=t.getLanguageIdAtPosition(e,s),o=this.languageConfigurationService.getLanguageConfiguration(n).comments;o&&o.blockCommentStartToken&&o.blockCommentEndToken&&this._createOperationsForBlockComment(this._selection,o.blockCommentStartToken,o.blockCommentEndToken,this._insertSpace,t,i)}computeCursorState(t,i){const e=i.getInverseEditOperations();if(2===e.length){const t=e[0],i=e[1];return new Ls(t.range.endLineNumber,t.range.endColumn,i.range.startLineNumber,i.range.startColumn)}{const t=e[0].range,i=this._usedEndToken?-this._usedEndToken.length-1:0;return new Ls(t.endLineNumber,t.endColumn+i,t.endLineNumber,t.endColumn+i)}}}class X0{constructor(t,i,e,s,n,o,r){this.languageConfigurationService=t,this._selection=i,this._tabSize=e,this._type=s,this._insertSpace=n,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=o,this._ignoreFirstLine=r||!1}static _gatherPreflightCommentStrings(t,i,e,s){t.tokenization.tokenizeIfCheap(i);const n=t.getLanguageIdAtPosition(i,1),o=s.getLanguageConfiguration(n).comments,r=o?o.lineCommentToken:null;if(!r)return null;const h=[];for(let t=0,s=e-i+1;tr?n-1:n}}}class t1 extends su{constructor(t,i){super(i),this._type=t}run(t,i){const e=t.get(Xd);if(!i.hasModel())return;const s=[],n=i.getModel().getOptions(),o=i.getOption(23),r=i.getSelections().map(((t,i)=>({selection:t,index:i,ignoreFirstLine:!1})));r.sort(((t,i)=>Ms.compareRangesUsingStarts(t.selection,i.selection)));let h=r[0];for(let t=1;tthis._onContextMenu(t)))),this._toDispose.add(this._editor.onMouseWheel((t=>{if(this._contextMenuIsBeingShownCount>0){const i=this._contextViewService.getContextViewElement(),e=t.srcElement;e.shadowRoot&&fl(i)===e.shadowRoot||this._contextViewService.hideContextView()}}))),this._toDispose.add(this._editor.onKeyDown((t=>{this._editor.getOption(24)&&58===t.keyCode&&(t.preventDefault(),t.stopPropagation(),this.showContextMenu())})))}_onContextMenu(t){if(!this._editor.hasModel())return;if(!this._editor.getOption(24))return this._editor.focus(),void(t.target.position&&!this._editor.getSelection().containsPosition(t.target.position)&&this._editor.setPosition(t.target.position));if(12===t.target.type)return;if(6===t.target.type&&t.target.detail.injectedText)return;if(t.event.preventDefault(),t.event.stopPropagation(),11===t.target.type)return this._showScrollbarContextMenu(t.event);if(6!==t.target.type&&7!==t.target.type&&1!==t.target.type)return;if(this._editor.focus(),t.target.position){let i=!1;for(const e of this._editor.getSelections())if(e.containsPosition(t.target.position)){i=!0;break}i||this._editor.setPosition(t.target.position)}let i=null;1!==t.target.type&&(i=t.event),this.showContextMenu(i)}showContextMenu(t){if(!this._editor.getOption(24))return;if(!this._editor.hasModel())return;const i=this._getMenuActions(this._editor.getModel(),this._editor.isSimpleWidget?Rh.SimpleEditorContext:Rh.EditorContext);i.length>0&&this._doShowContextMenu(i,t)}_getMenuActions(t,i){const e=[],s=this._menuService.createMenu(i,this._contextKeyService),n=s.getActions({arg:t.uri});s.dispose();for(const i of n){const[,s]=i;let n=0;for(const i of s)if(i instanceof Nh){const s=this._getMenuActions(t,i.item.submenu);s.length>0&&(e.push(new br(i.id,i.label,s)),n++)}else e.push(i),n++;n&&e.push(new vr)}return e.length&&e.pop(),e}_doShowContextMenu(t,i=null){if(!this._editor.hasModel())return;const e=this._editor.getOption(60);this._editor.updateOptions({hover:{enabled:!1}});let s=i;if(!s){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const t=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),i=nl(this._editor.getDomNode());s={x:i.left+t.left,y:i.top+t.top+t.height}}const n=this._editor.getOption(126)&&!Mt;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:n?this._editor.getDomNode():void 0,getAnchor:()=>s,getActions:()=>t,getActionViewItem:t=>{const i=this._keybindingFor(t);return i?new wB(t,t,{label:!0,keybinding:i.getLabel(),isMenu:!0}):"function"==typeof t.getActionViewItem?t.getActionViewItem():new wB(t,t,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:t=>this._keybindingFor(t),onHide:()=>{this._contextMenuIsBeingShownCount--,this._editor.updateOptions({hover:e})}})}_showScrollbarContextMenu(t){if(!this._editor.hasModel())return;if(this._workspaceContextService.getWorkspace().id===XO)return;const i=this._editor.getOption(72);let e=0;const s=t=>({id:"menu-action-"+ ++e,label:t.label,tooltip:"",class:void 0,enabled:void 0===t.enabled||t.enabled,checked:t.checked,run:t.run}),n=(t,i,n,o,r)=>{if(!i)return s({label:t,enabled:i,run:()=>{}});const h=t=>()=>{this._configurationService.updateValue(n,t)},c=[];for(const t of r)c.push(s({label:t.label,checked:o===t.value,run:h(t.value)}));return((t,i)=>new br("menu-action-"+ ++e,t,i,void 0))(t,c)},o=[];o.push(s({label:ot(0,"Minimap"),checked:i.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!i.enabled)}})),o.push(new vr),o.push(s({label:ot(0,"Render Characters"),enabled:i.enabled,checked:i.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!i.renderCharacters)}})),o.push(n(ot(0,"Vertical size"),i.enabled,"editor.minimap.size",i.size,[{label:ot(0,"Proportional"),value:"proportional"},{label:ot(0,"Fill"),value:"fill"},{label:ot(0,"Fit"),value:"fit"}])),o.push(n(ot(0,"Slider"),i.enabled,"editor.minimap.showSlider",i.showSlider,[{label:ot(0,"Mouse Over"),value:"mouseover"},{label:ot(0,"Always"),value:"always"}]));const r=this._editor.getOption(126)&&!Mt;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:r?this._editor.getDomNode():void 0,getAnchor:()=>t,getActions:()=>o,onHide:()=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(t){return this._keybindingService.lookupKeybinding(t.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}};s1.ID="editor.contrib.contextmenu",s1=i1=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([e1(1,lI),e1(2,aI),e1(3,ah),e1(4,oC),e1(5,Oh),e1(6,pd),e1(7,ZO)],s1),lu(s1.ID,s1,2),cu(class extends su{constructor(){super({id:"editor.action.showContextMenu",label:ot(0,"Show Editor Context Menu"),alias:"Show Editor Context Menu",precondition:void 0,kbOpts:{kbExpr:YC.textInputFocus,primary:1092,weight:100}})}run(t,i){var e;null===(e=s1.get(i))||void 0===e||e.showContextMenu()}});class n1{constructor(t){this.selections=t}equals(t){const i=this.selections.length;if(i!==t.selections.length)return!1;for(let e=0;e{this._undoStack=[],this._redoStack=[]}))),this._register(t.onDidChangeModelContent((()=>{this._undoStack=[],this._redoStack=[]}))),this._register(t.onDidChangeCursorSelection((i=>{if(this._isCursorUndoRedo)return;if(!i.oldSelections)return;if(i.oldModelVersionId!==i.modelVersionId)return;const e=new n1(i.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(e)||(this._undoStack.push(new o1(e,t.getScrollTop(),t.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())})))}cursorUndo(){this._editor.hasModel()&&0!==this._undoStack.length&&(this._redoStack.push(new o1(new n1(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){this._editor.hasModel()&&0!==this._redoStack.length&&(this._undoStack.push(new o1(new n1(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(t){this._isCursorUndoRedo=!0,this._editor.setSelections(t.cursorState.selections),this._editor.setScrollPosition({scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),this._isCursorUndoRedo=!1}}r1.ID="editor.contrib.cursorUndoRedoController",lu(r1.ID,r1,0),cu(class extends su{constructor(){super({id:"cursorUndo",label:ot(0,"Cursor Undo"),alias:"Cursor Undo",precondition:void 0,kbOpts:{kbExpr:YC.textInputFocus,primary:2099,weight:100}})}run(t,i,e){var s;null===(s=r1.get(i))||void 0===s||s.cursorUndo()}}),cu(class extends su{constructor(){super({id:"cursorRedo",label:ot(0,"Cursor Redo"),alias:"Cursor Redo",precondition:void 0})}run(t,i,e){var s;null===(s=r1.get(i))||void 0===s||s.cursorRedo()}});class h1{constructor(t,i,e){this.selection=t,this.targetPosition=i,this.copy=e,this.targetSelection=null}getEditOperations(t,i){const e=t.getValueInRange(this.selection);this.copy||i.addEditOperation(this.selection,null),i.addEditOperation(new Ms(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),e),this.targetSelection=!this.selection.containsPosition(this.targetPosition)||this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition))?this.copy?new Ls(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumber>this.selection.endLineNumber?new Ls(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumberthis._onEditorMouseDown(t)))),this._register(this._editor.onMouseUp((t=>this._onEditorMouseUp(t)))),this._register(this._editor.onMouseDrag((t=>this._onEditorMouseDrag(t)))),this._register(this._editor.onMouseDrop((t=>this._onEditorMouseDrop(t)))),this._register(this._editor.onMouseDropCanceled((()=>this._onEditorMouseDropCanceled()))),this._register(this._editor.onKeyDown((t=>this.onEditorKeyDown(t)))),this._register(this._editor.onKeyUp((t=>this.onEditorKeyUp(t)))),this._register(this._editor.onDidBlurEditorWidget((()=>this.onEditorBlur()))),this._register(this._editor.onDidBlurEditorText((()=>this.onEditorBlur()))),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(t){this._editor.getOption(35)&&!this._editor.getOption(22)&&(c1(t)&&(this._modifierPressed=!0),this._mouseDown&&c1(t)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(t){this._editor.getOption(35)&&!this._editor.getOption(22)&&(c1(t)&&(this._modifierPressed=!1),this._mouseDown&&t.keyCode===a1.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))}_onEditorMouseDown(t){this._mouseDown=!0}_onEditorMouseUp(t){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(t){const i=t.target;if(null===this._dragSelection){const t=(this._editor.getSelections()||[]).filter((t=>i.position&&t.containsPosition(i.position)));if(1!==t.length)return;this._dragSelection=t[0]}c1(t.event)?this._editor.updateOptions({mouseStyle:"copy"}):this._editor.updateOptions({mouseStyle:"default"}),i.position&&(this._dragSelection.containsPosition(i.position)?this._removeDecoration():this.showAt(i.position))}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(t){if(t.target&&(this._hitContent(t.target)||this._hitMargin(t.target))&&t.target.position){const i=new As(t.target.position.lineNumber,t.target.position.column);if(null===this._dragSelection){let e=null;if(t.event.shiftKey){const t=this._editor.getSelection();if(t){const{selectionStartLineNumber:s,selectionStartColumn:n}=t;e=[new Ls(s,n,i.lineNumber,i.column)]}}else e=(this._editor.getSelections()||[]).map((t=>t.containsPosition(i)?new Ls(i.lineNumber,i.column,i.lineNumber,i.column):t));this._editor.setSelections(e||[],"mouse",3)}else(!this._dragSelection.containsPosition(i)||(c1(t.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(i)||this._dragSelection.getStartPosition().equals(i)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(a1.ID,new h1(this._dragSelection,i,c1(t.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}showAt(t){this._dndDecorationIds.set([{range:new Ms(t.lineNumber,t.column,t.lineNumber,t.column),options:a1._DECORATION_OPTIONS}]),this._editor.revealPosition(t,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(t){return 6===t.type||7===t.type}_hitMargin(t){return 2===t.type||3===t.type||4===t.type}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}a1.ID="editor.contrib.dragAndDrop",a1.TRIGGER_KEY_VALUE=Ct?6:5,a1._DECORATION_OPTIONS=AL.register({description:"dnd-target",className:"dnd-target"}),lu(a1.ID,a1,2);const l1=function(){if("object"==typeof crypto&&"function"==typeof crypto.randomUUID)return crypto.randomUUID.bind(crypto);let t;t="object"==typeof crypto&&"function"==typeof crypto.getRandomValues?crypto.getRandomValues.bind(crypto):function(t){for(let i=0;it,asFile:()=>{},value:"string"==typeof t?t:void 0}}class d1{constructor(){this._entries=new Map}get size(){let t=0;for(const i of this._entries)t++;return t}has(t){return this._entries.has(this.toKey(t))}matches(t){const i=[...this._entries.keys()];return Ht.some(this,(([t,i])=>i.asFile()))&&i.push("files"),g1(f1(t),i)}get(t){var i;return null===(i=this._entries.get(this.toKey(t)))||void 0===i?void 0:i[0]}append(t,i){const e=this._entries.get(t);e?e.push(i):this._entries.set(this.toKey(t),[i])}replace(t,i){this._entries.set(this.toKey(t),[i])}delete(t){this._entries.delete(this.toKey(t))}*[Symbol.iterator](){for(const[t,i]of this._entries)for(const e of i)yield[t,e]}toKey(t){return f1(t)}}function f1(t){return t.toLowerCase()}function p1(t,i){return g1(f1(t),i.map(f1))}function g1(t,i){if("*/*"===t)return i.length>0;if(i.includes(t))return!0;const e=t.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!e)return!1;const[s,n,o]=e;return"*"===o&&i.some((t=>t.startsWith(n+"/")))}const m1=Object.freeze({create:t=>y(t.map((t=>t.toString()))).join("\r\n"),split:t=>t.split("\r\n"),parse:t=>m1.split(t).filter((t=>!t.startsWith("#")))});Dh.add("workbench.contributions.dragAndDrop",new class{});class w1{constructor(){}static getInstance(){return w1.INSTANCE}hasData(t){return t&&t===this.proto}getData(t){if(this.hasData(t))return this.data}}function v1(t){const i=new d1;for(const e of t.items){const t=e.type;if("string"===e.kind){const s=new Promise((t=>e.getAsString(t)));i.append(t,u1(s))}else if("file"===e.kind){const s=e.getAsFile();s&&i.append(t,b1(s))}}return i}function b1(t){const i=t.path?ms.parse(t.path):void 0;return function(t,i,e){const s={id:l1(),name:t,uri:i,data:e};return{asString:async()=>"",asFile:()=>s,value:void 0}}(t.name,i,(async()=>new Uint8Array(await t.arrayBuffer())))}w1.INSTANCE=new w1;const y1=Object.freeze(["CodeEditors","CodeFiles",MI.RESOURCES,MI.INTERNAL_URI_LIST]);function k1(t,i=!1){const e=v1(t),s=e.get(MI.INTERNAL_URI_LIST);if(s)e.replace(Dd.uriList,s);else if(i||!e.has(Dd.uriList)){const i=[];for(const e of t.items){const t=e.getAsFile();if(t){const e=t.path;try{i.push(e?ms.file(e).toString():ms.parse(t.name,!0).toString())}catch(t){}}}i.length&&e.replace(Dd.uriList,u1(m1.create(i)))}for(const t of y1)e.delete(t);return e}function x1(t){var i;function e(t,i){return"providerId"in t&&t.providerId===i.providerId||"mimeType"in t&&t.mimeType===i.handledMimeType}const s=new Map;for(const n of t)for(const o of null!==(i=n.yieldTo)&&void 0!==i?i:[])for(const i of t)if(i!==n&&e(o,i)){let t=s.get(n);t||(t=[],s.set(n,t)),t.push(i)}if(!s.size)return Array.from(t);const n=new Set,o=[];return function t(i){if(!i.length)return[];const e=i[0];if(o.includes(e))return console.warn(`Yield to cycle detected for ${e.providerId}`),i;if(n.has(e))return t(i.slice(1));let r=[];const h=s.get(e);return h&&(o.push(e),r=t(h),o.pop()),n.add(e),[...r,e,...t(i.slice(1))]}(Array.from(t))}const C1=AL.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:" ",inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}});class S1 extends te{constructor(t,i,e,s,n){super(),this.typeId=t,this.editor=i,this.range=e,this.delegate=n,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(s),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(t){this.domNode=$l(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=t;const i=$l("span.icon");this.domNode.append(i),i.classList.add(...Cr.asClassNameArray(Os.loading),"codicon-modifier-spin");const e=()=>{const t=this.editor.getOption(66);this.domNode.style.height=`${t}px`,this.domNode.style.width=`${Math.ceil(.8*t)}px`};e(),this._register(this.editor.onDidChangeConfiguration((t=>{(t.hasChanged(52)||t.hasChanged(66))&&e()}))),this._register(Va(this.domNode,Ll.CLICK,(()=>{this.delegate.cancel()})))}getId(){return S1.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}}S1.baseId="editor.widget.inlineProgressWidget";let D1=class extends te{constructor(t,i,e){super(),this.id=t,this._editor=i,this._instantiationService=e,this._showDelay=500,this._showPromise=this._register(new ie),this._currentWidget=new ie,this._operationIdPool=0,this._currentDecorations=i.createDecorationsCollection()}async showWhile(t,i,e){const s=this._operationIdPool++;this._currentOperation=s,this.clear(),this._showPromise.value=lc((()=>{const s=Ms.fromPositions(t);this._currentDecorations.set([{range:s,options:C1}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(S1,this.id,this._editor,s,i,e))}),this._showDelay);try{return await e}finally{this._currentOperation===s&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};D1=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(2,ur)],D1);var E1,A1=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},M1=function(t,i){return function(e,s){i(e,s,t)}};let L1=E1=class extends te{constructor(t,i,e,s,n,o,r,h,c,a){super(),this.typeId=t,this.editor=i,this.showCommand=s,this.range=n,this.edits=o,this.onSelectNewEdit=r,this._contextMenuService=h,this._keybindingService=a,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=e.bindTo(c),this.visibleContext.set(!0),this._register(Yi((()=>this.visibleContext.reset()))),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(Yi((()=>this.editor.removeContentWidget(this)))),this._register(this.editor.onDidChangeCursorPosition((t=>{n.containsPosition(t.position)||this.dispose()}))),this._register(he.runAndSubscribe(a.onDidUpdateKeybindings,(()=>{this._updateButtonTitle()})))}_updateButtonTitle(){var t;const i=null===(t=this._keybindingService.lookupKeybinding(this.showCommand.id))||void 0===t?void 0:t.getLabel();this.button.element.title=this.showCommand.label+(i?` (${i})`:"")}create(){this.domNode=$l(".post-edit-widget"),this.button=this._register(new Nj(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(Va(this.domNode,Ll.CLICK,(()=>this.showSelector())))}getId(){return E1.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:()=>{const t=nl(this.button.element);return{x:t.left+t.width,y:t.top+t.height}},getActions:()=>this.edits.allEdits.map(((t,i)=>kr({id:"",label:t.label,checked:i===this.edits.activeEditIndex,run:()=>{if(i!==this.edits.activeEditIndex)return this.onSelectNewEdit(i)}})))})}};L1.baseId="editor.widget.postEditWidget",L1=E1=A1([M1(7,lI),M1(8,ah),M1(9,oC)],L1);let F1=class extends te{constructor(t,i,e,s,n,o){super(),this._id=t,this._editor=i,this._visibleContext=e,this._showCommand=s,this._instantiationService=n,this._bulkEditService=o,this._currentWidget=this._register(new ie),this._register(he.any(i.onDidChangeModel,i.onDidChangeModelContent)((()=>this.clear())))}async applyEditAndShowIfNeeded(t,i,e,s){var n,o;const r=this._editor.getModel();if(!r||!t.length)return;const h=i.allEdits[i.activeEditIndex];if(!h)return;let c=[];c=("string"==typeof h.insertText?""===h.insertText:""===h.insertText.snippet)?[]:t.map((t=>new rO(r.uri,"string"==typeof h.insertText?{range:t,text:h.insertText,insertAsSnippet:!1}:{range:t,text:h.insertText.snippet,insertAsSnippet:!0})));const a={edits:[...c,...null!==(o=null===(n=h.additionalEdit)||void 0===n?void 0:n.edits)&&void 0!==o?o:[]]},l=t[0],u=r.deltaDecorations([],[{range:l,options:{description:"paste-line-suffix",stickiness:0}}]);let d,f;try{d=await this._bulkEditService.apply(a,{editor:this._editor,token:s}),f=r.getDecorationRange(u[0])}finally{r.deltaDecorations(u,[])}e&&d.isApplied&&i.allEdits.length>1&&this.show(null!=f?f:l,i,(async n=>{const o=this._editor.getModel();o&&(await o.undo(),this.applyEditAndShowIfNeeded(t,{activeEditIndex:n,allEdits:i.allEdits},e,s))}))}show(t,i,e){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(L1,this._id,this._editor,this._visibleContext,this._showCommand,t,i,e))}clear(){this._currentWidget.clear()}tryShowSelector(){var t;null===(t=this._currentWidget.value)||void 0===t||t.showSelector()}};F1=A1([M1(4,ur),M1(5,nO)],F1);var T1,R1=function(t,i){return function(e,s){i(e,s,t)}};const O1="editor.changePasteType",I1=new ch("pasteWidgetVisible",!1,ot(0,"Whether the paste widget is showing")),_1="application/vnd.code.copyMetadata";let N1=T1=class extends te{static get(t){return t.getContribution(T1.ID)}constructor(t,i,e,s,n,o,r){super(),this._bulkEditService=e,this._clipboardService=s,this._languageFeaturesService=n,this._quickInputService=o,this._progressService=r,this._editor=t;const h=t.getContainerDomNode();this._register(Va(h,"copy",(t=>this.handleCopy(t)))),this._register(Va(h,"cut",(t=>this.handleCopy(t)))),this._register(Va(h,"paste",(t=>this.handlePaste(t)),!0)),this._pasteProgressManager=this._register(new D1("pasteIntoEditor",t,i)),this._postPasteWidgetManager=this._register(i.createInstance(F1,"pasteIntoEditor",t,I1,{id:O1,label:ot(0,"Show paste options...")}))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}pasteAs(t){this._editor.focus();try{this._pasteAsActionContext={preferredId:t},ml().execCommand("paste")}finally{this._pasteAsActionContext=void 0}}isPasteAsEnabled(){return this._editor.getOption(84).enabled&&!this._editor.getOption(90)}handleCopy(t){var i,e;if(!this._editor.hasTextFocus())return;if(Et&&this._clipboardService.writeResources([]),!t.clipboardData||!this.isPasteAsEnabled())return;const s=this._editor.getModel(),n=this._editor.getSelections();if(!s||!(null==n?void 0:n.length))return;const o=this._editor.getOption(37);let r=n;const h=1===n.length&&n[0].isEmpty();if(h){if(!o)return;r=[new Ms(r[0].startLineNumber,1,r[0].startLineNumber,1+s.getLineLength(r[0].startLineNumber))]}const c=null===(i=this._editor._getViewModel())||void 0===i?void 0:i.getPlainTextToCopy(n,o,xt),a={multicursorText:Array.isArray(c)?c:null,pasteOnNewLine:h,mode:null},l=this._languageFeaturesService.documentPasteEditProvider.ordered(s).filter((t=>!!t.prepareDocumentPaste));if(!l.length)return void this.setCopyMetadata(t.clipboardData,{defaultPastePayload:a});const u=v1(t.clipboardData),d=l.flatMap((t=>{var i;return null!==(i=t.copyMimeTypes)&&void 0!==i?i:[]})),f=l1();this.setCopyMetadata(t.clipboardData,{id:f,providerCopyMimeTypes:d,defaultPastePayload:a});const p=nc((async t=>{const i=m(await Promise.all(l.map((async i=>{try{return await i.prepareDocumentPaste(s,r,u,t)}catch(t){return void console.error(t)}}))));i.reverse();for(const t of i)for(const[i,e]of t)u.replace(i,e);return u}));null===(e=this._currentCopyOperation)||void 0===e||e.dataTransferPromise.cancel(),this._currentCopyOperation={handle:f,dataTransferPromise:p}}async handlePaste(t){var i,e;if(!t.clipboardData||!this._editor.hasTextFocus())return;null===(i=this._currentPasteOperation)||void 0===i||i.cancel(),this._currentPasteOperation=void 0;const s=this._editor.getModel(),n=this._editor.getSelections();if(!(null==n?void 0:n.length)||!s)return;if(!this.isPasteAsEnabled())return;const o=this.fetchCopyMetadata(t),r=k1(t.clipboardData);r.delete(_1);const h=[...t.clipboardData.types,...null!==(e=null==o?void 0:o.providerCopyMimeTypes)&&void 0!==e?e:[],Dd.uriList],c=this._languageFeaturesService.documentPasteEditProvider.ordered(s).filter((t=>{var i;return null===(i=t.pasteMimeTypes)||void 0===i?void 0:i.some((t=>p1(t,h)))}));c.length&&(t.preventDefault(),t.stopImmediatePropagation(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferredId,c,n,r,o):this.doPasteInline(c,n,r,o))}doPasteInline(t,i,e,s){const n=nc((async o=>{const r=this._editor;if(!r.hasModel())return;const h=r.getModel(),c=new CK(r,3,void 0,o);try{if(await this.mergeInDataFromCopy(e,s,c.token),c.token.isCancellationRequested)return;const n=t.filter((t=>B1(t,e)));if(!n.length||1===n.length&&"text"===n[0].id)return void await this.applyDefaultPasteHandler(e,s,c.token);const o=await this.getPasteEdits(n,e,h,i,c.token);if(c.token.isCancellationRequested)return;if(1===o.length&&"text"===o[0].providerId)return void await this.applyDefaultPasteHandler(e,s,c.token);if(o.length){const t="afterPaste"===r.getOption(84).showPasteSelector;return this._postPasteWidgetManager.applyEditAndShowIfNeeded(i,{activeEditIndex:0,allEdits:o},t,c.token)}await this.applyDefaultPasteHandler(e,s,c.token)}finally{c.dispose(),this._currentPasteOperation===n&&(this._currentPasteOperation=void 0)}}));this._pasteProgressManager.showWhile(i[0].getEndPosition(),ot(0,"Running paste handlers. Click to cancel"),n),this._currentPasteOperation=n}showPasteAsPick(t,i,e,s,n){const o=nc((async r=>{const h=this._editor;if(!h.hasModel())return;const c=h.getModel(),a=new CK(h,3,void 0,r);try{if(await this.mergeInDataFromCopy(s,n,a.token),a.token.isCancellationRequested)return;let o=i.filter((t=>B1(t,s)));t&&(o=o.filter((i=>i.id===t)));const r=await this.getPasteEdits(o,s,c,e,a.token);if(a.token.isCancellationRequested)return;if(!r.length)return;let h;if(t)h=r.at(0);else{const t=await this._quickInputService.pick(r.map((t=>({label:t.label,description:t.providerId,detail:t.detail,edit:t}))),{placeHolder:ot(0,"Select Paste Action")});h=null==t?void 0:t.edit}if(!h)return;const l=function(t,i,e){var s,n;return{edits:[...i.map((i=>new rO(t,"string"==typeof e.insertText?{range:i,text:e.insertText,insertAsSnippet:!1}:{range:i,text:e.insertText.snippet,insertAsSnippet:!0}))),...null!==(n=null===(s=e.additionalEdit)||void 0===s?void 0:s.edits)&&void 0!==n?n:[]]}}(c.uri,e,h);await this._bulkEditService.apply(l,{editor:this._editor})}finally{a.dispose(),this._currentPasteOperation===o&&(this._currentPasteOperation=void 0)}}));this._progressService.withProgress({location:10,title:ot(0,"Running paste handlers")},(()=>o))}setCopyMetadata(t,i){t.setData(_1,JSON.stringify(i))}fetchCopyMetadata(t){var i;if(!t.clipboardData)return;const e=t.clipboardData.getData(_1);if(e)try{return JSON.parse(e)}catch(t){return}const[s,n]=Kk.getTextData(t.clipboardData);return n?{defaultPastePayload:{mode:n.mode,multicursorText:null!==(i=n.multicursorText)&&void 0!==i?i:null,pasteOnNewLine:!!n.isFromEmptySelection}}:void 0}async mergeInDataFromCopy(t,i,e){var s;if((null==i?void 0:i.id)&&(null===(s=this._currentCopyOperation)||void 0===s?void 0:s.handle)===i.id){const i=await this._currentCopyOperation.dataTransferPromise;if(e.isCancellationRequested)return;for(const[e,s]of i)t.replace(e,s)}if(!t.has(Dd.uriList)){const i=await this._clipboardService.readResources();if(e.isCancellationRequested)return;i.length&&t.append(Dd.uriList,u1(m1.create(i)))}}async getPasteEdits(t,i,e,s,n){const o=await oc(Promise.all(t.map((async t=>{var o;try{const r=await(null===(o=t.provideDocumentPasteEdits)||void 0===o?void 0:o.call(t,e,s,i,n));if(r)return{...r,providerId:t.id}}catch(t){console.error(t)}}))),n);return x1(m(null!=o?o:[]))}async applyDefaultPasteHandler(t,i,e){var s,n,o;const r=null!==(s=t.get(Dd.text))&&void 0!==s?s:t.get("text");if(!r)return;const h=await r.asString();if(e.isCancellationRequested)return;const c={text:h,pasteOnNewLine:null!==(n=null==i?void 0:i.defaultPastePayload.pasteOnNewLine)&&void 0!==n&&n,multicursorText:null!==(o=null==i?void 0:i.defaultPastePayload.multicursorText)&&void 0!==o?o:null,mode:null};this._editor.trigger("keyboard","paste",c)}};function B1(t,i){var e;return Boolean(null===(e=t.pasteMimeTypes)||void 0===e?void 0:e.some((t=>i.matches(t))))}N1.ID="editor.contrib.copyPasteActionController",N1=T1=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([R1(1,ur),R1(2,nO),R1(3,yH),R1(4,xg),R1(5,Oj),R1(6,WO)],N1);var P1=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},$1=function(t,i){return function(e,s){i(e,s,t)}};const W1=ot(0,"Built-in");class j1{async provideDocumentPasteEdits(t,i,e,s){const n=await this.getEdit(e,s);return n?{insertText:n.insertText,label:n.label,detail:n.detail,handledMimeType:n.handledMimeType,yieldTo:n.yieldTo}:void 0}async provideDocumentOnDropEdits(t,i,e,s){const n=await this.getEdit(e,s);return n?{insertText:n.insertText,label:n.label,handledMimeType:n.handledMimeType,yieldTo:n.yieldTo}:void 0}}class z1 extends j1{constructor(){super(...arguments),this.id="text",this.dropMimeTypes=[Dd.text],this.pasteMimeTypes=[Dd.text]}async getEdit(t,i){const e=t.get(Dd.text);if(!e)return;if(t.has(Dd.uriList))return;const s=await e.asString();return{handledMimeType:Dd.text,label:ot(0,"Insert Plain Text"),detail:W1,insertText:s}}}class H1 extends j1{constructor(){super(...arguments),this.id="uri",this.dropMimeTypes=[Dd.uriList],this.pasteMimeTypes=[Dd.uriList]}async getEdit(t,i){const e=await U1(t);if(!e.length||i.isCancellationRequested)return;let s=0;const n=e.map((({uri:t,originalText:i})=>t.scheme===ka.file?t.fsPath:(s++,i))).join(" ");let o;return o=ot(0,s>0?e.length>1?"Insert Uris":"Insert Uri":e.length>1?"Insert Paths":"Insert Path"),{handledMimeType:Dd.uriList,insertText:n,label:o,detail:W1}}}let V1=class extends j1{constructor(t){super(),this._workspaceContextService=t,this.id="relativePath",this.dropMimeTypes=[Dd.uriList],this.pasteMimeTypes=[Dd.uriList]}async getEdit(t,i){const e=await U1(t);if(!e.length||i.isCancellationRequested)return;const s=m(e.map((({uri:t})=>{const i=this._workspaceContextService.getWorkspaceFolder(t);return i?SA(i.uri,t):void 0})));return s.length?{handledMimeType:Dd.uriList,insertText:s.join(" "),label:ot(0,e.length>1?"Insert Relative Paths":"Insert Relative Path"),detail:W1}:void 0}};async function U1(t){const i=t.get(Dd.uriList);if(!i)return[];const e=await i.asString(),s=[];for(const t of m1.parse(e))try{s.push({uri:ms.parse(t),originalText:t})}catch(t){}return s}V1=P1([$1(0,ZO)],V1);let q1=class extends te{constructor(t,i){super(),this._register(t.documentOnDropEditProvider.register("*",new z1)),this._register(t.documentOnDropEditProvider.register("*",new H1)),this._register(t.documentOnDropEditProvider.register("*",new V1(i)))}};q1=P1([$1(0,xg),$1(1,ZO)],q1);let K1=class extends te{constructor(t,i){super(),this._register(t.documentPasteEditProvider.register("*",new z1)),this._register(t.documentPasteEditProvider.register("*",new H1)),this._register(t.documentPasteEditProvider.register("*",new V1(i)))}};K1=P1([$1(0,xg),$1(1,ZO)],K1),lu(N1.ID,N1,0),GH(K1),hu(new class extends eu{constructor(){super({id:O1,precondition:I1,kbOpts:{weight:100,primary:2137}})}runEditorCommand(t,i,e){var s;return null===(s=N1.get(i))||void 0===s?void 0:s.changePasteType()}}),cu(class extends su{constructor(){super({id:"editor.action.pasteAs",label:ot(0,"Paste As..."),alias:"Paste As...",precondition:void 0,metadata:{description:"Paste as",args:[{name:"args",schema:{type:"object",properties:{id:{type:"string",description:ot(0,"The id of the paste edit to try applying. If not provided, the editor will show a picker.")}}}}]}})}run(t,i,e){var s;const n="string"==typeof(null==e?void 0:e.id)?e.id:void 0;return null===(s=N1.get(i))||void 0===s?void 0:s.pasteAs(n)}});class G1{constructor(t){this.identifier=t}}const Z1=dr("treeViewsDndService");Cd(Z1,class{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(t){if(t&&this._dragOperations.has(t)){const i=this._dragOperations.get(t);return this._dragOperations.delete(t),i}}},1);var Q1,J1=function(t,i){return function(e,s){i(e,s,t)}};const Y1="editor.experimental.dropIntoEditor.defaultProvider",X1="editor.changeDropType",t2=new ch("dropWidgetVisible",!1,ot(0,"Whether the drop widget is showing"));let i2=Q1=class extends te{static get(t){return t.getContribution(Q1.ID)}constructor(t,i,e,s,n){super(),this._configService=e,this._languageFeaturesService=s,this._treeViewsDragAndDropService=n,this.treeItemsTransfer=w1.getInstance(),this._dropProgressManager=this._register(i.createInstance(D1,"dropIntoEditor",t)),this._postDropWidgetManager=this._register(i.createInstance(F1,"dropIntoEditor",t,t2,{id:X1,label:ot(0,"Show drop options...")})),this._register(t.onDropIntoEditor((i=>this.onDropIntoEditor(t,i.position,i.event))))}changeDropType(){this._postDropWidgetManager.tryShowSelector()}async onDropIntoEditor(t,i,e){var s;if(!e.dataTransfer||!t.hasModel())return;null===(s=this._currentOperation)||void 0===s||s.cancel(),t.focus(),t.setPosition(i);const n=nc((async s=>{const o=new CK(t,1,void 0,s);try{const n=await this.extractDataTransferData(e);if(0===n.size||o.token.isCancellationRequested)return;const r=t.getModel();if(!r)return;const h=this._languageFeaturesService.documentOnDropEditProvider.ordered(r).filter((t=>!t.dropMimeTypes||t.dropMimeTypes.some((t=>n.matches(t))))),c=await this.getDropEdits(h,r,i,n,o);if(o.token.isCancellationRequested)return;if(c.length){const e=this.getInitialActiveEditIndex(r,c),n="afterDrop"===t.getOption(36).showDropSelector;await this._postDropWidgetManager.applyEditAndShowIfNeeded([Ms.fromPositions(i)],{activeEditIndex:e,allEdits:c},n,s)}}finally{o.dispose(),this._currentOperation===n&&(this._currentOperation=void 0)}}));this._dropProgressManager.showWhile(i,ot(0,"Running drop handlers. Click to cancel"),n),this._currentOperation=n}async getDropEdits(t,i,e,s,n){const o=await oc(Promise.all(t.map((async t=>{try{const o=await t.provideDocumentOnDropEdits(i,e,s,n.token);if(o)return{...o,providerId:t.id}}catch(t){console.error(t)}}))),n.token);return x1(m(null!=o?o:[]))}getInitialActiveEditIndex(t,i){const e=this._configService.getValue(Y1,{resource:t.uri});for(const[t,s]of Object.entries(e)){const e=i.findIndex((i=>s===i.providerId&&i.handledMimeType&&p1(t,[i.handledMimeType])));if(e>=0)return e}return 0}async extractDataTransferData(t){if(!t.dataTransfer)return new d1;const i=k1(t.dataTransfer);if(this.treeItemsTransfer.hasData(G1.prototype)){const t=this.treeItemsTransfer.getData(G1.prototype);if(Array.isArray(t))for(const e of t){const t=await this._treeViewsDragAndDropService.removeDragOperationTransfer(e.identifier);if(t)for(const[e,s]of t)i.replace(e,s)}}return i}};i2.ID="editor.contrib.dropIntoEditorController",i2=Q1=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([J1(1,ur),J1(2,pd),J1(3,xg),J1(4,Z1)],i2),lu(i2.ID,i2,2),hu(new class extends eu{constructor(){super({id:X1,precondition:t2,kbOpts:{weight:100,primary:2137}})}runEditorCommand(t,i,e){var s;null===(s=i2.get(i))||void 0===s||s.changeDropType()}}),GH(q1),Dh.as(Md).registerConfiguration({...aO,properties:{[Y1]:{type:"object",scope:5,description:ot(0,"Configures the default drop provider to use for content of a given mime type."),default:{},additionalProperties:{type:"string"}}}});class e2{constructor(t){this._editor=t,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const t=this._findScopeDecorationIds.map((t=>this._editor.getModel().getDecorationRange(t))).filter((t=>!!t));if(t.length)return t}return null}getStartPosition(){return this._startPosition}setStartPosition(t){this._startPosition=t,this.setCurrentFindMatch(null)}_getDecorationIndex(t){const i=this._decorations.indexOf(t);return i>=0?i+1:1}getDecorationRangeAt(t){const i=t{if(null!==this._highlightedDecorationId&&(t.changeDecorationOptions(this._highlightedDecorationId,e2._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),null!==i&&(this._highlightedDecorationId=i,t.changeDecorationOptions(this._highlightedDecorationId,e2._CURRENT_FIND_MATCH_DECORATION)),null!==this._rangeHighlightDecorationId&&(t.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),null!==i){let e=this._editor.getModel().getDecorationRange(i);if(e.startLineNumber!==e.endLineNumber&&1===e.endColumn){const t=e.endLineNumber-1,i=this._editor.getModel().getLineMaxColumn(t);e=new Ms(e.startLineNumber,e.startColumn,t,i)}this._rangeHighlightDecorationId=t.addDecoration(e,e2._RANGE_HIGHLIGHT_DECORATION)}})),e}set(t,i){this._editor.changeDecorations((e=>{let s=e2._FIND_MATCH_DECORATION;const n=[];if(t.length>1e3){s=e2._FIND_MATCH_NO_OVERVIEW_DECORATION;const i=this._editor.getModel().getLineCount(),e=this._editor.getLayoutInfo().height,o=Math.max(2,Math.ceil(3/(e/i)));let r=t[0].range.startLineNumber,h=t[0].range.endLineNumber;for(let i=1,e=t.length;i=e.startLineNumber?e.endLineNumber>h&&(h=e.endLineNumber):(n.push({range:new Ms(r,1,h,1),options:e2._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),r=e.startLineNumber,h=e.endLineNumber)}n.push({range:new Ms(r,1,h,1),options:e2._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const o=new Array(t.length);for(let i=0,e=t.length;ie.removeDecoration(t))),this._findScopeDecorationIds=[]),(null==i?void 0:i.length)&&(this._findScopeDecorationIds=i.map((t=>e.addDecoration(t,e2._FIND_SCOPE_DECORATION))))}))}matchBeforePosition(t){if(0===this._decorations.length)return null;for(let i=this._decorations.length-1;i>=0;i--){const e=this._decorations[i],s=this._editor.getModel().getDecorationRange(e);if(s&&!(s.endLineNumber>t.lineNumber)){if(s.endLineNumbert.column))return s}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(t){if(0===this._decorations.length)return null;for(let i=0,e=this._decorations.length;it.lineNumber)return s;if(!(s.startColumn0){const t=[];for(let i=0;iMs.compareRangesUsingStarts(t.range,i.range)));const e=[];let s=t[0];for(let i=1;i0?i[0].toUpperCase()+i.substr(1):t[0][0].toUpperCase()!==t[0][0]&&i.length>0?i[0].toLowerCase()+i.substr(1):i}return i}function o2(t,i,e){return-1!==t[0].indexOf(e)&&-1!==i.indexOf(e)&&t[0].split(e).length===i.split(e).length}function r2(t,i,e){const s=i.split(e),n=t[0].split(e);let o="";return s.forEach(((t,i)=>{o+=n2([n[i]],t)+e})),o.slice(0,-1)}class h2{constructor(t){this.staticValue=t,this.kind=0}}class c2{constructor(t){this.pieces=t,this.kind=1}}class a2{static fromStaticValue(t){return new a2([l2.staticValue(t)])}get hasReplacementPatterns(){return 1===this._state.kind}constructor(t){this._state=t&&0!==t.length?1===t.length&&null!==t[0].staticValue?new h2(t[0].staticValue):new c2(t):new h2("")}buildReplaceString(t,i){if(0===this._state.kind)return i?n2(t,this._state.staticValue):this._state.staticValue;let e="";for(let i=0,s=this._state.pieces.length;i0){const t=[],i=s.caseOps.length;let e=0;for(let o=0,r=n.length;o=i){t.push(n.slice(o));break}switch(s.caseOps[e]){case"U":t.push(n[o].toUpperCase());break;case"u":t.push(n[o].toUpperCase()),e++;break;case"L":t.push(n[o].toLowerCase());break;case"l":t.push(n[o].toLowerCase()),e++;break;default:t.push(n[o])}}n=t.join("")}e+=n}return e}static _substitute(t,i){if(null===i)return"";if(0===t)return i[0];let e="";for(;t>0;){if(tthis.research(!1)),100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition((t=>{3!==t.reason&&5!==t.reason&&6!==t.reason||this._decorations.setStartPosition(this._editor.getPosition())}))),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent((t=>{this._ignoreModelContentChanged||(t.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())}))),this._toDispose.add(this._state.onFindReplaceStateChange((t=>this._onStateChanged(t)))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,Qi(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(t){!this._isDisposed&&this._editor.hasModel()&&(t.searchString||t.isReplaceRevealed||t.isRegex||t.wholeWord||t.matchCase||t.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet((()=>{t.searchScope?this.research(t.moveCursor,this._state.searchScope):this.research(t.moveCursor)}),240)):t.searchScope?this.research(t.moveCursor,this._state.searchScope):this.research(t.moveCursor))}static _getSearchRange(t,i){return i||t.getFullModelRange()}research(t,i){let e=null;void 0!==i?null!==i&&(e=Array.isArray(i)?i:[i]):e=this._decorations.getFindScopes(),null!==e&&(e=e.map((t=>{if(t.startLineNumber!==t.endLineNumber){let i=t.endLineNumber;return 1===t.endColumn&&(i-=1),new Ms(t.startLineNumber,1,i,this._editor.getModel().getLineMaxColumn(i))}return t})));const s=this._findMatches(e,!1,F2);this._decorations.set(s,e);const n=this._editor.getSelection();let o=this._decorations.getCurrentMatchesPosition(n);if(0===o&&s.length>0){const t=ap(s.map((t=>t.range)),(t=>Ms.compareRangesUsingStarts(t,n)>=0));o=t>0?t-1+1:o}this._state.changeMatchInfo(o,this._decorations.getCount(),void 0),t&&this._editor.getOption(41).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){const t=this._decorations.getFindScope();return t&&this._editor.revealRangeInCenterIfOutsideViewport(t,0),!0}return!1}_setCurrentFindMatch(t){const i=this._decorations.setCurrentFindMatch(t);this._state.changeMatchInfo(i,this._decorations.getCount(),t),this._editor.setSelection(t),this._editor.revealRangeInCenterIfOutsideViewport(t,0)}_prevSearchPosition(t){const i=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:e,column:s}=t;const n=this._editor.getModel();return i||1===s?(1===e?e=n.getLineCount():e--,s=n.getLineMaxColumn(e)):s--,new As(e,s)}_moveToPrevMatch(t,i=!1){if(!this._state.canNavigateBack()){const i=this._decorations.matchAfterPosition(t);return void(i&&this._setCurrentFindMatch(i))}if(this._decorations.getCount()=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:e,column:s}=t;const n=this._editor.getModel();return i||s===n.getLineMaxColumn(e)?(e===n.getLineCount()?e=1:e++,s=1):s++,new As(e,s)}_moveToNextMatch(t){if(!this._state.canNavigateForward()){const i=this._decorations.matchBeforePosition(t);return void(i&&this._setCurrentFindMatch(i))}if(this._decorations.getCount()=n)break;const o=t.charCodeAt(s);if(36===o){e.emitUnchanged(s-1),e.emitStatic("$",s+1);continue}if(48===o||38===o){e.emitUnchanged(s-1),e.emitMatchIndex(0,s+1,i),i.length=0;continue}if(49<=o&&o<=57){let r=o-48;if(s+1=n)break;const o=t.charCodeAt(s);switch(o){case 92:e.emitUnchanged(s-1),e.emitStatic("\\",s+1);break;case 110:e.emitUnchanged(s-1),e.emitStatic("\n",s+1);break;case 116:e.emitUnchanged(s-1),e.emitStatic("\t",s+1);break;case 117:case 85:case 108:case 76:e.emitUnchanged(s-1),e.emitStatic("",s+1),i.push(String.fromCharCode(o))}}}return e.finalize()}(this._state.replaceString):a2.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;const t=this._getReplacePattern(),i=this._editor.getSelection(),e=this._getNextMatch(i.getStartPosition(),!0,!1);if(e)if(i.equalsRange(e.range)){const s=t.buildReplaceString(e.matches,this._state.preserveCase),n=new xC(i,s);this._executeEditorCommand("replace",n),this._decorations.setStartPosition(new As(i.startLineNumber,i.startColumn+s.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(e.range)}_findMatches(t,i,e){const s=(t||[null]).map((t=>T2._getSearchRange(this._editor.getModel(),t)));return this._editor.getModel().findMatches(this._state.searchString,s,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(129):null,i,e)}replaceAll(){if(!this._hasMatches())return;const t=this._decorations.getFindScopes();null===t&&this._state.matchesCount>=F2?this._largeReplaceAll():this._regularReplaceAll(t),this.research(!1)}_largeReplaceAll(){const t=new Kf(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(129):null).parseSearchRequest();if(!t)return;let i=t.regex;if(!i.multiline){let t="mu";i.ignoreCase&&(t+="i"),i.global&&(t+="g"),i=new RegExp(i.source,t)}const e=this._editor.getModel(),s=e.getValue(1),n=e.getFullModelRange(),o=this._getReplacePattern();let r;const h=this._state.preserveCase;r=s.replace(i,o.hasReplacementPatterns||h?function(){return o.buildReplaceString(arguments,h)}:o.buildReplaceString(null,h));const c=new EC(n,r,this._editor.getSelection());this._executeEditorCommand("replaceAll",c)}_regularReplaceAll(t){const i=this._getReplacePattern(),e=this._findMatches(t,i.hasReplacementPatterns||this._state.preserveCase,1073741824),s=[];for(let t=0,n=e.length;tt.range)),s);this._executeEditorCommand("replaceAll",n)}selectAllMatches(){if(!this._hasMatches())return;const t=this._decorations.getFindScopes();let i=this._findMatches(t,!1,1073741824).map((t=>new Ls(t.range.startLineNumber,t.range.startColumn,t.range.endLineNumber,t.range.endColumn)));const e=this._editor.getSelection();for(let t=0,s=i.length;tthis._hide()),2e3)),this._isVisible=!1,this._editor=t,this._state=i,this._keybindingService=e,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.style.zIndex="12",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");const s={inputActiveOptionBorder:aw(Dw),inputActiveOptionForeground:aw(Aw),inputActiveOptionBackground:aw(Ew)};this.caseSensitive=this._register(new o$({appendTitle:this._keybindingLabelFor(C2),isChecked:this._state.matchCase,...s})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange((()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)}))),this.wholeWords=this._register(new r$({appendTitle:this._keybindingLabelFor(S2),isChecked:this._state.wholeWord,...s})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange((()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)}))),this.regex=this._register(new h$({appendTitle:this._keybindingLabelFor(D2),isChecked:this._state.isRegex,...s})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange((()=>{this._state.change({isRegex:this.regex.checked},!1)}))),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange((t=>{let i=!1;t.isRegex&&(this.regex.checked=this._state.isRegex,i=!0),t.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,i=!0),t.matchCase&&(this.caseSensitive.checked=this._state.matchCase,i=!0),!this._state.isRevealed&&i&&this._revealTemporarily()}))),this._register(Va(this._domNode,Ll.MOUSE_LEAVE,(()=>this._onMouseLeave()))),this._register(Va(this._domNode,"mouseover",(()=>this._onMouseOver())))}_keybindingLabelFor(t){const i=this._keybindingService.lookupKeybinding(t);return i?` (${i.getLabel()})`:""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return R2.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}}function O2(t,i){return 1===t||2!==t&&i}R2.ID="editor.contrib.findOptionsWidget";class I2 extends te{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return O2(this._isRegexOverride,this._isRegex)}get wholeWord(){return O2(this._wholeWordOverride,this._wholeWord)}get matchCase(){return O2(this._matchCaseOverride,this._matchCase)}get preserveCase(){return O2(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}constructor(){super(),this._onFindReplaceStateChange=this._register(new de),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(t,i,e){const s={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let n=!1;0===i&&(t=0),t>i&&(t=i),this._matchesPosition!==t&&(this._matchesPosition=t,s.matchesPosition=!0,n=!0),this._matchesCount!==i&&(this._matchesCount=i,s.matchesCount=!0,n=!0),void 0!==e&&(Ms.equalsRange(this._currentMatch,e)||(this._currentMatch=e,s.currentMatch=!0,n=!0)),n&&this._onFindReplaceStateChange.fire(s)}change(t,i,e=!0){var s;const n={moveCursor:i,updateHistory:e,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let o=!1;const r=this.isRegex,h=this.wholeWord,c=this.matchCase,a=this.preserveCase;void 0!==t.searchString&&this._searchString!==t.searchString&&(this._searchString=t.searchString,n.searchString=!0,o=!0),void 0!==t.replaceString&&this._replaceString!==t.replaceString&&(this._replaceString=t.replaceString,n.replaceString=!0,o=!0),void 0!==t.isRevealed&&this._isRevealed!==t.isRevealed&&(this._isRevealed=t.isRevealed,n.isRevealed=!0,o=!0),void 0!==t.isReplaceRevealed&&this._isReplaceRevealed!==t.isReplaceRevealed&&(this._isReplaceRevealed=t.isReplaceRevealed,n.isReplaceRevealed=!0,o=!0),void 0!==t.isRegex&&(this._isRegex=t.isRegex),void 0!==t.wholeWord&&(this._wholeWord=t.wholeWord),void 0!==t.matchCase&&(this._matchCase=t.matchCase),void 0!==t.preserveCase&&(this._preserveCase=t.preserveCase),void 0!==t.searchScope&&((null===(s=t.searchScope)||void 0===s?void 0:s.every((t=>{var i;return null===(i=this._searchScope)||void 0===i?void 0:i.some((i=>!Ms.equalsRange(i,t)))})))||(this._searchScope=t.searchScope,n.searchScope=!0,o=!0)),void 0!==t.loop&&this._loop!==t.loop&&(this._loop=t.loop,n.loop=!0,o=!0),void 0!==t.isSearching&&this._isSearching!==t.isSearching&&(this._isSearching=t.isSearching,n.isSearching=!0,o=!0),void 0!==t.filters&&(this._filters?this._filters.update(t.filters):this._filters=t.filters,n.filters=!0,o=!0),this._isRegexOverride=void 0!==t.isRegexOverride?t.isRegexOverride:0,this._wholeWordOverride=void 0!==t.wholeWordOverride?t.wholeWordOverride:0,this._matchCaseOverride=void 0!==t.matchCaseOverride?t.matchCaseOverride:0,this._preserveCaseOverride=void 0!==t.preserveCaseOverride?t.preserveCaseOverride:0,r!==this.isRegex&&(o=!0,n.isRegex=!0),h!==this.wholeWord&&(o=!0,n.wholeWord=!0),c!==this.matchCase&&(o=!0,n.matchCase=!0),a!==this.preserveCase&&(o=!0,n.preserveCase=!0),o&&this._onFindReplaceStateChange.fire(n)}canNavigateBack(){return this.canNavigateInLoop()||1!==this.matchesPosition}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition=F2}}const _2=ot(0,"input"),N2=ot(0,"Preserve Case");class B2 extends i${constructor(t){super({icon:Os.preserveCase,title:N2+t.appendTitle,isChecked:t.isChecked,inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionForeground:t.inputActiveOptionForeground,inputActiveOptionBackground:t.inputActiveOptionBackground})}}class P2 extends pk{constructor(t,i,e,s){super(),this._showOptionButtons=e,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new de),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new de),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new de),this._onInput=this._register(new de),this._onKeyUp=this._register(new de),this._onPreserveCaseKeyDown=this._register(new de),this.onPreserveCaseKeyDown=this._onPreserveCaseKeyDown.event,this.contextViewProvider=i,this.placeholder=s.placeholder||"",this.validation=s.validation,this.label=s.label||_2;const n=s.appendPreserveCaseLabel||"",o=s.history||[],r=!!s.flexibleHeight,h=!!s.flexibleWidth,c=s.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new d$(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:o,showHistoryHint:s.showHistoryHint,flexibleHeight:r,flexibleWidth:h,flexibleMaxHeight:c,inputBoxStyles:s.inputBoxStyles})),this.preserveCase=this._register(new B2({appendTitle:n,isChecked:!1,...s.toggleStyles})),this._register(this.preserveCase.onChange((t=>{this._onDidOptionChange.fire(t),!t&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()}))),this._register(this.preserveCase.onKeyDown((t=>{this._onPreserveCaseKeyDown.fire(t)}))),this.cachedOptionsWidth=this._showOptionButtons?this.preserveCase.width():0;const a=[this.preserveCase.domNode];this.onkeydown(this.domNode,(t=>{if(t.equals(15)||t.equals(17)||t.equals(9)){const i=a.indexOf(this.domNode.ownerDocument.activeElement);if(i>=0){let e=-1;t.equals(17)?e=(i+1)%a.length:t.equals(15)&&(e=0===i?a.length-1:i-1),t.equals(9)?(a[i].blur(),this.inputBox.focus()):e>=0&&a[e].focus(),Fl(t,!0)}}}));const l=document.createElement("div");l.className="controls",l.style.display=this._showOptionButtons?"block":"none",l.appendChild(this.preserveCase.domNode),this.domNode.appendChild(l),null==t||t.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,(t=>this._onKeyDown.fire(t))),this.onkeyup(this.inputBox.inputElement,(t=>this._onKeyUp.fire(t))),this.oninput(this.inputBox.inputElement,(()=>this._onInput.fire())),this.onmousedown(this.inputBox.inputElement,(t=>this._onMouseDown.fire(t)))}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(t){t?this.enable():this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(t){this.preserveCase.checked=t}focusOnPreserve(){this.preserveCase.focus()}validate(){var t;null===(t=this.inputBox)||void 0===t||t.validate()}set width(t){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=t+"px"}dispose(){super.dispose()}}var $2=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},W2=function(t,i){return function(e,s){i(e,s,t)}};const j2=new ch("suggestWidgetVisible",!1,ot(0,"Whether suggestion are visible")),z2="historyNavigationWidgetFocus",H2="historyNavigationForwardsEnabled",V2="historyNavigationBackwardsEnabled";let U2;const q2=[];function K2(t,i){if(q2.includes(i))throw new Error("Cannot register the same widget multiple times");q2.push(i);const e=new Xi,s=new ch(z2,!1).bindTo(t),n=new ch(H2,!0).bindTo(t),o=new ch(V2,!0).bindTo(t),r=()=>{s.set(!0),U2=i},h=()=>{s.set(!1),U2===i&&(U2=void 0)};return gl(i.element)&&r(),e.add(i.onDidFocus((()=>r()))),e.add(i.onDidBlur((()=>h()))),e.add(Yi((()=>{q2.splice(q2.indexOf(i),1),h()}))),{historyNavigationForwardsEnablement:n,historyNavigationBackwardsEnablement:o,dispose(){e.dispose()}}}let G2=class extends p${constructor(t,i,e,s){super(t,i,e);const n=this._register(s.createScoped(this.inputBox.element));this._register(K2(n,this.inputBox))}};G2=$2([W2(3,ah)],G2);let Z2=class extends P2{constructor(t,i,e,s,n=!1){super(t,i,n,e);const o=this._register(s.createScoped(this.inputBox.element));this._register(K2(o,this.inputBox))}};function Q2(t){var i,e;return"Up"===(null===(i=t.lookupKeybinding("history.showPrevious"))||void 0===i?void 0:i.getElectronAccelerator())&&"Down"===(null===(e=t.lookupKeybinding("history.showNext"))||void 0===e?void 0:e.getElectronAccelerator())}Z2=$2([W2(3,ah)],Z2),Ah.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:zr.and(zr.has(z2),zr.equals(V2,!0),zr.not("isComposing"),j2.isEqualTo(!1)),primary:16,secondary:[528],handler:()=>{null==U2||U2.showPreviousValue()}}),Ah.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:zr.and(zr.has(z2),zr.equals(H2,!0),zr.not("isComposing"),j2.isEqualTo(!1)),primary:18,secondary:[530],handler:()=>{null==U2||U2.showNextValue()}});const J2=Hz("find-selection",Os.selection,ot(0,"Icon for 'Find in Selection' in the editor find widget.")),Y2=Hz("find-collapsed",Os.chevronRight,ot(0,"Icon to indicate that the editor find widget is collapsed.")),X2=Hz("find-expanded",Os.chevronDown,ot(0,"Icon to indicate that the editor find widget is expanded.")),t4=Hz("find-replace",Os.replace,ot(0,"Icon for 'Replace' in the editor find widget.")),i4=Hz("find-replace-all",Os.replaceAll,ot(0,"Icon for 'Replace All' in the editor find widget.")),e4=Hz("find-previous-match",Os.arrowUp,ot(0,"Icon for 'Find Previous' in the editor find widget.")),s4=Hz("find-next-match",Os.arrowDown,ot(0,"Icon for 'Find Next' in the editor find widget.")),n4=ot(0,"Find / Replace"),o4=ot(0,"Find"),r4=ot(0,"Find"),h4=ot(0,"Previous Match"),c4=ot(0,"Next Match"),a4=ot(0,"Find in Selection"),l4=ot(0,"Close"),u4=ot(0,"Replace"),d4=ot(0,"Replace"),f4=ot(0,"Replace"),p4=ot(0,"Replace All"),g4=ot(0,"Toggle Replace"),m4=ot(0,"Only the first {0} results are highlighted, but all find operations work on the entire text.",F2),w4=ot(0,"{0} of {1}"),v4=ot(0,"No results"),b4=419;let y4=69;const k4="ctrlEnterReplaceAll.windows.donotask",x4=Ct?256:2048;class C4{constructor(t){this.afterLineNumber=t,this.heightInPx=33,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function S4(t,i,e){const s=!!i.match(/\n/);e&&s&&e.selectionStart>0&&t.stopPropagation()}function D4(t,i,e){const s=!!i.match(/\n/);e&&s&&e.selectionEndthis._updateHistoryDelayer.cancel()))),this._register(this._state.onFindReplaceStateChange((t=>this._onStateChanged(t)))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration((t=>{if(t.hasChanged(90)&&(this._codeEditor.getOption(90)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),t.hasChanged(143)&&this._tryUpdateWidgetWidth(),t.hasChanged(2)&&this.updateAccessibilitySupport(),t.hasChanged(41)){const t=this._codeEditor.getOption(41).loop;this._state.change({loop:t},!1);const i=this._codeEditor.getOption(41).addExtraSpaceOnTop;i&&!this._viewZone&&(this._viewZone=new C4(0),this._showViewZone()),!i&&this._viewZone&&this._removeViewZone()}}))),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection((()=>{this._isVisible&&this._updateToggleSelectionFindButton()}))),this._register(this._codeEditor.onDidFocusEditorWidget((async()=>{if(this._isVisible){const t=await this._controller.getGlobalBufferTerm();t&&t!==this._state.searchString&&(this._state.change({searchString:t},!1),this._findInput.select())}}))),this._findInputFocused=f2.bindTo(o),this._findFocusTracker=this._register(Rl(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus((()=>{this._findInputFocused.set(!0),this._updateSearchScope()}))),this._register(this._findFocusTracker.onDidBlur((()=>{this._findInputFocused.set(!1)}))),this._replaceInputFocused=p2.bindTo(o),this._replaceFocusTracker=this._register(Rl(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus((()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()}))),this._register(this._replaceFocusTracker.onDidBlur((()=>{this._replaceInputFocused.set(!1)}))),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(41).addExtraSpaceOnTop&&(this._viewZone=new C4(0)),this._register(this._codeEditor.onDidChangeModel((()=>{this._isVisible&&(this._viewZoneId=void 0)}))),this._register(this._codeEditor.onDidScrollChange((t=>{t.scrollTopChanged?this._layoutViewZone():setTimeout((()=>{this._layoutViewZone()}),0)})))}getId(){return E4.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(t){if(t.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}t.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),t.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),t.isReplaceRevealed&&(this._state.isReplaceRevealed?this._codeEditor.getOption(90)||this._isReplaceVisible||(this._isReplaceVisible=!0,this._replaceInput.width=ol(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(t.isRevealed||t.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),t.isRegex&&this._findInput.setRegex(this._state.isRegex),t.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),t.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),t.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),t.searchScope&&(this._toggleSelectionFind.checked=!!this._state.searchScope,this._updateToggleSelectionFindButton()),(t.searchString||t.matchesCount||t.matchesPosition)&&(this._domNode.classList.toggle("no-results",this._state.searchString.length>0&&0===this._state.matchesCount),this._updateMatchesCount(),this._updateButtons()),(t.searchString||t.currentMatch)&&this._layoutViewZone(),t.updateHistory&&this._delayedUpdateHistory(),t.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,Bi)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){let t;if(this._matchesCount.style.minWidth=y4+"px",this._matchesCount.title=this._state.matchesCount>=F2?m4:"",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild),this._state.matchesCount>0){let i=String(this._state.matchesCount);this._state.matchesCount>=F2&&(i+="+");let e=String(this._state.matchesPosition);"0"===e&&(e="?"),t=qn(w4,e,i)}else t=v4;this._matchesCount.appendChild(document.createTextNode(t)),Pm(this._getAriaLabel(t,this._state.currentMatch,this._state.searchString)),y4=Math.max(y4,this._matchesCount.clientWidth)}_getAriaLabel(t,i,e){if(t===v4)return""===e?ot(0,"{0} found",t):ot(0,"{0} found for '{1}'",t,e);if(i){const s=ot(0,"{0} found for '{1}', at {2}",t,e,i.startLineNumber+":"+i.startColumn),n=this._codeEditor.getModel();return n&&i.startLineNumber<=n.getLineCount()&&i.startLineNumber>=1?`${n.getLineContent(i.startLineNumber)}, ${s}`:s}return ot(0,"{0} found for '{1}'",t,e)}_updateToggleSelectionFindButton(){const t=this._codeEditor.getSelection();this._isVisible&&(this._toggleSelectionFind.checked||t&&(t.startLineNumber!==t.endLineNumber||t.startColumn!==t.endColumn))?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);const t=this._state.searchString.length>0,i=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&t&&i&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&t&&i&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&t),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&t),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);const e=!this._codeEditor.getOption(90);this._toggleReplaceBtn.setEnabled(this._isVisible&&e)}_reveal(){if(this._revealTimeouts.forEach((t=>{clearTimeout(t)})),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const t=this._codeEditor.getSelection();switch(this._codeEditor.getOption(41).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":this._toggleSelectionFind.checked=!!t&&t.startLineNumber!==t.endLineNumber}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout((()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false")}),0)),this._revealTimeouts.push(setTimeout((()=>{this._findInput.validate()}),200)),this._codeEditor.layoutOverlayWidget(this);let i=!0;if(this._codeEditor.getOption(41).seedSearchStringFromSelection&&t){const e=this._codeEditor.getDomNode();if(e){const s=nl(e),n=this._codeEditor.getScrolledVisiblePosition(t.getStartPosition()),o=s.left+(n?n.left:0);if(this._viewZone&&(n?n.top:0)t.startLineNumber&&(i=!1);const e=sl(this._domNode).left;o>e&&(i=!1);const n=this._codeEditor.getScrolledVisiblePosition(t.getEndPosition());s.left+(n?n.left:0)>e&&(i=!1)}}}this._showViewZone(i)}}_hide(t){this._revealTimeouts.forEach((t=>{clearTimeout(t)})),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),t&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(t){if(!this._codeEditor.getOption(41).addExtraSpaceOnTop)return void this._removeViewZone();if(!this._isVisible)return;const i=this._viewZone;void 0===this._viewZoneId&&i&&this._codeEditor.changeViewZones((e=>{i.heightInPx=this._getHeight(),this._viewZoneId=e.addZone(i),this._codeEditor.setScrollTop(t||this._codeEditor.getScrollTop()+i.heightInPx)}))}_showViewZone(t=!0){if(!this._isVisible)return;if(!this._codeEditor.getOption(41).addExtraSpaceOnTop)return;void 0===this._viewZone&&(this._viewZone=new C4(0));const i=this._viewZone;this._codeEditor.changeViewZones((e=>{if(void 0!==this._viewZoneId){const s=this._getHeight();if(s===i.heightInPx)return;const n=s-i.heightInPx;return i.heightInPx=s,e.layoutZone(this._viewZoneId),void(t&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+n))}{let s=this._getHeight();if(s-=this._codeEditor.getOption(83).top,s<=0)return;i.heightInPx=s,this._viewZoneId=e.addZone(i),t&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+s)}}))}_removeViewZone(){this._codeEditor.changeViewZones((t=>{void 0!==this._viewZoneId&&(t.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))}))}_tryUpdateWidgetWidth(){if(!this._isVisible)return;if(!this._domNode.isConnected)return;const t=this._codeEditor.getLayoutInfo();if(t.contentWidth<=0)return void this._domNode.classList.add("hiddenEditor");this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");const i=t.width,e=t.minimap.minimapWidth;let s=!1,n=!1,o=!1;if(this._resized&&ol(this._domNode)>b4)return this._domNode.style.maxWidth=i-28-e-15+"px",void(this._replaceInput.width=ol(this._findInput.domNode));if(447+e>=i&&(n=!0),447+e-y4>=i&&(o=!0),447+e-y4>=i+50&&(s=!0),this._domNode.classList.toggle("collapsed-find-widget",s),this._domNode.classList.toggle("narrow-find-widget",o),this._domNode.classList.toggle("reduced-find-widget",n),o||s||(this._domNode.style.maxWidth=i-28-e-15+"px"),this._findInput.layout({collapsedFindWidget:s,narrowFindWidget:o,reducedFindWidget:n}),this._resized){const t=this._findInput.inputBox.element.clientWidth;t>0&&(this._replaceInput.width=t)}else this._isReplaceVisible&&(this._replaceInput.width=ol(this._findInput.domNode))}_getHeight(){let t=0;return t+=4,t+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(t+=4,t+=this._replaceInput.inputBox.height+2),t+=4,t}_tryUpdateHeight(){const t=this._getHeight();return(null===this._cachedHeight||this._cachedHeight!==t)&&(this._cachedHeight=t,this._domNode.style.height=`${t}px`,!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){const t=this._codeEditor.getSelections();t.map((t=>(1===t.endColumn&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.startLineNumber===t.endLineNumber||Ms.equalsRange(t,this._state.currentMatch)?null:t))).filter((t=>!!t)),t.length&&this._state.change({searchScope:t},!0)}}_onFindInputMouseDown(t){t.middleButton&&t.stopPropagation()}_onFindInputKeyDown(t){return t.equals(3|x4)?(this._keybindingService.dispatchEvent(t,t.target)||this._findInput.inputBox.insertAtCursor("\n"),void t.preventDefault()):t.equals(2)?(this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),void t.preventDefault()):t.equals(2066)?(this._codeEditor.focus(),void t.preventDefault()):t.equals(16)?S4(t,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):t.equals(18)?D4(t,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):void 0}_onReplaceInputKeyDown(t){return t.equals(3|x4)?(this._keybindingService.dispatchEvent(t,t.target)||(xt&&Dt&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(ot(0,"Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.")),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(k4,!0,0,0)),this._replaceInput.inputBox.insertAtCursor("\n")),void t.preventDefault()):t.equals(2)?(this._findInput.focusOnCaseSensitive(),void t.preventDefault()):t.equals(1026)?(this._findInput.focus(),void t.preventDefault()):t.equals(2066)?(this._codeEditor.focus(),void t.preventDefault()):t.equals(16)?S4(t,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):t.equals(18)?D4(t,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):void 0}getVerticalSashLeft(t){return 0}_keybindingLabelFor(t){const i=this._keybindingService.lookupKeybinding(t);return i?` (${i.getLabel()})`:""}_buildDomNode(){const t=!0,i=!0;this._findInput=this._register(new G2(null,this._contextViewProvider,{width:221,label:o4,placeholder:r4,appendCaseSensitiveLabel:this._keybindingLabelFor(C2),appendWholeWordsLabel:this._keybindingLabelFor(S2),appendRegexLabel:this._keybindingLabelFor(D2),validation:t=>{if(0===t.length||!this._findInput.getRegex())return null;try{return null}catch(t){return{content:t.message}}},flexibleHeight:t,flexibleWidth:i,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>Q2(this._keybindingService),inputBoxStyles:IB,toggleStyles:OB},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown((t=>this._onFindInputKeyDown(t)))),this._register(this._findInput.inputBox.onDidChange((()=>{this._ignoreChangeEvent||this._state.change({searchString:this._findInput.getValue()},!0)}))),this._register(this._findInput.onDidOptionChange((()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)}))),this._register(this._findInput.onCaseSensitiveKeyDown((t=>{t.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),t.preventDefault())}))),this._register(this._findInput.onRegexKeyDown((t=>{t.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),t.preventDefault())}))),this._register(this._findInput.inputBox.onDidHeightChange((()=>{this._tryUpdateHeight()&&this._showViewZone()}))),St&&this._register(this._findInput.onMouseDown((t=>this._onFindInputMouseDown(t)))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount(),this._prevBtn=this._register(new A4({label:h4+this._keybindingLabelFor(k2),icon:e4,onTrigger:()=>{K(this._codeEditor.getAction(k2)).run().then(void 0,Bi)}})),this._nextBtn=this._register(new A4({label:c4+this._keybindingLabelFor(y2),icon:s4,onTrigger:()=>{K(this._codeEditor.getAction(y2)).run().then(void 0,Bi)}}));const e=document.createElement("div");e.className="find-part",e.appendChild(this._findInput.domNode);const s=document.createElement("div");s.className="find-actions",e.appendChild(s),s.appendChild(this._matchesCount),s.appendChild(this._prevBtn.domNode),s.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new i$({icon:J2,title:a4+this._keybindingLabelFor(E2),isChecked:!1,inputActiveOptionBackground:aw(Ew),inputActiveOptionBorder:aw(Dw),inputActiveOptionForeground:aw(Aw)})),this._register(this._toggleSelectionFind.onChange((()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){const t=this._codeEditor.getSelections();t.map((t=>(1===t.endColumn&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()?null:t))).filter((t=>!!t)),t.length&&this._state.change({searchScope:t},!0)}}else this._state.change({searchScope:null},!0)}))),s.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new A4({label:l4+this._keybindingLabelFor(x2),icon:Gz,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:t=>{t.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),t.preventDefault())}})),this._replaceInput=this._register(new Z2(null,void 0,{label:u4,placeholder:d4,appendPreserveCaseLabel:this._keybindingLabelFor(A2),history:[],flexibleHeight:t,flexibleWidth:i,flexibleMaxHeight:118,showHistoryHint:()=>Q2(this._keybindingService),inputBoxStyles:IB,toggleStyles:OB},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown((t=>this._onReplaceInputKeyDown(t)))),this._register(this._replaceInput.inputBox.onDidChange((()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)}))),this._register(this._replaceInput.inputBox.onDidHeightChange((()=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()}))),this._register(this._replaceInput.onDidOptionChange((()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)}))),this._register(this._replaceInput.onPreserveCaseKeyDown((t=>{t.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),t.preventDefault())}))),this._replaceBtn=this._register(new A4({label:f4+this._keybindingLabelFor(M2),icon:t4,onTrigger:()=>{this._controller.replace()},onKeyDown:t=>{t.equals(1026)&&(this._closeBtn.focus(),t.preventDefault())}})),this._replaceAllBtn=this._register(new A4({label:p4+this._keybindingLabelFor(L2),icon:i4,onTrigger:()=>{this._controller.replaceAll()}}));const n=document.createElement("div");n.className="replace-part",n.appendChild(this._replaceInput.domNode);const o=document.createElement("div");o.className="replace-actions",n.appendChild(o),o.appendChild(this._replaceBtn.domNode),o.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new A4({label:g4,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=ol(this._findInput.domNode),this._replaceInput.inputBox.layout()),this._showViewZone()}})),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.ariaLabel=n4,this._domNode.role="dialog",this._domNode.style.width="419px",this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(e),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(n),this._resizeSash=new VP(this._domNode,this,{orientation:0,size:2}),this._resized=!1;let r=b4;this._register(this._resizeSash.onDidStart((()=>{r=ol(this._domNode)}))),this._register(this._resizeSash.onDidChange((t=>{this._resized=!0;const i=r+t.startX-t.currentX;i(parseFloat(Xa(this._domNode).maxWidth)||0)||(this._domNode.style.width=`${i}px`,this._isReplaceVisible&&(this._replaceInput.width=ol(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())}))),this._register(this._resizeSash.onDidReset((()=>{const t=ol(this._domNode);if(t{this._opts.onTrigger(),t.preventDefault()})),this.onkeydown(this._domNode,(t=>{var i,e;if(t.equals(10)||t.equals(3))return this._opts.onTrigger(),void t.preventDefault();null===(e=(i=this._opts).onKeyDown)||void 0===e||e.call(i,t)}))}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(t){this._domNode.classList.toggle("disabled",!t),this._domNode.setAttribute("aria-disabled",String(!t)),this._domNode.tabIndex=t?0:-1}setExpanded(t){this._domNode.setAttribute("aria-expanded",String(!!t)),t?(this._domNode.classList.remove(...Cr.asClassNameArray(Y2)),this._domNode.classList.add(...Cr.asClassNameArray(X2))):(this._domNode.classList.remove(...Cr.asClassNameArray(X2)),this._domNode.classList.add(...Cr.asClassNameArray(Y2)))}}nx(((t,i)=>{const e=(t,e)=>{e&&i.addRule(`.monaco-editor ${t} { background-color: ${e}; }`)};e(".findMatch",t.getColor(Lv)),e(".currentFindMatch",t.getColor(Mv)),e(".findScope",t.getColor(Fv)),e(".find-widget",t.getColor(uv));const s=t.getColor(yw);s&&i.addRule(`.monaco-editor .find-widget { box-shadow: 0 0 8px 2px ${s}; }`);const n=t.getColor(kw);n&&i.addRule(`.monaco-editor .find-widget { border-left: 1px solid ${n}; border-right: 1px solid ${n}; border-bottom: 1px solid ${n}; }`);const o=t.getColor(Rv);o&&i.addRule(`.monaco-editor .findMatch { border: 1px ${zy(t.type)?"dotted":"solid"} ${o}; box-sizing: border-box; }`);const r=t.getColor(Tv);r&&i.addRule(`.monaco-editor .currentFindMatch { border: 2px solid ${r}; padding: 1px; box-sizing: border-box; }`);const h=t.getColor(Ov);h&&i.addRule(`.monaco-editor .findScope { border: 1px ${zy(t.type)?"dashed":"solid"} ${h}; }`);const c=t.getColor(ww);c&&i.addRule(`.monaco-editor .find-widget { border: 1px solid ${c}; }`);const a=t.getColor(dv);a&&i.addRule(`.monaco-editor .find-widget { color: ${a}; }`);const l=t.getColor(pw);l&&i.addRule(`.monaco-editor .find-widget.no-results .matchesCount { color: ${l}; }`);const u=t.getColor(pv);if(u)i.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${u}; }`);else{const e=t.getColor(fv);e&&i.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${e}; }`)}const d=t.getColor(Nb);d&&i.addRule(`\n\t\t.monaco-editor .find-widget .button:not(.disabled):hover,\n\t\t.monaco-editor .find-widget .codicon-find-selection:hover {\n\t\t\tbackground-color: ${d} !important;\n\t\t}\n\t`);const f=t.getColor(mw);f&&i.addRule(`.monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: ${f}; }`)}));var M4,L4=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},F4=function(t,i){return function(e,s){i(e,s,t)}};function T4(t,i="single",e=!1){if(!t.hasModel())return null;const s=t.getSelection();if("single"===i&&s.startLineNumber===s.endLineNumber||"multiple"===i)if(s.isEmpty()){const i=t.getConfiguredWordAtPosition(s.getStartPosition());if(i&&!1===e)return i.word}else if(t.getModel().getValueLengthInRange(s)<524288)return t.getModel().getValueInRange(s);return null}let R4=M4=class extends te{get editor(){return this._editor}static get(t){return t.getContribution(M4.ID)}constructor(t,i,e,s,n){super(),this._editor=t,this._findWidgetVisible=d2.bindTo(i),this._contextKeyService=i,this._storageService=e,this._clipboardService=s,this._notificationService=n,this._updateHistoryDelayer=new hc(500),this._state=this._register(new I2),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange((t=>this._onStateChanged(t)))),this._model=null,this._register(this._editor.onDidChangeModel((()=>{const t=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),t&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(41).loop})})))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(t){this.saveQueryState(t),t.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),t.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(t){t.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1),t.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1),t.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1),t.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,1)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!f2.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){const t=this._editor.getSelections();t.map((t=>(1===t.endColumn&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._editor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()?null:t))).filter((t=>!!t)),t.length&&this._state.change({searchScope:t},!0)}}setSearchString(t){this._state.isRegex&&(t=Gn(t)),this._state.change({searchString:t},!1)}highlightFindOptions(t=!1){}async _start(t,i){if(this.disposeModel(),!this._editor.hasModel())return;const e={...i,isRevealed:!0};if("single"===t.seedSearchStringFromSelection){const i=T4(this._editor,t.seedSearchStringFromSelection,t.seedSearchStringFromNonEmptySelection);i&&(e.searchString=this._state.isRegex?Gn(i):i)}else if("multiple"===t.seedSearchStringFromSelection&&!t.updateSearchScope){const i=T4(this._editor,t.seedSearchStringFromSelection);i&&(e.searchString=i)}if(!e.searchString&&t.seedSearchStringFromGlobalClipboard){const t=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;t&&(e.searchString=t)}if(t.forceRevealReplace||e.isReplaceRevealed?e.isReplaceRevealed=!0:this._findWidgetVisible.get()||(e.isReplaceRevealed=!1),t.updateSearchScope){const t=this._editor.getSelections();t.some((t=>!t.isEmpty()))&&(e.searchScope=t)}e.loop=t.loop,this._state.change(e,!1),this._model||(this._model=new T2(this._editor,this._state))}start(t,i){return this._start(t,i)}moveToNextMatch(){return!!this._model&&(this._model.moveToNextMatch(),!0)}moveToPrevMatch(){return!!this._model&&(this._model.moveToPrevMatch(),!0)}goToMatch(t){return!!this._model&&(this._model.moveToMatch(t),!0)}replace(){return!!this._model&&(this._model.replace(),!0)}replaceAll(){var t;return!!this._model&&((null===(t=this._editor.getModel())||void 0===t?void 0:t.isTooLargeForHeapOperation())?(this._notificationService.warn(ot(0,"The file is too large to perform a replace all operation.")),!1):(this._model.replaceAll(),!0))}selectAllMatches(){return!!this._model&&(this._model.selectAllMatches(),this._editor.focus(),!0)}async getGlobalBufferTerm(){return this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""}setGlobalBufferTerm(t){this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(t)}};R4.ID="editor.contrib.findController",R4=M4=L4([F4(1,ah),F4(2,AB),F4(3,yH),F4(4,oT)],R4);let O4=class extends R4{constructor(t,i,e,s,n,o,r,h){super(t,e,r,h,o),this._contextViewService=i,this._keybindingService=s,this._themeService=n,this._widget=null,this._findOptionsWidget=null}async _start(t,i){this._widget||this._createFindWidget();const e=this._editor.getSelection();let s=!1;switch(this._editor.getOption(41).autoFindInSelection){case"always":s=!0;break;case"never":s=!1;break;case"multiline":s=!!e&&e.startLineNumber!==e.endLineNumber}t.updateSearchScope=t.updateSearchScope||s,await super._start(t,i),this._widget&&(2===t.shouldFocus?this._widget.focusReplaceInput():1===t.shouldFocus&&this._widget.focusFindInput())}highlightFindOptions(t=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!t?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new E4(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService)),this._findOptionsWidget=this._register(new R2(this._editor,this._state,this._keybindingService))}};O4=L4([F4(1,aI),F4(2,ah),F4(3,oC),F4(4,Xk),F4(5,oT),F4(6,AB),F4(7,yH)],O4),au(new nu({id:"actions.find",label:ot(0,"Find"),alias:"Find",precondition:zr.or(YC.focus,zr.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:Rh.MenubarEditMenu,group:"3_find",title:ot(0,"&&Find"),order:1}})).addImplementation(0,((t,i)=>{const e=R4.get(i);return!!e&&e.start({forceRevealReplace:!1,seedSearchStringFromSelection:"never"!==i.getOption(41).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===i.getOption(41).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:i.getOption(41).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:i.getOption(41).loop})}));const I4={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},regex:{type:"boolean"},regexOverride:{type:"number",description:ot(0,'Overrides "Use Regular Expression" flag.\nThe flag will not be saved for the future.\n0: Do Nothing\n1: True\n2: False')},wholeWord:{type:"boolean"},wholeWordOverride:{type:"number",description:ot(0,'Overrides "Match Whole Word" flag.\nThe flag will not be saved for the future.\n0: Do Nothing\n1: True\n2: False')},matchCase:{type:"boolean"},matchCaseOverride:{type:"number",description:ot(0,'Overrides "Math Case" flag.\nThe flag will not be saved for the future.\n0: Do Nothing\n1: True\n2: False')},preserveCase:{type:"boolean"},preserveCaseOverride:{type:"number",description:ot(0,'Overrides "Preserve Case" flag.\nThe flag will not be saved for the future.\n0: Do Nothing\n1: True\n2: False')},findInSelection:{type:"boolean"}}}}]};class _4 extends su{async run(t,i){const e=R4.get(i);e&&!this._run(e)&&(await e.start({forceRevealReplace:!1,seedSearchStringFromSelection:0===e.getState().searchString.length&&"never"!==i.getOption(41).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===i.getOption(41).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:i.getOption(41).loop}),this._run(e))}}class N4 extends su{async run(t,i){const e=R4.get(i);if(!e)return;const s=T4(i,"single",!1);s&&e.setSearchString(s),this._run(e)||(await e.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:i.getOption(41).loop}),this._run(e))}}au(new nu({id:"editor.action.startFindReplaceAction",label:ot(0,"Replace"),alias:"Replace",precondition:zr.or(YC.focus,zr.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:Rh.MenubarEditMenu,group:"3_find",title:ot(0,"&&Replace"),order:2}})).addImplementation(0,((t,i)=>{if(!i.hasModel()||i.getOption(90))return!1;const e=R4.get(i);if(!e)return!1;const s=i.getSelection(),n=e.isFindInputFocused(),o=!s.isEmpty()&&s.startLineNumber===s.endLineNumber&&"never"!==i.getOption(41).seedSearchStringFromSelection&&!n,r=n||o?2:1;return e.start({forceRevealReplace:!0,seedSearchStringFromSelection:o?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===i.getOption(41).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:"never"!==i.getOption(41).seedSearchStringFromSelection,shouldFocus:r,shouldAnimate:!0,updateSearchScope:!1,loop:i.getOption(41).loop})})),lu(R4.ID,O4,0),cu(class extends su{constructor(){super({id:"editor.actions.findWithArgs",label:ot(0,"Find With Arguments"),alias:"Find With Arguments",precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:I4})}async run(t,i,e){const s=R4.get(i);if(s){const t=e?{searchString:e.searchString,replaceString:e.replaceString,isReplaceRevealed:void 0!==e.replaceString,isRegex:e.isRegex,wholeWord:e.matchWholeWord,matchCase:e.isCaseSensitive,preserveCase:e.preserveCase}:{};await s.start({forceRevealReplace:!1,seedSearchStringFromSelection:0===s.getState().searchString.length&&"never"!==i.getOption(41).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===i.getOption(41).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:(null==e?void 0:e.findInSelection)||!1,loop:i.getOption(41).loop},t),s.setGlobalBufferTerm(s.getState().searchString)}}}),cu(class extends su{constructor(){super({id:"actions.findWithSelection",label:ot(0,"Find With Selection"),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(t,i){const e=R4.get(i);e&&(await e.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:i.getOption(41).loop}),e.setGlobalBufferTerm(e.getState().searchString))}}),cu(class extends _4{constructor(){super({id:y2,label:ot(0,"Find Next"),alias:"Find Next",precondition:void 0,kbOpts:[{kbExpr:YC.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:zr.and(YC.focus,f2),primary:3,weight:100}]})}_run(t){return!!t.moveToNextMatch()&&(t.editor.pushUndoStop(),!0)}}),cu(class extends _4{constructor(){super({id:k2,label:ot(0,"Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:[{kbExpr:YC.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:zr.and(YC.focus,f2),primary:1027,weight:100}]})}_run(t){return t.moveToPrevMatch()}}),cu(class extends su{constructor(){super({id:"editor.action.goToMatchFindAction",label:ot(0,"Go to Match..."),alias:"Go to Match...",precondition:d2}),this._highlightDecorations=[]}run(t,i,e){const s=R4.get(i);if(!s)return;const n=s.getState().matchesCount;if(n<1)return void t.get(oT).notify({severity:nT.Warning,message:ot(0,"No matches. Try searching for something else.")});const o=t.get(Oj).createInputBox();o.placeholder=ot(0,"Type a number to go to a specific match (between 1 and {0})",n);const r=t=>{const i=parseInt(t);if(isNaN(i))return;const e=s.getState().matchesCount;return i>0&&i<=e?i-1:i<0&&i>=-e?e+i:void 0},h=t=>{const e=r(t);if("number"==typeof e){o.validationMessage=void 0,s.goToMatch(e);const t=s.getState().currentMatch;t&&this.addDecorations(i,t)}else o.validationMessage=ot(0,"Please type a number between 1 and {0}",s.getState().matchesCount),this.clearDecorations(i)};o.onDidChangeValue((t=>{h(t)})),o.onDidAccept((()=>{const t=r(o.value);"number"==typeof t?(s.goToMatch(t),o.hide()):o.validationMessage=ot(0,"Please type a number between 1 and {0}",s.getState().matchesCount)})),o.onDidHide((()=>{this.clearDecorations(i),o.dispose()})),o.show()}clearDecorations(t){t.changeDecorations((t=>{this._highlightDecorations=t.deltaDecorations(this._highlightDecorations,[])}))}addDecorations(t,i){t.changeDecorations((t=>{this._highlightDecorations=t.deltaDecorations(this._highlightDecorations,[{range:i,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:i,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:tx(Rx),position:_f.Full}}}])}))}}),cu(class extends N4{constructor(){super({id:"editor.action.nextSelectionMatchFindAction",label:ot(0,"Find Next Selection"),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:2109,weight:100}})}_run(t){return t.moveToNextMatch()}}),cu(class extends N4{constructor(){super({id:"editor.action.previousSelectionMatchFindAction",label:ot(0,"Find Previous Selection"),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:3133,weight:100}})}_run(t){return t.moveToPrevMatch()}});const B4=eu.bindToContribution(R4.get);hu(new B4({id:x2,precondition:d2,handler:t=>t.closeFindWidget(),kbOpts:{weight:105,kbExpr:zr.and(YC.focus,zr.not("isComposing")),primary:9,secondary:[1033]}})),hu(new B4({id:C2,precondition:void 0,handler:t=>t.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:YC.focus,primary:g2.primary,mac:g2.mac,win:g2.win,linux:g2.linux}})),hu(new B4({id:S2,precondition:void 0,handler:t=>t.toggleWholeWords(),kbOpts:{weight:105,kbExpr:YC.focus,primary:m2.primary,mac:m2.mac,win:m2.win,linux:m2.linux}})),hu(new B4({id:D2,precondition:void 0,handler:t=>t.toggleRegex(),kbOpts:{weight:105,kbExpr:YC.focus,primary:w2.primary,mac:w2.mac,win:w2.win,linux:w2.linux}})),hu(new B4({id:E2,precondition:void 0,handler:t=>t.toggleSearchScope(),kbOpts:{weight:105,kbExpr:YC.focus,primary:v2.primary,mac:v2.mac,win:v2.win,linux:v2.linux}})),hu(new B4({id:A2,precondition:void 0,handler:t=>t.togglePreserveCase(),kbOpts:{weight:105,kbExpr:YC.focus,primary:b2.primary,mac:b2.mac,win:b2.win,linux:b2.linux}})),hu(new B4({id:M2,precondition:d2,handler:t=>t.replace(),kbOpts:{weight:105,kbExpr:YC.focus,primary:3094}})),hu(new B4({id:M2,precondition:d2,handler:t=>t.replace(),kbOpts:{weight:105,kbExpr:zr.and(YC.focus,p2),primary:3}})),hu(new B4({id:L2,precondition:d2,handler:t=>t.replaceAll(),kbOpts:{weight:105,kbExpr:YC.focus,primary:2563}})),hu(new B4({id:L2,precondition:d2,handler:t=>t.replaceAll(),kbOpts:{weight:105,kbExpr:zr.and(YC.focus,p2),primary:void 0,mac:{primary:2051}}})),hu(new B4({id:"editor.action.selectAllMatches",precondition:d2,handler:t=>t.selectAllMatches(),kbOpts:{weight:105,kbExpr:YC.focus,primary:515}}));const P4={0:" ",1:"u",2:"r"},$4=16777215,W4=4278190080;class j4{constructor(t){const i=Math.ceil(t/32);this._states=new Uint32Array(i)}get(t){return!!(this._states[t/32|0]&1<65535)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=t,this._endIndexes=i,this._collapseStates=new j4(t.length),this._userDefinedStates=new j4(t.length),this._recoveredStates=new j4(t.length),this._types=e,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const t=[],i=(i,e)=>{const s=t[t.length-1];return this.getStartLineNumber(s)<=i&&this.getEndLineNumber(s)>=e};for(let e=0,s=this._startIndexes.length;e$4||n>$4)throw new Error("startLineNumber or endLineNumber must not exceed "+$4);for(;t.length>0&&!i(s,n);)t.pop();const o=t.length>0?t[t.length-1]:-1;t.push(e),this._startIndexes[e]=s+((255&o)<<24),this._endIndexes[e]=n+((65280&o)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(t){return this._startIndexes[t]&$4}getEndLineNumber(t){return this._endIndexes[t]&$4}getType(t){return this._types?this._types[t]:void 0}hasTypes(){return!!this._types}isCollapsed(t){return this._collapseStates.get(t)}setCollapsed(t,i){this._collapseStates.set(t,i)}isUserDefined(t){return this._userDefinedStates.get(t)}setUserDefined(t,i){return this._userDefinedStates.set(t,i)}isRecovered(t){return this._recoveredStates.get(t)}setRecovered(t,i){return this._recoveredStates.set(t,i)}getSource(t){return this.isUserDefined(t)?1:this.isRecovered(t)?2:0}setSource(t,i){1===i?(this.setUserDefined(t,!0),this.setRecovered(t,!1)):2===i?(this.setUserDefined(t,!1),this.setRecovered(t,!0)):(this.setUserDefined(t,!1),this.setRecovered(t,!1))}setCollapsedAllOfType(t,i){let e=!1;if(this._types)for(let s=0;s>>24)+((this._endIndexes[t]&W4)>>>16);return 65535===i?-1:i}contains(t,i){return this.getStartLineNumber(t)<=i&&this.getEndLineNumber(t)>=i}findIndex(t){let i=0,e=this._startIndexes.length;if(0===e)return-1;for(;i=0){if(this.getEndLineNumber(i)>=t)return i;for(i=this.getParentIndex(i);-1!==i;){if(this.contains(i,t))return i;i=this.getParentIndex(i)}}return-1}toString(){const t=[];for(let i=0;iArray.isArray(t)?e=>ee=a.startLineNumber))c&&c.startLineNumber===a.startLineNumber?(1===a.source?t=a:(t=c,t.isCollapsed=a.isCollapsed&&c.endLineNumber===a.endLineNumber,t.source=0),c=n(++r)):(t=a,a.isCollapsed&&0===a.source&&(t.source=2)),a=o(++h);else{let i=h,e=a;for(;;){if(!e||e.startLineNumber>c.endLineNumber){t=c;break}if(1===e.source&&e.endLineNumber>c.endLineNumber)break;e=o(++i)}c=n(++r)}if(t){for(;u&&u.endLineNumbert.startLineNumber&&t.startLineNumber>d&&t.endLineNumber<=e&&(!u||u.endLineNumber>=t.endLineNumber)&&(f.push(t),d=t.startLineNumber,u&&l.push(u),u=t)}}return f}}class H4{constructor(t,i){this.ranges=t,this.index=i}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(t){return t.startLineNumber<=this.startLineNumber&&t.endLineNumber>=this.endLineNumber}containsLine(t){return this.startLineNumber<=t&&t<=this.endLineNumber}}class V4{get regions(){return this._regions}get textModel(){return this._textModel}constructor(t,i){this._updateEventEmitter=new de,this.onDidChange=this._updateEventEmitter.event,this._textModel=t,this._decorationProvider=i,this._regions=new z4(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(t){if(!t.length)return;t=t.sort(((t,i)=>t.regionIndex-i.regionIndex));const i={};this._decorationProvider.changeDecorations((e=>{let s=0,n=-1,o=-1;const r=t=>{for(;so&&(o=t),s++}};for(const e of t){const t=e.regionIndex,s=this._editorDecorationIds[t];if(s&&!i[s]){i[s]=!0,r(t);const e=!this._regions.isCollapsed(t);this._regions.setCollapsed(t,e),n=Math.max(n,this._regions.getEndLineNumber(t))}}r(this._regions.length)})),this._updateEventEmitter.fire({model:this,collapseStateChanged:t})}removeManualRanges(t){const i=new Array,e=i=>{for(const e of t)if(!(e.startLineNumber>i.endLineNumber||i.startLineNumber>e.endLineNumber))return!0;return!1};for(let t=0;te&&(e=o)}this._decorationProvider.changeDecorations((t=>this._editorDecorationIds=t.deltaDecorations(this._editorDecorationIds,i))),this._regions=t,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(t=[]){const i=(i,e)=>{for(const s of t)if(i=n.endLineNumber||n.startLineNumber<1||n.endLineNumber>e)continue;const o=this._getLinesChecksum(n.startLineNumber+1,n.endLineNumber);i.push({startLineNumber:n.startLineNumber,endLineNumber:n.endLineNumber,isCollapsed:n.isCollapsed,source:n.source,checksum:o})}return i.length>0?i:void 0}applyMemento(t){var i,e;if(!Array.isArray(t))return;const s=[],n=this._textModel.getLineCount();for(const o of t){if(o.startLineNumber>=o.endLineNumber||o.startLineNumber<1||o.endLineNumber>n)continue;const t=this._getLinesChecksum(o.startLineNumber+1,o.endLineNumber);o.checksum&&t!==o.checksum||s.push({startLineNumber:o.startLineNumber,endLineNumber:o.endLineNumber,type:void 0,isCollapsed:null===(i=o.isCollapsed)||void 0===i||i,source:null!==(e=o.source)&&void 0!==e?e:0})}const o=z4.sanitizeAndMerge(this._regions,s,n);this.updatePost(z4.fromFoldRanges(o))}_getLinesChecksum(t,i){return Ma(this._textModel.getLineContent(t)+this._textModel.getLineContent(i))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds)}getAllRegionsAtLine(t,i){const e=[];if(this._regions){let s=this._regions.findRange(t),n=1;for(;s>=0;){const t=this._regions.toRegion(s);i&&!i(t,n)||e.push(t),n++,s=t.parentIndex}}return e}getRegionAtLine(t){if(this._regions){const i=this._regions.findRange(t);if(i>=0)return this._regions.toRegion(i)}return null}getRegionsInside(t,i){const e=[],s=t?t.regionIndex+1:0,n=t?t.endLineNumber:Number.MAX_VALUE;if(i&&2===i.length){const t=[];for(let o=s,r=this._regions.length;o0&&!s.containedBy(t[t.length-1]);)t.pop();t.push(s),i(s,t.length)&&e.push(s)}}else for(let t=s,o=this._regions.length;t1){const o=t.getRegionsInside(e,((t,e)=>t.isCollapsed!==n&&e0)for(const o of s){const s=t.getRegionAtLine(o);if(s&&(s.isCollapsed!==i&&n.push(s),e>1)){const o=t.getRegionsInside(s,((t,s)=>t.isCollapsed!==i&&st.isCollapsed!==i&&st.isCollapsed!==i&&s<=e));n.push(...s)}t.toggleCollapseState(n)}function G4(t,i,e){const s=[];for(const i of e){const e=t.getAllRegionsAtLine(i,void 0);e.length>0&&s.push(e[0])}const n=t.getRegionsInside(null,(t=>s.every((i=>!i.containedBy(t)&&!t.containedBy(i)))&&t.isCollapsed!==i));t.toggleCollapseState(n)}function Z4(t,i,e){const s=t.textModel,n=t.regions,o=[];for(let t=n.length-1;t>=0;t--)if(e!==n.isCollapsed(t)){const e=n.getStartLineNumber(t);i.test(s.getLineContent(e))&&o.push(n.toRegion(t))}t.toggleCollapseState(o)}function Q4(t,i,e){const s=t.regions,n=[];for(let t=s.length-1;t>=0;t--)e!==s.isCollapsed(t)&&i===s.getType(t)&&n.push(s.toRegion(t));t.toggleCollapseState(n)}class J4{get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}constructor(t){this._updateEventEmitter=new de,this._hasLineChanges=!1,this._foldingModel=t,this._foldingModelListener=t.onDidChange((()=>this.updateHiddenRanges())),this._hiddenRanges=[],t.regions.length&&this.updateHiddenRanges()}notifyChangeModelContent(t){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=t.changes.some((t=>t.range.endLineNumber!==t.range.startLineNumber||0!==KD(t.text)[0])))}updateHiddenRanges(){let t=!1;const i=[];let e=0,s=0,n=Number.MAX_VALUE,o=-1;const r=this._foldingModel.regions;for(;e0}isHidden(t){return null!==Y4(this._hiddenRanges,t)}adjustSelections(t){let i=!1;const e=this._foldingModel.textModel;let s=null;const n=t=>(s&&function(t,i){return t>=i.startLineNumber&&t<=i.endLineNumber}(t,s)||(s=Y4(this._hiddenRanges,t)),s?s.startLineNumber-1:null);for(let s=0,o=t.length;s0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}function Y4(t,i){const e=ap(t,(t=>i=0&&t[e].endLineNumber>=i?t[e]:null}class X4{constructor(t,i,e){this.editorModel=t,this.languageConfigurationService=i,this.foldingRangesLimit=e,this.id="indent"}dispose(){}compute(t){const i=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules;return Promise.resolve(function(t,i,e,s=i5){const n=t.getOptions().tabSize,o=new t5(s);let r;e&&(r=new RegExp(`(${e.start.source})|(?:${e.end.source})`));const h=[],c=t.getLineCount()+1;h.push({indent:-1,endAbove:c,line:c});for(let e=t.getLineCount();e>0;e--){const s=t.getLineContent(e),c=RS(s,n);let a,l=h[h.length-1];if(-1!==c){if(r&&(a=s.match(r))){if(!a[1]){h.push({indent:-2,endAbove:e,line:e});continue}{let t=h.length-1;for(;t>0&&-2!==h[t].indent;)t--;if(t>0){h.length=t+1,l=h[t],o.insertFirst(e,l.line,c),l.line=e,l.indent=c,l.endAbove=e;continue}}}if(l.indent>c){do{h.pop(),l=h[h.length-1]}while(l.indent>c);const t=l.endAbove-1;t-e>=1&&o.insertFirst(e,t,c)}l.indent===c?l.endAbove=e:h.push({indent:c,endAbove:e,line:e})}else i&&(l.endAbove=e)}return o.toIndentRanges(t)}(this.editorModel,i&&!!i.offSide,i&&i.markers,this.foldingRangesLimit))}}class t5{constructor(t){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=t}insertFirst(t,i,e){if(t>$4||i>$4)return;const s=this._length;this._startIndexes[s]=t,this._endIndexes[s]=i,this._length++,e<1e3&&(this._indentOccurrences[e]=(this._indentOccurrences[e]||0)+1)}toIndentRanges(t){const i=this._foldingRangesLimit.limit;if(this._length<=i){this._foldingRangesLimit.update(this._length,!1);const t=new Uint32Array(this._length),i=new Uint32Array(this._length);for(let e=this._length-1,s=0;e>=0;e--,s++)t[s]=this._startIndexes[e],i[s]=this._endIndexes[e];return new z4(t,i)}{this._foldingRangesLimit.update(this._length,i);let e=0,s=this._indentOccurrences.length;for(let t=0;ti){s=t;break}e+=n}}const n=t.getOptions().tabSize,o=new Uint32Array(i),r=new Uint32Array(i);for(let h=this._length-1,c=0;h>=0;h--){const a=this._startIndexes[h],l=RS(t.getLineContent(a),n);(l{}},e5=dw("editor.foldBackground",{light:ly(Sv,.3),dark:ly(Sv,.3),hcDark:null,hcLight:null},ot(0,"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);dw("editorGutter.foldingControlForeground",{dark:gw,light:gw,hcDark:gw,hcLight:gw},ot(0,"Color of the folding control in the editor gutter."));const s5=Hz("folding-expanded",Os.chevronDown,ot(0,"Icon for expanded ranges in the editor glyph margin.")),n5=Hz("folding-collapsed",Os.chevronRight,ot(0,"Icon for collapsed ranges in the editor glyph margin.")),o5=Hz("folding-manual-collapsed",n5,ot(0,"Icon for manually collapsed ranges in the editor glyph margin.")),r5=Hz("folding-manual-expanded",s5,ot(0,"Icon for manually expanded ranges in the editor glyph margin.")),h5={color:tx(e5),position:Bf.Inline};class c5{constructor(t){this.editor=t,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(t,i,e){return i?c5.HIDDEN_RANGE_DECORATION:"never"===this.showFoldingControls?t?this.showFoldingHighlights?c5.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:c5.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:c5.NO_CONTROLS_EXPANDED_RANGE_DECORATION:t?e?this.showFoldingHighlights?c5.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:c5.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?c5.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:c5.COLLAPSED_VISUAL_DECORATION:"mouseover"===this.showFoldingControls?e?c5.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:c5.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:e?c5.MANUALLY_EXPANDED_VISUAL_DECORATION:c5.EXPANDED_VISUAL_DECORATION}changeDecorations(t){return this.editor.changeDecorations(t)}removeDecorations(t){this.editor.removeDecorations(t)}}c5.COLLAPSED_VISUAL_DECORATION=AL.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,firstLineDecorationClassName:Cr.asClassName(n5)}),c5.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=AL.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:h5,isWholeLine:!0,firstLineDecorationClassName:Cr.asClassName(n5)}),c5.MANUALLY_COLLAPSED_VISUAL_DECORATION=AL.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,firstLineDecorationClassName:Cr.asClassName(o5)}),c5.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=AL.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:h5,isWholeLine:!0,firstLineDecorationClassName:Cr.asClassName(o5)}),c5.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=AL.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0}),c5.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=AL.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:h5,isWholeLine:!0}),c5.EXPANDED_VISUAL_DECORATION=AL.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+Cr.asClassName(s5)}),c5.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=AL.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:Cr.asClassName(s5)}),c5.MANUALLY_EXPANDED_VISUAL_DECORATION=AL.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+Cr.asClassName(r5)}),c5.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=AL.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:Cr.asClassName(r5)}),c5.NO_CONTROLS_EXPANDED_RANGE_DECORATION=AL.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0}),c5.HIDDEN_RANGE_DECORATION=AL.register({description:"folding-hidden-range-decoration",stickiness:1});const a5={};class l5{constructor(t,i,e,s,n){this.editorModel=t,this.providers=i,this.handleFoldingRangesChange=e,this.foldingRangesLimit=s,this.fallbackRangeProvider=n,this.id="syntax",this.disposables=new Xi,n&&this.disposables.add(n);for(const t of i)"function"==typeof t.onDidChange&&this.disposables.add(t.onDidChange(e))}compute(t){return function(t,i,e){let s=null;const n=t.map(((t,n)=>Promise.resolve(t.provideFoldingRanges(i,a5,e)).then((t=>{if(!e.isCancellationRequested&&Array.isArray(t)){Array.isArray(s)||(s=[]);const e=i.getLineCount();for(const i of t)i.start>0&&i.end>i.start&&i.end<=e&&s.push({start:i.start,end:i.end,rank:n,kind:i.kind})}}),Pi)));return Promise.all(n).then((()=>s))}(this.providers,this.editorModel,t).then((i=>{var e,s;return i?function(t,i){const e=t.sort(((t,i)=>{let e=t.start-i.start;return 0===e&&(e=t.rank-i.rank),e})),s=new u5(i);let n;const o=[];for(const t of e)if(n){if(t.start>n.start)if(t.end<=n.end)o.push(n),n=t,s.add(t.start,t.end,t.kind&&t.kind.value,o.length);else{if(t.start>n.end){do{n=o.pop()}while(n&&t.start>n.end);n&&o.push(n),n=t}s.add(t.start,t.end,t.kind&&t.kind.value,o.length)}}else n=t,s.add(t.start,t.end,t.kind&&t.kind.value,o.length);return s.toIndentRanges()}(i,this.foldingRangesLimit):null!==(s=null===(e=this.fallbackRangeProvider)||void 0===e?void 0:e.compute(t))&&void 0!==s?s:null}))}dispose(){this.disposables.dispose()}}class u5{constructor(t){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=t}add(t,i,e,s){if(t>$4||i>$4)return;const n=this._length;this._startIndexes[n]=t,this._endIndexes[n]=i,this._nestingLevels[n]=s,this._types[n]=e,this._length++,s<30&&(this._nestingLevelCounts[s]=(this._nestingLevelCounts[s]||0)+1)}toIndentRanges(){const t=this._foldingRangesLimit.limit;if(this._length<=t){this._foldingRangesLimit.update(this._length,!1);const t=new Uint32Array(this._length),i=new Uint32Array(this._length);for(let e=0;et){e=s;break}i+=n}}const s=new Uint32Array(t),n=new Uint32Array(t),o=[];for(let r=0,h=0;rthis.onModelChanged()))),this._register(this.editor.onDidChangeConfiguration((t=>{if(t.hasChanged(43)&&(this._isEnabled=this.editor.getOptions().get(43),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),t.hasChanged(47)&&this.onModelChanged(),t.hasChanged(109)||t.hasChanged(45)){const t=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=t.get(109),this.foldingDecorationProvider.showFoldingHighlights=t.get(45),this.triggerFoldingModelChanged()}t.hasChanged(44)&&(this._useFoldingProviders="indentation"!==this.editor.getOptions().get(44),this.onFoldingStrategyChanged()),t.hasChanged(48)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(48)),t.hasChanged(46)&&(this._foldingImportsByDefault=this.editor.getOptions().get(46))}))),this.onModelChanged()}saveViewState(){const t=this.editor.getModel();if(!t||!this._isEnabled||t.isTooLargeForTokenization())return{};if(this.foldingModel){const i=this.foldingModel.getMemento(),e=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:i,lineCount:t.getLineCount(),provider:e,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(t){const i=this.editor.getModel();if(i&&this._isEnabled&&!i.isTooLargeForTokenization()&&this.hiddenRangeModel&&t&&(this._currentModelHasFoldedImports=!!t.foldedImports,t.collapsedRegions&&t.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(t.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();const t=this.editor.getModel();this._isEnabled&&t&&!t.isTooLargeForTokenization()&&(this._currentModelHasFoldedImports=!1,this.foldingModel=new V4(t,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new J4(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange((t=>this.onHiddenRangesChanges(t)))),this.updateScheduler=new hc(this.updateDebounceInfo.get(t)),this.cursorChangedScheduler=new pc((()=>this.revealCursor()),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange((()=>this.onFoldingStrategyChanged()))),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration((()=>this.onFoldingStrategyChanged()))),this.localToDispose.add(this.editor.onDidChangeModelContent((t=>this.onDidChangeModelContent(t)))),this.localToDispose.add(this.editor.onDidChangeCursorPosition((()=>this.onCursorPositionChanged()))),this.localToDispose.add(this.editor.onMouseDown((t=>this.onEditorMouseDown(t)))),this.localToDispose.add(this.editor.onMouseUp((t=>this.onEditorMouseUp(t)))),this.localToDispose.add({dispose:()=>{var t,i;this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),null===(t=this.updateScheduler)||void 0===t||t.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,null===(i=this.rangeProvider)||void 0===i||i.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){var t;null===(t=this.rangeProvider)||void 0===t||t.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(t){if(this.rangeProvider)return this.rangeProvider;const i=new X4(t,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=i,this._useFoldingProviders&&this.foldingModel){const e=d5.getFoldingRangeProviders(this.languageFeaturesService,t);e.length>0&&(this.rangeProvider=new l5(t,e,(()=>this.triggerFoldingModelChanged()),this._foldingLimitReporter,i))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(t){var i;null===(i=this.hiddenRangeModel)||void 0===i||i.notifyChangeModelContent(t),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger((()=>{const t=this.foldingModel;if(!t)return null;const i=new re,e=this.getRangeProvider(t.textModel),s=this.foldingRegionPromise=nc((t=>e.compute(t)));return s.then((e=>{if(e&&s===this.foldingRegionPromise){let s;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const t=e.setCollapsedAllOfType(Ks.Imports.value,!0);t&&(s=iU.capture(this.editor),this._currentModelHasFoldedImports=t)}const n=this.editor.getSelections(),o=n?n.map((t=>t.startLineNumber)):[];t.update(e,o),null==s||s.restore(this.editor);const r=this.updateDebounceInfo.update(t.textModel,i.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=r)}return t}))})).then(void 0,(t=>(Bi(t),null))))}onHiddenRangesChanges(t){if(this.hiddenRangeModel&&t.length&&!this._restoringViewState){const t=this.editor.getSelections();t&&this.hiddenRangeModel.adjustSelections(t)&&this.editor.setSelections(t)}this.editor.setHiddenAreas(t,this)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const t=this.getFoldingModel();t&&t.then((t=>{if(t){const i=this.editor.getSelections();if(i&&i.length>0){const e=[];for(const s of i){const i=s.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(i)&&e.push(...t.getAllRegionsAtLine(i,(t=>t.isCollapsed&&i>t.startLineNumber)))}e.length&&(t.toggleCollapseState(e),this.reveal(i[0].getPosition()))}}})).then(void 0,Bi)}onEditorMouseDown(t){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!t.target||!t.target.range)return;if(!t.event.leftButton&&!t.event.middleButton)return;const i=t.target.range;let e=!1;switch(t.target.type){case 4:if(t.target.detail.offsetX-t.target.element.offsetLeft<4)return;e=!0;break;case 7:if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()&&!t.target.detail.isAfterLines)break;return;case 6:if(this.hiddenRangeModel.hasRanges()){const t=this.editor.getModel();if(t&&i.startColumn===t.getLineMaxColumn(i.startLineNumber))break}return;default:return}this.mouseDownInfo={lineNumber:i.startLineNumber,iconClicked:e}}onEditorMouseUp(t){const i=this.foldingModel;if(!i||!this.mouseDownInfo||!t.target)return;const e=this.mouseDownInfo.lineNumber,s=this.mouseDownInfo.iconClicked,n=t.target.range;if(!n||n.startLineNumber!==e)return;if(s){if(4!==t.target.type)return}else{const t=this.editor.getModel();if(!t||n.startColumn!==t.getLineMaxColumn(e))return}const o=i.getRegionAtLine(e);if(o&&o.startLineNumber===e){const n=o.isCollapsed;if(s||n){let s=[];if(t.event.altKey){const t=i.getRegionsInside(null,(t=>!t.containedBy(o)&&!o.containedBy(t)));for(const i of t)i.isCollapsed&&s.push(i);0===s.length&&(s=t)}else{const e=t.event.middleButton||t.event.shiftKey;if(e)for(const t of i.getRegionsInside(o))t.isCollapsed===n&&s.push(t);!n&&e&&0!==s.length||s.push(o)}i.toggleCollapseState(s),this.reveal({lineNumber:e,column:1})}}}reveal(t){this.editor.revealPositionInCenterIfOutsideViewport(t,0)}};g5.ID="editor.contrib.folding",g5=d5=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([f5(1,ah),f5(2,Xd),f5(3,oT),f5(4,gR),f5(5,xg)],g5);class m5{constructor(t){this.editor=t,this._onDidChange=new de,this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(47)}update(t,i){t===this._computed&&i===this._limited||(this._computed=t,this._limited=i,this._onDidChange.fire())}}class w5 extends su{runEditorCommand(t,i,e){const s=t.get(Xd),n=g5.get(i);if(!n)return;const o=n.getFoldingModel();return o?(this.reportTelemetry(t,i),o.then((t=>{if(t){this.invoke(n,t,i,e,s);const o=i.getSelection();o&&n.reveal(o.getStartPosition())}}))):void 0}getSelectedLines(t){const i=t.getSelections();return i?i.map((t=>t.startLineNumber)):[]}getLineNumbers(t,i){return t&&t.selectionLines?t.selectionLines.map((t=>t+1)):this.getSelectedLines(i)}run(t,i){}}function v5(t){if(!H(t)){if(!P(t))return!1;const i=t;if(!H(i.levels)&&!W(i.levels))return!1;if(!H(i.direction)&&!B(i.direction))return!1;if(!(H(i.selectionLines)||Array.isArray(i.selectionLines)&&i.selectionLines.every(W)))return!1}return!0}class b5 extends w5{getFoldingLevel(){return parseInt(this.id.substr(b5.ID_PREFIX.length))}invoke(t,i,e){!function(t,i,e,s){const n=t.getRegionsInside(null,((t,e)=>e===i&&true!==t.isCollapsed&&!s.some((i=>t.containsLine(i)))));t.toggleCollapseState(n)}(i,this.getFoldingLevel(),0,this.getSelectedLines(e))}}b5.ID_PREFIX="editor.foldLevel",b5.ID=t=>b5.ID_PREFIX+t,lu(g5.ID,g5,0),cu(class extends w5{constructor(){super({id:"editor.unfold",label:ot(0,"Unfold"),alias:"Unfold",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t* 'levels': Number of levels to unfold. If not set, defaults to 1.\n\t\t\t\t\t\t* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\n\t\t\t\t\t\t* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t",constraint:v5,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(t,i,e,s){const n=s&&s.levels||1,o=this.getLineNumbers(s,e);s&&"up"===s.direction?K4(i,!1,n,o):q4(i,!1,n,o)}}),cu(class extends w5{constructor(){super({id:"editor.unfoldRecursively",label:ot(0,"Unfold Recursively"),alias:"Unfold Recursively",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2142),weight:100}})}invoke(t,i,e,s){q4(i,!1,Number.MAX_VALUE,this.getSelectedLines(e))}}),cu(class extends w5{constructor(){super({id:"editor.fold",label:ot(0,"Fold"),alias:"Fold",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:3164,mac:{primary:2652},weight:100},metadata:{description:"Fold the content in the editor",args:[{name:"Fold editor argument",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t\t* 'levels': Number of levels to fold.\n\t\t\t\t\t\t\t* 'direction': If 'up', folds given number of levels up otherwise folds down.\n\t\t\t\t\t\t\t* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t\tIf no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\n\t\t\t\t\t\t",constraint:v5,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(t,i,e,s){const n=this.getLineNumbers(s,e),o=s&&s.levels,r=s&&s.direction;"number"!=typeof o&&"string"!=typeof r?function(t,i,e){const s=[];for(const i of e){const e=t.getAllRegionsAtLine(i,(t=>true!==t.isCollapsed));e.length>0&&s.push(e[0])}t.toggleCollapseState(s)}(i,0,n):"up"===r?K4(i,!0,o||1,n):q4(i,!0,o||1,n)}}),cu(class extends w5{constructor(){super({id:"editor.foldRecursively",label:ot(0,"Fold Recursively"),alias:"Fold Recursively",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2140),weight:100}})}invoke(t,i,e){const s=this.getSelectedLines(e);q4(i,!0,Number.MAX_VALUE,s)}}),cu(class extends w5{constructor(){super({id:"editor.foldAll",label:ot(0,"Fold All"),alias:"Fold All",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2069),weight:100}})}invoke(t,i,e){q4(i,!0)}}),cu(class extends w5{constructor(){super({id:"editor.unfoldAll",label:ot(0,"Unfold All"),alias:"Unfold All",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2088),weight:100}})}invoke(t,i,e){q4(i,!1)}}),cu(class extends w5{constructor(){super({id:"editor.foldAllBlockComments",label:ot(0,"Fold All Block Comments"),alias:"Fold All Block Comments",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2138),weight:100}})}invoke(t,i,e,s,n){if(i.regions.hasTypes())Q4(i,Ks.Comment.value,!0);else{const t=e.getModel();if(!t)return;const s=n.getLanguageConfiguration(t.getLanguageId()).comments;s&&s.blockCommentStartToken&&Z4(i,new RegExp("^\\s*"+Gn(s.blockCommentStartToken)),!0)}}}),cu(class extends w5{constructor(){super({id:"editor.foldAllMarkerRegions",label:ot(0,"Fold All Regions"),alias:"Fold All Regions",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2077),weight:100}})}invoke(t,i,e,s,n){if(i.regions.hasTypes())Q4(i,Ks.Region.value,!0);else{const t=e.getModel();if(!t)return;const s=n.getLanguageConfiguration(t.getLanguageId()).foldingRules;s&&s.markers&&s.markers.start&&Z4(i,new RegExp(s.markers.start),!0)}}}),cu(class extends w5{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:ot(0,"Unfold All Regions"),alias:"Unfold All Regions",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2078),weight:100}})}invoke(t,i,e,s,n){if(i.regions.hasTypes())Q4(i,Ks.Region.value,!1);else{const t=e.getModel();if(!t)return;const s=n.getLanguageConfiguration(t.getLanguageId()).foldingRules;s&&s.markers&&s.markers.start&&Z4(i,new RegExp(s.markers.start),!1)}}}),cu(class extends w5{constructor(){super({id:"editor.foldAllExcept",label:ot(0,"Fold All Except Selected"),alias:"Fold All Except Selected",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2136),weight:100}})}invoke(t,i,e){G4(i,!0,this.getSelectedLines(e))}}),cu(class extends w5{constructor(){super({id:"editor.unfoldAllExcept",label:ot(0,"Unfold All Except Selected"),alias:"Unfold All Except Selected",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2134),weight:100}})}invoke(t,i,e){G4(i,!1,this.getSelectedLines(e))}}),cu(class extends w5{constructor(){super({id:"editor.toggleFold",label:ot(0,"Toggle Fold"),alias:"Toggle Fold",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2090),weight:100}})}invoke(t,i,e){U4(i,1,this.getSelectedLines(e))}}),cu(class extends w5{constructor(){super({id:"editor.gotoParentFold",label:ot(0,"Go to Parent Fold"),alias:"Go to Parent Fold",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,weight:100}})}invoke(t,i,e){const s=this.getSelectedLines(e);if(s.length>0){const t=function(t,i){let e=null;const s=i.getRegionAtLine(t);if(null!==s&&(e=s.startLineNumber,t===e)){const t=s.parentIndex;e=-1!==t?i.regions.getStartLineNumber(t):null}return e}(s[0],i);null!==t&&e.setSelection({startLineNumber:t,startColumn:1,endLineNumber:t,endColumn:1})}}}),cu(class extends w5{constructor(){super({id:"editor.gotoPreviousFold",label:ot(0,"Go to Previous Folding Range"),alias:"Go to Previous Folding Range",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,weight:100}})}invoke(t,i,e){const s=this.getSelectedLines(e);if(s.length>0){const t=function(t,i){let e=i.getRegionAtLine(t);if(null!==e&&e.startLineNumber===t){if(t!==e.startLineNumber)return e.startLineNumber;{const t=e.parentIndex;let s=0;for(-1!==t&&(s=i.regions.getStartLineNumber(e.parentIndex));null!==e;){if(!(e.regionIndex>0))return null;if(e=i.regions.toRegion(e.regionIndex-1),e.startLineNumber<=s)return null;if(e.parentIndex===t)return e.startLineNumber}}}else if(i.regions.length>0)for(e=i.regions.toRegion(i.regions.length-1);null!==e;){if(e.startLineNumber0?i.regions.toRegion(e.regionIndex-1):null}return null}(s[0],i);null!==t&&e.setSelection({startLineNumber:t,startColumn:1,endLineNumber:t,endColumn:1})}}}),cu(class extends w5{constructor(){super({id:"editor.gotoNextFold",label:ot(0,"Go to Next Folding Range"),alias:"Go to Next Folding Range",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,weight:100}})}invoke(t,i,e){const s=this.getSelectedLines(e);if(s.length>0){const t=function(t,i){let e=i.getRegionAtLine(t);if(null!==e&&e.startLineNumber===t){const t=e.parentIndex;let s=0;if(-1!==t)s=i.regions.getEndLineNumber(e.parentIndex);else{if(0===i.regions.length)return null;s=i.regions.getEndLineNumber(i.regions.length-1)}for(;null!==e;){if(!(e.regionIndex=s)return null;if(e.parentIndex===t)return e.startLineNumber}}else if(i.regions.length>0)for(e=i.regions.toRegion(0);null!==e;){if(e.startLineNumber>t)return e.startLineNumber;e=e.regionIndext.startLineNumber&&(n.push({startLineNumber:t.startLineNumber,endLineNumber:i,type:void 0,isCollapsed:!0,source:1}),e.setSelection({startLineNumber:t.startLineNumber,startColumn:1,endLineNumber:t.startLineNumber,endColumn:1}))}if(n.length>0){n.sort(((t,i)=>t.startLineNumber-i.startLineNumber));const t=z4.sanitizeAndMerge(i.regions,n,null===(s=e.getModel())||void 0===s?void 0:s.getLineCount());i.updatePost(z4.fromFoldRanges(t))}}}}),cu(class extends w5{constructor(){super({id:"editor.removeManualFoldingRanges",label:ot(0,"Remove Manual Folding Ranges"),alias:"Remove Manual Folding Ranges",precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2137),weight:100}})}invoke(t,i,e){const s=e.getSelections();if(s){const e=[];for(const t of s){const{startLineNumber:i,endLineNumber:s}=t;e.push(s>=i?{startLineNumber:i,endLineNumber:s}:{endLineNumber:s,startLineNumber:i})}i.removeManualRanges(e),t.triggerFoldingModelChanged()}}});for(let t=1;t<=7;t++)y5=new b5({id:b5.ID(t),label:ot(0,"Fold Level {0}",t),alias:`Fold Level ${t}`,precondition:p5,kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2048|21+t),weight:100}}),du.INSTANCE.registerEditorAction(y5);var y5;Dr.registerCommand("_executeFoldingRangeProvider",(async function(t,...i){const[e]=i;if(!(e instanceof ms))throw Hi();const s=t.get(xg),n=t.get(pr).getModel(e);if(!n)throw Hi();const o=t.get(pd);if(!o.getValue("editor.folding",{resource:e}))return[];const r=t.get(Xd),h=o.getValue("editor.foldingStrategy",{resource:e}),c={get limit(){return o.getValue("editor.foldingMaximumRegions",{resource:e})},update:()=>{}},a=new X4(n,r,c);let l=a;if("indentation"!==h){const t=g5.getFoldingRangeProviders(s,n);t.length&&(l=new l5(n,t,(()=>{}),c,a))}const u=await l.compute(ke.None),d=[];try{if(u)for(let t=0;t=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},x5=function(t,i){return function(e,s){i(e,s,t)}};let C5=class{constructor(t,i,e,s){this._editor=t,this._languageFeaturesService=i,this._workerService=e,this._accessibleNotificationService=s,this._disposables=new Xi,this._sessionDisposables=new Xi,this._disposables.add(i.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(t.onDidChangeModel((()=>this._update()))),this._disposables.add(t.onDidChangeModelLanguage((()=>this._update()))),this._disposables.add(t.onDidChangeConfiguration((t=>{t.hasChanged(56)&&this._update()}))),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(56))return;if(!this._editor.hasModel())return;const t=this._editor.getModel(),[i]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(t);if(!i||!i.autoFormatTriggerCharacters)return;const e=new Ef;for(const t of i.autoFormatTriggerCharacters)e.add(t.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType((t=>{const i=t.charCodeAt(t.length-1);e.has(i)&&this._trigger(String.fromCharCode(i))})))}_trigger(t){if(!this._editor.hasModel())return;if(this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const i=this._editor.getModel(),e=this._editor.getPosition(),s=new Ce,n=this._editor.onDidChangeModelContent((t=>{if(t.isFlush)return s.cancel(),void n.dispose();for(let i=0,o=t.changes.length;i{s.token.isCancellationRequested||b(t)&&(this._accessibleNotificationService.notify("format",!1),MK.execute(this._editor,t,!0))})).finally((()=>{n.dispose()}))}};C5.ID="editor.contrib.autoFormat",C5=k5([x5(1,xg),x5(2,vP),x5(3,Jm)],C5);let S5=class{constructor(t,i,e){this.editor=t,this._languageFeaturesService=i,this._instantiationService=e,this._callOnDispose=new Xi,this._callOnModel=new Xi,this._callOnDispose.add(t.onDidChangeConfiguration((()=>this._update()))),this._callOnDispose.add(t.onDidChangeModel((()=>this._update()))),this._callOnDispose.add(t.onDidChangeModelLanguage((()=>this._update()))),this._callOnDispose.add(i.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(55)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste((({range:t})=>this._trigger(t))))}_trigger(t){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(OK,this.editor,t,2,jO.None,ke.None,!1).catch(Bi))}};S5.ID="editor.contrib.formatOnPaste",S5=k5([x5(1,xg),x5(2,ur)],S5),lu(C5.ID,C5,2),lu(S5.ID,S5,2),cu(class extends su{constructor(){super({id:"editor.action.formatDocument",label:ot(0,"Format Document"),alias:"Format Document",precondition:zr.and(YC.notInCompositeEditor,YC.writable,YC.hasDocumentFormattingProvider),kbOpts:{kbExpr:YC.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(t,i){if(i.hasModel()){const e=t.get(ur),s=t.get(zO);await s.showWhile(e.invokeFunction(_K,i,1,jO.None,ke.None,!0),250)}}}),cu(class extends su{constructor(){super({id:"editor.action.formatSelection",label:ot(0,"Format Selection"),alias:"Format Selection",precondition:zr.and(YC.writable,YC.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:YC.editorTextFocus,primary:Ne(2089,2084),weight:100},contextMenuOpts:{when:YC.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(t,i){if(!i.hasModel())return;const e=t.get(ur),s=i.getModel(),n=i.getSelections().map((t=>t.isEmpty()?new Ms(t.startLineNumber,1,t.startLineNumber,s.getLineMaxColumn(t.startLineNumber)):t)),o=t.get(zO);await o.showWhile(e.invokeFunction(OK,i,n,1,jO.None,ke.None,!0),250)}}),Dr.registerCommand("editor.action.format",(async t=>{const i=t.get(fr).getFocusedCodeEditor();if(!i||!i.hasModel())return;const e=t.get(Sr);i.getSelection().isEmpty()?await e.executeCommand("editor.action.formatDocument"):await e.executeCommand("editor.action.formatSelection")}));var D5=function(t,i){return function(e,s){i(e,s,t)}};class E5{remove(){var t;null===(t=this.parent)||void 0===t||t.children.delete(this.id)}static findId(t,i){let e;"string"==typeof t?e=`${i.id}/${t}`:(e=`${i.id}/${t.name}`,void 0!==i.children.get(e)&&(e=`${i.id}/${t.name}_${t.range.startLineNumber}_${t.range.startColumn}`));let s=e;for(let t=0;void 0!==i.children.get(s);t++)s=`${e}_${t}`;return s}static empty(t){return 0===t.children.size}}class A5 extends E5{constructor(t,i,e){super(),this.id=t,this.parent=i,this.symbol=e,this.children=new Map}}class M5 extends E5{constructor(t,i,e,s){super(),this.id=t,this.parent=i,this.label=e,this.order=s,this.children=new Map}}class L5 extends E5{static create(t,i,e){const s=new Ce(e),n=new L5(i.uri),o=t.ordered(i),r=o.map(((t,e)=>{var o;const r=E5.findId(`provider_${e}`,n),h=new M5(r,n,null!==(o=t.displayName)&&void 0!==o?o:"Unknown Outline Provider",e);return Promise.resolve(t.provideDocumentSymbols(i,s.token)).then((t=>{for(const i of t||[])L5._makeOutlineElement(i,h);return h}),(t=>(Pi(t),h))).then((t=>{E5.empty(t)?t.remove():n._groups.set(r,t)}))})),h=t.onDidChange((()=>{l(t.ordered(i),o)||s.cancel()}));return Promise.all(r).then((()=>s.token.isCancellationRequested&&!e.isCancellationRequested?L5.create(t,i,e):n._compact())).finally((()=>{s.dispose(),h.dispose(),s.dispose()}))}static _makeOutlineElement(t,i){const e=E5.findId(t,i),s=new A5(e,i,t);if(t.children)for(const i of t.children)L5._makeOutlineElement(i,s);i.children.set(s.id,s)}constructor(t){super(),this.uri=t,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let t=0;for(const[i,e]of this._groups)0===e.children.size?this._groups.delete(i):t+=1;if(1!==t)this.children=this._groups;else{const t=Ht.first(this._groups.values());for(const[,i]of t.children)i.parent=this,this.children.set(i.id,i)}return this}getTopLevelSymbols(){const t=[];for(const i of this.children.values())i instanceof A5?t.push(i.symbol):t.push(...Ht.map(i.children.values(),(t=>t.symbol)));return t.sort(((t,i)=>Ms.compareRangesUsingStarts(t.range,i.range)))}asListOfDocumentSymbols(){const t=this.getTopLevelSymbols(),i=[];return L5._flattenDocumentSymbols(i,t,""),i.sort(((t,i)=>As.compare(Ms.getStartPosition(t.range),Ms.getStartPosition(i.range))||As.compare(Ms.getEndPosition(i.range),Ms.getEndPosition(t.range))))}static _flattenDocumentSymbols(t,i,e){for(const s of i)t.push({kind:s.kind,tags:s.tags,name:s.name,detail:s.detail,containerName:s.containerName||e,range:s.range,selectionRange:s.selectionRange,children:void 0}),s.children&&L5._flattenDocumentSymbols(t,s.children,s.name)}}const F5=dr("IOutlineModelService");let T5=class{constructor(t,i,e){this._languageFeaturesService=t,this._disposables=new Xi,this._cache=new Vp(10,.7),this._debounceInformation=i.for(t.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(e.onModelRemoved((t=>{this._cache.delete(t.id)})))}dispose(){this._disposables.dispose()}async getOrCreate(t,i){const e=this._languageFeaturesService.documentSymbolProvider,s=e.ordered(t);let n=this._cache.get(t.id);if(!n||n.versionId!==t.getVersionId()||!l(n.provider,s)){const i=new Ce;n={versionId:t.getVersionId(),provider:s,promiseCnt:0,source:i,promise:L5.create(e,t,i.token),model:void 0},this._cache.set(t.id,n);const o=Date.now();n.promise.then((i=>{n.model=i,this._debounceInformation.update(t,Date.now()-o)})).catch((()=>{this._cache.delete(t.id)}))}if(n.model)return n.model;n.promiseCnt+=1;const o=i.onCancellationRequested((()=>{0==--n.promiseCnt&&(n.source.cancel(),this._cache.delete(t.id))}));try{return await n.promise}finally{o.dispose()}}};T5=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([D5(0,xg),D5(1,gR),D5(2,pr)],T5),Cd(F5,T5,1),Dr.registerCommand("_executeDocumentSymbolProvider",(async function(t,...i){const[e]=i;q(ms.isUri(e));const s=t.get(F5),n=t.get(gr),o=await n.createModelReference(e);try{return(await s.getOrCreate(o.object.textEditorModel,ke.None)).getTopLevelSymbols()}finally{o.dispose()}}));class R5 extends te{constructor(t,i){super(),this.contextKeyService=t,this.model=i,this.inlineCompletionVisible=R5.inlineSuggestionVisible.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentation=R5.inlineSuggestionHasIndentation.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentationLessThanTabSize=R5.inlineSuggestionHasIndentationLessThanTabSize.bindTo(this.contextKeyService),this.suppressSuggestions=R5.suppressSuggestions.bindTo(this.contextKeyService),this._register(WV((t=>{const i=this.model.read(t),e=null==i?void 0:i.state.read(t),s=!!(null==e?void 0:e.inlineCompletion)&&void 0!==(null==e?void 0:e.ghostText)&&!(null==e?void 0:e.ghostText.isEmpty());this.inlineCompletionVisible.set(s),(null==e?void 0:e.ghostText)&&(null==e?void 0:e.inlineCompletion)&&this.suppressSuggestions.set(e.inlineCompletion.inlineCompletion.source.inlineCompletions.suppressSuggestions)}))),this._register(WV((t=>{const i=this.model.read(t);let e=!1,s=!0;const n=null==i?void 0:i.ghostText.read(t);if((null==i?void 0:i.selectedSuggestItem)&&n&&n.parts.length>0){const{column:t,lines:o}=n.parts[0],r=o[0];if(t<=i.textModel.getLineIndentColumn(n.lineNumber)){let t=to(r);-1===t&&(t=r.length-1),e=t>0;const n=i.textModel.getOptions().tabSize;s=Xy.visibleColumnFromColumn(r,t+1,n)i)throw new Ki(`startColumn ${t} cannot be after endColumnExclusive ${i}`)}toRange(t){return new Ms(t,this.startColumn,t,this.endColumnExclusive)}equals(t){return this.startColumn===t.startColumn&&this.endColumnExclusive===t.endColumnExclusive}}function N5(t,i){return new As(t.lineNumber+i.lineNumber-1,1===i.lineNumber?t.column+i.column-1:i.column)}function B5(t){let i=1,e=1;for(const s of t)"\n"===s?(i++,e=1):e++;return new As(i,e)}class P5{constructor(t,i){this.lineNumber=t,this.parts=i}equals(t){return this.lineNumber===t.lineNumber&&this.parts.length===t.parts.length&&this.parts.every(((i,e)=>i.equals(t.parts[e])))}renderForScreenReader(t){if(0===this.parts.length)return"";const i=function(t,i){const e=new O5(t),s=i.map((t=>{const i=Ms.lift(t.range);return{startOffset:e.getOffset(i.getStartPosition()),endOffset:e.getOffset(i.getEndPosition()),text:t.text}}));s.sort(((t,i)=>i.startOffset-t.startOffset));for(const i of s)t=t.substring(0,i.startOffset)+i.text+t.substring(i.endOffset);return t}(t.substr(0,this.parts[this.parts.length-1].column-1),this.parts.map((t=>({range:{startLineNumber:1,endLineNumber:1,startColumn:t.column,endColumn:t.column},text:t.lines.join("\n")}))));return i.substring(this.parts[0].column-1)}isEmpty(){return this.parts.every((t=>0===t.lines.length))}get lineCount(){return 1+this.parts.reduce(((t,i)=>t+i.lines.length-1),0)}}class $5{constructor(t,i,e){this.column=t,this.lines=i,this.preview=e}equals(t){return this.column===t.column&&this.lines.length===t.lines.length&&this.lines.every(((i,e)=>i===t.lines[e]))}}class W5{constructor(t,i,e,s=0){this.lineNumber=t,this.columnRange=i,this.newLines=e,this.additionalReservedLineCount=s,this.parts=[new $5(this.columnRange.endColumnExclusive,this.newLines,!1)]}renderForScreenReader(t){return this.newLines.join("\n")}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every((t=>0===t.lines.length))}equals(t){return this.lineNumber===t.lineNumber&&this.columnRange.equals(t.columnRange)&&this.newLines.length===t.newLines.length&&this.newLines.every(((i,e)=>i===t.newLines[e]))&&this.additionalReservedLineCount===t.additionalReservedLineCount}}function j5(t,i){return t===i||!(!t||!i)&&(t instanceof P5&&i instanceof P5||t instanceof W5&&i instanceof W5)&&t.equals(i)}const z5="ghost-text";let H5=class extends te{constructor(t,i,e){super(),this.editor=t,this.model=i,this.languageService=e,this.isDisposed=FV(this,!1),this.currentTextModel=KV(this.editor.onDidChangeModel,(()=>this.editor.getModel())),this.uiState=_V(this,(t=>{if(this.isDisposed.read(t))return;const i=this.currentTextModel.read(t);if(i!==this.model.targetTextModel.read(t))return;const e=this.model.ghostText.read(t);if(!e)return;const s=e instanceof W5?e.columnRange:void 0,n=[],o=[];function r(t,i){if(o.length>0){const e=o[o.length-1];i&&e.decorations.push(new Wg(e.content.length+1,e.content.length+1+t[0].length,i,0)),e.content+=t[0],t=t.slice(1)}for(const e of t)o.push({content:e,decorations:i?[new Wg(1,e.length+1,i,0)]:[]})}const h=i.getLineContent(e.lineNumber);let c,a=0;for(const t of e.parts){let i=t.lines;void 0===c?(n.push({column:t.column,text:i[0],preview:t.preview}),i=i.slice(1)):r([h.substring(a,t.column-1)],void 0),i.length>0&&(r(i,z5),void 0===c&&t.column<=h.length&&(c=t.column)),a=t.column-1}void 0!==c&&r([h.substring(a)],void 0);const l=void 0!==c?new _5(c,h.length+1):void 0;return{replacedRange:s,inlineTexts:n,additionalLines:o,hiddenRange:l,lineNumber:e.lineNumber,additionalReservedLineCount:this.model.minReservedLineCount.read(t),targetTextModel:i}})),this.decorations=_V(this,(t=>{const i=this.uiState.read(t);if(!i)return[];const e=[];i.replacedRange&&e.push({range:i.replacedRange.toRange(i.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace",description:"GhostTextReplacement"}}),i.hiddenRange&&e.push({range:i.hiddenRange.toRange(i.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(const t of i.inlineTexts)e.push({range:Ms.fromPositions(new As(i.lineNumber,t.column)),options:{description:z5,after:{content:t.text,inlineClassName:t.preview?"ghost-text-decoration-preview":"ghost-text-decoration",cursorStops:Pf.Left},showIfCollapsed:!0}});return e})),this.additionalLinesWidget=this._register(new V5(this.editor,this.languageService.languageIdCodec,_V((t=>{const i=this.uiState.read(t);return i?{lineNumber:i.lineNumber,additionalLines:i.additionalLines,minReservedLineCount:i.additionalReservedLineCount,targetTextModel:i.targetTextModel}:void 0})))),this._register(Yi((()=>{this.isDisposed.set(!0,void 0)}))),this._register(function(t,i){const e=new Xi,s=t.createDecorationsCollection();return e.add(jV({debugName:()=>`Apply decorations from ${i.debugName}`},(t=>{const e=i.read(t);s.set(e)}))),e.add({dispose:()=>{s.clear()}}),e}(this.editor,this.decorations))}ownsViewZone(t){return this.additionalLinesWidget.viewZoneId===t}};H5=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(2,yd)],H5);class V5 extends te{get viewZoneId(){return this._viewZoneId}constructor(t,i,e){super(),this.editor=t,this.languageIdCodec=i,this.lines=e,this._viewZoneId=void 0,this.editorOptionsChanged=ZV("editorOptionChanged",he.filter(this.editor.onDidChangeConfiguration,(t=>t.hasChanged(33)||t.hasChanged(116)||t.hasChanged(98)||t.hasChanged(93)||t.hasChanged(51)||t.hasChanged(50)||t.hasChanged(66)))),this._register(WV((t=>{const i=this.lines.read(t);this.editorOptionsChanged.read(t),i?this.updateLines(i.lineNumber,i.additionalLines,i.minReservedLineCount):this.clear()})))}dispose(){super.dispose(),this.clear()}clear(){this.editor.changeViewZones((t=>{this._viewZoneId&&(t.removeZone(this._viewZoneId),this._viewZoneId=void 0)}))}updateLines(t,i,e){const s=this.editor.getModel();if(!s)return;const{tabSize:n}=s.getOptions();this.editor.changeViewZones((s=>{this._viewZoneId&&(s.removeZone(this._viewZoneId),this._viewZoneId=void 0);const o=Math.max(i.length,e);if(o>0){const e=document.createElement("div");!function(t,i,e,s,n){const o=s.get(33),r=s.get(116),h=s.get(93),c=s.get(51),a=s.get(50),l=s.get(66),u=new td(1e4);u.appendString('
      ');for(let t=0,s=e.length;t');const f=Eo(d),p=So(d),g=Pg.createEmpty(d,n);Qg(new qg(a.isMonospace&&!o,a.canUseHalfwidthRightwardsArrow,d,!1,f,p,0,g,s.decorations,i,0,a.spaceWidth,a.middotWidth,a.wsmiddotWidth,r,"none",h,c!==wi.OFF,null),u),u.appendString("
      ")}u.appendString(""),ir(t,a);const d=u.build(),f=U5?U5.createHTML(d):d;t.innerHTML=f}(e,n,i,this.editor.getOptions(),this.languageIdCodec),this._viewZoneId=s.addZone({afterLineNumber:t,heightInLines:o,domNode:e,afterColumnAffinity:1})}}))}}const U5=Mu("editorGhostText",{createHTML:t=>t});class q5{constructor(t){this.lines=t,this.tokenization={getLineTokens:t=>this.lines[t-1]}}getLineCount(){return this.lines.length}getLineLength(t){return this.lines[t-1].getLineContent().length}}class K5{constructor(){this.value="",this.pos=0}static isDigitCharacter(t){return t>=48&&t<=57}static isVariableCharacter(t){return 95===t||t>=97&&t<=122||t>=65&&t<=90}text(t){this.value=t,this.pos=0}tokenText(t){return this.value.substr(t.pos,t.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};const t=this.pos;let i,e=0,s=this.value.charCodeAt(t);if(i=K5._table[s],"number"==typeof i)return this.pos+=1,{type:i,pos:t,len:1};if(K5.isDigitCharacter(s)){i=8;do{e+=1,s=this.value.charCodeAt(t+e)}while(K5.isDigitCharacter(s));return this.pos+=e,{type:i,pos:t,len:e}}if(K5.isVariableCharacter(s)){i=9;do{s=this.value.charCodeAt(t+ ++e)}while(K5.isVariableCharacter(s)||K5.isDigitCharacter(s));return this.pos+=e,{type:i,pos:t,len:e}}i=10;do{e+=1,s=this.value.charCodeAt(t+e)}while(!isNaN(s)&&void 0===K5._table[s]&&!K5.isDigitCharacter(s)&&!K5.isVariableCharacter(s));return this.pos+=e,{type:i,pos:t,len:e}}}K5._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};class G5{constructor(){this._children=[]}appendChild(t){return t instanceof Z5&&this._children[this._children.length-1]instanceof Z5?this._children[this._children.length-1].value+=t.value:(t.parent=this,this._children.push(t)),this}replace(t,i){const{parent:e}=t,s=e.children.indexOf(t),n=e.children.slice(0);n.splice(s,1,...i),e._children=n,function t(i,e){for(const s of i)s.parent=e,t(s.children,s)}(i,e)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let t=this;for(;;){if(!t)return;if(t instanceof s3)return t;t=t.parent}}toString(){return this.children.reduce(((t,i)=>t+i.toString()),"")}len(){return 0}}class Z5 extends G5{constructor(t){super(),this.value=t}toString(){return this.value}len(){return this.value.length}clone(){return new Z5(this.value)}}class Q5 extends G5{}class J5 extends Q5{static compareByIndex(t,i){return t.index===i.index?0:t.isFinalTabstop?1:i.isFinalTabstop||t.indexi.index?1:0}constructor(t){super(),this.index=t}get isFinalTabstop(){return 0===this.index}get choice(){return 1===this._children.length&&this._children[0]instanceof Y5?this._children[0]:void 0}clone(){const t=new J5(this.index);return this.transform&&(t.transform=this.transform.clone()),t._children=this.children.map((t=>t.clone())),t}}class Y5 extends G5{constructor(){super(...arguments),this.options=[]}appendChild(t){return t instanceof Z5&&(t.parent=this,this.options.push(t)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const t=new Y5;return this.options.forEach(t.appendChild,t),t}}class X5 extends G5{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(t){const i=this;let e=!1,s=t.replace(this.regexp,(function(){return e=!0,i._replace(Array.prototype.slice.call(arguments,0,-2))}));return!e&&this._children.some((t=>t instanceof t3&&Boolean(t.elseValue)))&&(s=this._replace([])),s}_replace(t){let i="";for(const e of this._children)if(e instanceof t3){let s=t[e.index]||"";s=e.resolve(s),i+=s}else i+=e.toString();return i}toString(){return""}clone(){const t=new X5;return t.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),t._children=this.children.map((t=>t.clone())),t}}class t3 extends G5{constructor(t,i,e,s){super(),this.index=t,this.shorthandName=i,this.ifValue=e,this.elseValue=s}resolve(t){return"upcase"===this.shorthandName?t?t.toLocaleUpperCase():"":"downcase"===this.shorthandName?t?t.toLocaleLowerCase():"":"capitalize"===this.shorthandName?t?t[0].toLocaleUpperCase()+t.substr(1):"":"pascalcase"===this.shorthandName?t?this._toPascalCase(t):"":"camelcase"===this.shorthandName?t?this._toCamelCase(t):"":Boolean(t)&&"string"==typeof this.ifValue?this.ifValue:Boolean(t)||"string"!=typeof this.elseValue?t||"":this.elseValue}_toPascalCase(t){const i=t.match(/[a-z0-9]+/gi);return i?i.map((t=>t.charAt(0).toUpperCase()+t.substr(1))).join(""):t}_toCamelCase(t){const i=t.match(/[a-z0-9]+/gi);return i?i.map(((t,i)=>0===i?t.charAt(0).toLowerCase()+t.substr(1):t.charAt(0).toUpperCase()+t.substr(1))).join(""):t}clone(){return new t3(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class i3 extends Q5{constructor(t){super(),this.name=t}resolve(t){let i=t.resolve(this);return this.transform&&(i=this.transform.resolve(i||"")),void 0!==i&&(this._children=[new Z5(i)],!0)}clone(){const t=new i3(this.name);return this.transform&&(t.transform=this.transform.clone()),t._children=this.children.map((t=>t.clone())),t}}function e3(t,i){const e=[...t];for(;e.length>0;){const t=e.shift();if(!i(t))break;e.unshift(...t.children)}}class s3 extends G5{get placeholderInfo(){if(!this._placeholders){const t=[];let i;this.walk((function(e){return e instanceof J5&&(t.push(e),i=!i||i.indexs===t?(e=!0,!1):(i+=s.len(),!0))),e?i:-1}fullLen(t){let i=0;return e3([t],(t=>(i+=t.len(),!0))),i}enclosingPlaceholders(t){const i=[];let{parent:e}=t;for(;e;)e instanceof J5&&i.push(e),e=e.parent;return i}resolveVariables(t){return this.walk((i=>(i instanceof i3&&i.resolve(t)&&(this._placeholders=void 0),!0))),this}appendChild(t){return this._placeholders=void 0,super.appendChild(t)}replace(t,i){return this._placeholders=void 0,super.replace(t,i)}clone(){const t=new s3;return this._children=this.children.map((t=>t.clone())),t}walk(t){e3(this.children,t)}}class n3{constructor(){this._scanner=new K5,this._token={type:14,pos:0,len:0}}static escape(t){return t.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(t){return/\${?CLIPBOARD/.test(t)}parse(t,i,e){const s=new s3;return this.parseFragment(t,s),this.ensureFinalTabstop(s,null!=e&&e,null!=i&&i),s}parseFragment(t,i){const e=i.children.length;for(this._scanner.text(t),this._token=this._scanner.next();this._parse(i););const s=new Map,n=[];i.walk((t=>(t instanceof J5&&(t.isFinalTabstop?s.set(0,void 0):!s.has(t.index)&&t.children.length>0?s.set(t.index,t.children):n.push(t)),!0)));const o=(t,e)=>{const n=s.get(t.index);if(!n)return;const r=new J5(t.index);r.transform=t.transform;for(const t of n){const i=t.clone();r.appendChild(i),i instanceof J5&&s.has(i.index)&&!e.has(i.index)&&(e.add(i.index),o(i,e),e.delete(i.index))}i.replace(t,[r])},r=new Set;for(const t of n)o(t,r);return i.children.slice(e)}ensureFinalTabstop(t,i,e){(i||e&&t.placeholders.length>0)&&(t.placeholders.find((t=>0===t.index))||t.appendChild(new J5(0)))}_accept(t,i){if(void 0===t||this._token.type===t){const t=!i||this._scanner.tokenText(this._token);return this._token=this._scanner.next(),t}return!1}_backTo(t){return this._scanner.pos=t.pos+t.len,this._token=t,!1}_until(t){const i=this._token;for(;this._token.type!==t;){if(14===this._token.type)return!1;if(5===this._token.type){const t=this._scanner.next();if(0!==t.type&&4!==t.type&&5!==t.type)return!1}this._token=this._scanner.next()}const e=this._scanner.value.substring(i.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),e}_parse(t){return this._parseEscaped(t)||this._parseTabstopOrVariableName(t)||this._parseComplexPlaceholder(t)||this._parseComplexVariable(t)||this._parseAnything(t)}_parseEscaped(t){let i;return!!(i=this._accept(5,!0))&&(i=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||i,t.appendChild(new Z5(i)),!0)}_parseTabstopOrVariableName(t){let i;const e=this._token;return this._accept(0)&&(i=this._accept(9,!0)||this._accept(8,!0))?(t.appendChild(/^\d+$/.test(i)?new J5(Number(i)):new i3(i)),!0):this._backTo(e)}_parseComplexPlaceholder(t){let i;const e=this._token;if(!(this._accept(0)&&this._accept(3)&&(i=this._accept(8,!0))))return this._backTo(e);const s=new J5(Number(i));if(this._accept(1))for(;;){if(this._accept(4))return t.appendChild(s),!0;if(!this._parse(s))return t.appendChild(new Z5("${"+i+":")),s.children.forEach(t.appendChild,t),!0}else{if(!(s.index>0&&this._accept(7)))return this._accept(6)?this._parseTransform(s)?(t.appendChild(s),!0):(this._backTo(e),!1):this._accept(4)?(t.appendChild(s),!0):this._backTo(e);{const i=new Y5;for(;;){if(this._parseChoiceElement(i)){if(this._accept(2))continue;if(this._accept(7)&&(s.appendChild(i),this._accept(4)))return t.appendChild(s),!0}return this._backTo(e),!1}}}}_parseChoiceElement(t){const i=this._token,e=[];for(;2!==this._token.type&&7!==this._token.type;){let t;if(t=(t=this._accept(5,!0))?this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||t:this._accept(void 0,!0),!t)return this._backTo(i),!1;e.push(t)}return 0===e.length?(this._backTo(i),!1):(t.appendChild(new Z5(e.join(""))),!0)}_parseComplexVariable(t){let i;const e=this._token;if(!(this._accept(0)&&this._accept(3)&&(i=this._accept(9,!0))))return this._backTo(e);const s=new i3(i);if(!this._accept(1))return this._accept(6)?this._parseTransform(s)?(t.appendChild(s),!0):(this._backTo(e),!1):this._accept(4)?(t.appendChild(s),!0):this._backTo(e);for(;;){if(this._accept(4))return t.appendChild(s),!0;if(!this._parse(s))return t.appendChild(new Z5("${"+i+":")),s.children.forEach(t.appendChild,t),!0}}_parseTransform(t){const i=new X5;let e="",s="";for(;!this._accept(6);){let t;if(t=this._accept(5,!0))t=this._accept(6,!0)||t,e+=t;else{if(14===this._token.type)return!1;e+=this._accept(void 0,!0)}}for(;!this._accept(6);){let t;if(t=this._accept(5,!0))t=this._accept(5,!0)||this._accept(6,!0)||t,i.appendChild(new Z5(t));else if(!this._parseFormatString(i)&&!this._parseAnything(i))return!1}for(;!this._accept(4);){if(14===this._token.type)return!1;s+=this._accept(void 0,!0)}try{i.regexp=new RegExp(e,s)}catch(t){return!1}return t.transform=i,!0}_parseFormatString(t){const i=this._token;if(!this._accept(0))return!1;let e=!1;this._accept(3)&&(e=!0);const s=this._accept(8,!0);if(!s)return this._backTo(i),!1;if(!e)return t.appendChild(new t3(Number(s))),!0;if(this._accept(4))return t.appendChild(new t3(Number(s))),!0;if(!this._accept(1))return this._backTo(i),!1;if(this._accept(6)){const e=this._accept(9,!0);return e&&this._accept(4)?(t.appendChild(new t3(Number(s),e)),!0):(this._backTo(i),!1)}if(this._accept(11)){const i=this._until(4);if(i)return t.appendChild(new t3(Number(s),void 0,i,void 0)),!0}else if(this._accept(12)){const i=this._until(4);if(i)return t.appendChild(new t3(Number(s),void 0,void 0,i)),!0}else if(this._accept(13)){const i=this._until(1);if(i){const e=this._until(4);if(e)return t.appendChild(new t3(Number(s),void 0,i,e)),!0}}else{const i=this._until(4);if(i)return t.appendChild(new t3(Number(s),void 0,void 0,i)),!0}return this._backTo(i),!1}_parseAnything(t){return 14!==this._token.type&&(t.appendChild(new Z5(this._scanner.tokenText(this._token))),this._accept(void 0),!0)}}async function o3(t,i,e,s,n=ke.None,o){const r=function(t,i){const e=i.getWordAtPosition(t),s=i.getLineMaxColumn(t.lineNumber);return e?new Ms(t.lineNumber,e.startColumn,t.lineNumber,s):Ms.fromPositions(t,t.with(void 0,s))}(i,e),h=t.all(e),c=new qp;for(const t of h)t.groupId&&c.add(t.groupId,t);function a(t){if(!t.yieldsToGroupIds)return[];const i=[];for(const e of t.yieldsToGroupIds||[]){const t=c.get(e);for(const e of t)i.push(e)}return i}const l=new Map,u=new Set;function d(t,i){if(i=[...i,t],u.has(t))return i;u.add(t);try{const e=a(t);for(const t of e){const e=d(t,i);if(e)return e}}finally{u.delete(t)}}function f(t){const o=l.get(t);if(o)return o;const r=d(t,[]);r&&Pi(new Error(`Inline completions: cyclic yield-to dependency detected. Path: ${r.map((t=>t.toString?t.toString():""+t)).join(" -> ")}`));const h=new bc;return l.set(t,h.p),(async()=>{if(!r){const i=a(t);for(const t of i){const i=await f(t);if(i&&i.items.length>0)return}}try{return await t.provideInlineCompletions(e,i,s,n)}catch(t){return void Pi(t)}})().then((t=>h.complete(t)),(t=>h.error(t))),h.p}const p=await Promise.all(h.map((async t=>({provider:t,completions:await f(t)})))),g=new Map,m=[];for(const t of p){const i=t.completions;if(!i)continue;const s=new h3(i,t.provider);m.push(s);for(const t of i.items){const i=c3.from(t,s,r,e,o);g.set(i.hash(),i)}}return new r3(Array.from(g.values()),new Set(g.keys()),m)}class r3{constructor(t,i,e){this.completions=t,this.hashs=i,this.providerResults=e}has(t){return this.hashs.has(t.hash())}dispose(){for(const t of this.providerResults)t.removeRef()}}class h3{constructor(t,i){this.inlineCompletions=t,this.provider=i,this.refCount=1}addRef(){this.refCount++}removeRef(){this.refCount--,0===this.refCount&&this.provider.freeInlineCompletions(this.inlineCompletions)}}class c3{static from(t,i,e,s,n){let o,r,h=t.range?Ms.lift(t.range):e;if("string"==typeof t.insertText){if(o=t.insertText,n&&t.completeBracketPairs){o=a3(o,h.getStartPosition(),s,n);const i=o.length-t.insertText.length;0!==i&&(h=new Ms(h.startLineNumber,h.startColumn,h.endLineNumber,h.endColumn+i))}r=void 0}else if("snippet"in t.insertText){const i=t.insertText.snippet.length;if(n&&t.completeBracketPairs){t.insertText.snippet=a3(t.insertText.snippet,h.getStartPosition(),s,n);const e=t.insertText.snippet.length-i;0!==e&&(h=new Ms(h.startLineNumber,h.startColumn,h.endLineNumber,h.endColumn+e))}const e=(new n3).parse(t.insertText.snippet);1===e.children.length&&e.children[0]instanceof Z5?(o=e.children[0].value,r=void 0):(o=e.toString(),r={snippet:t.insertText.snippet,range:h})}else xh();return new c3(o,t.command,h,o,r,t.additionalTextEdits||I5,t,i)}constructor(t,i,e,s,n,o,r,h){this.filterText=t,this.command=i,this.range=e,this.insertText=s,this.snippetInfo=n,this.additionalTextEdits=o,this.sourceInlineCompletion=r,this.source=h,s=(t=t.replace(/\r\n|\r/g,"\n")).replace(/\r\n|\r/g,"\n")}withRange(t){return new c3(this.filterText,this.command,t,this.insertText,this.snippetInfo,this.additionalTextEdits,this.sourceInlineCompletion,this.source)}hash(){return JSON.stringify({insertText:this.insertText,range:this.range.toString()})}}function a3(t,i,e,s){const n=e.getLineContent(i.lineNumber).substring(0,i.column-1)+t,o=e.tokenization.tokenizeLineWithEdit(i,n.length-(i.column-1),t),r=null==o?void 0:o.sliceAndInflate(i.column-1,n.length,0);if(!r)return t;const h=function(t,i){const e=new vE,s=new NE(e,(t=>i.getLanguageConfiguration(t))),n=HE(new RE(new q5([t]),s),[],void 0,!0);let o="";const r=t.getLineContent();return function t(i,e){if(2===i.kind)if(t(i.openingBracket,e),e=sE(e,i.openingBracket.length),i.child&&(t(i.child,e),e=sE(e,i.child.length)),i.closingBracket)t(i.closingBracket,e),e=sE(e,i.closingBracket.length);else{const t=s.getSingleLanguageBracketTokens(i.openingBracket.languageId).findClosingTokenText(i.openingBracket.bracketIds);o+=t}else if(3===i.kind);else if(0===i.kind||1===i.kind)o+=r.substring(e,sE(e,i.length));else if(4===i.kind)for(const s of i.children)t(s,e),e=sE(e,s.length)}(n,YD),o}(r,s);return h}class l3{constructor(t,i){this.range=t,this.text=i}removeCommonPrefix(t,i){const e=i?this.range.intersectRanges(i):this.range;if(!e)return this;const s=t.getValueInRange(e,1),n=fo(s,this.text),o=N5(this.range.getStartPosition(),B5(s.substring(0,n))),r=this.text.substring(n),h=Ms.fromPositions(o,this.range.getEndPosition());return new l3(h,r)}augments(t){return this.text.startsWith(t.text)&&(i=this.range,(e=t.range).getStartPosition().equals(i.getStartPosition())&&e.getEndPosition().isBeforeOrEqual(i.getEndPosition()));var i,e}computeGhostText(t,i,e,s=0){let n=this.removeCommonPrefix(t);if(n.range.endLineNumber!==n.range.startLineNumber)return;const o=t.getLineContent(n.range.startLineNumber),r=io(o).length;if(n.range.startColumn-1<=r){const t=io(n.text).length,i=o.substring(n.range.startColumn-1,r),[e,s]=[n.range.getStartPosition(),n.range.getEndPosition()],h=e.column+i.length<=s.column?e.delta(0,i.length):s,c=Ms.fromPositions(h,s),a=n.text.startsWith(i)?n.text.substring(i.length):n.text.substring(t);n=new l3(c,a)}const h=t.getValueInRange(n.range),c=function(t,i){if((null==u3?void 0:u3.originalValue)===t&&(null==u3?void 0:u3.newValue)===i)return null==u3?void 0:u3.changes;{let e=f3(t,i,!0);if(e){const s=d3(e);if(s>0){const n=f3(t,i,!1);n&&d3(n)0===t.originalLength));if(t.length>1||1===t.length&&t[0].originalStart!==h.length)return}const u=n.text.length-s;for(const t of c){const s=n.range.startColumn+t.originalStart+t.originalLength;if("subwordSmart"===i&&e&&e.lineNumber===n.range.startLineNumber&&s0)return;if(0===t.modifiedLength)continue;const o=t.modifiedStart+t.modifiedLength,r=Math.max(t.modifiedStart,Math.min(o,u)),h=n.text.substring(t.modifiedStart,r),c=n.text.substring(r,Math.max(t.modifiedStart,o));if(h.length>0){const t=Xn(h);l.push(new $5(s,t,!1))}if(c.length>0){const t=Xn(c);l.push(new $5(s,t,!0))}}return new P5(a,l)}}let u3;function d3(t){let i=0;for(const e of t)i+=e.originalLength;return i}function f3(t,i,e){if(t.length>5e3||i.length>5e3)return;function s(t){let i=0;for(let e=0,s=t.length;ei&&(i=s)}return i}const n=Math.max(s(t),s(i));function o(t){if(t<0)throw new Error("unexpected");return n+t+1}function r(t){let i=0,s=0;const n=new Int32Array(t.length);for(let r=0,h=t.length;rh},{getElements:()=>c}).ComputeDiff(!1).changes}var p3=function(t,i){return function(e,s){i(e,s,t)}};let g3=class extends te{constructor(t,i,e,s,n){super(),this.textModel=t,this.versionId=i,this._debounceValue=e,this.languageFeaturesService=s,this.languageConfigurationService=n,this._updateOperation=this._register(new ie),this.inlineCompletions=RV("inlineCompletions",void 0),this.suggestWidgetInlineCompletions=RV("suggestWidgetInlineCompletions",void 0),this._register(this.textModel.onDidChangeContent((()=>{this._updateOperation.clear()})))}fetch(t,i,e){var s,n;const o=new m3(t,i,this.textModel.getVersionId()),r=i.selectedSuggestionInfo?this.suggestWidgetInlineCompletions:this.inlineCompletions;if(null===(s=this._updateOperation.value)||void 0===s?void 0:s.request.satisfies(o))return this._updateOperation.value.promise;if(null===(n=r.get())||void 0===n?void 0:n.request.satisfies(o))return Promise.resolve(!0);const h=!!this._updateOperation.value;this._updateOperation.clear();const c=new Ce,a=(async()=>{var s;if((h||i.triggerKind===$s.Automatic)&&await(s=this._debounceValue.get(this.textModel),new Promise((t=>{let i;setTimeout((()=>{i&&i.dispose(),t()}),s)}))),c.token.isCancellationRequested||this.textModel.getVersionId()!==o.versionId)return!1;const n=new Date,a=await o3(this.languageFeaturesService.inlineCompletionsProvider,t,this.textModel,i,c.token,this.languageConfigurationService);if(c.token.isCancellationRequested||this.textModel.getVersionId()!==o.versionId)return!1;const l=new Date;this._debounceValue.update(this.textModel,l.getTime()-n.getTime());const u=new v3(a,o,this.textModel,this.versionId);if(e){const i=e.toInlineCompletion(void 0);e.canBeReused(this.textModel,t)&&!a.has(i)&&u.prepend(e.inlineCompletion,i.range,!0)}return this._updateOperation.clear(),yV((t=>{r.set(u,t)})),!0})(),l=new w3(o,c,a);return this._updateOperation.value=l,a}clear(t){this._updateOperation.clear(),this.inlineCompletions.set(void 0,t),this.suggestWidgetInlineCompletions.set(void 0,t)}clearSuggestWidgetInlineCompletions(t){var i;(null===(i=this._updateOperation.value)||void 0===i?void 0:i.request.context.selectedSuggestionInfo)&&this._updateOperation.clear(),this.suggestWidgetInlineCompletions.set(void 0,t)}cancelUpdate(){this._updateOperation.clear()}};g3=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([p3(3,xg),p3(4,Xd)],g3);class m3{constructor(t,i,e){this.position=t,this.context=i,this.versionId=e}satisfies(t){return this.position.equals(t.position)&&(e=t.context.selectedSuggestionInfo,(i=this.context.selectedSuggestionInfo)&&e?((t,i)=>t.equals(i))(i,e):i===e)&&(t.context.triggerKind===$s.Automatic||this.context.triggerKind===$s.Explicit)&&this.versionId===t.versionId;var i,e}}class w3{constructor(t,i,e){this.request=t,this.cancellationTokenSource=i,this.promise=e}dispose(){this.cancellationTokenSource.cancel()}}class v3{get inlineCompletions(){return this._inlineCompletions}constructor(t,i,e,s){this.inlineCompletionProviderResult=t,this.request=i,this.textModel=e,this.versionId=s,this._refCount=1,this._prependedInlineCompletionItems=[],this._rangeVersionIdValue=0,this._rangeVersionId=_V(this,(t=>{this.versionId.read(t);let i=!1;for(const t of this._inlineCompletions)i=i||t._updateRange(this.textModel);return i&&this._rangeVersionIdValue++,this._rangeVersionIdValue}));const n=e.deltaDecorations([],t.completions.map((t=>({range:t.range,options:{description:"inline-completion-tracking-range"}}))));this._inlineCompletions=t.completions.map(((t,i)=>new b3(t,n[i],this._rangeVersionId)))}clone(){return this._refCount++,this}dispose(){if(this._refCount--,0===this._refCount){setTimeout((()=>{this.textModel.isDisposed()||this.textModel.deltaDecorations(this._inlineCompletions.map((t=>t.decorationId)),[])}),0),this.inlineCompletionProviderResult.dispose();for(const t of this._prependedInlineCompletionItems)t.source.removeRef()}}prepend(t,i,e){e&&t.source.addRef();const s=this.textModel.deltaDecorations([],[{range:i,options:{description:"inline-completion-tracking-range"}}])[0];this._inlineCompletions.unshift(new b3(t,s,this._rangeVersionId,i)),this._prependedInlineCompletionItems.push(t)}}class b3{get forwardStable(){var t;return null!==(t=this.inlineCompletion.source.inlineCompletions.enableForwardStability)&&void 0!==t&&t}constructor(t,i,e,s){this.inlineCompletion=t,this.decorationId=i,this.rangeVersion=e,this.semanticId=JSON.stringify([this.inlineCompletion.filterText,this.inlineCompletion.insertText,this.inlineCompletion.range.getStartPosition().toString()]),this._isValid=!0,this._updatedRange=null!=s?s:t.range}toInlineCompletion(t){return this.inlineCompletion.withRange(this._getUpdatedRange(t))}toSingleTextEdit(t){return new l3(this._getUpdatedRange(t),this.inlineCompletion.insertText)}isVisible(t,i,e){const s=this._toFilterTextReplacement(e).removeCommonPrefix(t);if(!this._isValid||!this.inlineCompletion.range.getStartPosition().equals(this._getUpdatedRange(e).getStartPosition())||i.lineNumber!==s.range.startLineNumber)return!1;const n=t.getValueInRange(s.range,1),o=s.text,r=Math.max(0,i.column-s.range.startColumn);let h=o.substring(0,r),c=o.substring(r),a=n.substring(0,r),l=n.substring(r);const u=t.getLineIndentColumn(s.range.startLineNumber);return s.range.startColumn<=u&&(a=a.trimStart(),0===a.length&&(l=l.trimStart()),h=h.trimStart(),0===h.length&&(c=c.trimStart())),h.startsWith(a)&&!!WI(l,c)}canBeReused(t,i){return this._isValid&&this._getUpdatedRange(void 0).containsPosition(i)&&this.isVisible(t,i,void 0)&&!this._isSmallerThanOriginal(void 0)}_toFilterTextReplacement(t){return new l3(this._getUpdatedRange(t),this.inlineCompletion.filterText)}_isSmallerThanOriginal(t){return y3(this._getUpdatedRange(t)).isBefore(y3(this.inlineCompletion.range))}_getUpdatedRange(t){return this.rangeVersion.read(t),this._updatedRange}_updateRange(t){const i=t.getDecorationRange(this.decorationId);return i?!this._updatedRange.equalsRange(i)&&(this._updatedRange=i,!0):(this._isValid=!1,!0)}}function y3(t){return t.startLineNumber===t.endLineNumber?new As(1,1+t.endColumn-t.startColumn):new As(1+t.endLineNumber-t.startLineNumber,t.endColumn)}const k3={Visible:j2,HasFocusedSuggestion:new ch("suggestWidgetHasFocusedSuggestion",!1,ot(0,"Whether any suggestion is focused")),DetailsVisible:new ch("suggestWidgetDetailsVisible",!1,ot(0,"Whether suggestion details are visible")),MultipleSuggestions:new ch("suggestWidgetMultipleSuggestions",!1,ot(0,"Whether there are multiple suggestions to pick from")),MakesTextEdit:new ch("suggestionMakesTextEdit",!0,ot(0,"Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new ch("acceptSuggestionOnEnter",!0,ot(0,"Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new ch("suggestionHasInsertAndReplaceRange",!1,ot(0,"Whether the current suggestion has insert and replace behaviour")),InsertMode:new ch("suggestionInsertMode",void 0,{type:"string",description:ot(0,"Whether the default behaviour is to insert or replace")}),CanResolve:new ch("suggestionCanResolve",!1,ot(0,"Whether the current suggestion supports to resolve further details"))},x3=new Rh("suggestWidgetStatusBar");class C3{constructor(t,i,e,s){var n;this.position=t,this.completion=i,this.container=e,this.provider=s,this.isInvalid=!1,this.score=x_.Default,this.distance=0,this.textLabel="string"==typeof i.label?i.label:null===(n=i.label)||void 0===n?void 0:n.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=i.sortText&&i.sortText.toLowerCase(),this.filterTextLow=i.filterText&&i.filterText.toLowerCase(),this.extensionId=i.extensionId,Ms.isIRange(i.range)?(this.editStart=new As(i.range.startLineNumber,i.range.startColumn),this.editInsertEnd=new As(i.range.endLineNumber,i.range.endColumn),this.editReplaceEnd=new As(i.range.endLineNumber,i.range.endColumn),this.isInvalid=this.isInvalid||Ms.spansMultipleLines(i.range)||i.range.startLineNumber!==t.lineNumber):(this.editStart=new As(i.range.insert.startLineNumber,i.range.insert.startColumn),this.editInsertEnd=new As(i.range.insert.endLineNumber,i.range.insert.endColumn),this.editReplaceEnd=new As(i.range.replace.endLineNumber,i.range.replace.endColumn),this.isInvalid=this.isInvalid||Ms.spansMultipleLines(i.range.insert)||Ms.spansMultipleLines(i.range.replace)||i.range.insert.startLineNumber!==t.lineNumber||i.range.replace.startLineNumber!==t.lineNumber||i.range.insert.startColumn!==i.range.replace.startColumn),"function"!=typeof s.resolveCompletionItem&&(this._resolveCache=Promise.resolve(),this._resolveDuration=0)}get isResolved(){return void 0!==this._resolveDuration}get resolveDuration(){return void 0!==this._resolveDuration?this._resolveDuration:-1}async resolve(t){if(!this._resolveCache){const i=t.onCancellationRequested((()=>{this._resolveCache=void 0,this._resolveDuration=void 0})),e=new re(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,t)).then((t=>{Object.assign(this.completion,t),this._resolveDuration=e.elapsed()}),(t=>{ji(t)&&(this._resolveCache=void 0,this._resolveDuration=void 0)})).finally((()=>{i.dispose()}))}return this._resolveCache}}class S3{constructor(t=2,i=new Set,e=new Set,s=new Map,n=!0){this.snippetSortOrder=t,this.kindFilter=i,this.providerFilter=e,this.providerItemsToReuse=s,this.showDeprecated=n}}S3.default=new S3;class D3{constructor(t,i,e,s){this.items=t,this.needsClipboard=i,this.durations=e,this.disposable=s}}async function E3(t,i,e,s=S3.default,n={triggerKind:0},o=ke.None){const r=new re;e=e.clone();const h=i.getWordAtPosition(e),c=h?new Ms(e.lineNumber,h.startColumn,e.lineNumber,h.endColumn):Ms.fromPositions(e),a={replace:c,insert:c.setEndPosition(e.lineNumber,e.column)},l=[],u=new Xi,d=[];let f=!1;const p=(t,i,n)=>{var o,r,h;let c=!1;if(!i)return c;for(const n of i.suggestions)if(!s.kindFilter.has(n.kind)){if(!s.showDeprecated&&(null===(o=null==n?void 0:n.tags)||void 0===o?void 0:o.includes(1)))continue;n.range||(n.range=a),n.sortText||(n.sortText="string"==typeof n.label?n.label:n.label.label),!f&&n.insertTextRules&&4&n.insertTextRules&&(f=n3.guessNeedsClipboard(n.insertText)),l.push(new C3(e,n,i,t)),c=!0}return Zi(i)&&u.add(i),d.push({providerName:null!==(r=t._debugDisplayName)&&void 0!==r?r:"unknown_provider",elapsedProvider:null!==(h=i.duration)&&void 0!==h?h:-1,elapsedOverall:n.elapsed()}),c},g=(async()=>{})();for(const r of t.orderedGroups(i)){let t=!1;if(await Promise.all(r.map((async r=>{if(s.providerItemsToReuse.has(r)){const i=s.providerItemsToReuse.get(r);return i.forEach((t=>l.push(t))),void(t=t||i.length>0)}if(!(s.providerFilter.size>0)||s.providerFilter.has(r))try{const s=new re,h=await r.provideCompletionItems(i,e,n,o);t=p(r,h,s)||t}catch(t){Pi(t)}}))),t||o.isCancellationRequested)break}return await g,o.isCancellationRequested?(u.dispose(),Promise.reject(new zi)):new D3(l.sort(M3.get(s.snippetSortOrder)),f,{entries:d,elapsed:r.elapsed()},u)}function A3(t,i){if(t.sortTextLow&&i.sortTextLow){if(t.sortTextLowi.sortTextLow)return 1}return t.textLabeli.textLabel?1:t.completion.kind-i.completion.kind}const M3=new Map;M3.set(0,(function(t,i){if(t.completion.kind!==i.completion.kind){if(27===t.completion.kind)return-1;if(27===i.completion.kind)return 1}return A3(t,i)})),M3.set(2,(function(t,i){if(t.completion.kind!==i.completion.kind){if(27===t.completion.kind)return 1;if(27===i.completion.kind)return-1}return A3(t,i)})),M3.set(1,A3),Dr.registerCommand("_executeCompletionItemProvider",(async(t,...i)=>{const[e,s,n,o]=i;q(ms.isUri(e)),q(As.isIPosition(s)),q("string"==typeof n||!n),q("number"==typeof o||!o);const{completionProvider:r}=t.get(xg),h=await t.get(gr).createModelReference(e);try{const t={incomplete:!1,suggestions:[]},i=[],e=h.object.textEditorModel.validatePosition(s),c=await E3(r,h.object.textEditorModel,e,void 0,{triggerCharacter:null!=n?n:void 0,triggerKind:n?1:0});for(const e of c.items)i.length<(null!=o?o:0)&&i.push(e.resolve(ke.None)),t.incomplete=t.incomplete||e.container.incomplete,t.suggestions.push(e.completion);try{return await Promise.all(i),t}finally{setTimeout((()=>c.disposable.dispose()),100)}}finally{h.dispose()}}));class L3{static isAllOff(t){return"off"===t.other&&"off"===t.comments&&"off"===t.strings}static isAllOn(t){return"on"===t.other&&"on"===t.comments&&"on"===t.strings}static valueFor(t,i){switch(i){case 1:return t.comments;case 2:return t.strings;default:return t.other}}}function F3(t,i=xt){return function(t,i=xt){return!!i&&fA(t.charCodeAt(0))&&58===t.charCodeAt(1)}(t,i)?t.charAt(0).toUpperCase()+t.slice(1):t}Object.freeze({CURRENT_YEAR:!0,CURRENT_YEAR_SHORT:!0,CURRENT_MONTH:!0,CURRENT_DATE:!0,CURRENT_HOUR:!0,CURRENT_MINUTE:!0,CURRENT_SECOND:!0,CURRENT_DAY_NAME:!0,CURRENT_DAY_NAME_SHORT:!0,CURRENT_MONTH_NAME:!0,CURRENT_MONTH_NAME_SHORT:!0,CURRENT_SECONDS_UNIX:!0,CURRENT_TIMEZONE_OFFSET:!0,SELECTION:!0,CLIPBOARD:!0,TM_SELECTED_TEXT:!0,TM_CURRENT_LINE:!0,TM_CURRENT_WORD:!0,TM_LINE_INDEX:!0,TM_LINE_NUMBER:!0,TM_FILENAME:!0,TM_FILENAME_BASE:!0,TM_DIRECTORY:!0,TM_FILEPATH:!0,CURSOR_INDEX:!0,CURSOR_NUMBER:!0,RELATIVE_FILEPATH:!0,BLOCK_COMMENT_START:!0,BLOCK_COMMENT_END:!0,LINE_COMMENT:!0,WORKSPACE_NAME:!0,WORKSPACE_FOLDER:!0,RANDOM:!0,RANDOM_HEX:!0,UUID:!0});class T3{constructor(t){this._delegates=t}resolve(t){for(const i of this._delegates){const e=i.resolve(t);if(void 0!==e)return e}}}class R3{constructor(t,i,e,s){this._model=t,this._selection=i,this._selectionIdx=e,this._overtypingCapturer=s}resolve(t){const{name:i}=t;if("SELECTION"===i||"TM_SELECTED_TEXT"===i){let i=this._model.getValueInRange(this._selection)||void 0,e=this._selection.startLineNumber!==this._selection.endLineNumber;if(!i&&this._overtypingCapturer){const t=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);t&&(i=t.value,e=t.multiline)}if(i&&e&&t.snippet){const e=io(this._model.getLineContent(this._selection.startLineNumber),0,this._selection.startColumn-1);let s=e;t.snippet.walk((i=>i!==t&&(i instanceof Z5&&(s=io(Xn(i.value).pop())),!0)));const n=fo(s,e);i=i.replace(/(\r\n|\r|\n)(.*)/g,((t,i,e)=>`${i}${s.substr(n)}${e}`))}return i}if("TM_CURRENT_LINE"===i)return this._model.getLineContent(this._selection.positionLineNumber);if("TM_CURRENT_WORD"===i){const t=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return t&&t.word||void 0}return"TM_LINE_INDEX"===i?String(this._selection.positionLineNumber-1):"TM_LINE_NUMBER"===i?String(this._selection.positionLineNumber):"CURSOR_INDEX"===i?String(this._selectionIdx):"CURSOR_NUMBER"===i?String(this._selectionIdx+1):void 0}}class O3{constructor(t,i){this._labelService=t,this._model=i}resolve(t){const{name:i}=t;if("TM_FILENAME"===i)return hs(this._model.uri.fsPath);if("TM_FILENAME_BASE"===i){const t=hs(this._model.uri.fsPath),i=t.lastIndexOf(".");return i<=0?t:t.slice(0,i)}return"TM_DIRECTORY"===i?"."===rs(this._model.uri.fsPath)?"":this._labelService.getUriLabel(kA(this._model.uri)):"TM_FILEPATH"===i?this._labelService.getUriLabel(this._model.uri):"RELATIVE_FILEPATH"===i?this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0}):void 0}}class I3{constructor(t,i,e,s){this._readClipboardText=t,this._selectionIdx=i,this._selectionCount=e,this._spread=s}resolve(t){if("CLIPBOARD"!==t.name)return;const i=this._readClipboardText();if(i){if(this._spread){const t=i.split(/\r\n|\n|\r/).filter((t=>!Vn(t)));if(t.length===this._selectionCount)return t[this._selectionIdx]}return i}}}let _3=class{constructor(t,i,e){this._model=t,this._selection=i,this._languageConfigurationService=e}resolve(t){const{name:i}=t,e=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),s=this._languageConfigurationService.getLanguageConfiguration(e).comments;if(s)return"LINE_COMMENT"===i?s.lineCommentToken||void 0:"BLOCK_COMMENT_START"===i?s.blockCommentStartToken||void 0:"BLOCK_COMMENT_END"===i&&s.blockCommentEndToken||void 0}};_3=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(2,Xd)],_3);class N3{constructor(){this._date=new Date}resolve(t){const{name:i}=t;if("CURRENT_YEAR"===i)return String(this._date.getFullYear());if("CURRENT_YEAR_SHORT"===i)return String(this._date.getFullYear()).slice(-2);if("CURRENT_MONTH"===i)return String(this._date.getMonth().valueOf()+1).padStart(2,"0");if("CURRENT_DATE"===i)return String(this._date.getDate().valueOf()).padStart(2,"0");if("CURRENT_HOUR"===i)return String(this._date.getHours().valueOf()).padStart(2,"0");if("CURRENT_MINUTE"===i)return String(this._date.getMinutes().valueOf()).padStart(2,"0");if("CURRENT_SECOND"===i)return String(this._date.getSeconds().valueOf()).padStart(2,"0");if("CURRENT_DAY_NAME"===i)return N3.dayNames[this._date.getDay()];if("CURRENT_DAY_NAME_SHORT"===i)return N3.dayNamesShort[this._date.getDay()];if("CURRENT_MONTH_NAME"===i)return N3.monthNames[this._date.getMonth()];if("CURRENT_MONTH_NAME_SHORT"===i)return N3.monthNamesShort[this._date.getMonth()];if("CURRENT_SECONDS_UNIX"===i)return String(Math.floor(this._date.getTime()/1e3));if("CURRENT_TIMEZONE_OFFSET"===i){const t=this._date.getTimezoneOffset(),i=t>0?"-":"+",e=Math.trunc(Math.abs(t/60)),s=e<10?"0"+e:e,n=Math.abs(t)-60*e;return i+s+":"+(n<10?"0"+n:n)}}}N3.dayNames=[ot(0,"Sunday"),ot(0,"Monday"),ot(0,"Tuesday"),ot(0,"Wednesday"),ot(0,"Thursday"),ot(0,"Friday"),ot(0,"Saturday")],N3.dayNamesShort=[ot(0,"Sun"),ot(0,"Mon"),ot(0,"Tue"),ot(0,"Wed"),ot(0,"Thu"),ot(0,"Fri"),ot(0,"Sat")],N3.monthNames=[ot(0,"January"),ot(0,"February"),ot(0,"March"),ot(0,"April"),ot(0,"May"),ot(0,"June"),ot(0,"July"),ot(0,"August"),ot(0,"September"),ot(0,"October"),ot(0,"November"),ot(0,"December")],N3.monthNamesShort=[ot(0,"Jan"),ot(0,"Feb"),ot(0,"Mar"),ot(0,"Apr"),ot(0,"May"),ot(0,"Jun"),ot(0,"Jul"),ot(0,"Aug"),ot(0,"Sep"),ot(0,"Oct"),ot(0,"Nov"),ot(0,"Dec")];class B3{constructor(t){this._workspaceService=t}resolve(t){if(!this._workspaceService)return;const i="string"==typeof(e=this._workspaceService.getWorkspace())||void 0===e?"string"==typeof e?{id:hs(e)}:JO:e.configuration?{id:e.id,configPath:e.configuration}:1===e.folders.length?{id:e.id,uri:e.folders[0].uri}:{id:e.id};var e,s;return"string"!=typeof(null==(s=i)?void 0:s.id)||QO(s)||function(t){return"string"==typeof(null==t?void 0:t.id)&&ms.isUri(t.configPath)}(s)?"WORKSPACE_NAME"===t.name?this._resolveWorkspaceName(i):"WORKSPACE_FOLDER"===t.name?this._resoveWorkspacePath(i):void 0:void 0}_resolveWorkspaceName(t){if(QO(t))return hs(t.uri.path);let i=hs(t.configPath.path);return i.endsWith("code-workspace")&&(i=i.substr(0,i.length-14-1)),i}_resoveWorkspacePath(t){if(QO(t))return F3(t.uri.fsPath);const i=hs(t.configPath.path);let e=t.configPath.fsPath;return e.endsWith(i)&&(e=e.substr(0,e.length-i.length-1)),e?F3(e):"/"}}class P3{resolve(t){const{name:i}=t;return"RANDOM"===i?Math.random().toString().slice(-6):"RANDOM_HEX"===i?Math.random().toString(16).slice(-6):"UUID"===i?l1():void 0}}var $3;class W3{constructor(t,i,e){this._editor=t,this._snippet=i,this._snippetLineLeadingWhitespace=e,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=f(i.placeholders,J5.compareByIndex),this._placeholderGroupsIdx=-1}initialize(t){this._offset=t.newPosition}dispose(){this._placeholderDecorations&&this._editor.removeDecorations([...this._placeholderDecorations.values()]),this._placeholderGroups.length=0}_initDecorations(){if(-1===this._offset)throw new Error("Snippet not initialized!");if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;const t=this._editor.getModel();this._editor.changeDecorations((i=>{for(const e of this._snippet.placeholders){const s=this._snippet.offset(e),n=this._snippet.fullLen(e),o=Ms.fromPositions(t.getPositionAt(this._offset+s),t.getPositionAt(this._offset+s+n)),r=i.addDecoration(o,e.isFinalTabstop?W3._decor.inactiveFinal:W3._decor.inactive);this._placeholderDecorations.set(e,r)}}))}move(t){if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){const t=[];for(const i of this._placeholderGroups[this._placeholderGroupsIdx])if(i.transform){const e=this._placeholderDecorations.get(i),s=this._editor.getModel().getDecorationRange(e),n=this._editor.getModel().getValueInRange(s),o=i.transform.resolve(n).split(/\r\n|\r|\n/);for(let t=1;t0&&this._editor.executeEdits("snippet.placeholderTransform",t)}let i=!1;!0===t&&this._placeholderGroupsIdx0&&(this._placeholderGroupsIdx-=1,i=!0);const e=this._editor.getModel().changeDecorations((t=>{const e=new Set,s=[];for(const n of this._placeholderGroups[this._placeholderGroupsIdx]){const o=this._placeholderDecorations.get(n),r=this._editor.getModel().getDecorationRange(o);s.push(new Ls(r.startLineNumber,r.startColumn,r.endLineNumber,r.endColumn)),i=i&&this._hasPlaceholderBeenCollapsed(n),t.changeDecorationOptions(o,n.isFinalTabstop?W3._decor.activeFinal:W3._decor.active),e.add(n);for(const i of this._snippet.enclosingPlaceholders(n)){const s=this._placeholderDecorations.get(i);t.changeDecorationOptions(s,i.isFinalTabstop?W3._decor.activeFinal:W3._decor.active),e.add(i)}}for(const[i,s]of this._placeholderDecorations)e.has(i)||t.changeDecorationOptions(s,i.isFinalTabstop?W3._decor.inactiveFinal:W3._decor.inactive);return s}));return i?this.move(t):null!=e?e:[]}_hasPlaceholderBeenCollapsed(t){let i=t;for(;i;){if(i instanceof J5){const t=this._placeholderDecorations.get(i);if(this._editor.getModel().getDecorationRange(t).isEmpty()&&i.toString().length>0)return!0}i=i.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||0===this._placeholderGroups.length}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){if(0===this._snippet.placeholders.length)return!0;if(1===this._snippet.placeholders.length){const[t]=this._snippet.placeholders;if(t.isFinalTabstop&&this._snippet.rightMostDescendant===t)return!0}return!1}computePossibleSelections(){const t=new Map;for(const i of this._placeholderGroups){let e;for(const s of i){if(s.isFinalTabstop)break;e||(e=[],t.set(s.index,e));const i=this._placeholderDecorations.get(s),n=this._editor.getModel().getDecorationRange(i);if(!n){t.delete(s.index);break}e.push(n)}}return t}get activeChoice(){if(!this._placeholderDecorations)return;const t=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!(null==t?void 0:t.choice))return;const i=this._placeholderDecorations.get(t);if(!i)return;const e=this._editor.getModel().getDecorationRange(i);return e?{range:e,choice:t.choice}:void 0}get hasChoice(){let t=!1;return this._snippet.walk((i=>(t=i instanceof Y5,!t))),t}merge(t){const i=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations((e=>{for(const s of this._placeholderGroups[this._placeholderGroupsIdx]){const n=t.shift();console.assert(-1!==n._offset),console.assert(!n._placeholderDecorations);const o=n._snippet.placeholderInfo.last.index;for(const t of n._snippet.placeholderInfo.all)t.index=t.isFinalTabstop?s.index+(o+1)/this._nestingLevel:s.index+t.index/this._nestingLevel;this._snippet.replace(s,n._snippet.children);const r=this._placeholderDecorations.get(s);e.removeDecoration(r),this._placeholderDecorations.delete(s);for(const t of n._snippet.placeholders){const s=n._snippet.offset(t),o=n._snippet.fullLen(t),r=Ms.fromPositions(i.getPositionAt(n._offset+s),i.getPositionAt(n._offset+s+o)),h=e.addDecoration(r,W3._decor.inactive);this._placeholderDecorations.set(t,h)}}this._placeholderGroups=f(this._snippet.placeholders,J5.compareByIndex)}))}}W3._decor={active:AL.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:AL.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:AL.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:AL.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})};const j3={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let z3=$3=class{static adjustWhitespace(t,i,e,s,n){const o=io(t.getLineContent(i.lineNumber),0,i.column-1);let r;return s.walk((i=>{if(!(i instanceof Z5)||i.parent instanceof Y5)return!0;if(n&&!n.has(i))return!0;const h=i.value.split(/\r\n|\r|\n/);if(e){const e=s.offset(i);if(0===e)h[0]=t.normalizeIndentation(h[0]);else{r=null!=r?r:s.toString();const i=r.charCodeAt(e-1);10!==i&&13!==i||(h[0]=t.normalizeIndentation(o+h[0]))}for(let i=1;it.get(ZO))),f=t.invokeWithinContext((t=>new O3(t.get($O),u))),p=()=>r,g=u.getValueInRange($3.adjustSelection(u,t.getSelection(),e,0)),m=u.getValueInRange($3.adjustSelection(u,t.getSelection(),0,s)),w=u.getLineFirstNonWhitespaceColumn(t.getSelection().positionLineNumber),v=t.getSelections().map(((t,i)=>({selection:t,idx:i}))).sort(((t,i)=>Ms.compareRangesUsingStarts(t.selection,i.selection)));for(const{selection:r,idx:b}of v){let y=$3.adjustSelection(u,r,e,0),k=$3.adjustSelection(u,r,0,s);g!==u.getValueInRange(y)&&(y=r),m!==u.getValueInRange(k)&&(k=r);const x=r.setStartPosition(y.startLineNumber,y.startColumn).setEndPosition(k.endLineNumber,k.endColumn),C=(new n3).parse(i,!0,n),S=x.getStartPosition(),D=$3.adjustWhitespace(u,S,o||b>0&&w!==u.getLineFirstNonWhitespaceColumn(r.positionLineNumber),C);C.resolveVariables(new T3([f,new I3(p,b,v.length,"spread"===t.getOption(78)),new R3(u,r,b,h),new _3(u,r,c),new N3,new B3(d),new P3])),a[b]=pO.replace(x,C.toString()),a[b].identifier={major:b,minor:0},a[b]._isTracked=!0,l[b]=new W3(t,C,D)}return{edits:a,snippets:l}}static createEditsAndSnippetsFromEdits(t,i,e,s,n,o,r){if(!t.hasModel()||0===i.length)return{edits:[],snippets:[]};const h=[],c=t.getModel(),a=new n3,l=new s3,u=new T3([t.invokeWithinContext((t=>new O3(t.get($O),c))),new I3((()=>n),0,t.getSelections().length,"spread"===t.getOption(78)),new R3(c,t.getSelection(),0,o),new _3(c,t.getSelection(),r),new N3,new B3(t.invokeWithinContext((t=>t.get(ZO)))),new P3]);i=i.sort(((t,i)=>Ms.compareRangesUsingStarts(t.range,i.range)));let d=0;for(let t=0;t0){const s=Ms.fromPositions(i[t-1].range.getEndPosition(),e.getStartPosition()),n=new Z5(c.getValueInRange(s));l.appendChild(n),d+=n.value.length}const n=a.parseFragment(s,l);$3.adjustWhitespace(c,e.getStartPosition(),!0,l,new Set(n)),l.resolveVariables(u);const o=l.toString(),r=o.slice(d);d=o.length;const f=pO.replace(e,r);f.identifier={major:t,minor:0},f._isTracked=!0,h.push(f)}return a.ensureFinalTabstop(l,e,!0),{edits:h,snippets:[new W3(t,l,"")]}}constructor(t,i,e=j3,s){this._editor=t,this._template=i,this._options=e,this._languageConfigurationService=s,this._templateMerges=[],this._snippets=[]}dispose(){Qi(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(){if(!this._editor.hasModel())return;const{edits:t,snippets:i}="string"==typeof this._template?$3.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):$3.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=i,this._editor.executeEdits("snippet",t,(t=>{const e=t.filter((t=>!!t.identifier));for(let t=0;tLs.fromPositions(t.range.getEndPosition())))})),this._editor.revealRange(this._editor.getSelections()[0])}merge(t,i=j3){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,t]);const{edits:e,snippets:s}=$3.createEditsAndSnippetsFromSelections(this._editor,t,i.overwriteBefore,i.overwriteAfter,!0,i.adjustWhitespace,i.clipboardText,i.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",e,(t=>{const i=t.filter((t=>!!t.identifier));for(let t=0;tLs.fromPositions(t.range.getEndPosition())))}))}next(){const t=this._move(!0);this._editor.setSelections(t),this._editor.revealPositionInCenterIfOutsideViewport(t[0].getPosition())}prev(){const t=this._move(!1);this._editor.setSelections(t),this._editor.revealPositionInCenterIfOutsideViewport(t[0].getPosition())}_move(t){const i=[];for(const e of this._snippets){const s=e.move(t);i.push(...s)}return i}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;const t=this._editor.getSelections();if(t.length{t.push(...s.get(i))}))}t.sort(Ms.compareRangesUsingStarts);for(const[e,s]of i)if(s.length===t.length){s.sort(Ms.compareRangesUsingStarts);for(let n=0;n0}};z3=$3=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(3,Xd)],z3);var H3,V3=function(t,i){return function(e,s){i(e,s,t)}};const U3={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let q3=H3=class{static get(t){return t.getContribution(H3.ID)}constructor(t,i,e,s,n){this._editor=t,this._logService=i,this._languageFeaturesService=e,this._languageConfigurationService=n,this._snippetListener=new Xi,this._modelVersionId=-1,this._inSnippet=H3.InSnippetMode.bindTo(s),this._hasNextTabstop=H3.HasNextTabstop.bindTo(s),this._hasPrevTabstop=H3.HasPrevTabstop.bindTo(s)}dispose(){var t;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),null===(t=this._session)||void 0===t||t.dispose(),this._snippetListener.dispose()}insert(t,i){try{this._doInsert(t,void 0===i?U3:{...U3,...i})}catch(i){this.cancel(),this._logService.error(i),this._logService.error("snippet_error"),this._logService.error("insert_template=",t),this._logService.error("existing_template=",this._session?this._session._logInfo():"")}}_doInsert(t,i){var e;if(this._editor.hasModel()){if(this._snippetListener.clear(),i.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session&&"string"!=typeof t&&this.cancel(),this._session?(q("string"==typeof t),this._session.merge(t,i)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new z3(this._editor,t,i,this._languageConfigurationService),this._session.insert()),i.undoStopAfter&&this._editor.getModel().pushStackElement(),null===(e=this._session)||void 0===e?void 0:e.hasChoice){const t={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(t,i)=>{if(!this._session||t!==this._editor.getModel()||!As.equals(this._editor.getPosition(),i))return;const{activeChoice:e}=this._session;if(!e||0===e.choice.options.length)return;const s=t.getValueInRange(e.range),n=Boolean(e.choice.options.find((t=>t.value===s))),o=[];for(let t=0;t{s||(e=this._languageFeaturesService.completionProvider.register({language:i.getLanguageId(),pattern:i.uri.fsPath,scheme:i.uri.scheme,exclusive:!0},t),this._snippetListener.add(e),s=!0)},disable:()=>{null==e||e.dispose(),s=!1}}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent((t=>t.isFlush&&this.cancel()))),this._snippetListener.add(this._editor.onDidChangeModel((()=>this.cancel()))),this._snippetListener.add(this._editor.onDidChangeCursorSelection((()=>this._updateState())))}}_updateState(){if(this._session&&this._editor.hasModel()){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){var t;if(!this._session||!this._editor.hasModel())return void(this._currentChoice=void 0);const{activeChoice:i}=this._session;if(!i||!this._choiceCompletions)return null===(t=this._choiceCompletions)||void 0===t||t.disable(),void(this._currentChoice=void 0);this._currentChoice!==i.choice&&(this._currentChoice=i.choice,this._choiceCompletions.enable(),queueMicrotask((()=>{!function(t,i){var e;null===(e=t.getContribution("editor.contrib.suggestController"))||void 0===e||e.triggerSuggest((new Set).add(i),void 0,!0)}(this._editor,this._choiceCompletions.provider)})))}finish(){for(;this._inSnippet.get();)this.next()}cancel(t=!1){var i;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),this._currentChoice=void 0,null===(i=this._session)||void 0===i||i.dispose(),this._session=void 0,this._modelVersionId=-1,t&&this._editor.setSelections([this._editor.getSelection()])}prev(){var t;null===(t=this._session)||void 0===t||t.prev(),this._updateState()}next(){var t;null===(t=this._session)||void 0===t||t.next(),this._updateState()}isInSnippet(){return Boolean(this._inSnippet.get())}};q3.ID="snippetController2",q3.InSnippetMode=new ch("inSnippetMode",!1,ot(0,"Whether the editor in current in snippet mode")),q3.HasNextTabstop=new ch("hasNextTabstop",!1,ot(0,"Whether there is a next tab stop when in snippet mode")),q3.HasPrevTabstop=new ch("hasPrevTabstop",!1,ot(0,"Whether there is a previous tab stop when in snippet mode")),q3=H3=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([V3(1,jh),V3(2,xg),V3(3,ah),V3(4,Xd)],q3),lu(q3.ID,q3,4);const K3=eu.bindToContribution(q3.get);hu(new K3({id:"jumpToNextSnippetPlaceholder",precondition:zr.and(q3.InSnippetMode,q3.HasNextTabstop),handler:t=>t.next(),kbOpts:{weight:130,kbExpr:YC.editorTextFocus,primary:2}})),hu(new K3({id:"jumpToPrevSnippetPlaceholder",precondition:zr.and(q3.InSnippetMode,q3.HasPrevTabstop),handler:t=>t.prev(),kbOpts:{weight:130,kbExpr:YC.editorTextFocus,primary:1026}})),hu(new K3({id:"leaveSnippet",precondition:q3.InSnippetMode,handler:t=>t.cancel(!0),kbOpts:{weight:130,kbExpr:YC.editorTextFocus,primary:9,secondary:[1033]}})),hu(new K3({id:"acceptSnippet",precondition:q3.InSnippetMode,handler:t=>t.finish()}));var G3,Z3=function(t,i){return function(e,s){i(e,s,t)}};!function(t){t[t.Undo=0]="Undo",t[t.Redo=1]="Redo",t[t.AcceptWord=2]="AcceptWord",t[t.Other=3]="Other"}(G3||(G3={}));let Q3=class extends te{get isAcceptingPartially(){return this._isAcceptingPartially}constructor(t,i,e,s,n,o,r,h,c,a,l,u){let d;super(),this.textModel=t,this.selectedSuggestItem=i,this.cursorPosition=e,this.textModelVersionId=s,this._debounceValue=n,this._suggestPreviewEnabled=o,this._suggestPreviewMode=r,this._inlineSuggestMode=h,this._enabled=c,this._instantiationService=a,this._commandService=l,this._languageConfigurationService=u,this._source=this._register(this._instantiationService.createInstance(g3,this.textModel,this.textModelVersionId,this._debounceValue)),this._isActive=FV(this,!1),this._forceUpdateSignal=JV("forceUpdate"),this._selectedInlineCompletionId=FV(this,void 0),this._isAcceptingPartially=!1,this._preserveCurrentCompletionReasons=new Set([G3.Redo,G3.Undo,G3.AcceptWord]),this._fetchInlineCompletions=function(t,i){var e;return new $V(t.owner,t.debugName,i,t.createEmptyChangeSummary,t.handleChange,void 0,null!==(e=t.equalityComparer)&&void 0!==e?e:IV)}({owner:this,createEmptyChangeSummary:()=>({preserveCurrentCompletion:!1,inlineCompletionTriggerKind:$s.Automatic}),handleChange:(t,i)=>(t.didChange(this.textModelVersionId)&&this._preserveCurrentCompletionReasons.has(t.change)?i.preserveCurrentCompletion=!0:t.didChange(this._forceUpdateSignal)&&(i.inlineCompletionTriggerKind=t.change),!0)},((t,i)=>{if(this._forceUpdateSignal.read(t),!(this._enabled.read(t)&&this.selectedSuggestItem.read(t)||this._isActive.read(t)))return void this._source.cancelUpdate();this.textModelVersionId.read(t);const e=this.selectedInlineCompletion.get(),s=i.preserveCurrentCompletion||(null==e?void 0:e.forwardStable)?e:void 0,n=this._source.suggestWidgetInlineCompletions.get(),o=this.selectedSuggestItem.read(t);if(n&&!o){const t=this._source.inlineCompletions.get();yV((i=>{(!t||n.request.versionId>t.request.versionId)&&this._source.inlineCompletions.set(n.clone(),i),this._source.clearSuggestWidgetInlineCompletions(i)}))}const r=this.cursorPosition.read(t),h={triggerKind:i.inlineCompletionTriggerKind,selectedSuggestionInfo:null==o?void 0:o.toSelectedSuggestionInfo()};return this._source.fetch(r,h,s)})),this._filteredInlineCompletionItems=_V(this,(t=>{const i=this._source.inlineCompletions.read(t);if(!i)return[];const e=this.cursorPosition.read(t),s=i.inlineCompletions.filter((i=>i.isVisible(this.textModel,e,t)));return s})),this.selectedInlineCompletionIndex=_V(this,(t=>{const i=this._selectedInlineCompletionId.read(t),e=this._filteredInlineCompletionItems.read(t),s=void 0===this._selectedInlineCompletionId?-1:e.findIndex((t=>t.semanticId===i));return-1===s?(this._selectedInlineCompletionId.set(void 0,void 0),0):s})),this.selectedInlineCompletion=_V(this,(t=>this._filteredInlineCompletionItems.read(t)[this.selectedInlineCompletionIndex.read(t)])),this.lastTriggerKind=this._source.inlineCompletions.map(this,(t=>null==t?void 0:t.request.context.triggerKind)),this.inlineCompletionsCount=_V(this,(t=>this.lastTriggerKind.read(t)===$s.Explicit?this._filteredInlineCompletionItems.read(t).length:void 0)),this.state=NV({owner:this,equalityComparer:(t,i)=>t&&i?j5(t.ghostText,i.ghostText)&&t.inlineCompletion===i.inlineCompletion&&t.suggestItem===i.suggestItem:t===i},(t=>{var i;const e=this.textModel,s=this.selectedSuggestItem.read(t);if(s){const n=s.toSingleTextEdit().removeCommonPrefix(e),o=this._computeAugmentedCompletion(n,t);if(!this._suggestPreviewEnabled.read(t)&&!o)return;const r=null!==(i=null==o?void 0:o.edit)&&void 0!==i?i:n,h=o?o.edit.text.length-n.text.length:0,c=this._suggestPreviewMode.read(t),a=this.cursorPosition.read(t),l=r.computeGhostText(e,c,a,h);return{ghostText:null!=l?l:new P5(r.range.endLineNumber,[]),inlineCompletion:null==o?void 0:o.completion,suggestItem:s}}{if(!this._isActive.read(t))return;const i=this.selectedInlineCompletion.read(t);if(!i)return;const s=i.toSingleTextEdit(t),n=this._inlineSuggestMode.read(t),o=this.cursorPosition.read(t),r=s.computeGhostText(e,n,o);return r?{ghostText:r,inlineCompletion:i,suggestItem:void 0}:void 0}})),this.ghostText=NV({owner:this,equalityComparer:j5},(t=>{const i=this.state.read(t);if(i)return i.ghostText})),this._register(XV(this._fetchInlineCompletions)),this._register(WV((t=>{var i,e;const s=this.state.read(t),n=null==s?void 0:s.inlineCompletion;if((null==n?void 0:n.semanticId)!==(null==d?void 0:d.semanticId)&&(d=n,n)){const t=n.inlineCompletion,s=t.source;null===(e=(i=s.provider).handleItemDidShow)||void 0===e||e.call(i,s.inlineCompletions,t.sourceInlineCompletion,t.insertText)}})))}async trigger(t){this._isActive.set(!0,t),await this._fetchInlineCompletions.get()}async triggerExplicitly(t){xV(t,(t=>{this._isActive.set(!0,t),this._forceUpdateSignal.trigger(t,$s.Explicit)})),await this._fetchInlineCompletions.get()}stop(t){xV(t,(t=>{this._isActive.set(!1,t),this._source.clear(t)}))}_computeAugmentedCompletion(t,i){const e=this.textModel,s=this._source.suggestWidgetInlineCompletions.read(i);return function(t,i){for(const e of t){const t=i(e);if(void 0!==t)return t}}(s?s.inlineCompletions:[this.selectedInlineCompletion.read(i)].filter(V),(s=>{let n=s.toSingleTextEdit(i);return n=n.removeCommonPrefix(e,Ms.fromPositions(n.range.getStartPosition(),t.range.getEndPosition())),n.augments(t)?{edit:n,completion:s}:void 0}))}async _deltaSelectedInlineCompletionIndex(t){await this.triggerExplicitly();const i=this._filteredInlineCompletionItems.get()||[];if(i.length>0){const e=(this.selectedInlineCompletionIndex.get()+t+i.length)%i.length;this._selectedInlineCompletionId.set(i[e].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}async accept(t){var i;if(t.getModel()!==this.textModel)throw new Ki;const e=this.state.get();if(!e||e.ghostText.isEmpty()||!e.inlineCompletion)return;const s=e.inlineCompletion.toInlineCompletion(void 0);t.pushUndoStop(),s.snippetInfo?(t.executeEdits("inlineSuggestion.accept",[pO.replaceMove(s.range,""),...s.additionalTextEdits]),t.setPosition(s.snippetInfo.range.getStartPosition()),null===(i=q3.get(t))||void 0===i||i.insert(s.snippetInfo.snippet,{undoStopBefore:!1})):t.executeEdits("inlineSuggestion.accept",[pO.replaceMove(s.range,s.insertText),...s.additionalTextEdits]),s.command&&s.source.addRef(),yV((t=>{this._source.clear(t),this._isActive.set(!1,t)})),s.command&&(await this._commandService.executeCommand(s.command.id,...s.command.arguments||[]).then(void 0,Pi),s.source.removeRef())}async acceptNextWord(t){await this._acceptNext(t,((t,i)=>{const e=this.textModel.getLanguageIdAtPosition(t.lineNumber,t.column),s=this._languageConfigurationService.getLanguageConfiguration(e),n=new RegExp(s.wordDefinition.source,s.wordDefinition.flags.replace("g","")),o=i.match(n);let r=0;r=o&&void 0!==o.index?0===o.index?o[0].length:o.index:i.length;const h=/\s+/g.exec(i);return h&&void 0!==h.index&&h.index+h[0].length{const e=i.match(/\n/);return e&&void 0!==e.index?e.index+1:i.length}))}async _acceptNext(t,i){if(t.getModel()!==this.textModel)throw new Ki;const e=this.state.get();if(!e||e.ghostText.isEmpty()||!e.inlineCompletion)return;const s=e.ghostText,n=e.inlineCompletion.toInlineCompletion(void 0);if(n.snippetInfo||n.filterText!==n.insertText)return void await this.accept(t);const o=s.parts[0],r=new As(s.lineNumber,o.column),h=o.lines.join("\n"),c=i(r,h);if(c===h.length&&1===s.parts.length)return void this.accept(t);const a=h.substring(0,c);n.source.addRef();try{this._isAcceptingPartially=!0;try{t.pushUndoStop(),t.executeEdits("inlineSuggestion.accept",[pO.replace(Ms.fromPositions(r),a)]);const i=B5(a);t.setPosition(N5(r,i))}finally{this._isAcceptingPartially=!1}if(n.source.provider.handlePartialAccept){const i=Ms.fromPositions(n.range.getStartPosition(),N5(r,B5(a))),e=t.getModel().getValueInRange(i,1);n.source.provider.handlePartialAccept(n.source.inlineCompletions,n.sourceInlineCompletion,e.length)}}finally{n.source.removeRef()}}handleSuggestAccepted(t){var i,e;const s=t.toSingleTextEdit().removeCommonPrefix(this.textModel),n=this._computeAugmentedCompletion(s,void 0);if(!n)return;const o=n.completion.inlineCompletion;null===(e=(i=o.source.provider).handlePartialAccept)||void 0===e||e.call(i,o.source.inlineCompletions,o.sourceInlineCompletion,s.text.length)}};Q3=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Z3(9,ur),Z3(10,Sr),Z3(11,Xd)],Q3);var J3,Y3=function(t,i){return function(e,s){i(e,s,t)}};class X3{constructor(t){this.name=t}select(t,i,e){if(0===e.length)return 0;const s=e[0].score[0];for(let t=0;tthis._saveState()),500),this._disposables.add(t.onWillSaveState((t=>{t.reason===MB.SHUTDOWN&&this._saveState()})))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(t,i,e){this._withStrategy(t,i).memorize(t,i,e),this._persistSoon.schedule()}select(t,i,e){return this._withStrategy(t,i).select(t,i,e)}_withStrategy(t,i){var e;const s=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:t.getLanguageIdAtPosition(i.lineNumber,i.column),resource:t.uri});if((null===(e=this._strategy)||void 0===e?void 0:e.name)!==s){this._saveState();const t=J3._strategyCtors.get(s)||t6;this._strategy=new t;try{const t=this._configService.getValue("editor.suggest.shareSuggestSelections"),i=this._storageService.get(`${J3._storagePrefix}/${s}`,t?0:1);i&&this._strategy.fromJSON(JSON.parse(i))}catch(t){}}return this._strategy}_saveState(){if(this._strategy){const t=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,i=JSON.stringify(this._strategy);this._storageService.store(`${J3._storagePrefix}/${this._strategy.name}`,i,t,1)}}};i6._strategyCtors=new Map([["recentlyUsedByPrefix",class extends X3{constructor(){super("recentlyUsedByPrefix"),this._trie=GO.forStrings(),this._seq=0}memorize(t,i,e){const{word:s}=t.getWordUntilPosition(i),n=`${t.getLanguageId()}/${s}`;this._trie.set(n,{type:e.completion.kind,insertText:e.completion.insertText,touch:this._seq++})}select(t,i,e){const{word:s}=t.getWordUntilPosition(i);if(!s)return super.select(t,i,e);const n=`${t.getLanguageId()}/${s}`;let o=this._trie.get(n);if(o||(o=this._trie.findSubstr(n)),o)for(let t=0;tt.push([e,i]))),t.sort(((t,i)=>-(t[1].touch-i[1].touch))).forEach(((t,i)=>t[1].touch=i)),t.slice(0,200)}fromJSON(t){if(this._trie.clear(),t.length>0){this._seq=t[0][1].touch+1;for(const[i,e]of t)e.type="number"==typeof e.type?e.type:Ps.fromString(e.type),this._trie.set(i,e)}}}],["recentlyUsed",class extends X3{constructor(){super("recentlyUsed"),this._cache=new Vp(300,.66),this._seq=0}memorize(t,i,e){const s=`${t.getLanguageId()}/${e.textLabel}`;this._cache.set(s,{touch:this._seq++,type:e.completion.kind,insertText:e.completion.insertText})}select(t,i,e){if(0===e.length)return 0;const s=t.getLineContent(i.lineNumber).substr(i.column-10,i.column-1);if(/\s$/.test(s))return super.select(t,i,e);const n=e[0].score[0];let o=-1,r=-1;for(let i=0;ir&&n.type===e[i].completion.kind&&n.insertText===e[i].completion.insertText&&(r=n.touch,o=i),e[i].completion.preselect)return i}return-1!==o?o:0}toJSON(){return this._cache.toJSON()}fromJSON(t){this._cache.clear();for(const[i,e]of t)e.touch=0,e.type="number"==typeof e.type?e.type:Ps.fromString(e.type),this._cache.set(i,e);this._seq=this._cache.size}}],["first",t6]]),i6._storagePrefix="suggest/memories",i6=J3=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Y3(0,AB),Y3(1,pd)],i6);const e6=dr("ISuggestMemories");Cd(e6,i6,1);var s6;let n6=s6=class{constructor(t,i){this._editor=t,this._enabled=!1,this._ckAtEnd=s6.AtEnd.bindTo(i),this._configListener=this._editor.onDidChangeConfiguration((t=>t.hasChanged(122)&&this._update())),this._update()}dispose(){var t;this._configListener.dispose(),null===(t=this._selectionListener)||void 0===t||t.dispose(),this._ckAtEnd.reset()}_update(){const t="on"===this._editor.getOption(122);if(this._enabled!==t)if(this._enabled=t,this._enabled){const t=()=>{if(!this._editor.hasModel())return void this._ckAtEnd.set(!1);const t=this._editor.getModel(),i=this._editor.getSelection(),e=t.getWordAtPosition(i.getStartPosition());this._ckAtEnd.set(!!e&&e.endColumn===i.getStartPosition().column)};this._selectionListener=this._editor.onDidChangeCursorSelection(t),t()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}};n6.AtEnd=new ch("atEndOfWord",!1),n6=s6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,ah)],n6);var o6;let r6=o6=class{constructor(t,i){this._editor=t,this._index=0,this._ckOtherSuggestions=o6.OtherSuggestions.bindTo(i)}dispose(){this.reset()}reset(){var t;this._ckOtherSuggestions.reset(),null===(t=this._listener)||void 0===t||t.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:t,index:i},e){0!==t.items.length&&o6._moveIndex(!0,t,i)!==i?(this._acceptNext=e,this._model=t,this._index=i,this._listener=this._editor.onDidChangeCursorPosition((()=>{this._ignore||this.reset()})),this._ckOtherSuggestions.set(!0)):this.reset()}static _moveIndex(t,i,e){let s=e;for(let n=i.items.length;n>0&&(s=(s+i.items.length+(t?1:-1))%i.items.length,s!==e)&&i.items[s].completion.additionalTextEdits;n--);return s}next(){this._move(!0)}prev(){this._move(!1)}_move(t){if(this._model)try{this._ignore=!0,this._index=o6._moveIndex(t,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};r6.OtherSuggestions=new ch("hasOtherSuggestions",!1),r6=o6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,ah)],r6);class h6{constructor(t,i,e,s){this._disposables=new Xi,this._disposables.add(e.onDidSuggest((t=>{0===t.completionModel.items.length&&this.reset()}))),this._disposables.add(e.onDidCancel((()=>{this.reset()}))),this._disposables.add(i.onDidShow((()=>this._onItem(i.getFocusedItem())))),this._disposables.add(i.onDidFocus(this._onItem,this)),this._disposables.add(i.onDidHide(this.reset,this)),this._disposables.add(t.onWillType((n=>{if(this._active&&!i.isFrozen()&&0!==e.state){const i=n.charCodeAt(n.length-1);this._active.acceptCharacters.has(i)&&t.getOption(0)&&s(this._active.item)}})))}_onItem(t){if(!t||!b(t.item.completion.commitCharacters))return void this.reset();if(this._active&&this._active.item.item===t.item)return;const i=new Ef;for(const e of t.item.completion.commitCharacters)e.length>0&&i.add(e.charCodeAt(0));this._active={acceptCharacters:i,item:t}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}class c6{async provideSelectionRanges(t,i){const e=[];for(const s of i){const i=[];e.push(i);const n=new Map;await new Promise((i=>c6._bracketsRightYield(i,0,t,s,n))),await new Promise((e=>c6._bracketsLeftYield(e,0,t,s,n,i)))}return e}static _bracketsRightYield(t,i,e,s,n){const o=new Map,r=Date.now();for(;;){if(i>=c6._maxRounds){t();break}if(!s){t();break}const h=e.bracketPairs.findNextBracket(s);if(!h){t();break}if(Date.now()-r>c6._maxDuration){setTimeout((()=>c6._bracketsRightYield(t,i+1,e,s,n)));break}if(h.bracketInfo.isOpeningBracket){const t=h.bracketInfo.bracketText,i=o.has(t)?o.get(t):0;o.set(t,i+1)}else{const t=h.bracketInfo.getOpeningBrackets()[0].bracketText;let i=o.has(t)?o.get(t):0;if(i-=1,o.set(t,Math.max(0,i)),i<0){let i=n.get(t);i||(i=new Ut,n.set(t,i)),i.push(h.range)}}s=h.range.getEndPosition()}}static _bracketsLeftYield(t,i,e,s,n,o){const r=new Map,h=Date.now();for(;;){if(i>=c6._maxRounds&&0===n.size){t();break}if(!s){t();break}const c=e.bracketPairs.findPrevBracket(s);if(!c){t();break}if(Date.now()-h>c6._maxDuration){setTimeout((()=>c6._bracketsLeftYield(t,i+1,e,s,n,o)));break}if(c.bracketInfo.isOpeningBracket){const t=c.bracketInfo.bracketText;let i=r.has(t)?r.get(t):0;if(i-=1,r.set(t,Math.max(0,i)),i<0){const i=n.get(t);if(i){const s=i.shift();0===i.size&&n.delete(t);const r=Ms.fromPositions(c.range.getEndPosition(),s.getStartPosition()),h=Ms.fromPositions(c.range.getStartPosition(),s.getEndPosition());o.push({range:r}),o.push({range:h}),c6._addBracketLeading(e,h,o)}}}else{const t=c.bracketInfo.getOpeningBrackets()[0].bracketText,i=r.has(t)?r.get(t):0;r.set(t,i+1)}s=c.range.getStartPosition()}}static _addBracketLeading(t,i,e){if(i.startLineNumber===i.endLineNumber)return;const s=i.startLineNumber,n=t.getLineFirstNonWhitespaceColumn(s);0!==n&&n!==i.startColumn&&(e.push({range:Ms.fromPositions(new As(s,n),i.getEndPosition())}),e.push({range:Ms.fromPositions(new As(s,1),i.getEndPosition())}));const o=s-1;if(o>0){const s=t.getLineFirstNonWhitespaceColumn(o);s===i.startColumn&&s!==t.getLineLastNonWhitespaceColumn(o)&&(e.push({range:Ms.fromPositions(new As(o,s),i.getEndPosition())}),e.push({range:Ms.fromPositions(new As(o,1),i.getEndPosition())}))}}}c6._maxDuration=30,c6._maxRounds=2;class a6{static async create(t,i){if(!i.getOption(117).localityBonus)return a6.None;if(!i.hasModel())return a6.None;const e=i.getModel(),s=i.getPosition();if(!t.canComputeWordRanges(e.uri))return a6.None;const[n]=await(new c6).provideSelectionRanges(e,[s]);if(0===n.length)return a6.None;const o=await t.computeWordRanges(e.uri,n[0].range);if(!o)return a6.None;const r=e.getWordUntilPosition(s);return delete o[r.word],new class extends a6{distance(t,e){if(!s.equals(i.getPosition()))return 0;if(17===e.kind)return 2<<20;const r=o["string"==typeof e.label?e.label:e.label.label];if(v(r))return 2<<20;const h=u(r,Ms.fromPositions(t),Ms.compareRangesUsingStarts),c=h>=0?r[h]:r[Math.max(0,~h-1)];let a=n.length;for(const t of n){if(!Ms.containsRange(t.range,c))break;a-=1}return a}}}}a6.None=new class extends a6{distance(){return 0}};class l6{constructor(t,i){this.leadingLineContent=t,this.characterCountDelta=i}}class u6{constructor(t,i,e,s,n,o,r=C_.default,h){this.clipboardText=h,this._snippetCompareFn=u6._compareCompletionItems,this._items=t,this._column=i,this._wordDistance=s,this._options=n,this._refilterKind=1,this._lineContext=e,this._fuzzyScoreOptions=r,"top"===o?this._snippetCompareFn=u6._compareCompletionItemsSnippetsUp:"bottom"===o&&(this._snippetCompareFn=u6._compareCompletionItemsSnippetsDown)}get lineContext(){return this._lineContext}set lineContext(t){this._lineContext.leadingLineContent===t.leadingLineContent&&this._lineContext.characterCountDelta===t.characterCountDelta||(this._refilterKind=this._lineContext.characterCountDelta0&&e[0].container.incomplete&&t.add(i);return t}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){0!==this._refilterKind&&this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;const t=[],{leadingLineContent:i,characterCountDelta:e}=this._lineContext;let s="",n="";const o=1===this._refilterKind?this._items:this._filteredItems,r=[],h=!this._options.filterGraceful||o.length>2e3?S_:E_;for(let c=0;c=d)a.score=x_.Default;else if("string"==typeof a.completion.filterText){const i=h(s,n,t,a.completion.filterText,a.filterTextLow,0,this._fuzzyScoreOptions);if(!i)continue;0===oo(a.completion.filterText,a.textLabel)?a.score=i:(a.score=a_(s,n,t,a.textLabel,a.labelLow,0),a.score[0]=i[0])}else{const i=h(s,n,t,a.textLabel,a.labelLow,0,this._fuzzyScoreOptions);if(!i)continue;a.score=i}}a.idx=c,a.distance=this._wordDistance.distance(a.position,a.completion),r.push(a),t.push(a.textLabel.length)}this._filteredItems=r.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:t.length?d(t.length-.85,t,((t,i)=>t-i)):0}}static _compareCompletionItems(t,i){return t.score[0]>i.score[0]?-1:t.score[0]i.distance?1:t.idxi.idx?1:0}static _compareCompletionItemsSnippetsDown(t,i){if(t.completion.kind!==i.completion.kind){if(27===t.completion.kind)return 1;if(27===i.completion.kind)return-1}return u6._compareCompletionItems(t,i)}static _compareCompletionItemsSnippetsUp(t,i){if(t.completion.kind!==i.completion.kind){if(27===t.completion.kind)return-1;if(27===i.completion.kind)return 1}return u6._compareCompletionItems(t,i)}}var d6,f6=function(t,i){return function(e,s){i(e,s,t)}};class p6{static shouldAutoTrigger(t){if(!t.hasModel())return!1;const i=t.getModel(),e=t.getPosition();i.tokenization.tokenizeIfCheap(e.lineNumber);const s=i.getWordAtPosition(e);return!(!s||s.endColumn!==e.column&&s.startColumn+1!==e.column||!isNaN(Number(s.word)))}constructor(t,i,e){this.leadingLineContent=t.getLineContent(i.lineNumber).substr(0,i.column-1),this.leadingWord=t.getWordUntilPosition(i),this.lineNumber=i.lineNumber,this.column=i.column,this.triggerOptions=e}}let g6=d6=class{constructor(t,i,e,s,n,o,r,h,c){this._editor=t,this._editorWorkerService=i,this._clipboardService=e,this._telemetryService=s,this._logService=n,this._contextKeyService=o,this._configurationService=r,this._languageFeaturesService=h,this._envService=c,this._toDispose=new Xi,this._triggerCharacterListener=new Xi,this._triggerQuickSuggest=new dc,this._triggerState=void 0,this._completionDisposables=new Xi,this._onDidCancel=new de,this._onDidTrigger=new de,this._onDidSuggest=new de,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._telemetryGate=0,this._currentSelection=this._editor.getSelection()||new Ls(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel((()=>{this._updateTriggerCharacters(),this.cancel()}))),this._toDispose.add(this._editor.onDidChangeModelLanguage((()=>{this._updateTriggerCharacters(),this.cancel()}))),this._toDispose.add(this._editor.onDidChangeConfiguration((()=>{this._updateTriggerCharacters()}))),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange((()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()})));let a=!1;this._toDispose.add(this._editor.onDidCompositionStart((()=>{a=!0}))),this._toDispose.add(this._editor.onDidCompositionEnd((()=>{a=!1,this._onCompositionEnd()}))),this._toDispose.add(this._editor.onDidChangeCursorSelection((t=>{a||this._onCursorChange(t)}))),this._toDispose.add(this._editor.onDidChangeModelContent((()=>{a||void 0===this._triggerState||this._refilterCompletionItems()}))),this._updateTriggerCharacters()}dispose(){Qi(this._triggerCharacterListener),Qi([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(90)||!this._editor.hasModel()||!this._editor.getOption(120))return;const t=new Map;for(const i of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(const e of i.triggerCharacters||[]){let s=t.get(e);s||(s=new Set,s.add(void 0),t.set(e,s)),s.add(i)}const i=i=>{var e;if(!function(t,i){if(!Boolean(i.getContextKeyValue("inlineSuggestionVisible")))return!0;const e=i.getContextKeyValue(R5.suppressSuggestions.key);return void 0!==e?!e:!t.getOption(62).suppressSuggestions}(this._editor,this._contextKeyService))return;if(p6.shouldAutoTrigger(this._editor))return;if(!i){const t=this._editor.getPosition();i=this._editor.getModel().getLineContent(t.lineNumber).substr(0,t.column-1)}let s="";mo(i.charCodeAt(i.length-1))?go(i.charCodeAt(i.length-2))&&(s=i.substr(i.length-2)):s=i.charAt(i.length-1);const n=t.get(s);if(n){const t=new Map;if(this._completionModel)for(const[i,e]of this._completionModel.getItemsByProvider())n.has(i)||t.set(i,e);this.trigger({auto:!0,triggerKind:1,triggerCharacter:s,retrigger:Boolean(this._completionModel),clipboardText:null===(e=this._completionModel)||void 0===e?void 0:e.clipboardText,completionOptions:{providerFilter:n,providerItemsToReuse:t}})}};this._triggerCharacterListener.add(this._editor.onDidType(i)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd((()=>i())))}get state(){return this._triggerState?this._triggerState.auto?2:1:0}cancel(t=!1){var i;void 0!==this._triggerState&&(this._triggerQuickSuggest.cancel(),null===(i=this._requestToken)||void 0===i||i.cancel(),this._requestToken=void 0,this._triggerState=void 0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:t}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){void 0!==this._triggerState&&(this._editor.hasModel()&&this._languageFeaturesService.completionProvider.has(this._editor.getModel())?this.trigger({auto:this._triggerState.auto,retrigger:!0}):this.cancel())}_onCursorChange(t){if(!this._editor.hasModel())return;const i=this._currentSelection;this._currentSelection=this._editor.getSelection(),!t.selection.isEmpty()||0!==t.reason&&3!==t.reason||"keyboard"!==t.source&&"deleteLeft"!==t.source?this.cancel():void 0===this._triggerState&&0===t.reason?(i.containsRange(this._currentSelection)||i.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))&&this._doTriggerQuickSuggest():void 0!==this._triggerState&&3===t.reason&&this._refilterCompletionItems()}_onCompositionEnd(){void 0===this._triggerState?this._doTriggerQuickSuggest():this._refilterCompletionItems()}_doTriggerQuickSuggest(){var t;L3.isAllOff(this._editor.getOption(88))||this._editor.getOption(117).snippetsPreventQuickSuggestions&&(null===(t=q3.get(this._editor))||void 0===t?void 0:t.isInSnippet())||(this.cancel(),this._triggerQuickSuggest.cancelAndSet((()=>{if(void 0!==this._triggerState)return;if(!p6.shouldAutoTrigger(this._editor))return;if(!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;const t=this._editor.getModel(),i=this._editor.getPosition(),e=this._editor.getOption(88);if(!L3.isAllOff(e)){if(!L3.isAllOn(e)){t.tokenization.tokenizeIfCheap(i.lineNumber);const s=t.tokenization.getLineTokens(i.lineNumber),n=s.getStandardTokenType(s.findTokenIndexAtOffset(Math.max(i.column-1-1,0)));if("on"!==L3.valueFor(e,n))return}(function(t,i){if(!Boolean(i.getContextKeyValue(R5.inlineSuggestionVisible.key)))return!0;const e=i.getContextKeyValue(R5.suppressSuggestions.key);return void 0!==e?!e:!t.getOption(62).suppressSuggestions})(this._editor,this._contextKeyService)&&this._languageFeaturesService.completionProvider.has(t)&&this.trigger({auto:!0})}}),this._editor.getOption(89)))}_refilterCompletionItems(){q(this._editor.hasModel()),q(void 0!==this._triggerState);const t=this._editor.getModel(),i=this._editor.getPosition(),e=new p6(t,i,{...this._triggerState,refilter:!0});this._onNewContext(e)}trigger(t){var i,e,s,n,o,r;if(!this._editor.hasModel())return;const h=this._editor.getModel(),c=new p6(h,this._editor.getPosition(),t);this.cancel(t.retrigger),this._triggerState=t,this._onDidTrigger.fire({auto:t.auto,shy:null!==(i=t.shy)&&void 0!==i&&i,position:this._editor.getPosition()}),this._context=c;let a={triggerKind:null!==(e=t.triggerKind)&&void 0!==e?e:0};t.triggerCharacter&&(a={triggerKind:1,triggerCharacter:t.triggerCharacter}),this._requestToken=new Ce;let l=1;switch(this._editor.getOption(111)){case"top":l=0;break;case"bottom":l=2}const{itemKind:u,showDeprecated:d}=d6._createSuggestFilter(this._editor),f=new S3(l,null!==(n=null===(s=t.completionOptions)||void 0===s?void 0:s.kindFilter)&&void 0!==n?n:u,null===(o=t.completionOptions)||void 0===o?void 0:o.providerFilter,null===(r=t.completionOptions)||void 0===r?void 0:r.providerItemsToReuse,d),p=a6.create(this._editorWorkerService,this._editor),g=E3(this._languageFeaturesService.completionProvider,h,this._editor.getPosition(),f,a,this._requestToken.token);Promise.all([g,p]).then((async([i,e])=>{var s;if(null===(s=this._requestToken)||void 0===s||s.dispose(),!this._editor.hasModel())return;let n=null==t?void 0:t.clipboardText;if(!n&&i.needsClipboard&&(n=await this._clipboardService.readText()),void 0===this._triggerState)return;const o=this._editor.getModel(),r=new p6(o,this._editor.getPosition(),t),h={...C_.default,firstMatchCanBeWeak:!this._editor.getOption(117).matchOnWordStartOnly};if(this._completionModel=new u6(i.items,this._context.column,{leadingLineContent:r.leadingLineContent,characterCountDelta:r.column-this._context.column},e,this._editor.getOption(117),this._editor.getOption(111),h,n),this._completionDisposables.add(i.disposable),this._onNewContext(r),this._reportDurationsTelemetry(i.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment)for(const t of i.items)t.isInvalid&&this._logService.warn(`[suggest] did IGNORE invalid completion item from ${t.provider._debugDisplayName}`,t.completion)})).catch(Bi)}_reportDurationsTelemetry(t){this._telemetryGate++%230==0&&setTimeout((()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(t)}),this._logService.debug("suggest.durations.json",t)}))}static _createSuggestFilter(t){const i=new Set;"none"===t.getOption(111)&&i.add(27);const e=t.getOption(117);return e.showMethods||i.add(0),e.showFunctions||i.add(1),e.showConstructors||i.add(2),e.showFields||i.add(3),e.showVariables||i.add(4),e.showClasses||i.add(5),e.showStructs||i.add(6),e.showInterfaces||i.add(7),e.showModules||i.add(8),e.showProperties||i.add(9),e.showEvents||i.add(10),e.showOperators||i.add(11),e.showUnits||i.add(12),e.showValues||i.add(13),e.showConstants||i.add(14),e.showEnums||i.add(15),e.showEnumMembers||i.add(16),e.showKeywords||i.add(17),e.showWords||i.add(18),e.showColors||i.add(19),e.showFiles||i.add(20),e.showReferences||i.add(21),e.showColors||i.add(22),e.showFolders||i.add(23),e.showTypeParameters||i.add(24),e.showSnippets||i.add(27),e.showUsers||i.add(25),e.showIssues||i.add(26),{itemKind:i,showDeprecated:e.showDeprecated}}_onNewContext(t){if(this._context)if(t.lineNumber===this._context.lineNumber)if(io(t.leadingLineContent)===io(this._context.leadingLineContent)){if(t.columnthis._context.leadingWord.startColumn){if(p6.shouldAutoTrigger(this._editor)&&this._context){const t=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:t}})}}else if(t.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&0!==t.leadingWord.word.length){const t=new Map,i=new Set;for(const[e,s]of this._completionModel.getItemsByProvider())s.length>0&&s[0].container.incomplete?i.add(e):t.set(e,s);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:i,providerItemsToReuse:t}})}else{const i=this._completionModel.lineContext;let e=!1;if(this._completionModel.lineContext={leadingLineContent:t.leadingLineContent,characterCountDelta:t.column-this._context.column},0===this._completionModel.items.length){const s=p6.shouldAutoTrigger(this._editor);if(!this._context)return void this.cancel();if(s&&this._context.leadingWord.endColumn0,e&&0===t.leadingWord.word.length)return void this.cancel()}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:t.triggerOptions,isFrozen:e})}}else this.cancel();else this.cancel()}};g6=d6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([f6(1,vP),f6(2,yH),f6(3,Wh),f6(4,jh),f6(5,ah),f6(6,pd),f6(7,xg),f6(8,fR)],g6);class m6{constructor(t,i){this._disposables=new Xi,this._lastOvertyped=[],this._locked=!1,this._disposables.add(t.onWillType((()=>{if(this._locked||!t.hasModel())return;const i=t.getSelections(),e=i.length;let s=!1;for(let t=0;tm6._maxSelectionLength)return;this._lastOvertyped[t]={value:n.getValueInRange(e),multiline:e.startLineNumber!==e.endLineNumber}}}))),this._disposables.add(i.onDidTrigger((()=>{this._locked=!0}))),this._disposables.add(i.onDidCancel((()=>{this._locked=!1})))}getLastOvertypedInfo(t){if(t>=0&&tt instanceof Bh?e.createInstance(v6,t,void 0):void 0;this._leftActions=new YB(this.element,{actionViewItemProvider:o}),this._rightActions=new YB(this.element,{actionViewItemProvider:o}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}dispose(){this._menuDisposables.dispose(),this._leftActions.dispose(),this._rightActions.dispose(),this.element.remove()}show(){const t=this._menuService.createMenu(this._menuId,this._contextKeyService),i=()=>{const i=[],e=[];for(const[s,n]of t.getActions())"left"===s?i.push(...n):e.push(...n);this._leftActions.clear(),this._leftActions.push(i),this._rightActions.clear(),this._rightActions.push(e)};this._menuDisposables.add(t.onDidChange((()=>i()))),this._menuDisposables.add(t)}hide(){this._menuDisposables.clear()}};b6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([w6(2,ur),w6(3,Oh),w6(4,ah)],b6);function y6(t){return!!t&&Boolean(t.completion.documentation||t.completion.detail&&t.completion.detail!==t.completion.label)}let k6=class{constructor(t,i){this._editor=t,this._onDidClose=new de,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new de,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new Xi,this._renderDisposeable=new Xi,this._borderWidth=1,this._size=new el(330,0),this.domNode=$l(".suggest-details"),this.domNode.classList.add("no-docs"),this._markdownRenderer=i.createInstance(lQ,{editor:t}),this._body=$l(".body"),this._scrollbar=new Tk(this._body,{alwaysConsumeMouseWheel:!0}),Ol(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=Ol(this._body,$l(".header")),this._close=Ol(this._header,$l("span"+Cr.asCSSSelector(Os.close))),this._close.title=ot(0,"Close"),this._type=Ol(this._header,$l("p.type")),this._docs=Ol(this._body,$l("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(50)&&this._configureFont()})))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose()}_configureFont(){const t=this._editor.getOptions(),i=t.get(50),e=i.getMassagedFontFamily(),s=t.get(118)||i.fontSize,n=t.get(119)||i.lineHeight,o=i.fontWeight,r=`${n}px`;this.domNode.style.fontSize=`${s}px`,this.domNode.style.lineHeight=""+n/s,this.domNode.style.fontWeight=o,this.domNode.style.fontFeatureSettings=i.fontFeatureSettings,this._type.style.fontFamily=e,this._close.style.height=r,this._close.style.width=r}getLayoutInfo(){const t=this._editor.getOption(119)||this._editor.getOption(50).lineHeight,i=this._borderWidth;return{lineHeight:t,borderWidth:i,borderHeight:2*i,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=ot(0,"Loading..."),this._docs.textContent="",this.domNode.classList.remove("no-docs","no-type"),this.layout(this.size.width,2*this.getLayoutInfo().lineHeight),this._onDidChangeContents.fire(this)}renderItem(t,i){var e,s;this._renderDisposeable.clear();let{detail:n,documentation:o}=t.completion;if(i){let i="";i+=`score: ${t.score[0]}\n`,i+=`prefix: ${null!==(e=t.word)&&void 0!==e?e:"(no prefix)"}\n`,i+=`word: ${t.completion.filterText?t.completion.filterText+" (filterText)":t.textLabel}\n`,i+=`distance: ${t.distance} (localityBonus-setting)\n`,i+=`index: ${t.idx}, based on ${t.completion.sortText&&`sortText: "${t.completion.sortText}"`||"label"}\n`,i+=`commit_chars: ${null===(s=t.completion.commitCharacters)||void 0===s?void 0:s.join("")}\n`,o=(new N_).appendCodeblock("empty",i),n=`Provider: ${t.provider._debugDisplayName}`}if(i||y6(t)){if(this.domNode.classList.remove("no-docs","no-type"),n){const t=n.length>1e5?`${n.substr(0,1e5)}…`:n;this._type.textContent=t,this._type.title=t,Wl(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gim.test(t))}else za(this._type),this._type.title="",jl(this._type),this.domNode.classList.add("no-type");if(za(this._docs),"string"==typeof o)this._docs.classList.remove("markdown-docs"),this._docs.textContent=o;else if(o){this._docs.classList.add("markdown-docs"),za(this._docs);const t=this._markdownRenderer.render(o);this._docs.appendChild(t.element),this._renderDisposeable.add(t),this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync((()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)})))}this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=t=>{t.preventDefault(),t.stopPropagation()},this._close.onclick=t=>{t.preventDefault(),t.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}else this.clearContents()}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get size(){return this._size}layout(t,i){const e=new el(t,i);el.equals(e,this._size)||(this._size=e,function(t,i,e){"number"==typeof i&&(t.style.width=`${i}px`),"number"==typeof e&&(t.style.height=`${e}px`)}(this.domNode,t,i)),this._scrollbar.scanDomNode()}scrollDown(t=8){this._body.scrollTop+=t}scrollUp(t=8){this._body.scrollTop-=t}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}set borderWidth(t){this._borderWidth=t}get borderWidth(){return this._borderWidth}};k6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,ur)],k6);class x6{constructor(t,i){let e,s;this.widget=t,this._editor=i,this._disposables=new Xi,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new CX,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(t.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let n=0,o=0;this._disposables.add(this._resizable.onDidWillResize((()=>{e=this._topLeft,s=this._resizable.size}))),this._disposables.add(this._resizable.onDidResize((t=>{if(e&&s){this.widget.layout(t.dimension.width,t.dimension.height);let i=!1;t.west&&(o=s.width-t.dimension.width,i=!0),t.north&&(n=s.height-t.dimension.height,i=!0),i&&this._applyTopLeft({top:e.top+n,left:e.left+o})}t.done&&(e=void 0,s=void 0,n=0,o=0,this._userSize=t.dimension)}))),this._disposables.add(this.widget.onDidChangeContents((()=>{var t;this._anchorBox&&this._placeAtAnchor(this._anchorBox,null!==(t=this._userSize)&&void 0!==t?t:this.widget.size,this._preferAlignAtTop)})))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return null}show(){this._added||(this._editor.addOverlayWidget(this),this.getDomNode().style.position="fixed",this._added=!0)}hide(t=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),t&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(t,i){var e;const s=t.getBoundingClientRect();this._anchorBox=s,this._preferAlignAtTop=i,this._placeAtAnchor(this._anchorBox,null!==(e=this._userSize)&&void 0!==e?e:this.widget.size,i)}_placeAtAnchor(t,i,e){var s;const n=tl(this.getDomNode().ownerDocument.body),o=this.widget.getLayoutInfo(),r=new el(220,2*o.lineHeight),h=t.top,c=function(){const e=n.width-(t.left+t.width+o.borderWidth+o.horizontalPadding),s=-o.borderWidth+t.left+t.width,c=new el(e,n.height-t.top-o.borderHeight-o.verticalPadding),a=c.with(void 0,t.top+t.height-o.borderHeight-o.verticalPadding);return{top:h,left:s,fit:e-i.width,maxSizeTop:c,maxSizeBottom:a,minSize:r.with(Math.min(e,r.width))}}(),a=[c,function(){const e=t.left-o.borderWidth-o.horizontalPadding,s=Math.max(o.horizontalPadding,t.left-i.width-o.borderWidth),c=new el(e,n.height-t.top-o.borderHeight-o.verticalPadding),a=c.with(void 0,t.top+t.height-o.borderHeight-o.verticalPadding);return{top:h,left:s,fit:e-i.width,maxSizeTop:c,maxSizeBottom:a,minSize:r.with(Math.min(e,r.width))}}(),function(){const e=t.left,s=-o.borderWidth+t.top+t.height,h=new el(t.width-o.borderHeight,n.height-t.top-t.height-o.verticalPadding);return{top:s,left:e,fit:h.height-i.height,maxSizeBottom:h,maxSizeTop:h,minSize:r.with(h.width)}}()],l=null!==(s=a.find((t=>t.fit>=0)))&&void 0!==s?s:a.sort(((t,i)=>i.fit-t.fit))[0],u=t.top+t.height-o.borderHeight;let d,f=i.height;const p=Math.max(l.maxSizeTop.height,l.maxSizeBottom.height);let g;f>p&&(f=p),e?f<=l.maxSizeTop.height?(d=!0,g=l.maxSizeTop):(d=!1,g=l.maxSizeBottom):f<=l.maxSizeBottom.height?(d=!1,g=l.maxSizeBottom):(d=!0,g=l.maxSizeTop),this._applyTopLeft({left:l.left,top:d?l.top:u-f}),this.getDomNode().style.position="fixed",this._resizable.enableSashes(!d,l===c,d,l!==c),this._resizable.minSize=l.minSize,this._resizable.maxSize=g,this._resizable.layout(f,Math.min(g.width,i.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(t){this._topLeft=t,this.getDomNode().style.left=`${this._topLeft.left}px`,this.getDomNode().style.top=`${this._topLeft.top}px`}}var C6;!function(t){t[t.FILE=0]="FILE",t[t.FOLDER=1]="FOLDER",t[t.ROOT_FOLDER=2]="ROOT_FOLDER"}(C6||(C6={}));const S6=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function D6(t,i,e,s){const n=s===C6.ROOT_FOLDER?["rootfolder-icon"]:s===C6.FOLDER?["folder-icon"]:["file-icon"];if(e){let o;if(e.scheme===ka.data)o=MA.parseMetaData(e).get(MA.META_DATA_LABEL);else{const t=e.path.match(S6);t?(o=E6(t[2].toLowerCase()),t[1]&&n.push(`${E6(t[1].toLowerCase())}-name-dir-icon`)):o=E6(e.authority.toLowerCase())}if(s===C6.ROOT_FOLDER)n.push(`${o}-root-name-folder-icon`);else if(s===C6.FOLDER)n.push(`${o}-name-folder-icon`);else{if(o){if(n.push(`${o}-name-file-icon`),n.push("name-file-icon"),o.length<=255){const t=o.split(".");for(let i=1;i{const t=this._editor.getOptions(),i=t.get(50),n=i.getMassagedFontFamily(),o=i.fontFeatureSettings,h=t.get(118)||i.fontSize,c=t.get(119)||i.lineHeight,a=i.fontWeight,l=`${c}px`,u=`${i.letterSpacing}px`;e.style.fontSize=`${h}px`,e.style.fontWeight=a,e.style.letterSpacing=u,r.style.fontFamily=n,r.style.fontFeatureSettings=o,r.style.lineHeight=l,s.style.height=l,s.style.width=l,p.style.height=l,p.style.width=l};return g(),i.add(this._editor.onDidChangeConfiguration((t=>{(t.hasChanged(50)||t.hasChanged(118)||t.hasChanged(119))&&g()}))),{root:e,left:c,right:a,icon:s,colorspan:n,iconLabel:l,iconContainer:h,parametersLabel:u,qualifierLabel:d,detailsLabel:f,readMore:p,disposables:i}}renderElement(t,i,e){const{completion:s}=t;e.root.id=L6(i),e.colorspan.style.backgroundColor="";const n={labelEscapeNewLines:!0,matches:l_(t.score)},o=[];if(19===s.kind&&T6.extract(t,o))e.icon.className="icon customcolor",e.iconContainer.className="icon hide",e.colorspan.style.backgroundColor=o[0];else if(20===s.kind&&this._themeService.getFileIconTheme().hasFileIcons){e.icon.className="icon hide",e.iconContainer.className="icon hide";const i=D6(this._modelService,this._languageService,ms.from({scheme:"fake",path:t.textLabel}),C6.FILE),o=D6(this._modelService,this._languageService,ms.from({scheme:"fake",path:s.detail}),C6.FILE);n.extraClasses=i.length>o.length?i:o}else 23===s.kind&&this._themeService.getFileIconTheme().hasFolderIcons?(e.icon.className="icon hide",e.iconContainer.className="icon hide",n.extraClasses=[D6(this._modelService,this._languageService,ms.from({scheme:"fake",path:t.textLabel}),C6.FOLDER),D6(this._modelService,this._languageService,ms.from({scheme:"fake",path:s.detail}),C6.FOLDER)].flat()):(e.icon.className="icon hide",e.iconContainer.className="",e.iconContainer.classList.add("suggest-icon",...Cr.asClassNameArray(Ps.toIcon(s.kind))));s.tags&&s.tags.indexOf(1)>=0&&(n.extraClasses=(n.extraClasses||[]).concat(["deprecated"]),n.matches=[]),e.iconLabel.setLabel(t.textLabel,void 0,n),"string"==typeof s.label?(e.parametersLabel.textContent="",e.detailsLabel.textContent=O6(s.detail||""),e.root.classList.add("string-label")):(e.parametersLabel.textContent=O6(s.label.detail||""),e.detailsLabel.textContent=O6(s.label.description||""),e.root.classList.remove("string-label")),this._editor.getOption(117).showInlineDetails?Wl(e.detailsLabel):jl(e.detailsLabel),y6(t)?(e.right.classList.add("can-expand-details"),Wl(e.readMore),e.readMore.onmousedown=t=>{t.stopPropagation(),t.preventDefault()},e.readMore.onclick=t=>{t.stopPropagation(),t.preventDefault(),this._onDidToggleDetails.fire()}):(e.right.classList.remove("can-expand-details"),jl(e.readMore),e.readMore.onmousedown=null,e.readMore.onclick=null)}disposeTemplate(t){t.disposables.dispose()}};function O6(t){return t.replace(/\r\n|\r|\n/g,"")}R6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([M6(1,pr),M6(2,yd),M6(3,Xk)],R6);var I6,_6=function(t,i){return function(e,s){i(e,s,t)}};dw("editorSuggestWidget.background",{dark:uv,light:uv,hcDark:uv,hcLight:uv},ot(0,"Background color of the suggest widget.")),dw("editorSuggestWidget.border",{dark:fv,light:fv,hcDark:fv,hcLight:fv},ot(0,"Border color of the suggest widget."));const N6=dw("editorSuggestWidget.foreground",{dark:lv,light:lv,hcDark:lv,hcLight:lv},ot(0,"Foreground color of the suggest widget."));dw("editorSuggestWidget.selectedForeground",{dark:Eb,light:Eb,hcDark:Eb,hcLight:Eb},ot(0,"Foreground color of the selected entry in the suggest widget.")),dw("editorSuggestWidget.selectedIconForeground",{dark:Ab,light:Ab,hcDark:Ab,hcLight:Ab},ot(0,"Icon foreground color of the selected entry in the suggest widget."));const B6=dw("editorSuggestWidget.selectedBackground",{dark:Mb,light:Mb,hcDark:Mb,hcLight:Mb},ot(0,"Background color of the selected entry in the suggest widget."));dw("editorSuggestWidget.highlightForeground",{dark:lb,light:lb,hcDark:lb,hcLight:lb},ot(0,"Color of the match highlights in the suggest widget.")),dw("editorSuggestWidget.focusHighlightForeground",{dark:ub,light:ub,hcDark:ub,hcLight:ub},ot(0,"Color of the match highlights in the suggest widget when an item is focused.")),dw("editorSuggestWidgetStatus.foreground",{dark:ly(N6,.5),light:ly(N6,.5),hcDark:ly(N6,.5),hcLight:ly(N6,.5)},ot(0,"Foreground color of the suggest widget status."));class P6{constructor(t,i){this._service=t,this._key=`suggestWidget.size/${i.getEditorType()}/${i instanceof UJ}`}restore(){var t;const i=null!==(t=this._service.get(this._key,0))&&void 0!==t?t:"";try{const t=JSON.parse(i);if(el.is(t))return el.lift(t)}catch(t){}}store(t){this._service.store(this._key,JSON.stringify(t),0,1)}reset(){this._service.remove(this._key,0)}}let $6=I6=class{constructor(t,i,e,s,n){this.editor=t,this._storageService=i,this._state=0,this._isAuto=!1,this._pendingLayout=new ie,this._pendingShowDetails=new ie,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new dc,this._disposables=new Xi,this._onDidSelect=new pe,this._onDidFocus=new pe,this._onDidHide=new de,this._onDidShow=new de,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new de,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new CX,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new W6(this,t),this._persistedSize=new P6(i,t);class o{constructor(t,i,e=!1,s=!1){this.persistedSize=t,this.currentSize=i,this.persistHeight=e,this.persistWidth=s}}let r;this._disposables.add(this.element.onDidWillResize((()=>{this._contentWidget.lockPreference(),r=new o(this._persistedSize.restore(),this.element.size)}))),this._disposables.add(this.element.onDidResize((t=>{var i,e,s,n;if(this._resize(t.dimension.width,t.dimension.height),r&&(r.persistHeight=r.persistHeight||!!t.north||!!t.south,r.persistWidth=r.persistWidth||!!t.east||!!t.west),t.done){if(r){const{itemHeight:t,defaultSize:o}=this.getLayoutInfo(),h=Math.round(t/2);let{width:c,height:a}=this.element.size;(!r.persistHeight||Math.abs(r.currentSize.height-a)<=h)&&(a=null!==(e=null===(i=r.persistedSize)||void 0===i?void 0:i.height)&&void 0!==e?e:o.height),(!r.persistWidth||Math.abs(r.currentSize.width-c)<=h)&&(c=null!==(n=null===(s=r.persistedSize)||void 0===s?void 0:s.width)&&void 0!==n?n:o.width),this._persistedSize.store(new el(c,a))}this._contentWidget.unlockPreference(),r=void 0}}))),this._messageElement=Ol(this.element.domNode,$l(".message")),this._listElement=Ol(this.element.domNode,$l(".tree"));const h=this._disposables.add(n.createInstance(k6,this.editor));h.onDidClose(this.toggleDetails,this,this._disposables),this._details=new x6(h,this.editor);const c=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(117).showIcons);c();const a=n.createInstance(R6,this.editor);this._disposables.add(a),this._disposables.add(a.onDidToggleDetails((()=>this.toggleDetails()))),this._list=new aB("SuggestWidget",this._listElement,{getHeight:()=>this.getLayoutInfo().itemHeight,getTemplateId:()=>"suggestion"},[a],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>"option",getWidgetAriaLabel:()=>ot(0,"Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:t=>{let i=t.textLabel;if("string"!=typeof t.completion.label){const{detail:e,description:s}=t.completion.label;e&&s?i=ot(0,"{0} {1}, {2}",i,e,s):e?i=ot(0,"{0} {1}",i,e):s&&(i=ot(0,"{0}, {1}",i,s))}if(!t.isResolved||!this._isDetailsVisible())return i;const{documentation:e,detail:s}=t.completion;return ot(0,"{0}, docs: {1}",i,qn("{0}{1}",s||"",e?"string"==typeof e?e:e.value:""))}}}),this._list.style(PB({listInactiveFocusBackground:B6,listInactiveFocusOutline:vw})),this._status=n.createInstance(b6,this.element.domNode,x3);const l=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(117).showStatusBar);l(),this._disposables.add(s.onDidColorThemeChange((t=>this._onThemeChange(t)))),this._onThemeChange(s.getColorTheme()),this._disposables.add(this._list.onMouseDown((t=>this._onListMouseDownOrTap(t)))),this._disposables.add(this._list.onTap((t=>this._onListMouseDownOrTap(t)))),this._disposables.add(this._list.onDidChangeSelection((t=>this._onListSelection(t)))),this._disposables.add(this._list.onDidChangeFocus((t=>this._onListFocus(t)))),this._disposables.add(this.editor.onDidChangeCursorSelection((()=>this._onCursorSelectionChanged()))),this._disposables.add(this.editor.onDidChangeConfiguration((t=>{t.hasChanged(117)&&(l(),c())}))),this._ctxSuggestWidgetVisible=k3.Visible.bindTo(e),this._ctxSuggestWidgetDetailsVisible=k3.DetailsVisible.bindTo(e),this._ctxSuggestWidgetMultipleSuggestions=k3.MultipleSuggestions.bindTo(e),this._ctxSuggestWidgetHasFocusedSuggestion=k3.HasFocusedSuggestion.bindTo(e),this._disposables.add(qa(this._details.widget.domNode,"keydown",(t=>{this._onDetailsKeydown.fire(t)}))),this._disposables.add(this.editor.onMouseDown((t=>this._onEditorMouseDown(t))))}dispose(){var t;this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),null===(t=this._loadingTimeout)||void 0===t||t.dispose(),this._pendingLayout.dispose(),this._pendingShowDetails.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}_onEditorMouseDown(t){this._details.widget.domNode.contains(t.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(t.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){0!==this._state&&this._contentWidget.layout()}_onListMouseDownOrTap(t){void 0!==t.element&&void 0!==t.index&&(t.browserEvent.preventDefault(),t.browserEvent.stopPropagation(),this._select(t.element,t.index))}_onListSelection(t){t.elements.length&&this._select(t.elements[0],t.indexes[0])}_select(t,i){const e=this._completionModel;e&&(this._onDidSelect.fire({item:t,index:i,model:e}),this.editor.focus())}_onThemeChange(t){this._details.widget.borderWidth=zy(t.type)?2:1}_onListFocus(t){var i;if(this._ignoreFocusEvents)return;if(!t.elements.length)return this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),void this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);const e=t.elements[0],s=t.indexes[0];e!==this._focusedItem&&(null===(i=this._currentSuggestionDetails)||void 0===i||i.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=e,this._list.reveal(s),this._currentSuggestionDetails=nc((async t=>{const i=lc((()=>{this._isDetailsVisible()&&this.showDetails(!0)}),250),s=t.onCancellationRequested((()=>i.dispose()));try{return await e.resolve(t)}finally{i.dispose(),s.dispose()}})),this._currentSuggestionDetails.then((()=>{s>=this._list.length||e!==this._list.element(s)||(this._ignoreFocusEvents=!0,this._list.splice(s,1,[e]),this._list.setFocus([s]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this.showDetails(!1):this.element.domNode.classList.remove("docs-side"),this.editor.setAriaOptions({activeDescendant:L6(s)}))})).catch(Bi)),this._onDidFocus.fire({item:e,index:s,model:this._completionModel})}_setState(t){if(this._state!==t)switch(this._state=t,this.element.domNode.classList.toggle("frozen",4===t),this.element.domNode.classList.remove("message"),t){case 0:jl(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=I6.LOADING_MESSAGE,jl(this._listElement,this._status.element),Wl(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,$m(I6.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=I6.NO_SUGGESTIONS_MESSAGE,jl(this._listElement,this._status.element),Wl(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,$m(I6.NO_SUGGESTIONS_MESSAGE);break;case 3:case 4:jl(this._messageElement),Wl(this._listElement,this._status.element),this._show();break;case 5:jl(this._messageElement),Wl(this._listElement,this._status.element),this._details.show(),this._show()}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet((()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)}),100)}showTriggered(t,i){0===this._state&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!t,this._isAuto||(this._loadingTimeout=lc((()=>this._setState(1)),i)))}showSuggestions(t,i,e,s,n){var o,r;if(this._contentWidget.setPosition(this.editor.getPosition()),null===(o=this._loadingTimeout)||void 0===o||o.dispose(),null===(r=this._currentSuggestionDetails)||void 0===r||r.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==t&&(this._completionModel=t),e&&2!==this._state&&0!==this._state)return void this._setState(4);const h=this._completionModel.items.length,c=0===h;if(this._ctxSuggestWidgetMultipleSuggestions.set(h>1),c)return this._setState(s?0:2),void(this._completionModel=void 0);this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(e?4:3),this._list.reveal(i,0),this._list.setFocus(n?[]:[i])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=Za(Na(this.element.domNode),(()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")}))}focusSelected(){this._list.length>0&&this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(0!==this._state&&2!==this._state&&1!==this._state&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){5===this._state?(this._setState(3),this._details.widget.domNode.classList.remove("focused")):3===this._state&&this._isDetailsVisible()&&(this._setState(5),this._details.widget.domNode.classList.add("focused"))}toggleDetails(){this._isDetailsVisible()?(this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):!y6(this._list.getFocusedElements()[0])&&!this._explainMode||3!==this._state&&5!==this._state&&4!==this._state||(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this.showDetails(!1))}showDetails(t){this._pendingShowDetails.value=Za(Na(this.element.domNode),(()=>{this._pendingShowDetails.clear(),this._details.show(),t?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._positionDetails(),this.editor.focus(),this.element.domNode.classList.add("shows-details")}))}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this.showDetails(!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){var t;this._pendingLayout.clear(),this._pendingShowDetails.clear(),null===(t=this._loadingTimeout)||void 0===t||t.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const i=this._persistedSize.restore(),e=Math.ceil(4.3*this.getLayoutInfo().itemHeight);i&&i.heightc&&(h=c);const a=this._completionModel?this._completionModel.stats.pLabelLen*o.typicalHalfwidthCharacterWidth:h,l=o.statusBarHeight+this._list.contentHeight+o.borderHeight,u=o.itemHeight+o.statusBarHeight,d=nl(this.editor.getDomNode()),f=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),p=Math.min(n.height-(d.top+f.top+f.height)-o.verticalPadding,l),g=d.top+f.top-o.verticalPadding,m=Math.min(g,l);let w=Math.min(Math.max(m,p)+o.borderHeight,l);r===(null===(i=this._cappedHeight)||void 0===i?void 0:i.capped)&&(r=this._cappedHeight.wanted),rw&&(r=w),r>p||this._forceRenderingAbove&&g>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),w=m):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),w=p),this.element.preferredSize=new el(a,o.defaultSize.height),this.element.maxSize=new el(c,w),this.element.minSize=new el(220,u),this._cappedHeight=r===l?{wanted:null!==(s=null===(e=this._cappedHeight)||void 0===e?void 0:e.wanted)&&void 0!==s?s:t.height,capped:r}:void 0}this._resize(h,r)}_resize(t,i){const{width:e,height:s}=this.element.maxSize;t=Math.min(e,t),i=Math.min(s,i);const{statusBarHeight:n}=this.getLayoutInfo();this._list.layout(i-n,t),this._listElement.style.height=i-n+"px",this.element.layout(i,t),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){var t;this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,2===(null===(t=this._contentWidget.getPosition())||void 0===t?void 0:t.preference[0]))}getLayoutInfo(){const t=this.editor.getOption(50),i=lR(this.editor.getOption(119)||t.lineHeight,8,1e3),e=this.editor.getOption(117).showStatusBar&&2!==this._state&&1!==this._state?i:0,s=this._details.widget.borderWidth,n=2*s;return{itemHeight:i,statusBarHeight:e,borderWidth:s,borderHeight:n,typicalHalfwidthCharacterWidth:t.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new el(430,e+12*i+n)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(t){this._storageService.store("expandSuggestionDocs",t,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};$6.LOADING_MESSAGE=ot(0,"Loading..."),$6.NO_SUGGESTIONS_MESSAGE=ot(0,"No suggestions."),$6=I6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([_6(1,AB),_6(2,ah),_6(3,Xk),_6(4,ur)],$6);class W6{constructor(t,i){this._widget=t,this._editor=i,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return!this._hidden&&this._position&&this._preference?{position:this._position,preference:[this._preference]}:null}beforeRender(){const{height:t,width:i}=this._widget.element.size,{borderWidth:e,horizontalPadding:s}=this._widget.getLayoutInfo();return new el(i+2*e+s,t+2*e)}afterRender(t){this._widget._afterRender(t)}setPreference(t){this._preferenceLocked||(this._preference=t)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(t){this._position=t}}var j6,z6=function(t,i){return function(e,s){i(e,s,t)}};class H6{constructor(t,i){if(this._model=t,this._position=i,t.getLineMaxColumn(i.lineNumber)!==i.column){const e=t.getOffsetAt(i),s=t.getPositionAt(e+1);this._marker=t.deltaDecorations([],[{range:Ms.fromPositions(i,s),options:{description:"suggest-line-suffix",stickiness:1}}])}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.deltaDecorations(this._marker,[])}delta(t){if(this._model.isDisposed()||this._position.lineNumber!==t.lineNumber)return 0;if(this._marker){const i=this._model.getDecorationRange(this._marker[0]);return this._model.getOffsetAt(i.getStartPosition())-this._model.getOffsetAt(t)}return this._model.getLineMaxColumn(t.lineNumber)-t.column}}let V6=j6=class{static get(t){return t.getContribution(j6.ID)}constructor(t,i,e,s,n,o,r){this._memoryService=i,this._commandService=e,this._contextKeyService=s,this._instantiationService=n,this._logService=o,this._telemetryService=r,this._lineSuffix=new ie,this._toDispose=new Xi,this._selectors=new U6((t=>t.priority)),this._onWillInsertSuggestItem=new de,this.onWillInsertSuggestItem=this._onWillInsertSuggestItem.event,this.editor=t,this.model=n.createInstance(g6,this.editor),this._selectors.register({priority:0,select:(t,i,e)=>this._memoryService.select(t,i,e)});const h=k3.InsertMode.bindTo(s);h.set(t.getOption(117).insertMode),this._toDispose.add(this.model.onDidTrigger((()=>h.set(t.getOption(117).insertMode)))),this.widget=this._toDispose.add(new Ga(Na(t.getDomNode()),(()=>{const t=this._instantiationService.createInstance($6,this.editor);this._toDispose.add(t),this._toDispose.add(t.onDidSelect((t=>this._insertSuggestion(t,0)),this));const i=new h6(this.editor,t,this.model,(t=>this._insertSuggestion(t,2)));this._toDispose.add(i);const e=k3.MakesTextEdit.bindTo(this._contextKeyService),s=k3.HasInsertAndReplaceRange.bindTo(this._contextKeyService),n=k3.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add(Yi((()=>{e.reset(),s.reset(),n.reset()}))),this._toDispose.add(t.onDidFocus((({item:t})=>{const i=this.editor.getPosition(),o=t.editStart.column,r=i.column;let h=!0;"smart"!==this.editor.getOption(1)||2!==this.model.state||t.completion.additionalTextEdits||4&t.completion.insertTextRules||r-o!==t.completion.insertText.length||(h=this.editor.getModel().getValueInRange({startLineNumber:i.lineNumber,startColumn:o,endLineNumber:i.lineNumber,endColumn:r})!==t.completion.insertText),e.set(h),s.set(!As.equals(t.editInsertEnd,t.editReplaceEnd)),n.set(Boolean(t.provider.resolveCompletionItem)||Boolean(t.completion.documentation)||t.completion.detail!==t.completion.label)}))),this._toDispose.add(t.onDetailsKeyDown((t=>{t.toKeyCodeChord().equals(new wh(!0,!1,!1,!1,33))||Ct&&t.toKeyCodeChord().equals(new wh(!1,!1,!1,!0,33))?t.stopPropagation():t.toKeyCodeChord().isModifierKey()||this.editor.focus()}))),t}))),this._overtypingCapturer=this._toDispose.add(new Ga(Na(t.getDomNode()),(()=>this._toDispose.add(new m6(this.editor,this.model))))),this._alternatives=this._toDispose.add(new Ga(Na(t.getDomNode()),(()=>this._toDispose.add(new r6(this.editor,this._contextKeyService))))),this._toDispose.add(n.createInstance(n6,t)),this._toDispose.add(this.model.onDidTrigger((t=>{this.widget.value.showTriggered(t.auto,t.shy?250:50),this._lineSuffix.value=new H6(this.editor.getModel(),t.position)}))),this._toDispose.add(this.model.onDidSuggest((t=>{if(t.triggerOptions.shy)return;let i=-1;for(const e of this._selectors.itemsOrderedByPriorityDesc)if(i=e.select(this.editor.getModel(),this.editor.getPosition(),t.completionModel.items),-1!==i)break;-1===i&&(i=0);let e=!1;if(t.triggerOptions.auto){const i=this.editor.getOption(117);"never"===i.selectionMode||"always"===i.selectionMode?e="never"===i.selectionMode:"whenTriggerCharacter"===i.selectionMode?e=1!==t.triggerOptions.triggerKind:"whenQuickSuggestion"===i.selectionMode&&(e=1===t.triggerOptions.triggerKind&&!t.triggerOptions.refilter)}this.widget.value.showSuggestions(t.completionModel,i,t.isFrozen,t.triggerOptions.auto,e)}))),this._toDispose.add(this.model.onDidCancel((t=>{t.retrigger||this.widget.value.hideWidget()}))),this._toDispose.add(this.editor.onDidBlurEditorWidget((()=>{this.model.cancel(),this.model.clear()})));const c=k3.AcceptSuggestionsOnEnter.bindTo(s),a=()=>{const t=this.editor.getOption(1);c.set("on"===t||"smart"===t)};this._toDispose.add(this.editor.onDidChangeConfiguration((()=>a()))),a()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(t,i){if(!t||!t.item)return this._alternatives.value.reset(),this.model.cancel(),void this.model.clear();if(!this.editor.hasModel())return;const e=q3.get(this.editor);if(!e)return;this._onWillInsertSuggestItem.fire({item:t.item});const s=this.editor.getModel(),n=s.getAlternativeVersionId(),{item:o}=t,r=[],h=new Ce;1&i||this.editor.pushUndoStop();const c=this.getOverwriteInfo(o,Boolean(8&i));this._memoryService.memorize(s,this.editor.getPosition(),o);const a=o.isResolved;let l=-1,u=-1;if(Array.isArray(o.completion.additionalTextEdits)){this.model.cancel();const t=iU.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",o.completion.additionalTextEdits.map((t=>pO.replaceMove(Ms.lift(t.range),t.text)))),t.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!a){const t=new re;let e;const n=s.onDidChangeContent((t=>{if(t.isFlush)return h.cancel(),void n.dispose();for(const i of t.changes){const t=Ms.getEndPosition(i.range);e&&!As.isBefore(t,e)||(e=t)}})),c=i;i|=2;let a=!1;const l=this.editor.onWillType((()=>{l.dispose(),a=!0,2&c||this.editor.pushUndoStop()}));r.push(o.resolve(h.token).then((()=>{if(!o.completion.additionalTextEdits||h.token.isCancellationRequested)return;if(e&&o.completion.additionalTextEdits.some((t=>As.isBefore(e,Ms.getStartPosition(t.range)))))return!1;a&&this.editor.pushUndoStop();const t=iU.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",o.completion.additionalTextEdits.map((t=>pO.replaceMove(Ms.lift(t.range),t.text)))),t.restoreRelativeVerticalPositionOfCursor(this.editor),!a&&2&c||this.editor.pushUndoStop(),!0})).then((i=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",t.elapsed(),i),u=!0===i?1:!1===i?0:-2})).finally((()=>{n.dispose(),l.dispose()})))}let{insertText:d}=o.completion;if(4&o.completion.insertTextRules||(d=n3.escape(d)),this.model.cancel(),e.insert(d,{overwriteBefore:c.overwriteBefore,overwriteAfter:c.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(1&o.completion.insertTextRules),clipboardText:t.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),2&i||this.editor.pushUndoStop(),o.completion.command)if(o.completion.command.id===q6.id)this.model.trigger({auto:!0,retrigger:!0});else{const t=new re;r.push(this._commandService.executeCommand(o.completion.command.id,...o.completion.command.arguments?[...o.completion.command.arguments]:[]).catch((t=>{o.completion.extensionId?Pi(t):Bi(t)})).finally((()=>{l=t.elapsed()})))}4&i&&this._alternatives.value.set(t,(t=>{for(h.cancel();s.canUndo();){n!==s.getAlternativeVersionId()&&s.undo(),this._insertSuggestion(t,3|(8&i?8:0));break}})),this._alertCompletionItem(o),Promise.all(r).finally((()=>{this._reportSuggestionAcceptedTelemetry(o,s,a,l,u),this.model.clear(),h.dispose()}))}_reportSuggestionAcceptedTelemetry(t,i,e,s,n){var o,r,h;0!==Math.floor(100*Math.random())&&this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:null!==(r=null===(o=t.extensionId)||void 0===o?void 0:o.value)&&void 0!==r?r:"unknown",providerId:null!==(h=t.provider._debugDisplayName)&&void 0!==h?h:"unknown",kind:t.completion.kind,basenameHash:Ma(bA(i.uri)).toString(16),languageId:i.getLanguageId(),fileExtension:yA(i.uri),resolveInfo:t.provider.resolveCompletionItem?e?1:0:-1,resolveDuration:t.resolveDuration,commandDuration:s,additionalEditsAsync:n})}getOverwriteInfo(t,i){q(this.editor.hasModel());let e="replace"===this.editor.getOption(117).insertMode;i&&(e=!e);const s=(e?t.editReplaceEnd.column:t.editInsertEnd.column)-t.position.column;return{overwriteBefore:t.position.column-t.editStart.column+(this.editor.getPosition().column-t.position.column),overwriteAfter:s+(this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0)}}_alertCompletionItem(t){b(t.completion.additionalTextEdits)&&Pm(ot(0,"Accepting '{0}' made {1} additional edits",t.textLabel,t.completion.additionalTextEdits.length))}triggerSuggest(t,i,e){this.editor.hasModel()&&(this.model.trigger({auto:null!=i&&i,completionOptions:{providerFilter:t,kindFilter:e?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(t){if(!this.editor.hasModel())return;const i=this.editor.getPosition(),e=()=>{i.equals(this.editor.getPosition())&&this._commandService.executeCommand(t.fallback)},s=t=>{if(4&t.completion.insertTextRules||t.completion.additionalTextEdits)return!0;const i=this.editor.getPosition(),e=t.editStart.column,s=i.column;return s-e!==t.completion.insertText.length||this.editor.getModel().getValueInRange({startLineNumber:i.lineNumber,startColumn:e,endLineNumber:i.lineNumber,endColumn:s})!==t.completion.insertText};he.once(this.model.onDidTrigger)((()=>{const t=[];he.any(this.model.onDidTrigger,this.model.onDidCancel)((()=>{Qi(t),e()}),void 0,t),this.model.onDidSuggest((({completionModel:i})=>{if(Qi(t),0===i.items.length)return void e();const n=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),i.items),o=i.items[n];s(o)?(this.editor.pushUndoStop(),this._insertSuggestion({index:n,item:o,model:i},7)):e()}),void 0,t)})),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(i,0),this.editor.focus()}acceptSelectedSuggestion(t,i){const e=this.widget.value.getFocusedItem();let s=0;t&&(s|=4),i&&(s|=8),this._insertSuggestion(e,s)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.value.forceRenderingAbove()}stopForceRenderingAbove(){this.widget.isInitialized&&this.widget.value.stopForceRenderingAbove()}registerSelector(t){return this._selectors.register(t)}};V6.ID="editor.contrib.suggestController",V6=j6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([z6(1,e6),z6(2,Sr),z6(3,ah),z6(4,ur),z6(5,jh),z6(6,Wh)],V6);class U6{constructor(t){this.prioritySelector=t,this._items=new Array}register(t){if(-1!==this._items.indexOf(t))throw new Error("Value is already registered");return this._items.push(t),this._items.sort(((t,i)=>this.prioritySelector(i)-this.prioritySelector(t))),{dispose:()=>{const i=this._items.indexOf(t);i>=0&&this._items.splice(i,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class q6 extends su{constructor(){super({id:q6.id,label:ot(0,"Trigger Suggest"),alias:"Trigger Suggest",precondition:zr.and(YC.writable,YC.hasCompletionItemProvider,k3.Visible.toNegated()),kbOpts:{kbExpr:YC.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(t,i,e){const s=V6.get(i);if(!s)return;let n;e&&"object"==typeof e&&!0===e.auto&&(n=!0),s.triggerSuggest(void 0,n,void 0)}}q6.id="editor.action.triggerSuggest",lu(V6.ID,V6,2),cu(q6);const K6=190,G6=eu.bindToContribution(V6.get);hu(new G6({id:"acceptSelectedSuggestion",precondition:zr.and(k3.Visible,k3.HasFocusedSuggestion),handler(t){t.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:zr.and(k3.Visible,YC.textInputFocus),weight:K6},{primary:3,kbExpr:zr.and(k3.Visible,YC.textInputFocus,k3.AcceptSuggestionsOnEnter,k3.MakesTextEdit),weight:K6}],menuOpts:[{menuId:x3,title:ot(0,"Insert"),group:"left",order:1,when:k3.HasInsertAndReplaceRange.toNegated()},{menuId:x3,title:ot(0,"Insert"),group:"left",order:1,when:zr.and(k3.HasInsertAndReplaceRange,k3.InsertMode.isEqualTo("insert"))},{menuId:x3,title:ot(0,"Replace"),group:"left",order:1,when:zr.and(k3.HasInsertAndReplaceRange,k3.InsertMode.isEqualTo("replace"))}]})),hu(new G6({id:"acceptAlternativeSelectedSuggestion",precondition:zr.and(k3.Visible,YC.textInputFocus,k3.HasFocusedSuggestion),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:1027,secondary:[1026]},handler(t){t.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:x3,group:"left",order:2,when:zr.and(k3.HasInsertAndReplaceRange,k3.InsertMode.isEqualTo("insert")),title:ot(0,"Replace")},{menuId:x3,group:"left",order:2,when:zr.and(k3.HasInsertAndReplaceRange,k3.InsertMode.isEqualTo("replace")),title:ot(0,"Insert")}]})),Dr.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion"),hu(new G6({id:"hideSuggestWidget",precondition:k3.Visible,handler:t=>t.cancelSuggestWidget(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:9,secondary:[1033]}})),hu(new G6({id:"selectNextSuggestion",precondition:zr.and(k3.Visible,zr.or(k3.MultipleSuggestions,k3.HasFocusedSuggestion.negate())),handler:t=>t.selectNextSuggestion(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),hu(new G6({id:"selectNextPageSuggestion",precondition:zr.and(k3.Visible,zr.or(k3.MultipleSuggestions,k3.HasFocusedSuggestion.negate())),handler:t=>t.selectNextPageSuggestion(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:12,secondary:[2060]}})),hu(new G6({id:"selectLastSuggestion",precondition:zr.and(k3.Visible,zr.or(k3.MultipleSuggestions,k3.HasFocusedSuggestion.negate())),handler:t=>t.selectLastSuggestion()})),hu(new G6({id:"selectPrevSuggestion",precondition:zr.and(k3.Visible,zr.or(k3.MultipleSuggestions,k3.HasFocusedSuggestion.negate())),handler:t=>t.selectPrevSuggestion(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),hu(new G6({id:"selectPrevPageSuggestion",precondition:zr.and(k3.Visible,zr.or(k3.MultipleSuggestions,k3.HasFocusedSuggestion.negate())),handler:t=>t.selectPrevPageSuggestion(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:11,secondary:[2059]}})),hu(new G6({id:"selectFirstSuggestion",precondition:zr.and(k3.Visible,zr.or(k3.MultipleSuggestions,k3.HasFocusedSuggestion.negate())),handler:t=>t.selectFirstSuggestion()})),hu(new G6({id:"focusSuggestion",precondition:zr.and(k3.Visible,k3.HasFocusedSuggestion.negate()),handler:t=>t.focusSuggestion(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}})),hu(new G6({id:"focusAndAcceptSuggestion",precondition:zr.and(k3.Visible,k3.HasFocusedSuggestion.negate()),handler:t=>{t.focusSuggestion(),t.acceptSelectedSuggestion(!0,!1)}})),hu(new G6({id:"toggleSuggestionDetails",precondition:zr.and(k3.Visible,k3.HasFocusedSuggestion),handler:t=>t.toggleSuggestionDetails(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:x3,group:"right",order:1,when:zr.and(k3.DetailsVisible,k3.CanResolve),title:ot(0,"show less")},{menuId:x3,group:"right",order:1,when:zr.and(k3.DetailsVisible.toNegated(),k3.CanResolve),title:ot(0,"show more")}]})),hu(new G6({id:"toggleExplainMode",precondition:k3.Visible,handler:t=>t.toggleExplainMode(),kbOpts:{weight:100,primary:2138}})),hu(new G6({id:"toggleSuggestionFocus",precondition:k3.Visible,handler:t=>t.toggleSuggestionFocus(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:2570,mac:{primary:778}}})),hu(new G6({id:"insertBestCompletion",precondition:zr.and(YC.textInputFocus,zr.equals("config.editor.tabCompletion","on"),n6.AtEnd,k3.Visible.toNegated(),r6.OtherSuggestions.toNegated(),q3.InSnippetMode.toNegated()),handler:(t,i)=>{t.triggerSuggestAndAcceptBest(P(i)?{fallback:"tab",...i}:{fallback:"tab"})},kbOpts:{weight:K6,primary:2}})),hu(new G6({id:"insertNextSuggestion",precondition:zr.and(YC.textInputFocus,zr.equals("config.editor.tabCompletion","on"),r6.OtherSuggestions,k3.Visible.toNegated(),q3.InSnippetMode.toNegated()),handler:t=>t.acceptNextSuggestion(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:2}})),hu(new G6({id:"insertPrevSuggestion",precondition:zr.and(YC.textInputFocus,zr.equals("config.editor.tabCompletion","on"),r6.OtherSuggestions,k3.Visible.toNegated(),q3.InSnippetMode.toNegated()),handler:t=>t.acceptPrevSuggestion(),kbOpts:{weight:K6,kbExpr:YC.textInputFocus,primary:1026}})),cu(class extends su{constructor(){super({id:"editor.action.resetSuggestSize",label:ot(0,"Reset Suggest Widget Size"),alias:"Reset Suggest Widget Size",precondition:void 0})}run(t,i){var e;null===(e=V6.get(i))||void 0===e||e.resetWidgetSize()}});class Z6 extends te{get selectedItem(){return this._selectedItem}constructor(t,i,e,s){super(),this.editor=t,this.suggestControllerPreselector=i,this.checkModelVersion=e,this.onWillAccept=s,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._selectedItem=FV(this,void 0),this._register(t.onKeyDown((t=>{t.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))}))),this._register(t.onKeyUp((t=>{t.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))})));const n=V6.get(this.editor);if(n){this._register(n.registerSelector({priority:100,select:(t,i,e)=>{var s;yV((t=>this.checkModelVersion(t)));const o=this.editor.getModel();if(!o)return-1;const r=null===(s=this.suggestControllerPreselector())||void 0===s?void 0:s.removeCommonPrefix(o);if(!r)return-1;const h=As.lift(i),c=up(e.map(((t,i)=>{const e=Q6.fromSuggestion(n,o,h,t,this.isShiftKeyPressed).toSingleTextEdit().removeCommonPrefix(o);return{index:i,valid:r.augments(e),prefixLength:e.text.length,suggestItem:t}})).filter((t=>t&&t.valid&&t.prefixLength>0)),T((t=>t.prefixLength),R));return c?c.index:-1}}));let t=!1;const i=()=>{t||(t=!0,this._register(n.widget.value.onDidShow((()=>{this.isSuggestWidgetVisible=!0,this.update(!0)}))),this._register(n.widget.value.onDidHide((()=>{this.isSuggestWidgetVisible=!1,this.update(!1)}))),this._register(n.widget.value.onDidFocus((()=>{this.isSuggestWidgetVisible=!0,this.update(!0)}))))};this._register(he.once(n.model.onDidTrigger)((()=>{i()}))),this._register(n.onWillInsertSuggestItem((t=>{const i=this.editor.getPosition(),e=this.editor.getModel();if(!i||!e)return;const s=Q6.fromSuggestion(n,e,i,t.item,this.isShiftKeyPressed);this.onWillAccept(s)})))}this.update(this._isActive)}update(t){const i=this.getSuggestItemInfo();var e,s;this._isActive===t&&((e=this._currentSuggestItemInfo)===(s=i)||e&&s&&e.equals(s))||(this._isActive=t,this._currentSuggestItemInfo=i,yV((t=>{this.checkModelVersion(t),this._selectedItem.set(this._isActive?this._currentSuggestItemInfo:void 0,t)})))}getSuggestItemInfo(){const t=V6.get(this.editor);if(!t||!this.isSuggestWidgetVisible)return;const i=t.widget.value.getFocusedItem(),e=this.editor.getPosition(),s=this.editor.getModel();return i&&e&&s?Q6.fromSuggestion(t,s,e,i.item,this.isShiftKeyPressed):void 0}stopForceRenderingAbove(){const t=V6.get(this.editor);null==t||t.stopForceRenderingAbove()}forceRenderingAbove(){const t=V6.get(this.editor);null==t||t.forceRenderingAbove()}}class Q6{static fromSuggestion(t,i,e,s,n){let{insertText:o}=s.completion,r=!1;if(4&s.completion.insertTextRules){const t=(new n3).parse(o);t.children.length<100&&z3.adjustWhitespace(i,e,!0,t),o=t.toString(),r=!0}const h=t.getOverwriteInfo(s,n);return new Q6(Ms.fromPositions(e.delta(0,-h.overwriteBefore),e.delta(0,Math.max(h.overwriteAfter,0))),o,s.completion.kind,r)}constructor(t,i,e,s){this.range=t,this.insertText=i,this.completionItemKind=e,this.isSnippetText=s}equals(t){return this.range.equalsRange(t.range)&&this.insertText===t.insertText&&this.completionItemKind===t.completionItemKind&&this.isSnippetText===t.isSnippetText}toSelectedSuggestionInfo(){return new zs(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}toSingleTextEdit(){return new l3(this.range,this.insertText)}}var J6,Y6=function(t,i){return function(e,s){i(e,s,t)}};let X6=J6=class extends te{static get(t){return t.getContribution(J6.ID)}constructor(t,i,e,s,n,o,r,h,c){super(),this.editor=t,this._instantiationService=i,this._contextKeyService=e,this._configurationService=s,this._commandService=n,this._debounceService=o,this._languageFeaturesService=r,this._audioCueService=h,this._keybindingService=c,this.model=RV("inlineCompletionModel",void 0),this._textModelVersionId=FV(this,-1),this._cursorPosition=FV(this,new As(1,1)),this._suggestWidgetAdaptor=this._register(new Z6(this.editor,(()=>{var t,i;return null===(i=null===(t=this.model.get())||void 0===t?void 0:t.selectedInlineCompletion.get())||void 0===i?void 0:i.toSingleTextEdit(void 0)}),(t=>this.updateObservables(t,G3.Other)),(t=>{yV((i=>{var e;this.updateObservables(i,G3.Other),null===(e=this.model.get())||void 0===e||e.handleSuggestAccepted(t)}))}))),this._enabled=KV(this.editor.onDidChangeConfiguration,(()=>this.editor.getOption(62).enabled)),this._ghostTextWidget=this._register(this._instantiationService.createInstance(H5,this.editor,{ghostText:this.model.map(((t,i)=>null==t?void 0:t.ghostText.read(i))),minReservedLineCount:UV(0),targetTextModel:this.model.map((t=>null==t?void 0:t.textModel))})),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineCompletionsDebounce",{min:50,max:50}),this._playAudioCueSignal=JV(this),this._isReadonly=KV(this.editor.onDidChangeConfiguration,(()=>this.editor.getOption(90))),this._textModel=KV(this.editor.onDidChangeModel,(()=>this.editor.getModel())),this._textModelIfWritable=_V((t=>this._isReadonly.read(t)?void 0:this._textModel.read(t))),this._register(new R5(this._contextKeyService,this.model)),this._register(WV((e=>{const s=this._textModelIfWritable.read(e);yV((e=>{if(this.model.set(void 0,e),this.updateObservables(e,G3.Other),s){const n=i.createInstance(Q3,s,this._suggestWidgetAdaptor.selectedItem,this._cursorPosition,this._textModelVersionId,this._debounceValue,KV(t.onDidChangeConfiguration,(()=>t.getOption(117).preview)),KV(t.onDidChangeConfiguration,(()=>t.getOption(117).previewMode)),KV(t.onDidChangeConfiguration,(()=>t.getOption(62).mode)),this._enabled);this.model.set(n,e)}}))})));const a=t=>{var i;return t.isUndoing?G3.Undo:t.isRedoing?G3.Redo:(null===(i=this.model.get())||void 0===i?void 0:i.isAcceptingPartially)?G3.AcceptWord:G3.Other};let l;this._register(t.onDidChangeModelContent((t=>yV((i=>this.updateObservables(i,a(t))))))),this._register(t.onDidChangeCursorPosition((t=>yV((i=>{var e;this.updateObservables(i,G3.Other),3!==t.reason&&"api"!==t.source||null===(e=this.model.get())||void 0===e||e.stop(i)}))))),this._register(t.onDidType((()=>yV((t=>{var i;this.updateObservables(t,G3.Other),this._enabled.get()&&(null===(i=this.model.get())||void 0===i||i.trigger(t))}))))),this._register(this._commandService.onDidExecuteCommand((i=>{new Set([hS.Tab.id,hS.DeleteLeft.id,hS.DeleteRight.id,A0,"acceptSelectedSuggestion"]).has(i.commandId)&&t.hasTextFocus()&&this._enabled.get()&&yV((t=>{var i;null===(i=this.model.get())||void 0===i||i.trigger(t)}))}))),this._register(this.editor.onDidBlurEditorWidget((()=>{this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||t.getOption(62).keepOnBlur||N0.dropDownVisible||yV((t=>{var i;null===(i=this.model.get())||void 0===i||i.stop(t)}))}))),this._register(WV((t=>{var i;const e=null===(i=this.model.read(t))||void 0===i?void 0:i.state.read(t);(null==e?void 0:e.suggestItem)?e.ghostText.lineCount>=2&&this._suggestWidgetAdaptor.forceRenderingAbove():this._suggestWidgetAdaptor.stopForceRenderingAbove()}))),this._register(Yi((()=>{this._suggestWidgetAdaptor.stopForceRenderingAbove()}))),this._register(zV({handleChange:t=>(t.didChange(this._playAudioCueSignal)&&(l=void 0),!0)},(async t=>{this._playAudioCueSignal.read(t);const i=this.model.read(t),e=null==i?void 0:i.state.read(t);if(i&&e&&e.inlineCompletion){if(e.inlineCompletion.semanticId!==l){l=e.inlineCompletion.semanticId;const t=i.textModel.getLineContent(e.ghostText.lineNumber);this._audioCueService.playAudioCue(UH.inlineSuggestion).then((()=>{this.editor.getOption(8)&&this.provideScreenReaderUpdate(e.ghostText.renderForScreenReader(t))}))}}else l=void 0}))),this._register(new O0(this.editor,this.model,this._instantiationService)),this._register(this._configurationService.onDidChangeConfiguration((t=>{t.affectsConfiguration("accessibility.verbosity.inlineCompletions")&&this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})}))),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})}playAudioCue(t){this._playAudioCueSignal.trigger(t)}provideScreenReaderUpdate(t){const i=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),e=this._keybindingService.lookupKeybinding("editor.action.accessibleView");let s;!i&&e&&this.editor.getOption(147)&&(s=ot(0,"Inspect this in the accessible view ({0})",e.getAriaLabel())),Pm(s?t+", "+s:t)}updateObservables(t,i){var e,s;const n=this.editor.getModel();this._textModelVersionId.set(null!==(e=null==n?void 0:n.getVersionId())&&void 0!==e?e:-1,t,i),this._cursorPosition.set(null!==(s=this.editor.getPosition())&&void 0!==s?s:new As(1,1),t)}shouldShowHoverAt(t){var i;const e=null===(i=this.model.get())||void 0===i?void 0:i.ghostText.get();return!!e&&e.parts.some((i=>t.containsPosition(new As(e.lineNumber,i.column))))}shouldShowHoverAtViewZone(t){return this._ghostTextWidget.ownsViewZone(t)}};X6.ID="editor.contrib.inlineCompletionsController",X6=J6=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Y6(1,ur),Y6(2,ah),Y6(3,pd),Y6(4,Sr),Y6(5,gR),Y6(6,xg),Y6(7,zH),Y6(8,oC)],X6);class t9 extends su{constructor(){super({id:t9.ID,label:ot(0,"Show Next Inline Suggestion"),alias:"Show Next Inline Suggestion",precondition:zr.and(YC.writable,R5.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(t,i){var e;const s=X6.get(i);null===(e=null==s?void 0:s.model.get())||void 0===e||e.next()}}t9.ID=L0;class i9 extends su{constructor(){super({id:i9.ID,label:ot(0,"Show Previous Inline Suggestion"),alias:"Show Previous Inline Suggestion",precondition:zr.and(YC.writable,R5.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(t,i){var e;const s=X6.get(i);null===(e=null==s?void 0:s.model.get())||void 0===e||e.previous()}}i9.ID=M0;class e9 extends su{constructor(){super({id:e9.ID,label:ot(0,"Hide Inline Suggestion"),alias:"Hide Inline Suggestion",precondition:R5.inlineSuggestionVisible,kbOpts:{weight:100,primary:9}})}async run(t,i){const e=X6.get(i);yV((t=>{var i;null===(i=null==e?void 0:e.model.get())||void 0===i||i.stop(t)}))}}e9.ID="editor.action.inlineSuggest.hide";class s9 extends Ph{constructor(){super({id:s9.ID,title:ot(0,"Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:Rh.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:zr.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(t,i){const e=t.get(pd),s=e.getValue("editor.inlineSuggest.showToolbar");e.updateValue("editor.inlineSuggest.showToolbar","always"===s?"onHover":"always")}}s9.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar";var n9=function(t,i){return function(e,s){i(e,s,t)}};class o9{constructor(t,i,e){this.owner=t,this.range=i,this.controller=e}isValidForHoverAnchor(t){return 1===t.type&&this.range.startColumn<=t.range.startColumn&&this.range.endColumn>=t.range.endColumn}}let r9=class{constructor(t,i,e,s,n,o){this._editor=t,this._languageService=i,this._openerService=e,this.accessibilityService=s,this._instantiationService=n,this._telemetryService=o,this.hoverOrdinal=4}suggestHoverAnchor(t){const i=X6.get(this._editor);if(!i)return null;const e=t.target;if(8===e.type){const s=e.detail;if(i.shouldShowHoverAtViewZone(s.viewZoneId))return new kX(1e3,this,Ms.fromPositions(this._editor.getModel().validatePosition(s.positionBefore||s.position)),t.event.posx,t.event.posy,!1)}return 7===e.type&&i.shouldShowHoverAt(e.range)||6===e.type&&e.detail.mightBeForeignElement&&i.shouldShowHoverAt(e.range)?new kX(1e3,this,e.range,t.event.posx,t.event.posy,!1):null}computeSync(t,i){if("onHover"!==this._editor.getOption(62).showToolbar)return[];const e=X6.get(this._editor);return e&&e.shouldShowHoverAt(t.range)?[new o9(this,t.range,e)]:[]}renderHoverParts(t,i){const e=new Xi,s=i[0];this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(8)&&this.renderScreenReaderText(t,s,e);const n=s.controller.model.get(),o=this._instantiationService.createInstance(N0,this._editor,!1,UV(null),n.selectedInlineCompletionIndex,n.inlineCompletionsCount,n.selectedInlineCompletion.map((t=>{var i;return null!==(i=null==t?void 0:t.inlineCompletion.source.inlineCompletions.commands)&&void 0!==i?i:[]})));return t.fragment.appendChild(o.getDomNode()),n.triggerExplicitly(),e.add(o),e}renderScreenReaderText(t,i,e){const s=$l,n=s("div.hover-row.markdown-hover"),o=Ol(n,s("div.hover-contents",{"aria-live":"assertive"})),r=e.add(new lQ({editor:this._editor},this._languageService,this._openerService));e.add(WV((s=>{var n;const h=null===(n=i.controller.model.read(s))||void 0===n?void 0:n.ghostText.read(s);if(h){const i=this._editor.getModel().getLineContent(h.lineNumber);(i=>{e.add(r.onDidRenderAsync((()=>{o.className="hover-contents code-hover-contents",t.onContentsChanged()})));const s=ot(0,"Suggestion:"),n=e.add(r.render((new N_).appendText(s).appendCodeblock("text",i)));o.replaceChildren(n.element)})(h.renderForScreenReader(i))}else _l(o)}))),t.fragment.appendChild(n)}};function h9(t,i){let e=0;for(let s=0;s=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([n9(1,yd),n9(2,dP),n9(3,Zm),n9(4,ur),n9(5,Wh)],r9),lu(X6.ID,X6,3),cu(class extends su{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:ot(0,"Trigger Inline Suggestion"),alias:"Trigger Inline Suggestion",precondition:YC.writable})}async run(t,i){const e=X6.get(i);await async function(t){const i=new CV(t,void 0);try{await t(i)}finally{i.finish()}}((async t=>{var i;await(null===(i=null==e?void 0:e.model.get())||void 0===i?void 0:i.triggerExplicitly(t)),null==e||e.playAudioCue(t)}))}}),cu(t9),cu(i9),cu(class extends su{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:ot(0,"Accept Next Word Of Inline Suggestion"),alias:"Accept Next Word Of Inline Suggestion",precondition:zr.and(YC.writable,R5.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:zr.and(YC.writable,R5.inlineSuggestionVisible)},menuOpts:[{menuId:Rh.InlineSuggestionToolbar,title:ot(0,"Accept Word"),group:"primary",order:2}]})}async run(t,i){var e;const s=X6.get(i);await(null===(e=null==s?void 0:s.model.get())||void 0===e?void 0:e.acceptNextWord(s.editor))}}),cu(class extends su{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:ot(0,"Accept Next Line Of Inline Suggestion"),alias:"Accept Next Line Of Inline Suggestion",precondition:zr.and(YC.writable,R5.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:Rh.InlineSuggestionToolbar,title:ot(0,"Accept Line"),group:"secondary",order:2}]})}async run(t,i){var e;const s=X6.get(i);await(null===(e=null==s?void 0:s.model.get())||void 0===e?void 0:e.acceptNextLine(s.editor))}}),cu(class extends su{constructor(){super({id:A0,label:ot(0,"Accept Inline Suggestion"),alias:"Accept Inline Suggestion",precondition:R5.inlineSuggestionVisible,menuOpts:[{menuId:Rh.InlineSuggestionToolbar,title:ot(0,"Accept"),group:"primary",order:1}],kbOpts:{primary:2,weight:200,kbExpr:zr.and(R5.inlineSuggestionVisible,YC.tabMovesFocus.toNegated(),R5.inlineSuggestionHasIndentationLessThanTabSize,k3.Visible.toNegated(),YC.hoverFocused.toNegated())}})}async run(t,i){var e;const s=X6.get(i);s&&(null===(e=s.model.get())||void 0===e||e.accept(s.editor),s.editor.focus())}}),cu(e9),$h(s9),xX.register(r9);function a9(t,i,e,s,n){if(1===t.getLineCount()&&1===t.getLineMaxColumn(1))return[];const o=i.getLanguageConfiguration(t.getLanguageId()).indentationRules;if(!o)return[];for(s=Math.min(s,t.getLineCount());e<=s&&o.unIndentedLinePattern;){const i=t.getLineContent(e);if(!o.unIndentedLinePattern.test(i))break;e++}if(e>s-1)return[];const{tabSize:r,indentSize:h,insertSpaces:c}=t.getOptions(),a=(t,i)=>$C.shiftIndent(t,t.length+(i=i||1),r,h,c),l=(t,i)=>$C.unshiftIndent(t,t.length+(i=i||1),r,h,c),u=[];let d;const f=t.getLineContent(e);let p=f;if(null!=n){d=n;const t=io(f);p=d+f.substring(t.length),o.decreaseIndentPattern&&o.decreaseIndentPattern.test(p)&&(d=l(d),p=d+f.substring(t.length)),f!==p&&u.push(pO.replaceMove(new Ls(e,1,e,t.length+1),lC(d,h,c)))}else d=io(f);let g=d;o.increaseIndentPattern&&o.increaseIndentPattern.test(p)?(g=a(g),d=a(d)):o.indentNextLinePattern&&o.indentNextLinePattern.test(p)&&(g=a(g));for(let i=++e;i<=s;i++){const e=t.getLineContent(i),s=io(e),n=g+e.substring(s.length);o.decreaseIndentPattern&&o.decreaseIndentPattern.test(n)&&(g=l(g),d=l(d)),s!==g&&u.push(pO.replaceMove(new Ls(i,1,i,s.length+1),lC(g,h,c))),o.unIndentedLinePattern&&o.unIndentedLinePattern.test(e)||(o.increaseIndentPattern&&o.increaseIndentPattern.test(n)?(d=a(d),g=d):g=o.indentNextLinePattern&&o.indentNextLinePattern.test(n)?a(g):d)}return u}class l9 extends su{constructor(){super({id:l9.ID,label:ot(0,"Convert Indentation to Spaces"),alias:"Convert Indentation to Spaces",precondition:YC.writable})}run(t,i){const e=i.getModel();if(!e)return;const s=e.getOptions(),n=i.getSelection();if(!n)return;const o=new y9(n,s.tabSize);i.pushUndoStop(),i.executeCommands(this.id,[o]),i.pushUndoStop(),e.updateOptions({insertSpaces:!0})}}l9.ID="editor.action.indentationToSpaces";class u9 extends su{constructor(){super({id:u9.ID,label:ot(0,"Convert Indentation to Tabs"),alias:"Convert Indentation to Tabs",precondition:YC.writable})}run(t,i){const e=i.getModel();if(!e)return;const s=e.getOptions(),n=i.getSelection();if(!n)return;const o=new k9(n,s.tabSize);i.pushUndoStop(),i.executeCommands(this.id,[o]),i.pushUndoStop(),e.updateOptions({insertSpaces:!1})}}u9.ID="editor.action.indentationToTabs";class d9 extends su{constructor(t,i,e){super(e),this.insertSpaces=t,this.displaySizeOnly=i}run(t,i){const e=t.get(Oj),s=t.get(pr),n=i.getModel();if(!n)return;const o=s.getCreationOptions(n.getLanguageId(),n.uri,n.isForSimpleWidget),r=n.getOptions(),h=[1,2,3,4,5,6,7,8].map((t=>({id:t.toString(),label:t.toString(),description:t===o.tabSize&&t===r.tabSize?ot(0,"Configured Tab Size"):t===o.tabSize?ot(0,"Default Tab Size"):t===r.tabSize?ot(0,"Current Tab Size"):void 0}))),c=Math.min(n.getOptions().tabSize-1,7);setTimeout((()=>{e.pick(h,{placeHolder:ot(0,"Select Tab Size for Current File"),activeItem:h[c]}).then((t=>{if(t&&n&&!n.isDisposed()){const i=parseInt(t.label,10);n.updateOptions(this.displaySizeOnly?{tabSize:i}:{tabSize:i,indentSize:i,insertSpaces:this.insertSpaces})}}))}),50)}}class f9 extends d9{constructor(){super(!1,!1,{id:f9.ID,label:ot(0,"Indent Using Tabs"),alias:"Indent Using Tabs",precondition:void 0})}}f9.ID="editor.action.indentUsingTabs";class p9 extends d9{constructor(){super(!0,!1,{id:p9.ID,label:ot(0,"Indent Using Spaces"),alias:"Indent Using Spaces",precondition:void 0})}}p9.ID="editor.action.indentUsingSpaces";class g9 extends d9{constructor(){super(!0,!0,{id:g9.ID,label:ot(0,"Change Tab Display Size"),alias:"Change Tab Display Size",precondition:void 0})}}g9.ID="editor.action.changeTabDisplaySize";class m9 extends su{constructor(){super({id:m9.ID,label:ot(0,"Detect Indentation from Content"),alias:"Detect Indentation from Content",precondition:void 0})}run(t,i){const e=t.get(pr),s=i.getModel();if(!s)return;const n=e.getCreationOptions(s.getLanguageId(),s.uri,s.isForSimpleWidget);s.detectIndentation(n.insertSpaces,n.tabSize)}}m9.ID="editor.action.detectIndentation";class w9{constructor(t,i){this._initialSelection=i,this._edits=[],this._selectionId=null;for(const i of t)i.range&&"string"==typeof i.text&&this._edits.push(i)}getEditOperations(t,i){for(const t of this._edits)i.addEditOperation(Ms.lift(t.range),t.text);let e=!1;Array.isArray(this._edits)&&1===this._edits.length&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(e=!0,this._selectionId=i.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(e=!0,this._selectionId=i.trackSelection(this._initialSelection,!1))),e||(this._selectionId=i.trackSelection(this._initialSelection))}computeCursorState(t,i){return i.getTrackedSelection(this._selectionId)}}let v9=class{constructor(t,i){this.editor=t,this._languageConfigurationService=i,this.callOnDispose=new Xi,this.callOnModel=new Xi,this.callOnDispose.add(t.onDidChangeConfiguration((()=>this.update()))),this.callOnDispose.add(t.onDidChangeModel((()=>this.update()))),this.callOnDispose.add(t.onDidChangeModelLanguage((()=>this.update())))}update(){this.callOnModel.clear(),this.editor.getOption(12)<4||this.editor.getOption(55)||this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste((({range:t})=>{this.trigger(t)})))}trigger(t){const i=this.editor.getSelections();if(null===i||i.length>1)return;const e=this.editor.getModel();if(!e)return;if(!e.tokenization.isCheapToTokenize(t.getStartPosition().lineNumber))return;const s=this.editor.getOption(12),{tabSize:n,indentSize:o,insertSpaces:r}=e.getOptions(),h=[],c={shiftIndent:t=>$C.shiftIndent(t,t.length+1,n,o,r),unshiftIndent:t=>$C.unshiftIndent(t,t.length+1,n,o,r)};let a=t.startLineNumber;for(;a<=t.endLineNumber&&this.shouldIgnoreLine(e,a);)a++;if(a>t.endLineNumber)return;let l=e.getLineContent(a);if(!/\S/.test(l.substring(0,t.startColumn-1))){const t=HC(s,e,e.getLanguageId(),a,c,this._languageConfigurationService);if(null!==t){const i=io(l),s=h9(t,n);if(s!==h9(i,n)){const t=c9(s,n,r);h.push({range:new Ms(a,1,a,i.length+1),text:t}),l=t+l.substr(i.length)}else{const t=VC(e,a,this._languageConfigurationService);if(0===t||8===t)return}}}const u=a;for(;ae.tokenization.getLineTokens(t),getLanguageId:()=>e.getLanguageId(),getLanguageIdAtPosition:(t,i)=>e.getLanguageIdAtPosition(t,i)},getLineContent:t=>t===u?l:e.getLineContent(t)},e.getLanguageId(),a+1,c,this._languageConfigurationService);if(null!==i){const s=h9(i,n),o=h9(io(e.getLineContent(a+1)),n);if(s!==o){const i=s-o;for(let s=a+1;s<=t.endLineNumber;s++){const t=io(e.getLineContent(s)),o=c9(h9(t,n)+i,n,r);o!==t&&h.push({range:new Ms(s,1,s,t.length+1),text:o})}}}}if(h.length>0){this.editor.pushUndoStop();const t=new w9(h,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",t),this.editor.pushUndoStop()}}shouldIgnoreLine(t,i){t.tokenization.forceTokenization(i);const e=t.getLineFirstNonWhitespaceColumn(i);if(0===e)return!0;const s=t.tokenization.getLineTokens(i);if(s.getCount()>0){const t=s.findTokenIndexAtOffset(e);if(t>=0&&1===s.getStandardTokenType(t))return!0}return!1}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};function b9(t,i,e,s){if(1===t.getLineCount()&&1===t.getLineMaxColumn(1))return;let n="";for(let t=0;t=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,Xd)],v9);class y9{constructor(t,i){this.selection=t,this.tabSize=i,this.selectionId=null}getEditOperations(t,i){this.selectionId=i.trackSelection(this.selection),b9(t,i,this.tabSize,!0)}computeCursorState(t,i){return i.getTrackedSelection(this.selectionId)}}class k9{constructor(t,i){this.selection=t,this.tabSize=i,this.selectionId=null}getEditOperations(t,i){this.selectionId=i.trackSelection(this.selection),b9(t,i,this.tabSize,!1)}computeCursorState(t,i){return i.getTrackedSelection(this.selectionId)}}lu(v9.ID,v9,2),cu(l9),cu(u9),cu(f9),cu(p9),cu(g9),cu(m9),cu(class extends su{constructor(){super({id:"editor.action.reindentlines",label:ot(0,"Reindent Lines"),alias:"Reindent Lines",precondition:YC.writable})}run(t,i){const e=t.get(Xd),s=i.getModel();if(!s)return;const n=a9(s,e,1,s.getLineCount());n.length>0&&(i.pushUndoStop(),i.executeEdits(this.id,n),i.pushUndoStop())}}),cu(class extends su{constructor(){super({id:"editor.action.reindentselectedlines",label:ot(0,"Reindent Selected Lines"),alias:"Reindent Selected Lines",precondition:YC.writable})}run(t,i){const e=t.get(Xd),s=i.getModel();if(!s)return;const n=i.getSelections();if(null===n)return;const o=[];for(const t of n){let i=t.startLineNumber,n=t.endLineNumber;if(i!==n&&1===t.endColumn&&n--,1===i){if(i===n)continue}else i--;const r=a9(s,e,i,n);o.push(...r)}o.length>0&&(i.pushUndoStop(),i.executeEdits(this.id,o),i.pushUndoStop())}});class x9{constructor(t,i){this.range=t,this.direction=i}}class C9{constructor(t,i,e){this.hint=t,this.anchor=i,this.provider=e,this._isResolved=!1}with(t){const i=new C9(this.hint,t.anchor,this.provider);return i._isResolved=this._isResolved,i._currentResolve=this._currentResolve,i}async resolve(t){if("function"==typeof this.provider.resolveInlayHint){if(this._currentResolve){if(await this._currentResolve,t.isCancellationRequested)return;return this.resolve(t)}this._isResolved||(this._currentResolve=this._doResolve(t).finally((()=>this._currentResolve=void 0))),await this._currentResolve}}async _doResolve(t){var i,e;try{const s=await Promise.resolve(this.provider.resolveInlayHint(this.hint,t));this.hint.tooltip=null!==(i=null==s?void 0:s.tooltip)&&void 0!==i?i:this.hint.tooltip,this.hint.label=null!==(e=null==s?void 0:s.label)&&void 0!==e?e:this.hint.label,this._isResolved=!0}catch(t){Pi(t),this._isResolved=!1}}}class S9{static async create(t,i,e,s){const n=[],o=t.ordered(i).reverse().map((t=>e.map((async e=>{try{const o=await t.provideInlayHints(i,e,s);(null==o?void 0:o.hints.length)&&n.push([o,t])}catch(t){Pi(t)}}))));if(await Promise.all(o.flat()),s.isCancellationRequested||i.isDisposed())throw new zi;return new S9(e,n,i)}constructor(t,i,e){this._disposables=new Xi,this.ranges=t,this.provider=new Set;const s=[];for(const[t,n]of i){this._disposables.add(t),this.provider.add(n);for(const i of t.hints){const t=e.validatePosition(i.position);let o="before";const r=S9._getRangeAtPosition(e,t);let h;r.getStartPosition().isBefore(t)?(h=Ms.fromPositions(r.getStartPosition(),t),o="after"):(h=Ms.fromPositions(t,r.getEndPosition()),o="before"),s.push(new C9(i,new x9(h,o),n))}}this.items=s.sort(((t,i)=>As.compare(t.hint.position,i.hint.position)))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(t,i){const e=i.lineNumber,s=t.getWordAtPosition(i);if(s)return new Ms(e,s.startColumn,e,s.endColumn);t.tokenization.tokenizeIfCheap(e);const n=t.tokenization.getLineTokens(e),o=i.column-1,r=n.findTokenIndexAtOffset(o);let h=n.getStartOffset(r),c=n.getEndOffset(r);return c-h==1&&(h===o&&r>1?(h=n.getStartOffset(r-1),c=n.getEndOffset(r-1)):c===o&&rTh(t)?t.command.id:l1())));for(const t of oX.all())d.has(t.desc.id)&&u.push(new mr(t.desc.id,Bh.label(t.desc,{renderShortTitle:!0}),void 0,!0,(async()=>{const e=await o.createModelReference(l.uri);try{const n=new nX(e.object.textEditorModel,Ms.getStartPosition(l.range)),o=s.item.anchor.range;await c.invokeFunction(t.runEditorCommand.bind(t),i,n,o)}finally{e.dispose()}})));if(s.part.command){const{command:t}=s.part;u.push(new vr),u.push(new mr(t.id,t.title,void 0,!0,(async()=>{var i;try{await h.executeCommand(t.id,...null!==(i=t.arguments)&&void 0!==i?i:[])}catch(t){a.notify({severity:nT.Error,source:s.item.provider.displayName,message:t})}})))}const f=i.getOption(126);r.showContextMenu({domForShadowRoot:f&&null!==(n=i.getDomNode())&&void 0!==n?n:void 0,getAnchor:()=>{const t=nl(e);return{x:t.left,y:t.top+t.height+8}},getActions:()=>u,onHide:()=>{i.focus()},autoSelectFirstItem:!0})}async function E9(t,i,e,s){const n=t.get(gr),o=await n.createModelReference(s.uri);await e.invokeWithinContext((async t=>{const n=i.hasSideBySideModifier,r=t.get(ah),h=iY.inPeekEditor.getValue(r),c=!n&&e.getOption(87)&&!h;return new rX({openToSide:n,openInPeek:c,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(t,new nX(o.object.textEditorModel,Ms.getStartPosition(s.range)),Ms.lift(s.range))})),o.dispose()}var A9,M9=function(t,i){return function(e,s){i(e,s,t)}};class L9{constructor(){this._entries=new Vp(50)}get(t){const i=L9._key(t);return this._entries.get(i)}set(t,i){const e=L9._key(t);this._entries.set(e,i)}static _key(t){return`${t.uri.toString()}/${t.getVersionId()}`}}const F9=dr("IInlayHintsCache");Cd(F9,L9,1);class T9{constructor(t,i){this.item=t,this.index=i}get part(){const t=this.item.hint.label;return"string"==typeof t?{label:t}:t[this.index]}}class R9{constructor(t,i){this.part=t,this.hasTriggerModifier=i}}let O9=A9=class{static get(t){var i;return null!==(i=t.getContribution(A9.ID))&&void 0!==i?i:void 0}constructor(t,i,e,s,n,o,r){this._editor=t,this._languageFeaturesService=i,this._inlayHintsCache=s,this._commandService=n,this._notificationService=o,this._instaService=r,this._disposables=new Xi,this._sessionDisposables=new Xi,this._decorationsMetadata=new Map,this._ruleFactory=new Ay(this._editor),this._activeRenderMode=0,this._debounceInfo=e.for(i.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(i.inlayHintsProvider.onDidChange((()=>this._update()))),this._disposables.add(t.onDidChangeModel((()=>this._update()))),this._disposables.add(t.onDidChangeModelLanguage((()=>this._update()))),this._disposables.add(t.onDidChangeConfiguration((t=>{t.hasChanged(139)&&this._update()}))),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const t=this._editor.getOption(139);if("off"===t.enabled)return;const i=this._editor.getModel();if(!i||!this._languageFeaturesService.inlayHintsProvider.has(i))return;const e=this._inlayHintsCache.get(i);let s;e&&this._updateHintsDecorators([i.getFullModelRange()],e),this._sessionDisposables.add(Yi((()=>{i.isDisposed()||this._cacheHintsForFastRestore(i)})));const n=new Set,o=new pc((async()=>{const t=Date.now();null==s||s.dispose(!0),s=new Ce;const e=i.onWillDispose((()=>null==s?void 0:s.cancel()));try{const e=s.token,r=await S9.create(this._languageFeaturesService.inlayHintsProvider,i,this._getHintsRanges(),e);if(o.delay=this._debounceInfo.update(i,Date.now()-t),e.isCancellationRequested)return void r.dispose();for(const t of r.provider)"function"!=typeof t.onDidChangeInlayHints||n.has(t)||(n.add(t),this._sessionDisposables.add(t.onDidChangeInlayHints((()=>{o.isScheduled()||o.schedule()}))));this._sessionDisposables.add(r),this._updateHintsDecorators(r.ranges,r.items),this._cacheHintsForFastRestore(i)}catch(t){Bi(t)}finally{s.dispose(),e.dispose()}}),this._debounceInfo.get(i));if(this._sessionDisposables.add(o),this._sessionDisposables.add(Yi((()=>null==s?void 0:s.dispose(!0)))),o.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange((t=>{!t.scrollTopChanged&&o.isScheduled()||o.schedule()}))),this._sessionDisposables.add(this._editor.onDidChangeModelContent((()=>{const t=Math.max(o.delay,1250);o.schedule(t)}))),"on"===t.enabled)this._activeRenderMode=0;else{let i,e;"onUnlessPressed"===t.enabled?(i=0,e=1):(i=1,e=0),this._activeRenderMode=i,this._sessionDisposables.add(Gl.getInstance().event((t=>{if(!this._editor.hasModel())return;const s=t.altKey&&t.ctrlKey&&!t.shiftKey&&!t.metaKey?e:i;if(s!==this._activeRenderMode){this._activeRenderMode=s;const t=this._editor.getModel(),i=this._copyInlayHintsWithCurrentAnchor(t);this._updateHintsDecorators([t.getFullModelRange()],i),o.schedule(0)}})))}this._sessionDisposables.add(this._installDblClickGesture((()=>o.schedule(0)))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const t=new Xi,i=t.add(new HJ(this._editor)),e=new Xi;return t.add(e),t.add(i.onMouseMoveOrRelevantKeyDown((t=>{const[i]=t,s=this._getInlayHintLabelPart(i),n=this._editor.getModel();if(!s||!n)return void e.clear();const o=new Ce;e.add(Yi((()=>o.dispose(!0)))),s.item.resolve(o.token),this._activeInlayHintPart=s.part.command||s.part.location?new R9(s,i.hasTriggerModifier):void 0;const r=n.validatePosition(s.item.hint.position).lineNumber,h=new Ms(r,1,r,n.getLineMaxColumn(r)),c=this._getInlineHintsForRange(h);this._updateHintsDecorators([h],c),e.add(Yi((()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([h],c)})))}))),t.add(i.onCancel((()=>e.clear()))),t.add(i.onExecute((async t=>{const i=this._getInlayHintLabelPart(t);if(i){const e=i.part;e.location?this._instaService.invokeFunction(E9,t,this._editor,e.location):Us.is(e.command)&&await this._invokeCommand(e.command,i.item)}}))),t}_getInlineHintsForRange(t){const i=new Set;for(const e of this._decorationsMetadata.values())t.containsRange(e.item.anchor.range)&&i.add(e.item);return Array.from(i)}_installDblClickGesture(t){return this._editor.onMouseUp((async i=>{if(2!==i.event.detail)return;const e=this._getInlayHintLabelPart(i);if(e&&(i.event.preventDefault(),await e.item.resolve(ke.None),b(e.item.hint.textEdits))){const i=e.item.hint.textEdits.map((t=>pO.replace(Ms.lift(t.range),t.text)));this._editor.executeEdits("inlayHint.default",i),t()}}))}_installContextMenu(){return this._editor.onContextMenu((async t=>{if(!(t.event.target instanceof HTMLElement))return;const i=this._getInlayHintLabelPart(t);i&&await this._instaService.invokeFunction(D9,this._editor,t.event.target,i)}))}_getInlayHintLabelPart(t){var i;if(6!==t.target.type)return;const e=null===(i=t.target.detail.injectedText)||void 0===i?void 0:i.options;return e instanceof EL&&(null==e?void 0:e.attachedData)instanceof T9?e.attachedData:void 0}async _invokeCommand(t,i){var e;try{await this._commandService.executeCommand(t.id,...null!==(e=t.arguments)&&void 0!==e?e:[])}catch(t){this._notificationService.notify({severity:nT.Error,source:i.provider.displayName,message:t})}}_cacheHintsForFastRestore(t){const i=this._copyInlayHintsWithCurrentAnchor(t);this._inlayHintsCache.set(t,i)}_copyInlayHintsWithCurrentAnchor(t){const i=new Map;for(const[e,s]of this._decorationsMetadata){if(i.has(s.item))continue;const n=t.getDecorationRange(e);if(n){const t=new x9(n,s.item.anchor.direction),e=s.item.with({anchor:t});i.set(s.item,e)}}return Array.from(i.values())}_getHintsRanges(){const t=this._editor.getModel(),i=this._editor.getVisibleRangesPlusViewportAboveBelow(),e=[];for(const s of i.sort(Ms.compareRangesUsingStarts)){const i=t.validateRange(new Ms(s.startLineNumber-30,s.startColumn,s.endLineNumber+30,s.endColumn));0!==e.length&&Ms.areIntersectingOrTouching(e[e.length-1],i)?e[e.length-1]=Ms.plusRange(e[e.length-1],i):e.push(i)}return e}_updateHintsDecorators(t,i){var e,s;const n=[],o=(t,i,e,s,o)=>{const r={content:e,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:i.className,cursorStops:s,attachedData:o};n.push({item:t,classNameRef:i,decoration:{range:t.anchor.range,options:{description:"InlayHint",showIfCollapsed:t.anchor.range.isEmpty(),collapseOnReplaceEdit:!t.anchor.range.isEmpty(),stickiness:0,[t.anchor.direction]:0===this._activeRenderMode?r:void 0}}})},r=(t,i)=>{const e=this._ruleFactory.createClassNameRef({width:(h/3|0)+"px",display:"inline-block"});o(t,e," ",i?Pf.Right:Pf.None)},{fontSize:h,fontFamily:c,padding:a,isUniform:l}=this._getLayoutInfo(),u="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(u,c);for(const t of i){t.hint.paddingLeft&&r(t,!1);const i="string"==typeof t.hint.label?[{label:t.hint.label}]:t.hint.label;for(let s=0;sA9._MAX_DECORATORS)break}const d=[];for(const i of t)for(const{id:t}of null!==(s=this._editor.getDecorationsInRange(i))&&void 0!==s?s:[]){const i=this._decorationsMetadata.get(t);i&&(d.push(t),i.classNameRef.dispose(),this._decorationsMetadata.delete(t))}const f=iU.capture(this._editor);this._editor.changeDecorations((t=>{const i=t.deltaDecorations(d,n.map((t=>t.decoration)));for(let t=0;te)&&(n=e);const o=t.fontFamily||s;return{fontSize:n,fontFamily:o,padding:i,isUniform:!i&&o===s&&n===e}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const t of this._decorationsMetadata.values())t.classNameRef.dispose();this._decorationsMetadata.clear()}};O9.ID="editor.contrib.InlayHints",O9._MAX_DECORATORS=1500,O9=A9=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([M9(1,xg),M9(2,gR),M9(3,F9),M9(4,Sr),M9(5,oT),M9(6,ur)],O9),Dr.registerCommand("_executeInlayHintProvider",(async(t,...i)=>{const[e,s]=i;q(ms.isUri(e)),q(Ms.isIRange(s));const{inlayHintsProvider:n}=t.get(xg),o=await t.get(gr).createModelReference(e);try{const t=await S9.create(n,o.object.textEditorModel,[Ms.lift(s)],ke.None),i=t.items.map((t=>t.hint));return setTimeout((()=>t.dispose()),0),i}finally{o.dispose()}}));var I9=function(t,i){return function(e,s){i(e,s,t)}};class _9 extends kX{constructor(t,i,e,s){super(10,i,t.item.anchor.range,e,s,!0),this.part=t}}let N9=class extends qX{constructor(t,i,e,s,n,o){super(t,i,e,s,o),this._resolverService=n,this.hoverOrdinal=6}suggestHoverAnchor(t){var i;if(!O9.get(this._editor))return null;if(6!==t.target.type)return null;const e=null===(i=t.target.detail.injectedText)||void 0===i?void 0:i.options;return e instanceof EL&&e.attachedData instanceof T9?new _9(e.attachedData,this,t.event.posx,t.event.posy):null}computeSync(){return[]}computeAsync(t,i,e){return t instanceof _9?new kc((async i=>{const{part:s}=t;if(await s.item.resolve(e),e.isCancellationRequested)return;let n,o;if("string"==typeof s.item.hint.tooltip?n=(new N_).appendText(s.item.hint.tooltip):s.item.hint.tooltip&&(n=s.item.hint.tooltip),n&&i.emitOne(new UX(this,t.range,[n],!1,0)),b(s.item.hint.textEdits)&&i.emitOne(new UX(this,t.range,[(new N_).appendText(ot(0,"Double-click to insert"))],!1,10001)),"string"==typeof s.part.tooltip?o=(new N_).appendText(s.part.tooltip):s.part.tooltip&&(o=s.part.tooltip),o&&i.emitOne(new UX(this,t.range,[o],!1,1)),s.part.location||s.part.command){let e;const n=ot(0,"altKey"===this._editor.getOption(77)?Ct?"cmd + click":"ctrl + click":Ct?"option + click":"alt + click");s.part.location&&s.part.command?e=(new N_).appendText(ot(0,"Go to Definition ({0}), right click for more",n)):s.part.location?e=(new N_).appendText(ot(0,"Go to Definition ({0})",n)):s.part.command&&(e=new N_(`[${ot(0,"Execute Command")}](${r=s.part.command,ms.from({scheme:ka.command,path:r.id,query:r.arguments&&encodeURIComponent(JSON.stringify(r.arguments))}).toString()} "${s.part.command.title}") (${n})`,{isTrusted:!0})),e&&i.emitOne(new UX(this,t.range,[e],!1,1e4))}var r;const h=await this._resolveInlayHintLabelPartHover(s,e);for await(const t of h)i.emitOne(t)})):kc.EMPTY}async _resolveInlayHintLabelPartHover(t,i){if(!t.part.location)return kc.EMPTY;const{uri:e,range:s}=t.part.location,n=await this._resolverService.createModelReference(e);try{const e=n.object.textEditorModel;return this._languageFeaturesService.hoverProvider.has(e)?zX(this._languageFeaturesService.hoverProvider,e,new As(s.startLineNumber,s.startColumn),i).filter((t=>!B_(t.hover.contents))).map((i=>new UX(this,t.item.anchor.range,i.hover.contents,!1,2+i.ordinal))):kc.EMPTY}finally{n.dispose()}}};N9=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([I9(1,yd),I9(2,dP),I9(3,pd),I9(4,gr),I9(5,xg)],N9),lu(O9.ID,O9,1),xX.register(N9);class B9{constructor(t,i,e){this._editRange=t,this._originalSelection=i,this._text=e}getEditOperations(t,i){i.addTrackedEditOperation(this._editRange,this._text)}computeCursorState(t,i){const e=i.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new Ls(e.endLineNumber,Math.min(this._originalSelection.positionColumn,e.endColumn),e.endLineNumber,Math.min(this._originalSelection.positionColumn,e.endColumn)):new Ls(e.endLineNumber,e.endColumn-this._text.length,e.endLineNumber,e.endColumn)}}var P9;let $9=P9=class{static get(t){return t.getContribution(P9.ID)}constructor(t,i){this.editor=t,this.editorWorkerService=i,this.decorations=this.editor.createDecorationsCollection()}dispose(){}run(t,i){var e;null===(e=this.currentRequest)||void 0===e||e.cancel();const s=this.editor.getSelection(),n=this.editor.getModel();if(!n||!s)return;let o=s;if(o.startLineNumber!==o.endLineNumber)return;const r=new xK(this.editor,5),h=n.uri;return this.editorWorkerService.canNavigateValueSet(h)?(this.currentRequest=nc((()=>this.editorWorkerService.navigateValueSet(h,o,i))),this.currentRequest.then((i=>{var e;if(!i||!i.range||!i.value)return;if(!r.validate(this.editor))return;const s=Ms.lift(i.range);let n=i.range;const h=i.value.length-(o.endColumn-o.startColumn);n={startLineNumber:n.startLineNumber,startColumn:n.startColumn,endLineNumber:n.endLineNumber,endColumn:n.startColumn+i.value.length},h>1&&(o=new Ls(o.startLineNumber,o.startColumn,o.endLineNumber,o.endColumn+h-1));const c=new B9(s,o,i.value);this.editor.pushUndoStop(),this.editor.executeCommand(t,c),this.editor.pushUndoStop(),this.decorations.set([{range:n,options:P9.DECORATION}]),null===(e=this.decorationRemover)||void 0===e||e.cancel(),this.decorationRemover=ac(350),this.decorationRemover.then((()=>this.decorations.clear())).catch(Bi)})).catch(Bi)):Promise.resolve(void 0)}};$9.ID="editor.contrib.inPlaceReplaceController",$9.DECORATION=AL.register({description:"in-place-replace",className:"valueSetReplacement"}),$9=P9=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,vP)],$9),lu($9.ID,$9,4),cu(class extends su{constructor(){super({id:"editor.action.inPlaceReplace.up",label:ot(0,"Replace with Previous Value"),alias:"Replace with Previous Value",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:3159,weight:100}})}run(t,i){const e=$9.get(i);return e?e.run(this.id,!1):Promise.resolve(void 0)}}),cu(class extends su{constructor(){super({id:"editor.action.inPlaceReplace.down",label:ot(0,"Replace with Next Value"),alias:"Replace with Next Value",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:3161,weight:100}})}run(t,i){const e=$9.get(i);return e?e.run(this.id,!0):Promise.resolve(void 0)}}),cu(class extends su{constructor(){super({id:"expandLineSelection",label:ot(0,"Expand Line Selection"),alias:"Expand Line Selection",precondition:void 0,kbOpts:{weight:0,kbExpr:YC.textInputFocus,primary:2090}})}run(t,i,e){if(e=e||{},!i.hasModel())return;const s=i._getViewModel();s.model.pushStackElement(),s.setCursorStates(e.source,3,OC.expandLineSelection(s,s.getCursorStates())),s.revealPrimaryCursor(e.source,!0)}});class W9{constructor(t,i){this._selection=t,this._cursors=i,this._selectionId=null}getEditOperations(t,i){const e=function(t,i){i.sort(((t,i)=>t.lineNumber===i.lineNumber?t.column-i.column:t.lineNumber-i.lineNumber));for(let t=i.length-2;t>=0;t--)i[t].lineNumber===i[t+1].lineNumber&&i.splice(t,1);const e=[];let s=0,n=0;const o=i.length;for(let r=1,h=t.getLineCount();r<=h;r++){const h=t.getLineContent(r),c=h.length+1;let a=0;if(nt.tokenization.getLineTokens(i),getLanguageId:()=>t.getLanguageId(),getLanguageIdAtPosition:(i,e)=>t.getLanguageIdAtPosition(i,e)},getLineContent:null};if(s.startLineNumber===s.endLineNumber&&1===t.getLineMaxColumn(s.startLineNumber)){const e=s.startLineNumber,n=this._isMovingDown?e+1:e-1;1===t.getLineMaxColumn(n)?i.addEditOperation(new Ms(1,1,1,1),null):(i.addEditOperation(new Ms(e,1,e,1),t.getLineContent(n)),i.addEditOperation(new Ms(n,1,n,t.getLineMaxColumn(n)),null)),s=new Ls(n,1,n,1)}else{let e,o;if(this._isMovingDown){e=s.endLineNumber+1,o=t.getLineContent(e),i.addEditOperation(new Ms(e-1,t.getLineMaxColumn(e-1),e,t.getLineMaxColumn(e)),null);let a=o;if(this.shouldAutoIndent(t,s)){const l=this.matchEnterRule(t,h,n,e,s.startLineNumber-1);if(null!==l){const i=c9(l+h9(io(t.getLineContent(e)),n),n,r);a=i+this.trimStart(o)}else{c.getLineContent=i=>t.getLineContent(i===s.startLineNumber?e:i);const i=HC(this._autoIndent,c,t.getLanguageIdAtPosition(e,1),s.startLineNumber,h,this._languageConfigurationService);if(null!==i){const s=io(t.getLineContent(e)),h=h9(i,n);if(h!==h9(s,n)){const t=c9(h,n,r);a=t+this.trimStart(o)}}}i.addEditOperation(new Ms(s.startLineNumber,1,s.startLineNumber,1),a+"\n");const u=this.matchEnterRuleMovingDown(t,h,n,s.startLineNumber,e,a);if(null!==u)0!==u&&this.getIndentEditsOfMovingBlock(t,i,s,n,r,u);else{c.getLineContent=i=>i===s.startLineNumber?a:t.getLineContent(i>=s.startLineNumber+1&&i<=s.endLineNumber+1?i-1:i);const o=HC(this._autoIndent,c,t.getLanguageIdAtPosition(e,1),s.startLineNumber+1,h,this._languageConfigurationService);if(null!==o){const e=io(t.getLineContent(s.startLineNumber)),h=h9(o,n),c=h9(e,n);h!==c&&this.getIndentEditsOfMovingBlock(t,i,s,n,r,h-c)}}}else i.addEditOperation(new Ms(s.startLineNumber,1,s.startLineNumber,1),a+"\n")}else if(e=s.startLineNumber-1,o=t.getLineContent(e),i.addEditOperation(new Ms(e,1,e+1,1),null),i.addEditOperation(new Ms(s.endLineNumber,t.getLineMaxColumn(s.endLineNumber),s.endLineNumber,t.getLineMaxColumn(s.endLineNumber)),"\n"+o),this.shouldAutoIndent(t,s)){c.getLineContent=i=>t.getLineContent(i===e?s.startLineNumber:i);const o=this.matchEnterRule(t,h,n,s.startLineNumber,s.startLineNumber-2);if(null!==o)0!==o&&this.getIndentEditsOfMovingBlock(t,i,s,n,r,o);else{const o=HC(this._autoIndent,c,t.getLanguageIdAtPosition(s.startLineNumber,1),e,h,this._languageConfigurationService);if(null!==o){const e=io(t.getLineContent(s.startLineNumber)),h=h9(o,n),c=h9(e,n);h!==c&&this.getIndentEditsOfMovingBlock(t,i,s,n,r,h-c)}}}}this._selectionId=i.trackSelection(s)}buildIndentConverter(t,i,e){return{shiftIndent:s=>$C.shiftIndent(s,s.length+1,t,i,e),unshiftIndent:s=>$C.unshiftIndent(s,s.length+1,t,i,e)}}parseEnterResult(t,i,e,s,n){if(n){let o=n.indentation;n.indentAction===Ru.None||n.indentAction===Ru.Indent?o=n.indentation+n.appendText:n.indentAction===Ru.IndentOutdent?o=n.indentation:n.indentAction===Ru.Outdent&&(o=i.unshiftIndent(n.indentation)+n.appendText);const r=t.getLineContent(s);if(this.trimStart(r).indexOf(this.trimStart(o))>=0){const n=io(t.getLineContent(s));let r=io(o);const h=VC(t,s,this._languageConfigurationService);return null!==h&&2&h&&(r=i.unshiftIndent(r)),h9(r,e)-h9(n,e)}}return null}matchEnterRuleMovingDown(t,i,e,s,n,o){if(eo(o)>=0){const o=t.getLineMaxColumn(n),r=_C(this._autoIndent,t,new Ms(n,o,n,o),this._languageConfigurationService);return this.parseEnterResult(t,i,e,s,r)}{let n=s-1;for(;n>=1&&!(eo(t.getLineContent(n))>=0);)n--;if(n<1||s>t.getLineCount())return null;const o=t.getLineMaxColumn(n),r=_C(this._autoIndent,t,new Ms(n,o,n,o),this._languageConfigurationService);return this.parseEnterResult(t,i,e,s,r)}}matchEnterRule(t,i,e,s,n,o){let r=n;for(;r>=1;){let i;if(i=r===n&&void 0!==o?o:t.getLineContent(r),eo(i)>=0)break;r--}if(r<1||s>t.getLineCount())return null;const h=t.getLineMaxColumn(r),c=_C(this._autoIndent,t,new Ms(r,h,r,h),this._languageConfigurationService);return this.parseEnterResult(t,i,e,s,c)}trimStart(t){return t.replace(/^\s+/,"")}shouldAutoIndent(t,i){if(this._autoIndent<4)return!1;if(!t.tokenization.isCheapToTokenize(i.startLineNumber))return!1;const e=t.getLanguageIdAtPosition(i.startLineNumber,1);return e===t.getLanguageIdAtPosition(i.endLineNumber,1)&&null!==this._languageConfigurationService.getLanguageConfiguration(e).indentRulesSupport}getIndentEditsOfMovingBlock(t,i,e,s,n,o){for(let r=e.startLineNumber;r<=e.endLineNumber;r++){const h=io(t.getLineContent(r)),c=c9(h9(h,s)+o,s,n);c!==h&&(i.addEditOperation(new Ms(r,1,r,h.length+1),c),r===e.endLineNumber&&e.endColumn<=h.length+1&&""===c&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(t,i){let e=i.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(e=e.setEndPosition(e.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&e.startLineNumber=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(3,Xd)],z9);class H9{static getCollator(){return H9._COLLATOR||(H9._COLLATOR=new Intl.Collator),H9._COLLATOR}constructor(t,i){this.selection=t,this.descending=i,this.selectionId=null}getEditOperations(t,i){const e=function(t,i,e){const s=V9(t,i,e);return s?pO.replace(new Ms(s.startLineNumber,1,s.endLineNumber,t.getLineMaxColumn(s.endLineNumber)),s.after.join("\n")):null}(t,this.selection,this.descending);e&&i.addEditOperation(e.range,e.text),this.selectionId=i.trackSelection(this.selection)}computeCursorState(t,i){return i.getTrackedSelection(this.selectionId)}static canRun(t,i,e){if(null===t)return!1;const s=V9(t,i,e);if(!s)return!1;for(let t=0,i=s.before.length;t=n)return null;const o=[];for(let i=s;i<=n;i++)o.push(t.getLineContent(i));let r=o.slice(0);return r.sort(H9.getCollator().compare),!0===e&&(r=r.reverse()),{startLineNumber:s,endLineNumber:n,before:o,after:r}}H9._COLLATOR=null;class U9 extends su{constructor(t,i){super(i),this.down=t}run(t,i){if(!i.hasModel())return;const e=i.getSelections().map(((t,i)=>({selection:t,index:i,ignore:!1})));e.sort(((t,i)=>Ms.compareRangesUsingStarts(t.selection,i.selection)));let s=e[0];for(let t=1;tnew As(t.positionLineNumber,t.positionColumn))));const n=i.getSelection();if(null===n)return;const o=new W9(n,s);i.pushUndoStop(),i.executeCommands(this.id,[o]),i.pushUndoStop()}}G9.ID="editor.action.trimTrailingWhitespace";class Z9 extends su{run(t,i){if(!i.hasModel())return;const e=i.getSelection(),s=this._getRangesToDelete(i),n=[];for(let t=0,i=s.length-1;tpO.replace(t,"")));i.pushUndoStop(),i.executeEdits(this.id,r,o),i.pushUndoStop()}}class Q9 extends su{run(t,i){const e=i.getSelections();if(null===e)return;const s=i.getModel();if(null===s)return;const n=i.getOption(129),o=[];for(const t of e)if(t.isEmpty()){const e=t.getStartPosition(),r=i.getConfiguredWordAtPosition(e);if(!r)continue;const h=new Ms(e.lineNumber,r.startColumn,e.lineNumber,r.endColumn),c=s.getValueInRange(h);o.push(pO.replace(h,this._modifyText(c,n)))}else{const i=s.getValueInRange(t);o.push(pO.replace(t,this._modifyText(i,n)))}i.pushUndoStop(),i.executeEdits(this.id,o),i.pushUndoStop()}}class J9{constructor(t,i){this._pattern=t,this._flags=i,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch(t){}}return this._actual}isSupported(){return null!==this.get()}}class Y9 extends Q9{constructor(){super({id:"editor.action.transformToTitlecase",label:ot(0,"Transform to Title Case"),alias:"Transform to Title Case",precondition:YC.writable})}_modifyText(t,i){const e=Y9.titleBoundary.get();return e?t.toLocaleLowerCase().replace(e,(t=>t.toLocaleUpperCase())):t}}Y9.titleBoundary=new J9("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu");class X9 extends Q9{constructor(){super({id:"editor.action.transformToSnakecase",label:ot(0,"Transform to Snake Case"),alias:"Transform to Snake Case",precondition:YC.writable})}_modifyText(t,i){const e=X9.caseBoundary.get(),s=X9.singleLetters.get();return e&&s?t.replace(e,"$1_$2").replace(s,"$1_$2$3").toLocaleLowerCase():t}}X9.caseBoundary=new J9("(\\p{Ll})(\\p{Lu})","gmu"),X9.singleLetters=new J9("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu");class t7 extends Q9{constructor(){super({id:"editor.action.transformToCamelcase",label:ot(0,"Transform to Camel Case"),alias:"Transform to Camel Case",precondition:YC.writable})}_modifyText(t,i){const e=t7.wordBoundary.get();if(!e)return t;const s=t.split(e);return s.shift()+s.map((t=>t.substring(0,1).toLocaleUpperCase()+t.substring(1))).join("")}}t7.wordBoundary=new J9("[_\\s-]","gm");class i7 extends Q9{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every((t=>t.isSupported()))}constructor(){super({id:"editor.action.transformToKebabcase",label:ot(0,"Transform to Kebab Case"),alias:"Transform to Kebab Case",precondition:YC.writable})}_modifyText(t,i){const e=i7.caseBoundary.get(),s=i7.singleLetters.get(),n=i7.underscoreBoundary.get();return e&&s&&n?t.replace(n,"$1-$3").replace(e,"$1-$2").replace(s,"$1-$2").toLocaleLowerCase():t}}i7.caseBoundary=new J9("(\\p{Ll})(\\p{Lu})","gmu"),i7.singleLetters=new J9("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu"),i7.underscoreBoundary=new J9("(\\S)(_)(\\S)","gm"),cu(class extends U9{constructor(){super(!1,{id:"editor.action.copyLinesUpAction",label:ot(0,"Copy Line Up"),alias:"Copy Line Up",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"2_line",title:ot(0,"&&Copy Line Up"),order:1}})}}),cu(class extends U9{constructor(){super(!0,{id:"editor.action.copyLinesDownAction",label:ot(0,"Copy Line Down"),alias:"Copy Line Down",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"2_line",title:ot(0,"Co&&py Line Down"),order:2}})}}),cu(class extends su{constructor(){super({id:"editor.action.duplicateSelection",label:ot(0,"Duplicate Selection"),alias:"Duplicate Selection",precondition:YC.writable,menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"2_line",title:ot(0,"&&Duplicate Selection"),order:5}})}run(t,i,e){if(!i.hasModel())return;const s=[],n=i.getSelections(),o=i.getModel();for(const t of n)if(t.isEmpty())s.push(new j9(t,!0));else{const i=new Ls(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn);s.push(new CC(i,o.getValueInRange(t)))}i.pushUndoStop(),i.executeCommands(this.id,s),i.pushUndoStop()}}),cu(class extends q9{constructor(){super(!1,{id:"editor.action.moveLinesUpAction",label:ot(0,"Move Line Up"),alias:"Move Line Up",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"2_line",title:ot(0,"Mo&&ve Line Up"),order:3}})}}),cu(class extends q9{constructor(){super(!0,{id:"editor.action.moveLinesDownAction",label:ot(0,"Move Line Down"),alias:"Move Line Down",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"2_line",title:ot(0,"Move &&Line Down"),order:4}})}}),cu(class extends K9{constructor(){super(!1,{id:"editor.action.sortLinesAscending",label:ot(0,"Sort Lines Ascending"),alias:"Sort Lines Ascending",precondition:YC.writable})}}),cu(class extends K9{constructor(){super(!0,{id:"editor.action.sortLinesDescending",label:ot(0,"Sort Lines Descending"),alias:"Sort Lines Descending",precondition:YC.writable})}}),cu(class extends su{constructor(){super({id:"editor.action.removeDuplicateLines",label:ot(0,"Delete Duplicate Lines"),alias:"Delete Duplicate Lines",precondition:YC.writable})}run(t,i){if(!i.hasModel())return;const e=i.getModel();if(1===e.getLineCount()&&1===e.getLineMaxColumn(1))return;const s=[],n=[];let o=0;for(const t of i.getSelections()){const i=new Set,r=[];for(let s=t.startLineNumber;s<=t.endLineNumber;s++){const t=e.getLineContent(s);i.has(t)||(r.push(t),i.add(t))}const h=new Ls(t.startLineNumber,1,t.endLineNumber,e.getLineMaxColumn(t.endLineNumber)),c=t.startLineNumber-o,a=new Ls(c,1,c+r.length-1,r[r.length-1].length);s.push(pO.replace(h,r.join("\n"))),n.push(a),o+=t.endLineNumber-t.startLineNumber+1-r.length}i.pushUndoStop(),i.executeEdits(this.id,s,n),i.pushUndoStop()}}),cu(G9),cu(class extends su{constructor(){super({id:"editor.action.deleteLines",label:ot(0,"Delete Line"),alias:"Delete Line",precondition:YC.writable,kbOpts:{kbExpr:YC.textInputFocus,primary:3113,weight:100}})}run(t,i){if(!i.hasModel())return;const e=this._getLinesToRemove(i),s=i.getModel();if(1===s.getLineCount()&&1===s.getLineMaxColumn(1))return;let n=0;const o=[],r=[];for(let t=0,i=e.length;t1&&(h-=1,a=s.getLineMaxColumn(h)),o.push(pO.replace(new Ls(h,a,c,l),"")),r.push(new Ls(h-n,i.positionColumn,h-n,i.positionColumn)),n+=i.endLineNumber-i.startLineNumber+1}i.pushUndoStop(),i.executeEdits(this.id,o,r),i.pushUndoStop()}_getLinesToRemove(t){const i=t.getSelections().map((t=>{let i=t.endLineNumber;return t.startLineNumbert.startLineNumber===i.startLineNumber?t.endLineNumber-i.endLineNumber:t.startLineNumber-i.startLineNumber));const e=[];let s=i[0];for(let t=1;t=i[t].startLineNumber?s.endLineNumber=i[t].endLineNumber:(e.push(s),s=i[t]);return e.push(s),e}}),cu(class extends su{constructor(){super({id:"editor.action.indentLines",label:ot(0,"Indent Line"),alias:"Indent Line",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:2142,weight:100}})}run(t,i){const e=i._getViewModel();e&&(i.pushUndoStop(),i.executeCommands(this.id,UC.indent(e.cursorConfig,i.getModel(),i.getSelections())),i.pushUndoStop())}}),cu(class extends su{constructor(){super({id:"editor.action.outdentLines",label:ot(0,"Outdent Line"),alias:"Outdent Line",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:2140,weight:100}})}run(t,i){hS.Outdent.runEditorCommand(t,i,null)}}),cu(class extends su{constructor(){super({id:"editor.action.insertLineBefore",label:ot(0,"Insert Line Above"),alias:"Insert Line Above",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:3075,weight:100}})}run(t,i){const e=i._getViewModel();e&&(i.pushUndoStop(),i.executeCommands(this.id,UC.lineInsertBefore(e.cursorConfig,i.getModel(),i.getSelections())))}}),cu(class extends su{constructor(){super({id:"editor.action.insertLineAfter",label:ot(0,"Insert Line Below"),alias:"Insert Line Below",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:2051,weight:100}})}run(t,i){const e=i._getViewModel();e&&(i.pushUndoStop(),i.executeCommands(this.id,UC.lineInsertAfter(e.cursorConfig,i.getModel(),i.getSelections())))}}),cu(class extends Z9{constructor(){super({id:"deleteAllLeft",label:ot(0,"Delete All Left"),alias:"Delete All Left",precondition:YC.writable,kbOpts:{kbExpr:YC.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}_getEndCursorState(t,i){let e=null;const s=[];let n=0;return i.forEach((i=>{let o;if(1===i.endColumn&&n>0){const t=i.startLineNumber-n;o=new Ls(t,i.startColumn,t,i.startColumn)}else o=new Ls(i.startLineNumber,i.startColumn,i.startLineNumber,i.startColumn);n+=i.endLineNumber-i.startLineNumber,i.intersectRanges(t)?e=o:s.push(o)})),e&&s.unshift(e),s}_getRangesToDelete(t){const i=t.getSelections();if(null===i)return[];let e=i;const s=t.getModel();return null===s?[]:(e.sort(Ms.compareRangesUsingStarts),e=e.map((t=>{if(t.isEmpty()){if(1===t.startColumn){const i=Math.max(1,t.startLineNumber-1),e=1===t.startLineNumber?1:s.getLineLength(i)+1;return new Ms(i,e,t.startLineNumber,1)}return new Ms(t.startLineNumber,1,t.startLineNumber,t.startColumn)}return new Ms(t.startLineNumber,1,t.endLineNumber,t.endColumn)})),e)}}),cu(class extends Z9{constructor(){super({id:"deleteAllRight",label:ot(0,"Delete All Right"),alias:"Delete All Right",precondition:YC.writable,kbOpts:{kbExpr:YC.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}_getEndCursorState(t,i){let e=null;const s=[];for(let n=0,o=i.length,r=0;n{if(t.isEmpty()){const e=i.getLineMaxColumn(t.startLineNumber);return t.startColumn===e?new Ms(t.startLineNumber,t.startColumn,t.startLineNumber+1,1):new Ms(t.startLineNumber,t.startColumn,t.startLineNumber,e)}return t}));return s.sort(Ms.compareRangesUsingStarts),s}}),cu(class extends su{constructor(){super({id:"editor.action.joinLines",label:ot(0,"Join Lines"),alias:"Join Lines",precondition:YC.writable,kbOpts:{kbExpr:YC.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}run(t,i){const e=i.getSelections();if(null===e)return;let s=i.getSelection();if(null===s)return;e.sort(Ms.compareRangesUsingStarts);const n=[],o=e.reduce(((t,i)=>t.isEmpty()?t.endLineNumber===i.startLineNumber?(s.equalsSelection(t)&&(s=i),i):i.startLineNumber>t.endLineNumber+1?(n.push(t),i):new Ls(t.startLineNumber,t.startColumn,i.endLineNumber,i.endColumn):i.startLineNumber>t.endLineNumber?(n.push(t),i):new Ls(t.startLineNumber,t.startColumn,i.endLineNumber,i.endColumn)));n.push(o);const r=i.getModel();if(null===r)return;const h=[],c=[];let a=s,l=0;for(let t=0,i=n.length;t=1){let t=!0;""===g&&(t=!1),!t||" "!==g.charAt(g.length-1)&&"\t"!==g.charAt(g.length-1)||(t=!1,g=g.replace(/[\s\uFEFF\xA0]+$/g," "));const s=i.substr(e-1);g+=(t?" ":"")+s,f=t?s.length+1:s.length}else f=0}const m=new Ms(e,o,u,d);if(!m.isEmpty()){let t;i.isEmpty()?(h.push(pO.replace(m,g)),t=new Ls(m.startLineNumber-l,g.length-f+1,e-l,g.length-f+1)):i.startLineNumber===i.endLineNumber?(h.push(pO.replace(m,g)),t=new Ls(i.startLineNumber-l,i.startColumn,i.endLineNumber-l,i.endColumn)):(h.push(pO.replace(m,g)),t=new Ls(i.startLineNumber-l,i.startColumn,i.startLineNumber-l,g.length-p)),null!==Ms.intersectRanges(m,s)?a=t:c.push(t)}l+=m.endLineNumber-m.startLineNumber}c.unshift(a),i.pushUndoStop(),i.executeEdits(this.id,h,c),i.pushUndoStop()}}),cu(class extends su{constructor(){super({id:"editor.action.transpose",label:ot(0,"Transpose Characters around the Cursor"),alias:"Transpose Characters around the Cursor",precondition:YC.writable})}run(t,i){const e=i.getSelections();if(null===e)return;const s=i.getModel();if(null===s)return;const n=[];for(let t=0,i=e.length;t=r){if(o.lineNumber===s.getLineCount())continue;const t=new Ms(o.lineNumber,Math.max(1,o.column-1),o.lineNumber+1,1),i=s.getValueInRange(t).split("").reverse().join("");n.push(new xC(new Ls(o.lineNumber,Math.max(1,o.column-1),o.lineNumber+1,1),i))}else{const t=new Ms(o.lineNumber,Math.max(1,o.column-1),o.lineNumber,o.column+1),i=s.getValueInRange(t).split("").reverse().join("");n.push(new EC(t,i,new Ls(o.lineNumber,o.column+1,o.lineNumber,o.column+1)))}}i.pushUndoStop(),i.executeCommands(this.id,n),i.pushUndoStop()}}),cu(class extends Q9{constructor(){super({id:"editor.action.transformToUppercase",label:ot(0,"Transform to Uppercase"),alias:"Transform to Uppercase",precondition:YC.writable})}_modifyText(t,i){return t.toLocaleUpperCase()}}),cu(class extends Q9{constructor(){super({id:"editor.action.transformToLowercase",label:ot(0,"Transform to Lowercase"),alias:"Transform to Lowercase",precondition:YC.writable})}_modifyText(t,i){return t.toLocaleLowerCase()}}),X9.caseBoundary.isSupported()&&X9.singleLetters.isSupported()&&cu(X9),t7.wordBoundary.isSupported()&&cu(t7),Y9.titleBoundary.isSupported()&&cu(Y9),i7.isSupported()&&cu(i7);var e7,s7=function(t,i){return function(e,s){i(e,s,t)}};const n7=new ch("LinkedEditingInputVisible",!1);let o7=e7=class extends te{static get(t){return t.getContribution(e7.ID)}constructor(t,i,e,s,n){super(),this.languageConfigurationService=s,this._syncRangesToken=0,this._localToDispose=this._register(new Xi),this._editor=t,this._providers=e.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=n7.bindTo(i),this._debounceInformation=n.for(this._providers,"Linked Editing",{max:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new Xi),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequest=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel((()=>this.reinitialize(!0)))),this._register(this._editor.onDidChangeConfiguration((t=>{(t.hasChanged(69)||t.hasChanged(92))&&this.reinitialize(!1)}))),this._register(this._providers.onDidChange((()=>this.reinitialize(!1)))),this._register(this._editor.onDidChangeModelLanguage((()=>this.reinitialize(!0)))),this.reinitialize(!0)}reinitialize(t){const i=this._editor.getModel(),e=null!==i&&(this._editor.getOption(69)||this._editor.getOption(92))&&this._providers.has(i);if(e===this._enabled&&!t)return;if(this._enabled=e,this.clearRanges(),this._localToDispose.clear(),!e||null===i)return;this._localToDispose.add(he.runAndSubscribe(i.onDidChangeLanguageConfiguration,(()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(i.getLanguageId()).getWordDefinition()})));const s=new hc(this._debounceInformation.get(i)),n=()=>{var t;this._rangeUpdateTriggerPromise=s.trigger((()=>this.updateRanges()),null!==(t=this._debounceDuration)&&void 0!==t?t:this._debounceInformation.get(i))},o=new hc(0),r=t=>{this._rangeSyncTriggerPromise=o.trigger((()=>this._syncRanges(t)))};this._localToDispose.add(this._editor.onDidChangeCursorPosition((()=>{n()}))),this._localToDispose.add(this._editor.onDidChangeModelContent((t=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const i=this._currentDecorations.getRange(0);if(i&&t.changes.every((t=>i.intersectRanges(t.range))))return void r(this._syncRangesToken)}n()}))),this._localToDispose.add({dispose:()=>{s.dispose(),o.dispose()}}),this.updateRanges()}_syncRanges(t){if(!this._editor.hasModel()||t!==this._syncRangesToken||0===this._currentDecorations.length)return;const i=this._editor.getModel(),e=this._currentDecorations.getRange(0);if(!e||e.startLineNumber!==e.endLineNumber)return this.clearRanges();const s=i.getValueInRange(e);if(this._currentWordPattern){const t=s.match(this._currentWordPattern);if((t?t[0].length:0)!==s.length)return this.clearRanges()}const n=[];for(let t=1,e=this._currentDecorations.length;t1)return void this.clearRanges();const e=this._editor.getModel(),s=e.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===s){if(i.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const t=this._currentDecorations.getRange(0);if(t&&t.containsPosition(i))return}}this.clearRanges(),this._currentRequestPosition=i,this._currentRequestModelVersion=s;const n=nc((async t=>{try{const o=new re(!1),r=await r7(this._providers,e,i,t);if(this._debounceInformation.update(e,o.elapsed()),n!==this._currentRequest)return;if(this._currentRequest=null,s!==e.getVersionId())return;let h=[];(null==r?void 0:r.ranges)&&(h=r.ranges),this._currentWordPattern=(null==r?void 0:r.wordPattern)||this._languageWordPattern;let c=!1;for(let t=0,e=h.length;t({range:t,options:e7.DECORATION})));this._visibleContextKey.set(!0),this._currentDecorations.set(a),this._syncRangesToken++}catch(t){ji(t)||Bi(t),this._currentRequest!==n&&this._currentRequest||this.clearRanges()}}));return this._currentRequest=n,n}};function r7(t,i,e,s){return uc(t.ordered(i).map((t=>async()=>{try{return await t.provideLinkedEditingRanges(i,e,s)}catch(t){return void Pi(t)}})),(t=>!!t&&b(null==t?void 0:t.ranges)))}o7.ID="editor.contrib.linkedEditing",o7.DECORATION=AL.register({description:"linked-editing",stickiness:0,className:"linked-editing-decoration"}),o7=e7=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([s7(1,ah),s7(2,xg),s7(3,Xd),s7(4,gR)],o7),hu(new(eu.bindToContribution(o7.get))({id:"cancelLinkedEditingInput",precondition:n7,handler:t=>t.clearRanges(),kbOpts:{kbExpr:YC.editorTextFocus,weight:199,primary:9,secondary:[1033]}})),dw("editor.linkedEditingBackground",{dark:lg.fromHex("#f00").transparent(.3),light:lg.fromHex("#f00").transparent(.3),hcDark:lg.fromHex("#f00").transparent(.3),hcLight:lg.white},ot(0,"Background color when the editor auto renames on type.")),ru("_executeLinkedEditingProvider",((t,i,e)=>{const{linkedEditingRangeProvider:s}=t.get(xg);return r7(s,i,e,ke.None)})),lu(o7.ID,o7,1),cu(class extends su{constructor(){super({id:"editor.action.linkedEditing",label:ot(0,"Start Linked Editing"),alias:"Start Linked Editing",precondition:zr.and(YC.writable,YC.hasRenameProvider),kbOpts:{kbExpr:YC.editorTextFocus,primary:3132,weight:100}})}runCommand(t,i){const e=t.get(fr),[s,n]=Array.isArray(i)&&i||[void 0,void 0];return ms.isUri(s)&&As.isIPosition(n)?e.openCodeEditor({resource:s},e.getActiveCodeEditor()).then((t=>{t&&(t.setPosition(n),t.invokeWithinContext((i=>(this.reportTelemetry(i,t),this.run(i,t)))))}),Bi):super.runCommand(t,i)}run(t,i){const e=o7.get(i);return e?Promise.resolve(e.updateRanges(!0)):Promise.resolve()}});class h7{constructor(t,i){this._link=t,this._provider=i}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}async resolve(t){return this._link.url?this._link.url:"function"==typeof this._provider.resolveLink?Promise.resolve(this._provider.resolveLink(this._link,t)).then((i=>(this._link=i||this._link,this._link.url?this.resolve(t):Promise.reject(new Error("missing"))))):Promise.reject(new Error("missing"))}}class c7{constructor(t){this._disposables=new Xi;let i=[];for(const[e,s]of t){const t=e.links.map((t=>new h7(t,s)));i=c7._union(i,t),Zi(e)&&this._disposables.add(e)}this.links=i}dispose(){this._disposables.dispose(),this.links.length=0}static _union(t,i){const e=[];let s,n,o,r;for(s=0,o=0,n=t.length,r=i.length;sPromise.resolve(t.provideLinks(i,e)).then((i=>{i&&(s[n]=[i,t])}),Pi)));return Promise.all(n).then((()=>{const t=new c7(m(s));return e.isCancellationRequested?(t.dispose(),new c7([])):t}))}Dr.registerCommand("_executeLinkProvider",(async(t,...i)=>{let[e,s]=i;q(e instanceof ms),"number"!=typeof s&&(s=0);const{linkProvider:n}=t.get(xg),o=t.get(pr).getModel(e);if(!o)return[];const r=await a7(n,o,ke.None);if(!r)return[];for(let t=0;tthis.computeLinksNow()),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const o=this._register(new HJ(t));this._register(o.onMouseMoveOrRelevantKeyDown((([t,i])=>{this._onEditorMouseMove(t,i)}))),this._register(o.onExecute((t=>{this.onEditorMouseUp(t)}))),this._register(o.onCancel((()=>{this.cleanUpActiveLinkDecoration()}))),this._register(t.onDidChangeConfiguration((t=>{t.hasChanged(70)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))}))),this._register(t.onDidChangeModelContent((()=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))}))),this._register(t.onDidChangeModel((()=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)}))),this._register(t.onDidChangeModelLanguage((()=>{this.stop(),this.computeLinks.schedule(0)}))),this._register(this.providers.onDidChange((()=>{this.stop(),this.computeLinks.schedule(0)}))),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(70))return;const t=this.editor.getModel();if(!t.isTooLargeForSyncing()&&this.providers.has(t)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=nc((i=>a7(this.providers,t,i)));try{const i=new re(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(t,i.elapsed()),t.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(t){Bi(t)}finally{this.computePromise=null}}}updateDecorations(t){const i="altKey"===this.editor.getOption(77),e=[],s=Object.keys(this.currentOccurrences);for(const t of s)e.push(this.currentOccurrences[t].decorationId);const n=[];if(t)for(const e of t)n.push(g7.decoration(e,i));this.editor.changeDecorations((i=>{const s=i.deltaDecorations(e,n);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let i=0,e=s.length;i{i.activate(t,e),this.activeLinkDecorationId=i.decorationId}))}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const t="altKey"===this.editor.getOption(77);if(this.activeLinkDecorationId){const i=this.currentOccurrences[this.activeLinkDecorationId];i&&this.editor.changeDecorations((e=>{i.deactivate(e,t)})),this.activeLinkDecorationId=null}}onEditorMouseUp(t){if(!this.isEnabled(t))return;const i=this.getLinkOccurrence(t.target.position);i&&this.openLinkOccurrence(i,t.hasSideBySideModifier,!0)}openLinkOccurrence(t,i,e=!1){if(!this.openerService)return;const{link:s}=t;s.resolve(ke.None).then((t=>{if("string"==typeof t&&this.editor.hasModel()){const i=this.editor.getModel().uri;if(i.scheme===ka.file&&t.startsWith(`${ka.file}:`)){const e=ms.parse(t);if(e.scheme===ka.file){const s=pA(e);let n=null;s.startsWith("/./")?n=`.${s.substr(1)}`:s.startsWith("//./")&&(n=`.${s.substr(2)}`),n&&(t=xA(i,n))}}}return this.openerService.open(t,{openToSide:i,fromUserGesture:e,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})}),(t=>{const i=t instanceof Error?t.message:t;"invalid"===i?this.notificationService.warn(ot(0,"Failed to open this link because it is not well-formed: {0}",s.url.toString())):"missing"===i?this.notificationService.warn(ot(0,"Failed to open this link because its target is missing.")):Bi(t)}))}getLinkOccurrence(t){if(!this.editor.hasModel()||!t)return null;const i=this.editor.getModel().getDecorationsInRange({startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:t.lineNumber,endColumn:t.column},0,!0);for(const t of i){const i=this.currentOccurrences[t.id];if(i)return i}return null}isEnabled(t,i){return Boolean(6===t.target.type&&(t.hasTriggerModifier||i&&i.keyCodeIsTriggerKey))}stop(){var t;this.computeLinks.cancel(),this.activeLinksList&&(null===(t=this.activeLinksList)||void 0===t||t.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}};d7.ID="editor.linkDetector",d7=l7=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([u7(1,dP),u7(2,oT),u7(3,xg),u7(4,gR)],d7);const f7=AL.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),p7=AL.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"});class g7{static decoration(t,i){return{range:t.range,options:g7._getOptions(t,i,!1)}}static _getOptions(t,i,e){const s={...e?p7:f7};return s.hoverMessage=function(t,i){const e=t.url&&/^command:/i.test(t.url.toString()),s=t.tooltip?t.tooltip:ot(0,e?"Execute command":"Follow link"),n=ot(0,i?Ct?"cmd + click":"ctrl + click":Ct?"option + click":"alt + click");if(t.url){let i="";if(/^command:/i.test(t.url.toString())){const e=t.url.toString().match(/^command:([^?#]+)/);e&&(i=ot(0,"Execute command {0}",e[1]))}return new N_("",!0).appendLink(t.url.toString(!0).replace(/ /g,"%20"),s,i).appendMarkdown(` (${n})`)}return(new N_).appendText(`${s} (${n})`)}(t,i),s}constructor(t,i){this.link=t,this.decorationId=i}activate(t,i){t.changeDecorationOptions(this.decorationId,g7._getOptions(this.link,i,!0))}deactivate(t,i){t.changeDecorationOptions(this.decorationId,g7._getOptions(this.link,i,!1))}}lu(d7.ID,d7,1),cu(class extends su{constructor(){super({id:"editor.action.openLink",label:ot(0,"Open Link"),alias:"Open Link",precondition:void 0})}run(t,i){const e=d7.get(i);if(!e)return;if(!i.hasModel())return;const s=i.getSelections();for(const t of s){const i=e.getLinkOccurrence(t.getEndPosition());i&&e.openLinkOccurrence(i,!1)}}});class m7 extends te{constructor(t){super(),this._editor=t,this._register(this._editor.onMouseDown((t=>{const i=this._editor.getOption(116);i>=0&&6===t.target.type&&t.target.position.column>=i&&this._editor.updateOptions({stopRenderingLineAfter:-1})})))}}m7.ID="editor.contrib.longLinesHelper",lu(m7.ID,m7,2);const w7=dw("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},ot(0,"Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0);dw("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},ot(0,"Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0),dw("editor.wordHighlightTextBackground",{light:w7,dark:w7,hcDark:w7,hcLight:w7},ot(0,"Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0);const v7=dw("editor.wordHighlightBorder",{light:null,dark:null,hcDark:vw,hcLight:vw},ot(0,"Border color of a symbol during read-access, like reading a variable."));dw("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:vw,hcLight:vw},ot(0,"Border color of a symbol during write-access, like writing to a variable.")),dw("editor.wordHighlightTextBorder",{light:v7,dark:v7,hcDark:v7,hcLight:v7},ot(0,"Border color of a textual occurrence for a symbol."));const b7=dw("editorOverviewRuler.wordHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},ot(0,"Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),y7=dw("editorOverviewRuler.wordHighlightStrongForeground",{dark:"#C0A0C0CC",light:"#C0A0C0CC",hcDark:"#C0A0C0CC",hcLight:"#C0A0C0CC"},ot(0,"Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),k7=dw("editorOverviewRuler.wordHighlightTextForeground",{dark:Qb,light:Qb,hcDark:Qb,hcLight:Qb},ot(0,"Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0),x7=AL.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:tx(y7),position:_f.Center},minimap:{color:tx(Yb),position:Bf.Inline}}),C7=AL.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:tx(k7),position:_f.Center},minimap:{color:tx(Yb),position:Bf.Inline}}),S7=AL.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:tx(Qb),position:_f.Center},minimap:{color:tx(Yb),position:Bf.Inline}}),D7=AL.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),E7=AL.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:tx(b7),position:_f.Center},minimap:{color:tx(Yb),position:Bf.Inline}});function A7(t){return t?D7:S7}nx(((t,i)=>{const e=t.getColor(Av);e&&i.addRule(`.monaco-editor .selectionHighlight { background-color: ${e.transparent(.5)}; }`)}));var M7;function L7(t,i){const e=i.filter((i=>!t.find((t=>t.equals(i)))));if(e.length>=1){const t=e.map((t=>`line ${t.viewState.position.lineNumber} column ${t.viewState.position.column}`)).join(", ");$m(ot(0,1===e.length?"Cursor added: {0}":"Cursors added: {0}",t))}}class F7{constructor(t,i,e){this.selections=t,this.revealRange=i,this.revealScrollType=e}}class T7{static create(t,i){if(!t.hasModel())return null;const e=i.getState();if(!t.hasTextFocus()&&e.isRevealed&&e.searchString.length>0)return new T7(t,i,!1,e.searchString,e.wholeWord,e.matchCase,null);let s,n,o=!1;const r=t.getSelections();1===r.length&&r[0].isEmpty()?(o=!0,s=!0,n=!0):(s=e.wholeWord,n=e.matchCase);const h=t.getSelection();let c,a=null;if(h.isEmpty()){const i=t.getConfiguredWordAtPosition(h.getStartPosition());if(!i)return null;c=i.word,a=new Ls(h.startLineNumber,i.startColumn,h.startLineNumber,i.endColumn)}else c=t.getModel().getValueInRange(h).replace(/\r\n/g,"\n");return new T7(t,i,o,c,s,n,a)}constructor(t,i,e,s,n,o,r){this._editor=t,this.findController=i,this.isDisconnectedFromFindController=e,this.searchText=s,this.wholeWord=n,this.matchCase=o,this.currentMatch=r}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const t=this._getNextMatch();if(!t)return null;const i=this._editor.getSelections();return new F7(i.concat(t),t,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const t=this._getNextMatch();if(!t)return null;const i=this._editor.getSelections();return new F7(i.slice(0,i.length-1).concat(t),t,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const t=this.currentMatch;return this.currentMatch=null,t}this.findController.highlightFindOptions();const t=this._editor.getSelections(),i=t[t.length-1],e=this._editor.getModel().findNextMatch(this.searchText,i.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(129):null,!1);return e?new Ls(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const t=this._getPreviousMatch();if(!t)return null;const i=this._editor.getSelections();return new F7(i.concat(t),t,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const t=this._getPreviousMatch();if(!t)return null;const i=this._editor.getSelections();return new F7(i.slice(0,i.length-1).concat(t),t,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const t=this.currentMatch;return this.currentMatch=null,t}this.findController.highlightFindOptions();const t=this._editor.getSelections(),i=t[t.length-1],e=this._editor.getModel().findPreviousMatch(this.searchText,i.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(129):null,!1);return e?new Ls(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn):null}selectAll(t){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();return this._editor.getModel().findMatches(this.searchText,t||!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(129):null,!1,1073741824)}}class R7 extends te{static get(t){return t.getContribution(R7.ID)}constructor(t){super(),this._sessionDispose=this._register(new Xi),this._editor=t,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(t){if(!this._session){const i=T7.create(this._editor,t);if(!i)return;this._session=i;const e={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(e.wholeWordOverride=1,e.matchCaseOverride=1,e.isRegexOverride=2),t.getState().change(e,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection((()=>{this._ignoreSelectionChange||this._endSession()}))),this._sessionDispose.add(this._editor.onDidBlurEditorText((()=>{this._endSession()}))),this._sessionDispose.add(t.getState().onFindReplaceStateChange((t=>{(t.matchCase||t.wholeWord)&&this._endSession()})))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){const t={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(t,!1)}this._session=null}_setSelections(t){this._ignoreSelectionChange=!0,this._editor.setSelections(t),this._ignoreSelectionChange=!1}_expandEmptyToWord(t,i){if(!i.isEmpty())return i;const e=this._editor.getConfiguredWordAtPosition(i.getStartPosition());return e?new Ls(i.startLineNumber,e.startColumn,i.startLineNumber,e.endColumn):i}_applySessionResult(t){t&&(this._setSelections(t.selections),t.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(t.revealRange,t.revealScrollType))}getSession(t){return this._session}addSelectionToNextFindMatch(t){if(this._editor.hasModel()){if(!this._session){const i=this._editor.getSelections();if(i.length>1){const e=t.getState().matchCase;if(!N7(this._editor.getModel(),i,e)){const t=this._editor.getModel(),e=[];for(let s=0,n=i.length;s0&&e.isRegex){i=this._editor.getModel().findMatches(e.searchString,!e.searchScope||e.searchScope,e.isRegex,e.matchCase,e.wholeWord?this._editor.getOption(129):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(t),!this._session)return;i=this._session.selectAll(e.searchScope)}if(i.length>0){const t=this._editor.getSelection();for(let e=0,s=i.length;enew Ls(t.range.startLineNumber,t.range.startColumn,t.range.endLineNumber,t.range.endColumn))))}}}R7.ID="editor.contrib.multiCursorController";class O7 extends su{run(t,i){const e=R7.get(i);if(!e)return;const s=i._getViewModel();if(s){const n=s.getCursorStates(),o=R4.get(i);if(o)this._run(e,o);else{const s=t.get(ur).createInstance(R4,i);this._run(e,s),s.dispose()}L7(n,s.getCursorStates())}}}class I7{constructor(t,i,e,s,n){this._model=t,this._searchText=i,this._matchCase=e,this._wordSeparators=s,this._modelVersionId=this._model.getVersionId(),this._cachedFindMatches=null,n&&this._model===n._model&&this._searchText===n._searchText&&this._matchCase===n._matchCase&&this._wordSeparators===n._wordSeparators&&this._modelVersionId===n._modelVersionId&&(this._cachedFindMatches=n._cachedFindMatches)}findMatches(){return null===this._cachedFindMatches&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map((t=>t.range)),this._cachedFindMatches.sort(Ms.compareRangesUsingStarts)),this._cachedFindMatches}}let _7=M7=class extends te{constructor(t,i){super(),this._languageFeaturesService=i,this.editor=t,this._isEnabled=t.getOption(107),this._decorations=t.createDecorationsCollection(),this.updateSoon=this._register(new pc((()=>this._update()),300)),this.state=null,this._register(t.onDidChangeConfiguration((()=>{this._isEnabled=t.getOption(107)}))),this._register(t.onDidChangeCursorSelection((t=>{this._isEnabled&&(t.selection.isEmpty()?3===t.reason?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())}))),this._register(t.onDidChangeModel((()=>{this._setState(null)}))),this._register(t.onDidChangeModelContent((()=>{this._isEnabled&&this.updateSoon.schedule()})));const e=R4.get(t);e&&this._register(e.getState().onFindReplaceStateChange((()=>{this._update()}))),this.updateSoon.schedule()}_update(){this._setState(M7._createState(this.state,this._isEnabled,this.editor))}static _createState(t,i,e){if(!i)return null;if(!e.hasModel())return null;const s=e.getSelection();if(s.startLineNumber!==s.endLineNumber)return null;const n=R7.get(e);if(!n)return null;const o=R4.get(e);if(!o)return null;let r=n.getSession(o);if(!r){const t=e.getSelections();if(t.length>1){const i=o.getState().matchCase;if(!N7(e.getModel(),t,i))return null}r=T7.create(e,o)}if(!r)return null;if(r.currentMatch)return null;if(/^[ \t]+$/.test(r.searchText))return null;if(r.searchText.length>200)return null;const h=o.getState(),c=h.matchCase;if(h.isRevealed){let t=h.searchString;c||(t=t.toLowerCase());let i=r.searchText;if(c||(i=i.toLowerCase()),t===i&&r.matchCase===h.matchCase&&r.wholeWord===h.wholeWord&&!h.isRegex)return null}return new I7(e.getModel(),r.searchText,r.matchCase,r.wholeWord?e.getOption(129):null,t)}_setState(t){if(this.state=t,!this.state)return void this._decorations.clear();if(!this.editor.hasModel())return;const i=this.editor.getModel();if(i.isTooLargeForTokenization())return;const e=this.state.findMatches(),s=this.editor.getSelections();s.sort(Ms.compareRangesUsingStarts);const n=[];for(let t=0,i=0,o=e.length,r=s.length;t=r)n.push(o),t++;else{const e=Ms.compareRangesUsingStarts(o,s[i]);e<0?(!s[i].isEmpty()&&Ms.areIntersecting(o,s[i])||n.push(o),t++):(e>0||t++,i++)}}const o="off"!==this.editor.getOption(80),r=this._languageFeaturesService.documentHighlightProvider.has(i)&&o,h=n.map((t=>({range:t,options:A7(r)})));this._decorations.set(h)}dispose(){this._setState(null),super.dispose()}};function N7(t,i,e){const s=B7(t,i[0],!e);for(let n=1,o=i.length;n=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,xg)],_7),lu(R7.ID,R7,4),lu(_7.ID,_7,1),cu(class extends su{constructor(){super({id:"editor.action.insertCursorAbove",label:ot(0,"Add Cursor Above"),alias:"Add Cursor Above",precondition:void 0,kbOpts:{kbExpr:YC.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"3_multi",title:ot(0,"&&Add Cursor Above"),order:2}})}run(t,i,e){if(!i.hasModel())return;let s=!0;e&&!1===e.logicalLine&&(s=!1);const n=i._getViewModel();if(n.cursorConfig.readOnly)return;n.model.pushStackElement();const o=n.getCursorStates();n.setCursorStates(e.source,3,OC.addCursorUp(n,o,s)),n.revealTopMostCursor(e.source),L7(o,n.getCursorStates())}}),cu(class extends su{constructor(){super({id:"editor.action.insertCursorBelow",label:ot(0,"Add Cursor Below"),alias:"Add Cursor Below",precondition:void 0,kbOpts:{kbExpr:YC.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"3_multi",title:ot(0,"A&&dd Cursor Below"),order:3}})}run(t,i,e){if(!i.hasModel())return;let s=!0;e&&!1===e.logicalLine&&(s=!1);const n=i._getViewModel();if(n.cursorConfig.readOnly)return;n.model.pushStackElement();const o=n.getCursorStates();n.setCursorStates(e.source,3,OC.addCursorDown(n,o,s)),n.revealBottomMostCursor(e.source),L7(o,n.getCursorStates())}}),cu(class extends su{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:ot(0,"Add Cursors to Line Ends"),alias:"Add Cursors to Line Ends",precondition:void 0,kbOpts:{kbExpr:YC.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"3_multi",title:ot(0,"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(t,i,e){if(!t.isEmpty()){for(let s=t.startLineNumber;s1&&e.push(new Ls(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn))}}run(t,i){if(!i.hasModel())return;const e=i.getModel(),s=i.getSelections(),n=i._getViewModel(),o=n.getCursorStates(),r=[];s.forEach((t=>this.getCursorsForSelection(t,e,r))),r.length>0&&i.setSelections(r),L7(o,n.getCursorStates())}}),cu(class extends O7{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:ot(0,"Add Selection To Next Find Match"),alias:"Add Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:2082,weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"3_multi",title:ot(0,"Add &&Next Occurrence"),order:5}})}_run(t,i){t.addSelectionToNextFindMatch(i)}}),cu(class extends O7{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:ot(0,"Add Selection To Previous Find Match"),alias:"Add Selection To Previous Find Match",precondition:void 0,menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"3_multi",title:ot(0,"Add P&&revious Occurrence"),order:6}})}_run(t,i){t.addSelectionToPreviousFindMatch(i)}}),cu(class extends O7{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:ot(0,"Move Last Selection To Next Find Match"),alias:"Move Last Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:Ne(2089,2082),weight:100}})}_run(t,i){t.moveSelectionToNextFindMatch(i)}}),cu(class extends O7{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:ot(0,"Move Last Selection To Previous Find Match"),alias:"Move Last Selection To Previous Find Match",precondition:void 0})}_run(t,i){t.moveSelectionToPreviousFindMatch(i)}}),cu(class extends O7{constructor(){super({id:"editor.action.selectHighlights",label:ot(0,"Select All Occurrences of Find Match"),alias:"Select All Occurrences of Find Match",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:3114,weight:100},menuOpts:{menuId:Rh.MenubarSelectionMenu,group:"3_multi",title:ot(0,"Select All &&Occurrences"),order:7}})}_run(t,i){t.selectAll(i)}}),cu(class extends O7{constructor(){super({id:"editor.action.changeAll",label:ot(0,"Change All Occurrences"),alias:"Change All Occurrences",precondition:zr.and(YC.writable,YC.editorTextFocus),kbOpts:{kbExpr:YC.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(t,i){t.selectAll(i)}}),cu(class extends su{constructor(){super({id:"editor.action.addCursorsToBottom",label:ot(0,"Add Cursors To Bottom"),alias:"Add Cursors To Bottom",precondition:void 0})}run(t,i){if(!i.hasModel())return;const e=i.getSelections(),s=i.getModel().getLineCount(),n=[];for(let t=e[0].startLineNumber;t<=s;t++)n.push(new Ls(t,e[0].startColumn,t,e[0].endColumn));const o=i._getViewModel(),r=o.getCursorStates();n.length>0&&i.setSelections(n),L7(r,o.getCursorStates())}}),cu(class extends su{constructor(){super({id:"editor.action.addCursorsToTop",label:ot(0,"Add Cursors To Top"),alias:"Add Cursors To Top",precondition:void 0})}run(t,i){if(!i.hasModel())return;const e=i.getSelections(),s=[];for(let t=e[0].startLineNumber;t>=1;t--)s.push(new Ls(t,e[0].startColumn,t,e[0].endColumn));const n=i._getViewModel(),o=n.getCursorStates();s.length>0&&i.setSelections(s),L7(o,n.getCursorStates())}}),cu(class extends su{constructor(){super({id:"editor.action.focusNextCursor",label:ot(0,"Focus Next Cursor"),metadata:{description:ot(0,"Focuses the next cursor"),args:[]},alias:"Focus Next Cursor",precondition:void 0})}run(t,i,e){if(!i.hasModel())return;const s=i._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const n=Array.from(s.getCursorStates()),o=n.shift();o&&(n.push(o),s.setCursorStates(e.source,3,n),s.revealPrimaryCursor(e.source,!0),L7(n,s.getCursorStates()))}}),cu(class extends su{constructor(){super({id:"editor.action.focusPreviousCursor",label:ot(0,"Focus Previous Cursor"),metadata:{description:ot(0,"Focuses the previous cursor"),args:[]},alias:"Focus Previous Cursor",precondition:void 0})}run(t,i,e){if(!i.hasModel())return;const s=i._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const n=Array.from(s.getCursorStates()),o=n.pop();o&&(n.unshift(o),s.setCursorStates(e.source,3,n),s.revealPrimaryCursor(e.source,!0),L7(n,s.getCursorStates()))}});const P7={Visible:new ch("parameterHintsVisible",!1),MultipleSignatures:new ch("parameterHintsMultipleSignatures",!1)};async function $7(t,i,e,s,n){const o=t.ordered(i);for(const t of o)try{const o=await t.provideSignatureHelp(i,e,n,s);if(o)return o}catch(t){Pi(t)}}var W7;Dr.registerCommand("_executeSignatureHelpProvider",(async(t,...i)=>{const[e,s,n]=i;q(ms.isUri(e)),q(As.isIPosition(s)),q("string"==typeof n||!n);const o=t.get(xg),r=await t.get(gr).createModelReference(e);try{const t=await $7(o.signatureHelpProvider,r.object.textEditorModel,As.lift(s),{triggerKind:Ws.Invoke,isRetrigger:!1,triggerCharacter:n},ke.None);if(!t)return;return setTimeout((()=>t.dispose()),0),t.value}finally{r.dispose()}})),function(t){t.Default={type:0},t.Pending=class{constructor(t,i){this.request=t,this.previouslyActiveHints=i,this.type=2}},t.Active=class{constructor(t){this.hints=t,this.type=1}}}(W7||(W7={}));class j7 extends te{constructor(t,i,e=j7.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new de),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=W7.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new ie),this.triggerChars=new Ef,this.retriggerChars=new Ef,this.triggerId=0,this.editor=t,this.providers=i,this.throttledDelayer=new hc(e),this._register(this.editor.onDidBlurEditorWidget((()=>this.cancel()))),this._register(this.editor.onDidChangeConfiguration((()=>this.onEditorConfigurationChange()))),this._register(this.editor.onDidChangeModel((()=>this.onModelChanged()))),this._register(this.editor.onDidChangeModelLanguage((()=>this.onModelChanged()))),this._register(this.editor.onDidChangeCursorSelection((t=>this.onCursorChange(t)))),this._register(this.editor.onDidChangeModelContent((()=>this.onModelContentChange()))),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType((t=>this.onDidType(t)))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(t){2===this._state.type&&this._state.request.cancel(),this._state=t}cancel(t=!1){this.state=W7.Default,this.throttledDelayer.cancel(),t||this._onChangedHints.fire(void 0)}trigger(t,i){const e=this.editor.getModel();if(!e||!this.providers.has(e))return;const s=++this.triggerId;this._pendingTriggers.push(t),this.throttledDelayer.trigger((()=>this.doTrigger(s)),i).catch(Bi)}next(){if(1!==this.state.type)return;const t=this.state.hints.signatures.length,i=this.state.hints.activeSignature,e=i%t==t-1,s=this.editor.getOption(85).cycle;!(t<2||e)||s?this.updateActiveSignature(e&&s?0:i+1):this.cancel()}previous(){if(1!==this.state.type)return;const t=this.state.hints.signatures.length,i=this.state.hints.activeSignature,e=0===i,s=this.editor.getOption(85).cycle;!(t<2||e)||s?this.updateActiveSignature(e&&s?t-1:i-1):this.cancel()}updateActiveSignature(t){1===this.state.type&&(this.state=new W7.Active({...this.state.hints,activeSignature:t}),this._onChangedHints.fire(this.state.hints))}async doTrigger(t){const i=1===this.state.type||2===this.state.type,e=this.getLastActiveHints();if(this.cancel(!0),0===this._pendingTriggers.length)return!1;const s=this._pendingTriggers.reduce(z7);this._pendingTriggers=[];const n={triggerKind:s.triggerKind,triggerCharacter:s.triggerCharacter,isRetrigger:i,activeSignatureHelp:e};if(!this.editor.hasModel())return!1;const o=this.editor.getModel(),r=this.editor.getPosition();this.state=new W7.Pending(nc((t=>$7(this.providers,o,r,n,t))),e);try{const i=await this.state.request;return t!==this.triggerId?(null==i||i.dispose(),!1):i&&i.value.signatures&&0!==i.value.signatures.length?(this.state=new W7.Active(i.value),this._lastSignatureHelpResult.value=i,this._onChangedHints.fire(this.state.hints),!0):(null==i||i.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1)}catch(i){return t===this.triggerId&&(this.state=W7.Default),Bi(i),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return 1===this.state.type||2===this.state.type||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();const t=this.editor.getModel();if(t)for(const i of this.providers.ordered(t)){for(const t of i.signatureHelpTriggerCharacters||[])if(t.length){const i=t.charCodeAt(0);this.triggerChars.add(i),this.retriggerChars.add(i)}for(const t of i.signatureHelpRetriggerCharacters||[])t.length&&this.retriggerChars.add(t.charCodeAt(0))}}onDidType(t){if(!this.triggerOnType)return;const i=t.length-1,e=t.charCodeAt(i);(this.triggerChars.has(e)||this.isTriggered&&this.retriggerChars.has(e))&&this.trigger({triggerKind:Ws.TriggerCharacter,triggerCharacter:t.charAt(i)})}onCursorChange(t){"mouse"===t.source?this.cancel():this.isTriggered&&this.trigger({triggerKind:Ws.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:Ws.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(85).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}}function z7(t,i){switch(i.triggerKind){case Ws.Invoke:return i;case Ws.ContentChange:return t;default:return i}}j7.DEFAULT_DELAY=120;var H7,V7=function(t,i){return function(e,s){i(e,s,t)}};const U7=$l,q7=Hz("parameter-hints-next",Os.chevronDown,ot(0,"Icon for show next parameter hint.")),K7=Hz("parameter-hints-previous",Os.chevronUp,ot(0,"Icon for show previous parameter hint."));let G7=H7=class extends te{constructor(t,i,e,s,n){super(),this.editor=t,this.model=i,this.renderDisposeables=this._register(new Xi),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.markdownRenderer=this._register(new lQ({editor:t},n,s)),this.keyVisible=P7.Visible.bindTo(e),this.keyMultipleSignatures=P7.MultipleSignatures.bindTo(e)}createParameterHintDOMNodes(){const t=U7(".editor-widget.parameter-hints-widget"),i=Ol(t,U7(".phwrapper"));i.tabIndex=-1;const e=Ol(i,U7(".controls")),s=Ol(e,U7(".button"+Cr.asCSSSelector(K7))),n=Ol(e,U7(".overloads")),o=Ol(e,U7(".button"+Cr.asCSSSelector(q7)));this._register(Va(s,"click",(t=>{Fl(t),this.previous()}))),this._register(Va(o,"click",(t=>{Fl(t),this.next()})));const r=U7(".body"),h=new Tk(r,{alwaysConsumeMouseWheel:!0});this._register(h),i.appendChild(h.getDomNode());const c=Ol(r,U7(".signature")),a=Ol(r,U7(".docs"));t.style.userSelect="text",this.domNodes={element:t,signature:c,overloads:n,docs:a,scrollbar:h},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection((()=>{this.visible&&this.editor.layoutContentWidget(this)})));const l=()=>{if(!this.domNodes)return;const t=this.editor.getOption(50);this.domNodes.element.style.fontSize=`${t.fontSize}px`,this.domNodes.element.style.lineHeight=""+t.lineHeight/t.fontSize};l(),this._register(he.chain(this.editor.onDidChangeConfiguration.bind(this.editor),(t=>t.filter((t=>t.hasChanged(50)))))(l)),this._register(this.editor.onDidLayoutChange((()=>this.updateMaxHeight()))),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout((()=>{var t;null===(t=this.domNodes)||void 0===t||t.element.classList.add("visible")}),100),this.editor.layoutContentWidget(this))}hide(){var t;this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,null===(t=this.domNodes)||void 0===t||t.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(t){var i;if(this.renderDisposeables.clear(),!this.domNodes)return;const e=t.signatures.length>1;this.domNodes.element.classList.toggle("multiple",e),this.keyMultipleSignatures.set(e),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const s=t.signatures[t.activeSignature];if(!s)return;const n=Ol(this.domNodes.signature,U7(".code")),o=this.editor.getOption(50);n.style.fontSize=`${o.fontSize}px`,n.style.fontFamily=o.fontFamily;const r=null!==(i=s.activeParameter)&&void 0!==i?i:t.activeParameter;s.parameters.length>0?this.renderParameters(n,s,r):Ol(n,U7("span")).textContent=s.label;const h=s.parameters[r];if(null==h?void 0:h.documentation){const t=U7("span.documentation");if("string"==typeof h.documentation)t.textContent=h.documentation;else{const i=this.renderMarkdownDocs(h.documentation);t.appendChild(i.element)}Ol(this.domNodes.docs,U7("p",{},t))}if(void 0===s.documentation);else if("string"==typeof s.documentation)Ol(this.domNodes.docs,U7("p",{},s.documentation));else{const t=this.renderMarkdownDocs(s.documentation);Ol(this.domNodes.docs,t.element)}const c=this.hasDocs(s,h);if(this.domNodes.signature.classList.toggle("has-docs",c),this.domNodes.docs.classList.toggle("empty",!c),this.domNodes.overloads.textContent=String(t.activeSignature+1).padStart(t.signatures.length.toString().length,"0")+"/"+t.signatures.length,h){let t="";const i=s.parameters[r];t=Array.isArray(i.label)?s.label.substring(i.label[0],i.label[1]):i.label,i.documentation&&(t+="string"==typeof i.documentation?`, ${i.documentation}`:`, ${i.documentation.value}`),s.documentation&&(t+="string"==typeof s.documentation?`, ${s.documentation}`:`, ${s.documentation.value}`),this.announcedLabel!==t&&(Pm(ot(0,"{0}, hint",t)),this.announcedLabel=t)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(t){const i=this.renderDisposeables.add(this.markdownRenderer.render(t,{asyncRenderCallback:()=>{var t;null===(t=this.domNodes)||void 0===t||t.scrollbar.scanDomNode()}}));return i.element.classList.add("markdown-docs"),i}hasDocs(t,i){return!!(i&&"string"==typeof i.documentation&&K(i.documentation).length>0||i&&"object"==typeof i.documentation&&K(i.documentation).value.length>0||t.documentation&&"string"==typeof t.documentation&&K(t.documentation).length>0||t.documentation&&"object"==typeof t.documentation&&K(t.documentation.value).length>0)}renderParameters(t,i,e){const[s,n]=this.getParameterLabelOffsets(i,e),o=document.createElement("span");o.textContent=i.label.substring(0,s);const r=document.createElement("span");r.textContent=i.label.substring(s,n),r.className="parameter active";const h=document.createElement("span");h.textContent=i.label.substring(n),Ol(t,o,r,h)}getParameterLabelOffsets(t,i){const e=t.parameters[i];if(e){if(Array.isArray(e.label))return e.label;if(e.label.length){const i=new RegExp(`(\\W|^)${Gn(e.label)}(?=\\W|$)`,"g");i.test(t.label);const s=i.lastIndex-e.label.length;return s>=0?[s,i.lastIndex]:[0,0]}return[0,0]}return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return H7.ID}updateMaxHeight(){if(!this.domNodes)return;const t=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=t;const i=this.domNodes.element.getElementsByClassName("phwrapper");i.length&&(i[0].style.maxHeight=t)}};G7.ID="editor.widget.parameterHintsWidget",G7=H7=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([V7(2,ah),V7(3,dP),V7(4,yd)],G7),dw("editorHoverWidget.highlightForeground",{dark:lb,light:lb,hcDark:lb,hcLight:lb},ot(0,"Foreground color of the active item in the parameter hint."));var Z7,Q7=function(t,i){return function(e,s){i(e,s,t)}};let J7=Z7=class extends te{static get(t){return t.getContribution(Z7.ID)}constructor(t,i,e){super(),this.editor=t,this.model=this._register(new j7(t,e.signatureHelpProvider)),this._register(this.model.onChangedHints((t=>{var i;t?(this.widget.value.show(),this.widget.value.render(t)):null===(i=this.widget.rawValue)||void 0===i||i.hide()}))),this.widget=new zn((()=>this._register(i.createInstance(G7,this.editor,this.model))))}cancel(){this.model.cancel()}previous(){var t;null===(t=this.widget.rawValue)||void 0===t||t.previous()}next(){var t;null===(t=this.widget.rawValue)||void 0===t||t.next()}trigger(t){this.model.trigger(t,0)}};J7.ID="editor.controller.parameterHints",J7=Z7=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Q7(1,ur),Q7(2,xg)],J7),lu(J7.ID,J7,2),cu(class extends su{constructor(){super({id:"editor.action.triggerParameterHints",label:ot(0,"Trigger Parameter Hints"),alias:"Trigger Parameter Hints",precondition:YC.hasSignatureHelpProvider,kbOpts:{kbExpr:YC.editorTextFocus,primary:3082,weight:100}})}run(t,i){const e=J7.get(i);null==e||e.trigger({triggerKind:Ws.Invoke})}});const Y7=eu.bindToContribution(J7.get);hu(new Y7({id:"closeParameterHints",precondition:P7.Visible,handler:t=>t.cancel(),kbOpts:{weight:175,kbExpr:YC.focus,primary:9,secondary:[1033]}})),hu(new Y7({id:"showPrevParameterHint",precondition:zr.and(P7.Visible,P7.MultipleSignatures),handler:t=>t.previous(),kbOpts:{weight:175,kbExpr:YC.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),hu(new Y7({id:"showNextParameterHint",precondition:zr.and(P7.Visible,P7.MultipleSignatures),handler:t=>t.next(),kbOpts:{weight:175,kbExpr:YC.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var X7=function(t,i){return function(e,s){i(e,s,t)}};const t8=new ch("renameInputVisible",!1,ot(0,"Whether the rename input widget is visible"));let i8=class{constructor(t,i,e,s,n){this._editor=t,this._acceptKeybindings=i,this._themeService=e,this._keybindingService=s,this._disposables=new Xi,this.allowEditorOverflow=!0,this._visibleContextKey=t8.bindTo(n),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(50)&&this._updateFont()}))),this._disposables.add(e.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._input=document.createElement("input"),this._input.className="rename-input",this._input.type="text",this._input.setAttribute("aria-label",ot(0,"Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._input),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())),this._domNode}_updateStyles(t){var i,e,s,n;if(!this._input||!this._domNode)return;const o=t.getColor(yw),r=t.getColor(kw);this._domNode.style.backgroundColor=String(null!==(i=t.getColor(uv))&&void 0!==i?i:""),this._domNode.style.boxShadow=o?` 0 0 8px 2px ${o}`:"",this._domNode.style.border=r?`1px solid ${r}`:"",this._domNode.style.color=String(null!==(e=t.getColor(Cw))&&void 0!==e?e:""),this._input.style.backgroundColor=String(null!==(s=t.getColor(xw))&&void 0!==s?s:"");const h=t.getColor(Sw);this._input.style.borderWidth=h?"1px":"0px",this._input.style.borderStyle=h?"solid":"none",this._input.style.borderColor=null!==(n=null==h?void 0:h.toString())&&void 0!==n?n:"none"}_updateFont(){if(!this._input||!this._label)return;const t=this._editor.getOption(50);this._input.style.fontFamily=t.fontFamily,this._input.style.fontWeight=t.fontWeight,this._input.style.fontSize=`${t.fontSize}px`,this._label.style.fontSize=.8*t.fontSize+"px"}getPosition(){return this._visible?{position:this._position,preference:[2,1]}:null}beforeRender(){var t,i;const[e,s]=this._acceptKeybindings;return this._label.innerText=ot(0,"{0} to Rename, {1} to Preview",null===(t=this._keybindingService.lookupKeybinding(e))||void 0===t?void 0:t.getLabel(),null===(i=this._keybindingService.lookupKeybinding(s))||void 0===i?void 0:i.getLabel()),null}afterRender(t){t||this.cancelInput(!0)}acceptInput(t){var i;null===(i=this._currentAcceptInput)||void 0===i||i.call(this,t)}cancelInput(t){var i;null===(i=this._currentCancelInput)||void 0===i||i.call(this,t)}getInput(t,i,e,s,n,o){this._domNode.classList.toggle("preview",n),this._position=new As(t.startLineNumber,t.startColumn),this._input.value=i,this._input.setAttribute("selectionStart",e.toString()),this._input.setAttribute("selectionEnd",s.toString()),this._input.size=Math.max(1.1*(t.endColumn-t.startColumn),20);const r=new Xi;return new Promise((t=>{this._currentCancelInput=i=>(this._currentAcceptInput=void 0,this._currentCancelInput=void 0,t(i),!0),this._currentAcceptInput=e=>{0!==this._input.value.trim().length&&this._input.value!==i?(this._currentAcceptInput=void 0,this._currentCancelInput=void 0,t({newName:this._input.value,wantsPreview:n&&e})):this.cancelInput(!0)},r.add(o.onCancellationRequested((()=>this.cancelInput(!0)))),r.add(this._editor.onDidBlurEditorWidget((()=>{var t;return this.cancelInput(!(null===(t=this._domNode)||void 0===t?void 0:t.ownerDocument.hasFocus()))}))),this._show()})).finally((()=>{r.dispose(),this._hide()}))}_show(){this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout((()=>{this._input.focus(),this._input.setSelectionRange(parseInt(this._input.getAttribute("selectionStart")),parseInt(this._input.getAttribute("selectionEnd")))}),100)}_hide(){this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}};i8=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([X7(2,Xk),X7(3,oC),X7(4,ah)],i8);var e8,s8=function(t,i){return function(e,s){i(e,s,t)}};class n8{constructor(t,i,e){this.model=t,this.position=i,this._providerRenameIdx=0,this._providers=e.ordered(t)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(t){const i=[];for(this._providerRenameIdx=0;this._providerRenameIdx0?i.join("\n"):void 0}:{range:Ms.fromPositions(this.position),text:"",rejectReason:i.length>0?i.join("\n"):void 0}}async provideRenameEdits(t,i){return this._provideRenameEdits(t,this._providerRenameIdx,[],i)}async _provideRenameEdits(t,i,e,s){const n=this._providers[i];if(!n)return{edits:[],rejectReason:e.join("\n")};const o=await n.provideRenameEdits(this.model,this.position,t,s);return o?o.rejectReason?this._provideRenameEdits(t,i+1,e.concat(o.rejectReason),s):o:this._provideRenameEdits(t,i+1,e.concat(ot(0,"No result.")),s)}}let o8=e8=class{static get(t){return t.getContribution(e8.ID)}constructor(t,i,e,s,n,o,r,h){this.editor=t,this._instaService=i,this._notificationService=e,this._bulkEditService=s,this._progressService=n,this._logService=o,this._configService=r,this._languageFeaturesService=h,this._disposableStore=new Xi,this._cts=new Ce,this._renameInputField=this._disposableStore.add(this._instaService.createInstance(i8,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){var t,i;if(this._cts.dispose(!0),this._cts=new Ce,!this.editor.hasModel())return;const e=this.editor.getPosition(),s=new n8(this.editor.getModel(),e,this._languageFeaturesService.renameProvider);if(!s.hasProvider())return;const n=new CK(this.editor,5,void 0,this._cts.token);let o;try{const t=s.resolveRenameLocation(n.token);this._progressService.showWhile(t,250),o=await t}catch(i){return void(null===(t=gQ.get(this.editor))||void 0===t||t.showMessage(i||ot(0,"An unknown error occurred while resolving rename location"),e))}finally{n.dispose()}if(!o)return;if(o.rejectReason)return void(null===(i=gQ.get(this.editor))||void 0===i||i.showMessage(o.rejectReason,e));if(n.token.isCancellationRequested)return;const r=new CK(this.editor,5,o.range,this._cts.token),h=this.editor.getSelection();let c=0,a=o.text.length;Ms.isEmpty(h)||Ms.spansMultipleLines(h)||!Ms.containsRange(o.range,h)||(c=Math.max(0,h.startColumn-o.range.startColumn),a=Math.min(o.range.endColumn,h.endColumn)-o.range.startColumn);const l=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),u=await this._renameInputField.getInput(o.range,o.text,c,a,l,r.token);if("boolean"==typeof u)return u&&this.editor.focus(),void r.dispose();this.editor.focus();const d=oc(s.provideRenameEdits(u.newName,r.token),r.token).then((async t=>{t&&this.editor.hasModel()&&(t.rejectReason?this._notificationService.info(t.rejectReason):(this.editor.setSelection(Ms.fromPositions(this.editor.getSelection().getPosition())),this._bulkEditService.apply(t,{editor:this.editor,showPreview:u.wantsPreview,label:ot(0,"Renaming '{0}' to '{1}'",null==o?void 0:o.text,u.newName),code:"undoredo.rename",quotableLabel:ot(0,"Renaming {0} to {1}",null==o?void 0:o.text,u.newName),respectAutoSaveConfig:!0}).then((t=>{t.ariaSummary&&Pm(ot(0,"Successfully renamed '{0}' to '{1}'. Summary: {2}",o.text,u.newName,t.ariaSummary))})).catch((t=>{this._notificationService.error(ot(0,"Rename failed to apply edits")),this._logService.error(t)}))))}),(t=>{this._notificationService.error(ot(0,"Rename failed to compute edits")),this._logService.error(t)})).finally((()=>{r.dispose()}));return this._progressService.showWhile(d,250),d}acceptRenameInput(t){this._renameInputField.acceptInput(t)}cancelRenameInput(){this._renameInputField.cancelInput(!0)}};o8.ID="editor.contrib.renameController",o8=e8=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([s8(1,ur),s8(2,oT),s8(3,nO),s8(4,zO),s8(5,jh),s8(6,yg),s8(7,xg)],o8),lu(o8.ID,o8,4),cu(class extends su{constructor(){super({id:"editor.action.rename",label:ot(0,"Rename Symbol"),alias:"Rename Symbol",precondition:zr.and(YC.writable,YC.hasRenameProvider),kbOpts:{kbExpr:YC.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}runCommand(t,i){const e=t.get(fr),[s,n]=Array.isArray(i)&&i||[void 0,void 0];return ms.isUri(s)&&As.isIPosition(n)?e.openCodeEditor({resource:s},e.getActiveCodeEditor()).then((t=>{t&&(t.setPosition(n),t.invokeWithinContext((i=>(this.reportTelemetry(i,t),this.run(i,t)))))}),Bi):super.runCommand(t,i)}run(t,i){const e=o8.get(i);return e?e.run():Promise.resolve()}});const r8=eu.bindToContribution(o8.get);function h8(t){const i=new Uint32Array(function(t){let i=0;if(i+=2,"full"===t.type)i+=1+t.data.length;else{i+=1,i+=3*t.deltas.length;for(const e of t.deltas)e.data&&(i+=e.data.length)}return i}(t));let e=0;if(i[e++]=t.id,"full"===t.type)i[e++]=1,i[e++]=t.data.length,i.set(t.data,e),e+=t.data.length;else{i[e++]=2,i[e++]=t.deltas.length;for(const s of t.deltas)i[e++]=s.start,i[e++]=s.deleteCount,s.data?(i[e++]=s.data.length,i.set(s.data,e),e+=s.data.length):i[e++]=0}return function(t){const i=new Uint8Array(t.buffer,t.byteOffset,4*t.length);return Bt()||function(t){for(let i=0,e=t.length;it.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:zr.and(YC.focus,zr.not("isComposing")),primary:3}})),hu(new r8({id:"acceptRenameInputWithPreview",precondition:zr.and(t8,zr.has("config.editor.rename.enablePreview")),handler:t=>t.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:zr.and(YC.focus,zr.not("isComposing")),primary:1027}})),hu(new r8({id:"cancelRenameInput",precondition:t8,handler:t=>t.cancelRenameInput(),kbOpts:{weight:199,kbExpr:YC.focus,primary:9,secondary:[1033]}})),ru("_executeDocumentRenameProvider",(function(t,i,e,...s){const[n]=s;q("string"==typeof n);const{renameProvider:o}=t.get(xg);return async function(t,i,e,s){const n=new n8(i,e,t),o=await n.resolveRenameLocation(ke.None);return(null==o?void 0:o.rejectReason)?{edits:[],rejectReason:o.rejectReason}:n.provideRenameEdits(s,ke.None)}(o,i,e,n)})),ru("_executePrepareRename",(async function(t,i,e){const{renameProvider:s}=t.get(xg),n=new n8(i,e,s),o=await n.resolveRenameLocation(ke.None);if(null==o?void 0:o.rejectReason)throw new Error(o.rejectReason);return o})),Dh.as(Md).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:ot(0,"Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});class l8{constructor(t,i,e){this.provider=t,this.tokens=i,this.error=e}}function u8(t,i){return t.has(i)}async function d8(t,i,e,s,n){const o=function(t,i){const e=t.orderedGroups(i);return e.length>0?e[0]:[]}(t,i),r=await Promise.all(o.map((async t=>{let o,r=null;try{o=await t.provideDocumentSemanticTokens(i,t===e?s:null,n)}catch(t){r=t,o=null}return o&&(c8(o)||a8(o))||(o=null),new l8(t,o,r)})));for(const t of r){if(t.error)throw t.error;if(t.tokens)return t}return r.length>0?r[0]:null}class f8{constructor(t,i){this.provider=t,this.tokens=i}}function p8(t,i){const e=t.orderedGroups(i);return e.length>0?e[0]:[]}async function g8(t,i,e,s){const n=p8(t,i),o=await Promise.all(n.map((async t=>{let n;try{n=await t.provideDocumentRangeSemanticTokens(i,e,s)}catch(t){Pi(t),n=null}return n&&c8(n)||(n=null),new f8(t,n)})));for(const t of o)if(t.tokens)return t;return o.length>0?o[0]:null}Dr.registerCommand("_provideDocumentSemanticTokensLegend",(async(t,...i)=>{const[e]=i;q(e instanceof ms);const s=t.get(pr).getModel(e);if(!s)return;const{documentSemanticTokensProvider:n}=t.get(xg),o=function(t,i){const e=t.orderedGroups(i);return e.length>0?e[0]:null}(n,s);return o?o[0].getLegend():t.get(Sr).executeCommand("_provideDocumentRangeSemanticTokensLegend",e)})),Dr.registerCommand("_provideDocumentSemanticTokens",(async(t,...i)=>{const[e]=i;q(e instanceof ms);const s=t.get(pr).getModel(e);if(!s)return;const{documentSemanticTokensProvider:n}=t.get(xg);if(!u8(n,s))return t.get(Sr).executeCommand("_provideDocumentRangeSemanticTokens",e,s.getFullModelRange());const o=await d8(n,s,null,null,ke.None);if(!o)return;const{provider:r,tokens:h}=o;if(!h||!c8(h))return;const c=h8({id:0,type:"full",data:h.data});return h.resultId&&r.releaseDocumentSemanticTokens(h.resultId),c})),Dr.registerCommand("_provideDocumentRangeSemanticTokensLegend",(async(t,...i)=>{const[e,s]=i;q(e instanceof ms);const n=t.get(pr).getModel(e);if(!n)return;const{documentRangeSemanticTokensProvider:o}=t.get(xg),r=p8(o,n);if(0===r.length)return;if(1===r.length)return r[0].getLegend();if(!s||!Ms.isIRange(s))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),r[0].getLegend();const h=await g8(o,n,Ms.lift(s),ke.None);return h?h.provider.getLegend():void 0})),Dr.registerCommand("_provideDocumentRangeSemanticTokens",(async(t,...i)=>{const[e,s]=i;q(e instanceof ms),q(Ms.isIRange(s));const n=t.get(pr).getModel(e);if(!n)return;const{documentRangeSemanticTokensProvider:o}=t.get(xg),r=await g8(o,n,Ms.lift(s),ke.None);return r&&r.tokens?h8({id:0,type:"full",data:r.tokens.data}):void 0}));const m8="editor.semanticHighlighting";function w8(t,i,e){var s;const n=null===(s=e.getValue(m8,{overrideIdentifier:t.getLanguageId(),resource:t.uri}))||void 0===s?void 0:s.enabled;return"boolean"==typeof n?n:i.getColorTheme().semanticHighlighting}var v8,b8=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},y8=function(t,i){return function(e,s){i(e,s,t)}};let k8=class extends te{constructor(t,i,e,s,n,o){super(),this._watchers=Object.create(null);const r=i=>{this._watchers[i.uri.toString()]=new x8(i,t,e,n,o)},h=(t,i)=>{i.dispose(),delete this._watchers[t.uri.toString()]},c=()=>{for(const t of i.getModels()){const i=this._watchers[t.uri.toString()];w8(t,e,s)?i||r(t):i&&h(t,i)}};this._register(i.onModelAdded((t=>{w8(t,e,s)&&r(t)}))),this._register(i.onModelRemoved((t=>{const i=this._watchers[t.uri.toString()];i&&h(t,i)}))),this._register(s.onDidChangeConfiguration((t=>{t.affectsConfiguration(m8)&&c()}))),this._register(e.onDidColorThemeChange(c))}dispose(){for(const t of Object.values(this._watchers))t.dispose();super.dispose()}};k8=b8([y8(0,MR),y8(1,pr),y8(2,Xk),y8(3,pd),y8(4,gR),y8(5,xg)],k8);let x8=v8=class extends te{constructor(t,i,e,s,n){super(),this._semanticTokensStylingService=i,this._isDisposed=!1,this._model=t,this._provider=n.documentSemanticTokensProvider,this._debounceInformation=s.for(this._provider,"DocumentSemanticTokens",{min:v8.REQUEST_MIN_DELAY,max:v8.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new pc((()=>this._fetchDocumentSemanticTokensNow()),v8.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._providersChangedDuringRequest=!1,this._register(this._model.onDidChangeContent((()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}))),this._register(this._model.onDidChangeAttached((()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}))),this._register(this._model.onDidChangeLanguage((()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)})));const o=()=>{Qi(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const i of this._provider.all(t))"function"==typeof i.onDidChange&&this._documentProvidersChangeListeners.push(i.onDidChange((()=>{this._currentDocumentRequestCancellationTokenSource?this._providersChangedDuringRequest=!0:this._fetchDocumentSemanticTokens.schedule(0)})))};o(),this._register(this._provider.onDidChange((()=>{o(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}))),this._register(e.onDidColorThemeChange((()=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}))),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),Qi(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[],this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!u8(this._provider,this._model))return void(this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1));if(!this._model.isAttachedToEditor())return;const t=new Ce,i=d8(this._provider,this._model,this._currentDocumentResponse?this._currentDocumentResponse.provider:null,this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,t.token);this._currentDocumentRequestCancellationTokenSource=t,this._providersChangedDuringRequest=!1;const e=[],s=this._model.onDidChangeContent((t=>{e.push(t)})),n=new re(!1);i.then((t=>{if(this._debounceInformation.update(this._model,n.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,s.dispose(),t){const{provider:i,tokens:s}=t,n=this._semanticTokensStylingService.getStyling(i);this._setDocumentSemanticTokens(i,s||null,n,e)}else this._setDocumentSemanticTokens(null,null,null,e)}),(t=>{t&&(ji(t)||"string"==typeof t.message&&-1!==t.message.indexOf("busy"))||Bi(t),this._currentDocumentRequestCancellationTokenSource=null,s.dispose(),(e.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))}))}static _copy(t,i,e,s,n){n=Math.min(n,e.length-s,t.length-i);for(let o=0;o{(s.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed)t&&i&&t.releaseDocumentSemanticTokens(i.resultId);else if(t&&e){if(!i)return this._model.tokenization.setSemanticTokens(null,!0),void o();if(a8(i)){if(!n)return void this._model.tokenization.setSemanticTokens(null,!0);if(0===i.edits.length)i={resultId:i.resultId,data:n.data};else{let t=0;for(const e of i.edits)t+=(e.data?e.data.length:0)-e.deleteCount;const s=n.data,o=new Uint32Array(s.length+t);let r=s.length,h=o.length;for(let t=i.edits.length-1;t>=0;t--){const c=i.edits[t];if(c.start>s.length)return e.warnInvalidEditStart(n.resultId,i.resultId,t,c.start,s.length),void this._model.tokenization.setSemanticTokens(null,!0);const a=r-(c.start+c.deleteCount);a>0&&(v8._copy(s,r-a,o,h-a,a),h-=a),c.data&&(v8._copy(c.data,0,o,h-c.data.length,c.data.length),h-=c.data.length),r=c.start}r>0&&v8._copy(s,0,o,0,r),i={resultId:i.resultId,data:o}}}if(c8(i)){this._currentDocumentResponse=new C8(t,i.resultId,i.data);const n=DR(i,e,this._model.getLanguageId());if(s.length>0)for(const t of s)for(const i of n)for(const e of t.changes)i.applyEdit(e.range,e.text);this._model.tokenization.setSemanticTokens(n,!0)}else this._model.tokenization.setSemanticTokens(null,!0);o()}else this._model.tokenization.setSemanticTokens(null,!1)}};x8.REQUEST_MIN_DELAY=300,x8.REQUEST_MAX_DELAY=2e3,x8=v8=b8([y8(1,MR),y8(2,Xk),y8(3,gR),y8(4,xg)],x8);class C8{constructor(t,i,e){this.provider=t,this.resultId=i,this.data=e}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}GH(k8);var S8=function(t,i){return function(e,s){i(e,s,t)}};let D8=class extends te{constructor(t,i,e,s,n,o){super(),this._semanticTokensStylingService=i,this._themeService=e,this._configurationService=s,this._editor=t,this._provider=o.documentRangeSemanticTokensProvider,this._debounceInformation=n.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new pc((()=>this._tokenizeViewportNow()),100)),this._outstandingRequests=[];const r=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))};this._register(this._editor.onDidScrollChange((()=>{r()}))),this._register(this._editor.onDidChangeModel((()=>{this._cancelAll(),r()}))),this._register(this._editor.onDidChangeModelContent((()=>{this._cancelAll(),r()}))),this._register(this._provider.onDidChange((()=>{this._cancelAll(),r()}))),this._register(this._configurationService.onDidChangeConfiguration((t=>{t.affectsConfiguration(m8)&&(this._cancelAll(),r())}))),this._register(this._themeService.onDidColorThemeChange((()=>{this._cancelAll(),r()}))),r()}_cancelAll(){for(const t of this._outstandingRequests)t.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(t){for(let i=0,e=this._outstandingRequests.length;ithis._requestRange(t,i))))}_requestRange(t,i){const e=t.getVersionId(),s=nc((e=>Promise.resolve(g8(this._provider,t,i,e)))),n=new re(!1);return s.then((s=>{if(this._debounceInformation.update(t,n.elapsed()),!s||!s.tokens||t.isDisposed()||t.getVersionId()!==e)return;const{provider:o,tokens:r}=s,h=this._semanticTokensStylingService.getStyling(o);t.tokenization.setPartialSemanticTokens(i,DR(r,h,t.getLanguageId()))})).then((()=>this._removeOutstandingRequest(s)),(()=>this._removeOutstandingRequest(s))),s}};D8.ID="editor.contrib.viewportSemanticTokens",D8=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([S8(1,MR),S8(2,Xk),S8(3,pd),S8(4,gR),S8(5,xg)],D8),lu(D8.ID,D8,1);class E8{constructor(t=!0){this.selectSubwords=t}provideSelectionRanges(t,i){const e=[];for(const s of i){const i=[];e.push(i),this.selectSubwords&&this._addInWordRanges(i,t,s),this._addWordRanges(i,t,s),this._addWhitespaceLine(i,t,s),i.push({range:t.getFullModelRange()})}return e}_addInWordRanges(t,i,e){const s=i.getWordAtPosition(e);if(!s)return;const{word:n,startColumn:o}=s,r=e.column-o;let h=r,c=r,a=0;for(;h>=0;h--){const t=n.charCodeAt(h);if(h!==r&&(95===t||45===t))break;if(co(t)&&ao(a))break;a=t}for(h+=1;c0&&0===i.getLineFirstNonWhitespaceColumn(e.lineNumber)&&0===i.getLineLastNonWhitespaceColumn(e.lineNumber)&&t.push({range:new Ms(e.lineNumber,1,e.lineNumber,i.getLineMaxColumn(e.lineNumber))})}}var A8;class M8{constructor(t,i){this.index=t,this.ranges=i}mov(t){const i=this.index+(t?1:-1);if(i<0||i>=this.ranges.length)return this;const e=new M8(i,this.ranges);return e.ranges[i].equalsRange(this.ranges[this.index])?e.mov(t):e}}let L8=A8=class{static get(t){return t.getContribution(A8.ID)}constructor(t,i){this._editor=t,this._languageFeaturesService=i,this._ignoreSelection=!1}dispose(){var t;null===(t=this._selectionListener)||void 0===t||t.dispose()}async run(t){if(!this._editor.hasModel())return;const i=this._editor.getSelections(),e=this._editor.getModel();if(this._state||await T8(this._languageFeaturesService.selectionRangeProvider,e,i.map((t=>t.getPosition())),this._editor.getOption(112),ke.None).then((t=>{var e;if(b(t)&&t.length===i.length&&this._editor.hasModel()&&l(this._editor.getSelections(),i,((t,i)=>t.equalsSelection(i)))){for(let e=0;et.containsPosition(i[e].getStartPosition())&&t.containsPosition(i[e].getEndPosition()))),t[e].unshift(i[e]);this._state=t.map((t=>new M8(0,t))),null===(e=this._selectionListener)||void 0===e||e.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition((()=>{var t;this._ignoreSelection||(null===(t=this._selectionListener)||void 0===t||t.dispose(),this._state=void 0)}))}})),!this._state)return;this._state=this._state.map((i=>i.mov(t)));const s=this._state.map((t=>Ls.fromPositions(t.ranges[t.index].getStartPosition(),t.ranges[t.index].getEndPosition())));this._ignoreSelection=!0;try{this._editor.setSelections(s)}finally{this._ignoreSelection=!1}}};L8.ID="editor.contrib.smartSelectController",L8=A8=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(1,xg)],L8);class F8 extends su{constructor(t,i){super(i),this._forward=t}async run(t,i){const e=L8.get(i);e&&await e.run(this._forward)}}async function T8(t,i,e,s,n){const o=t.all(i).concat(new E8(s.selectSubwords));1===o.length&&o.unshift(new c6);const r=[],h=[];for(const t of o)r.push(Promise.resolve(t.provideSelectionRanges(i,e,n)).then((t=>{if(b(t)&&t.length===e.length)for(let i=0;i{if(0===t.length)return[];t.sort(((t,i)=>As.isBefore(t.getStartPosition(),i.getStartPosition())?1:As.isBefore(i.getStartPosition(),t.getStartPosition())||As.isBefore(t.getEndPosition(),i.getEndPosition())?-1:As.isBefore(i.getEndPosition(),t.getEndPosition())?1:0));const e=[];let n;for(const i of t)(!n||Ms.containsRange(i,n)&&!Ms.equalsRange(i,n))&&(e.push(i),n=i);if(!s.selectLeadingAndTrailingWhitespace)return e;const o=[e[0]];for(let t=1;tt}),_8="data-sticky-line-index",N8="data-sticky-is-line",B8="data-sticky-is-folding-icon";class P8 extends te{constructor(t){super(),this._editor=t,this._foldingIconStore=new Xi,this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._lineHeight=this._editor.getOption(66),this._stickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._lineNumbersDomNode.className="sticky-widget-line-numbers",this._lineNumbersDomNode.setAttribute("role","none"),this._linesDomNode.className="sticky-widget-lines",this._linesDomNode.setAttribute("role","list"),this._linesDomNodeScrollable.className="sticky-widget-lines-scrollable",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className="sticky-widget",this._rootDomNode.classList.toggle("peek",t instanceof UJ),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable);const i=()=>{this._linesDomNode.style.left=this._editor.getOption(114).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(114)&&i(),t.hasChanged(66)&&(this._lineHeight=this._editor.getOption(66))}))),this._register(this._editor.onDidScrollChange((t=>{t.scrollLeftChanged&&i(),t.scrollWidthChanged&&this._updateWidgetWidth()}))),this._register(this._editor.onDidChangeModel((()=>{i(),this._updateWidgetWidth()}))),this._register(this._foldingIconStore),i(),this._register(this._editor.onDidLayoutChange((()=>{this._updateWidgetWidth()}))),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getStickyLineForLine(t){return this._stickyLines.find((i=>i.lineNumber===t))}getCurrentLines(){return this._lineNumbers}setState(t,i,e=1/0){if((!this._previousState&&!t||this._previousState&&this._previousState.equals(t))&&e===1/0)return;this._previousState=t;const s=this._stickyLines;if(this._clearStickyWidget(),t&&this._editor._getViewModel()){if(t.startLineNumbers.length*this._lineHeight+t.lastLineRelativePosition>0){this._lastLineRelativePosition=t.lastLineRelativePosition;const i=[...t.startLineNumbers];null!==t.showEndForLine&&(i[t.showEndForLine]=t.endLineNumbers[t.showEndForLine]),this._lineNumbers=i}else this._lastLineRelativePosition=0,this._lineNumbers=[];this._renderRootNode(s,i,e)}}_updateWidgetWidth(){const t=this._editor.getLayoutInfo();this._lineNumbersDomNode.style.width=`${t.contentLeft}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",this._editor.getScrollWidth()-t.verticalScrollbarWidth+"px"),this._rootDomNode.style.width=t.width-t.verticalScrollbarWidth+"px"}_clearStickyWidget(){this._stickyLines=[],this._foldingIconStore.clear(),za(this._lineNumbersDomNode),za(this._linesDomNode),this._rootDomNode.style.display="none"}_useFoldingOpacityTransition(t){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition",`opacity ${t?.5:0}s`)}_setFoldingIconsVisibility(t){for(const i of this._stickyLines){const e=i.foldingIcon;e&&e.setVisible(!!t||e.isCollapsed)}}async _renderRootNode(t,i,e=1/0){const s=this._editor.getLayoutInfo();for(const[n,o]of this._lineNumbers.entries()){const r=t[n],h=o>=e||(null==r?void 0:r.lineNumber)!==o?this._renderChildNode(n,o,i,s):this._updateTopAndZIndexOfStickyLine(r);h&&(this._linesDomNode.appendChild(h.lineDomNode),this._lineNumbersDomNode.appendChild(h.lineNumberDomNode),this._stickyLines.push(h))}i&&(this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin));const n=this._lineNumbers.length*this._lineHeight+this._lastLineRelativePosition;0!==n?(this._rootDomNode.style.display="block",this._lineNumbersDomNode.style.height=`${n}px`,this._linesDomNodeScrollable.style.height=`${n}px`,this._rootDomNode.style.height=`${n}px`,this._rootDomNode.style.marginLeft="0px",this._updateMinContentWidth(),this._editor.layoutOverlayWidget(this)):this._clearStickyWidget()}_setFoldingHoverListeners(){"mouseover"===this._editor.getOption(109)&&(this._foldingIconStore.add(Va(this._lineNumbersDomNode,Ll.MOUSE_ENTER,(()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)}))),this._foldingIconStore.add(Va(this._lineNumbersDomNode,Ll.MOUSE_LEAVE,(()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)}))))}_renderChildNode(t,i,e,s){const n=this._editor._getViewModel();if(!n)return;const o=n.coordinatesConverter.convertModelPositionToViewPosition(new As(i,1)).lineNumber,r=n.getViewLineRenderingData(o),h=this._editor.getOption(67);let c;try{c=Wg.filter(r.inlineDecorations,o,r.minColumn,r.maxColumn)}catch(t){c=[]}const a=new qg(!0,!0,r.content,r.continuesWithWrappedLine,r.isBasicASCII,r.containsRTL,0,r.tokens,c,r.tabSize,r.startVisibleColumn,1,1,1,500,"none",!0,!0,null),l=new td(2e3),u=Qg(a,l);let d;d=I8?I8.createHTML(l.build()):l.build();const f=document.createElement("span");f.setAttribute(_8,String(t)),f.setAttribute(N8,""),f.setAttribute("role","listitem"),f.tabIndex=0,f.className="sticky-line-content",f.classList.add(`stickyLine${i}`),f.style.lineHeight=`${this._lineHeight}px`,f.innerHTML=d;const p=document.createElement("span");p.setAttribute(_8,String(t)),p.setAttribute("data-sticky-is-line-number",""),p.className="sticky-line-number",p.style.lineHeight=`${this._lineHeight}px`,p.style.width=`${s.contentLeft}px`;const g=document.createElement("span");1===h.renderType||3===h.renderType&&i%10==0?g.innerText=i.toString():2===h.renderType&&(g.innerText=Math.abs(i-this._editor.getPosition().lineNumber).toString()),g.className="sticky-line-number-inner",g.style.lineHeight=`${this._lineHeight}px`,g.style.width=`${s.lineNumbersWidth}px`,g.style.paddingLeft=`${s.lineNumbersLeft}px`,p.appendChild(g);const m=this._renderFoldingIconForLine(e,i);m&&p.appendChild(m.domNode),this._editor.applyFontInfo(f),this._editor.applyFontInfo(g),p.style.lineHeight=`${this._lineHeight}px`,f.style.lineHeight=`${this._lineHeight}px`,p.style.height=`${this._lineHeight}px`,f.style.height=`${this._lineHeight}px`;const w=new $8(t,i,f,p,m,u.characterMapping);return this._updateTopAndZIndexOfStickyLine(w)}_updateTopAndZIndexOfStickyLine(t){var i;const e=t.index,s=t.lineDomNode,n=t.lineNumberDomNode,o=e===this._lineNumbers.length-1;s.style.zIndex=o?"0":"1",n.style.zIndex=o?"0":"1";const r=`${e*this._lineHeight+this._lastLineRelativePosition+((null===(i=t.foldingIcon)||void 0===i?void 0:i.isCollapsed)?1:0)}px`,h=e*this._lineHeight+"px";return s.style.top=o?r:h,n.style.top=o?r:h,t}_renderFoldingIconForLine(t,i){const e=this._editor.getOption(109);if(!t||"never"===e)return;const s=t.regions,n=s.findRange(i),o=s.getStartLineNumber(n);if(i!==o)return;const r=s.isCollapsed(n),h=new W8(r,o,s.getEndLineNumber(n),this._lineHeight);return h.setVisible(!!this._isOnGlyphMargin||r||"always"===e),h.domNode.setAttribute(B8,""),h}_updateMinContentWidth(){this._minContentWidthInPx=0;for(const t of this._stickyLines)t.lineDomNode.scrollWidth>this._minContentWidthInPx&&(this._minContentWidthInPx=t.lineDomNode.scrollWidth);this._minContentWidthInPx+=this._editor.getLayoutInfo().verticalScrollbarWidth}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:null}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(t){0<=t&&t0)return null;const i=this._getRenderedStickyLineFromChildDomNode(t);if(!i)return null;const e=Yy(i.characterMapping,t,0);return new As(i.lineNumber,e)}getLineNumberFromChildDomNode(t){var i,e;return null!==(e=null===(i=this._getRenderedStickyLineFromChildDomNode(t))||void 0===i?void 0:i.lineNumber)&&void 0!==e?e:null}_getRenderedStickyLineFromChildDomNode(t){const i=this.getLineIndexFromChildDomNode(t);return null===i||i<0||i>=this._stickyLines.length?null:this._stickyLines[i]}getLineIndexFromChildDomNode(t){const i=this._getAttributeValue(t,_8);return i?parseInt(i,10):null}isInStickyLine(t){return void 0!==this._getAttributeValue(t,N8)}isInFoldingIconDomNode(t){return void 0!==this._getAttributeValue(t,B8)}_getAttributeValue(t,i){for(;t&&t!==this._rootDomNode;){const e=t.getAttribute(i);if(null!==e)return e;t=t.parentElement}}}class $8{constructor(t,i,e,s,n,o){this.index=t,this.lineNumber=i,this.lineDomNode=e,this.lineNumberDomNode=s,this.foldingIcon=n,this.characterMapping=o}}class W8{constructor(t,i,e,s){this.isCollapsed=t,this.foldingStartLine=i,this.foldingEndLine=e,this.dimension=s,this.domNode=document.createElement("div"),this.domNode.style.width=`${s}px`,this.domNode.style.height=`${s}px`,this.domNode.className=Cr.asClassName(t?n5:s5)}setVisible(t){this.domNode.style.cursor=t?"pointer":"default",this.domNode.style.opacity=t?"1":"0"}}class j8{constructor(t,i){this.startLineNumber=t,this.endLineNumber=i}}class z8{constructor(t,i,e){this.range=t,this.children=i,this.parent=e}}class H8{constructor(t,i,e,s){this.uri=t,this.version=i,this.element=e,this.outlineProviderId=s}}var V8,U8,q8=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},K8=function(t,i){return function(e,s){i(e,s,t)}};!function(t){t.OUTLINE_MODEL="outlineModel",t.FOLDING_PROVIDER_MODEL="foldingProviderModel",t.INDENTATION_MODEL="indentationModel"}(V8||(V8={})),function(t){t[t.VALID=0]="VALID",t[t.INVALID=1]="INVALID",t[t.CANCELED=2]="CANCELED"}(U8||(U8={}));let G8=class extends te{constructor(t,i,e,s){super(),this._editor=t,this._languageConfigurationService=i,this._languageFeaturesService=e,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new hc(300)),this._updateOperation=this._register(new Xi);const n=new Q8(e),o=new X8(this._editor,e),r=new Y8(this._editor,i);switch(s){case V8.OUTLINE_MODEL:this._modelProviders.push(n),this._modelProviders.push(o),this._modelProviders.push(r);break;case V8.FOLDING_PROVIDER_MODEL:this._modelProviders.push(o),this._modelProviders.push(r);break;case V8.INDENTATION_MODEL:this._modelProviders.push(r)}}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}async update(t,i,e){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger((async()=>{for(const s of this._modelProviders){const{statusPromise:n,modelPromise:o}=s.computeStickyModel(t,i,e);this._modelPromise=o;const r=await n;if(this._modelPromise!==o)return null;switch(r){case U8.CANCELED:return this._updateOperation.clear(),null;case U8.VALID:return s.stickyModel}}return null})).catch((t=>(Bi(t),null)))}};G8=q8([K8(1,Xd),K8(2,xg)],G8);class Z8{constructor(){this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,U8.INVALID}computeStickyModel(t,i,e){if(e.isCancellationRequested||!this.isProviderValid(t))return{statusPromise:this._invalid(),modelPromise:null};const s=nc((e=>this.createModelFromProvider(t,i,e)));return{statusPromise:s.then((s=>this.isModelValid(s)?e.isCancellationRequested?U8.CANCELED:(this._stickyModel=this.createStickyModel(t,i,e,s),U8.VALID):this._invalid())).then(void 0,(t=>(Bi(t),U8.CANCELED))),modelPromise:s}}isModelValid(t){return!0}isProviderValid(t){return!0}}let Q8=class extends Z8{constructor(t){super(),this._languageFeaturesService=t}createModelFromProvider(t,i,e){return L5.create(this._languageFeaturesService.documentSymbolProvider,t,e)}createStickyModel(t,i,e,s){var n;const{stickyOutlineElement:o,providerID:r}=this._stickyModelFromOutlineModel(s,null===(n=this._stickyModel)||void 0===n?void 0:n.outlineProviderId);return new H8(t.uri,i,o,r)}isModelValid(t){return t&&t.children.size>0}_stickyModelFromOutlineModel(t,i){let e;if(Ht.first(t.children.values())instanceof M5){const s=Ht.find(t.children.values(),(t=>t.id===i));if(s)e=s.children;else{let s,n="",o=-1;for(const[i,e]of t.children.entries()){const t=this._findSumOfRangesOfGroup(e);t>o&&(s=e,o=t,n=e.id)}i=n,e=s.children}}else e=t.children;const s=[],n=Array.from(e.values()).sort(((t,i)=>{const e=new j8(t.symbol.range.startLineNumber,t.symbol.range.endLineNumber),s=new j8(i.symbol.range.startLineNumber,i.symbol.range.endLineNumber);return this._comparator(e,s)}));for(const t of n)s.push(this._stickyModelFromOutlineElement(t,t.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new z8(void 0,s,void 0),providerID:i}}_stickyModelFromOutlineElement(t,i){const e=[];for(const s of t.children.values())if(s.symbol.selectionRange.startLineNumber!==s.symbol.range.endLineNumber)if(s.symbol.selectionRange.startLineNumber!==i)e.push(this._stickyModelFromOutlineElement(s,s.symbol.selectionRange.startLineNumber));else for(const t of s.children.values())e.push(this._stickyModelFromOutlineElement(t,s.symbol.selectionRange.startLineNumber));e.sort(((t,i)=>this._comparator(t.range,i.range)));const s=new j8(t.symbol.selectionRange.startLineNumber,t.symbol.range.endLineNumber);return new z8(s,e,void 0)}_comparator(t,i){return t.startLineNumber!==i.startLineNumber?t.startLineNumber-i.startLineNumber:i.endLineNumber-t.endLineNumber}_findSumOfRangesOfGroup(t){let i=0;for(const e of t.children.values())i+=this._findSumOfRangesOfGroup(e);return t instanceof A5?i+t.symbol.range.endLineNumber-t.symbol.selectionRange.startLineNumber:i}};Q8=q8([K8(0,xg)],Q8);class J8 extends Z8{constructor(t){super(),this._foldingLimitReporter=new m5(t)}createStickyModel(t,i,e,s){const n=this._fromFoldingRegions(s);return new H8(t.uri,i,n,void 0)}isModelValid(t){return null!==t}_fromFoldingRegions(t){const i=t.length,e=[],s=new z8(void 0,[],void 0);for(let n=0;n0}createModelFromProvider(t,i,e){const s=g5.getFoldingRangeProviders(this._languageFeaturesService,t);return new l5(t,s,(()=>this.createModelFromProvider(t,i,e)),this._foldingLimitReporter,void 0).compute(e)}};X8=q8([K8(1,xg)],X8);var ttt=function(t,i){return function(e,s){i(e,s,t)}};class itt{constructor(t,i,e){this.startLineNumber=t,this.endLineNumber=i,this.nestingDepth=e}}let ett=class extends te{constructor(t,i,e){super(),this._languageFeaturesService=i,this._languageConfigurationService=e,this._onDidChangeStickyScroll=this._register(new de),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._options=null,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=t,this._sessionStore=this._register(new Xi),this._updateSoon=this._register(new pc((()=>this.update()),50)),this._register(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(114)&&this.readConfiguration()}))),this.readConfiguration()}readConfiguration(){this._stickyModelProvider=null,this._sessionStore.clear(),this._options=this._editor.getOption(114),this._options.enabled&&(this._stickyModelProvider=this._sessionStore.add(new G8(this._editor,this._languageConfigurationService,this._languageFeaturesService,this._options.defaultModel)),this._sessionStore.add(this._editor.onDidChangeModel((()=>{this._model=null,this._onDidChangeStickyScroll.fire(),this.update()}))),this._sessionStore.add(this._editor.onDidChangeHiddenAreas((()=>this.update()))),this._sessionStore.add(this._editor.onDidChangeModelContent((()=>this._updateSoon.schedule()))),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange((()=>this.update()))),this.update())}getVersionId(){var t;return null===(t=this._model)||void 0===t?void 0:t.version}async update(){var t;null===(t=this._cts)||void 0===t||t.dispose(!0),this._cts=new Ce,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(t){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization())return void(this._model=null);const i=this._editor.getModel(),e=i.getVersionId(),s=await this._stickyModelProvider.update(i,e,t);t.isCancellationRequested||(this._model=s)}updateIndex(t){return-1===t?t=0:t<0&&(t=-t-2),t}getCandidateStickyLinesIntersectingFromStickyModel(t,i,e,s,n){if(0===i.children.length)return;let o=n;const r=[];for(let t=0;tt-i))),c=this.updateIndex(u(r,t.startLineNumber+s,((t,i)=>t-i)));for(let r=h;r<=c;r++){const h=i.children[r];if(!h)return;if(h.range){const i=h.range.startLineNumber,n=h.range.endLineNumber;t.startLineNumber<=n+1&&i-1<=t.endLineNumber&&i!==o&&(o=i,e.push(new itt(i,n-1,s+1)),this.getCandidateStickyLinesIntersectingFromStickyModel(t,h,e,s+1,i))}else this.getCandidateStickyLinesIntersectingFromStickyModel(t,h,e,s,n)}}getCandidateStickyLinesIntersecting(t){var i,e;if(!(null===(i=this._model)||void 0===i?void 0:i.element))return[];let s=[];this.getCandidateStickyLinesIntersectingFromStickyModel(t,this._model.element,s,0,-1);const n=null===(e=this._editor._getViewModel())||void 0===e?void 0:e.getHiddenAreas();if(n)for(const t of n)s=s.filter((i=>!(i.startLineNumber>=t.startLineNumber&&i.endLineNumber<=t.endLineNumber+1)));return s}};ett=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([ttt(1,xg),ttt(2,Xd)],ett);var stt,ntt=function(t,i){return function(e,s){i(e,s,t)}};let ott=stt=class extends te{constructor(t,i,e,s,n,o,r){super(),this._editor=t,this._contextMenuService=i,this._languageFeaturesService=e,this._instaService=s,this._contextKeyService=r,this._sessionStore=new Xi,this._foldingModel=null,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._showEndForLine=null,this._stickyScrollWidget=new P8(this._editor),this._stickyLineCandidateProvider=new ett(this._editor,e,n),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=new O8([],[],0),this._readConfiguration();const h=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeConfiguration((t=>{(t.hasChanged(114)||t.hasChanged(72)||t.hasChanged(66)||t.hasChanged(109))&&this._readConfiguration()}))),this._register(Va(h,Ll.CONTEXT_MENU,(async t=>{this._onContextMenu(Na(h),t)}))),this._stickyScrollFocusedContextKey=YC.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=YC.stickyScrollVisible.bindTo(this._contextKeyService);const c=this._register(Rl(h));this._register(c.onDidBlur((()=>{!1===this._positionRevealed&&0===h.clientHeight?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()}))),this._register(c.onDidFocus((()=>{this.focus()}))),this._registerMouseListeners(),this._register(Va(h,Ll.MOUSE_DOWN,(()=>{this._onMouseDown=!0})))}static get(t){return t.getContribution(stt.ID)}_disposeFocusStickyScrollStore(){var t;this._stickyScrollFocusedContextKey.set(!1),null===(t=this._focusDisposableStore)||void 0===t||t.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}focus(){if(this._onMouseDown)return this._onMouseDown=!1,void this._editor.focus();!0!==this._stickyScrollFocusedContextKey.get()&&(this._focused=!0,this._focusDisposableStore=new Xi,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(t){this._focusedStickyElementIndex=t?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){const t=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:t[this._focusedStickyElementIndex],column:1})}_revealPosition(t){this._reveaInEditor(t,(()=>this._editor.revealPosition(t)))}_revealLineInCenterIfOutsideViewport(t){this._reveaInEditor(t,(()=>this._editor.revealLineInCenterIfOutsideViewport(t.lineNumber,0)))}_reveaInEditor(t,i){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,i(),this._editor.setSelection(Ms.fromPositions(t)),this._editor.focus()}_registerMouseListeners(){const t=this._register(new Xi),i=this._register(new HJ(this._editor,{extractLineNumberFromMouseEvent:t=>{const i=this._stickyScrollWidget.getEditorPositionFromNode(t.target.element);return i?i.lineNumber:0}})),e=t=>{if(!this._editor.hasModel())return null;if(12!==t.target.type||t.target.detail!==this._stickyScrollWidget.getId())return null;const i=t.target.element;if(!i||i.innerText!==i.innerHTML)return null;const e=this._stickyScrollWidget.getEditorPositionFromNode(i);return e?{range:new Ms(e.lineNumber,e.column,e.lineNumber,e.column+i.innerText.length),textElement:i}:null},s=this._stickyScrollWidget.getDomNode();this._register(qa(s,Ll.CLICK,(t=>{if(t.ctrlKey||t.altKey||t.metaKey)return;if(!t.leftButton)return;if(t.shiftKey){const i=this._stickyScrollWidget.getLineIndexFromChildDomNode(t.target);if(null===i)return;const e=new As(this._endLineNumbers[i],1);return void this._revealLineInCenterIfOutsideViewport(e)}if(this._stickyScrollWidget.isInFoldingIconDomNode(t.target)){const i=this._stickyScrollWidget.getLineNumberFromChildDomNode(t.target);return void this._toggleFoldingRegionForLine(i)}if(!this._stickyScrollWidget.isInStickyLine(t.target))return;let i=this._stickyScrollWidget.getEditorPositionFromNode(t.target);if(!i){const e=this._stickyScrollWidget.getLineNumberFromChildDomNode(t.target);if(null===e)return;i=new As(e,1)}this._revealPosition(i)}))),this._register(qa(s,Ll.MOUSE_MOVE,(t=>{if(t.shiftKey){const i=this._stickyScrollWidget.getLineIndexFromChildDomNode(t.target);if(null===i||null!==this._showEndForLine&&this._showEndForLine===i)return;return this._showEndForLine=i,void this._renderStickyScroll()}null!==this._showEndForLine&&(this._showEndForLine=null,this._renderStickyScroll())}))),this._register(Va(s,Ll.MOUSE_LEAVE,(()=>{null!==this._showEndForLine&&(this._showEndForLine=null,this._renderStickyScroll())}))),this._register(i.onMouseMoveOrRelevantKeyDown((([i,s])=>{const n=e(i);if(!n||!i.hasTriggerModifier||!this._editor.hasModel())return void t.clear();const{range:o,textElement:r}=n;if(o.equalsRange(this._stickyRangeProjectedOnEditor)){if("underline"===r.style.textDecoration)return}else this._stickyRangeProjectedOnEditor=o,t.clear();const h=new Ce;let c;t.add(Yi((()=>h.dispose(!0)))),VY(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new As(o.startLineNumber,o.startColumn+1),h.token).then((i=>{if(!h.token.isCancellationRequested)if(0!==i.length){this._candidateDefinitionsLength=i.length;const e=r;c!==e?(t.clear(),c=e,c.style.textDecoration="underline",t.add(Yi((()=>{c.style.textDecoration="none"})))):c||(c=e,c.style.textDecoration="underline",t.add(Yi((()=>{c.style.textDecoration="none"}))))}else t.clear()}))}))),this._register(i.onCancel((()=>{t.clear()}))),this._register(i.onExecute((async t=>{if(12!==t.target.type||t.target.detail!==this._stickyScrollWidget.getId())return;const i=this._stickyScrollWidget.getEditorPositionFromNode(t.target.element);i&&(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:i.lineNumber,column:1})),this._instaService.invokeFunction(E9,t,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor}))})))}_onContextMenu(t,i){const e=new tc(t,i);this._contextMenuService.showContextMenu({menuId:Rh.StickyScrollContext,getAnchor:()=>e})}_toggleFoldingRegionForLine(t){if(!this._foldingModel||null===t)return;const i=this._stickyScrollWidget.getStickyLineForLine(t),e=null==i?void 0:i.foldingIcon;if(!e)return;U4(this._foldingModel,Number.MAX_VALUE,[t]),e.isCollapsed=!e.isCollapsed;const s=this._editor.getTopForLineNumber(e.isCollapsed?e.foldingEndLine:e.foldingStartLine)-this._editor.getOption(66)*i.index+1;this._editor.setScrollTop(s),this._renderStickyScroll(t)}_readConfiguration(){const t=this._editor.getOption(114);if(!1===t.enabled)return this._editor.removeOverlayWidget(this._stickyScrollWidget),this._sessionStore.clear(),void(this._enabled=!1);t.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange((t=>{t.scrollTopChanged&&(this._showEndForLine=null,this._renderStickyScroll())}))),this._sessionStore.add(this._editor.onDidLayoutChange((()=>this._onDidResize()))),this._sessionStore.add(this._editor.onDidChangeModelTokens((t=>this._onTokensChange(t)))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll((()=>{this._showEndForLine=null,this._renderStickyScroll()}))),this._enabled=!0),2===this._editor.getOption(67).renderType&&this._sessionStore.add(this._editor.onDidChangeCursorPosition((()=>{this._showEndForLine=null,this._renderStickyScroll(-1)})))}_needsUpdate(t){const i=this._stickyScrollWidget.getCurrentLines();for(const e of i)for(const i of t.ranges)if(e>=i.fromLineNumber&&e<=i.toLineNumber)return!0;return!1}_onTokensChange(t){this._needsUpdate(t)&&this._renderStickyScroll(-1)}_onDidResize(){const t=this._editor.getLayoutInfo().height/this._editor.getOption(66);this._maxStickyLines=Math.round(.25*t)}async _renderStickyScroll(t=1/0){var i,e;const s=this._editor.getModel();if(!s||s.isTooLargeForTokenization())return this._foldingModel=null,void this._stickyScrollWidget.setState(void 0,null,t);const n=this._stickyLineCandidateProvider.getVersionId();if(void 0===n||n===s.getVersionId())if(this._foldingModel=null!==(e=await(null===(i=g5.get(this._editor))||void 0===i?void 0:i.getFoldingModel()))&&void 0!==e?e:null,this._widgetState=this.findScrollWidgetState(),this._stickyScrollVisibleContextKey.set(!(0===this._widgetState.startLineNumbers.length)),this._focused)if(-1===this._focusedStickyElementIndex)this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,t),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,-1!==this._focusedStickyElementIndex&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const i=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,t),0===this._stickyScrollWidget.lineNumberCount?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(i)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}else this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,t)}findScrollWidgetState(){const t=this._editor.getOption(66),i=Math.min(this._maxStickyLines,this._editor.getOption(114).maxLineCount),e=this._editor.getScrollTop();let s=0;const n=[],o=[],r=this._editor.getVisibleRanges();if(0!==r.length){const h=new j8(r[0].startLineNumber,r[r.length-1].endLineNumber),c=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(h);for(const r of c){const h=r.startLineNumber,c=r.endLineNumber,a=r.nestingDepth;if(c-h>0){const r=(a-1)*t,l=a*t,u=this._editor.getBottomForLineNumber(h)-e,d=this._editor.getTopForLineNumber(c)-e,f=this._editor.getBottomForLineNumber(c)-e;if(r>d&&r<=f){n.push(h),o.push(c+1),s=f-l;break}if(l>u&&l<=f&&(n.push(h),o.push(c+1)),n.length===i)break}}}return this._endLineNumbers=o,new O8(n,o,s,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};ott.ID="store.contrib.stickyScrollController",ott=stt=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([ntt(1,lI),ntt(2,xg),ntt(3,ur),ntt(4,Xd),ntt(5,gR),ntt(6,ah)],ott);const rtt=100;lu(ott.ID,ott,1),$h(class extends Ph{constructor(){super({id:"editor.action.toggleStickyScroll",title:{value:ot(0,"Toggle Sticky Scroll"),mnemonicTitle:ot(0,"&&Toggle Sticky Scroll"),original:"Toggle Sticky Scroll"},category:R8.View,toggled:{condition:zr.equals("config.editor.stickyScroll.enabled",!0),title:ot(0,"Sticky Scroll"),mnemonicTitle:ot(0,"&&Sticky Scroll")},menu:[{id:Rh.CommandPalette},{id:Rh.MenubarAppearanceMenu,group:"4_editor",order:3},{id:Rh.StickyScrollContext}]})}async run(t){const i=t.get(pd),e=!i.getValue("editor.stickyScroll.enabled");return i.updateValue("editor.stickyScroll.enabled",e)}}),$h(class extends ou{constructor(){super({id:"editor.action.focusStickyScroll",title:{value:ot(0,"Focus Sticky Scroll"),mnemonicTitle:ot(0,"&&Focus Sticky Scroll"),original:"Focus Sticky Scroll"},precondition:zr.and(zr.has("config.editor.stickyScroll.enabled"),YC.stickyScrollVisible),menu:[{id:Rh.CommandPalette}]})}runEditorCommand(t,i){var e;null===(e=ott.get(i))||void 0===e||e.focus()}}),$h(class extends ou{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:{value:ot(0,"Select previous sticky scroll line"),original:"Select previous sticky scroll line"},precondition:YC.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:rtt,primary:16}})}runEditorCommand(t,i){var e;null===(e=ott.get(i))||void 0===e||e.focusPrevious()}}),$h(class extends ou{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:{value:ot(0,"Select next sticky scroll line"),original:"Select next sticky scroll line"},precondition:YC.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:rtt,primary:18}})}runEditorCommand(t,i){var e;null===(e=ott.get(i))||void 0===e||e.focusNext()}}),$h(class extends ou{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:{value:ot(0,"Go to focused sticky scroll line"),original:"Go to focused sticky scroll line"},precondition:YC.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:rtt,primary:3}})}runEditorCommand(t,i){var e;null===(e=ott.get(i))||void 0===e||e.goToFocused()}}),$h(class extends ou{constructor(){super({id:"editor.action.selectEditor",title:{value:ot(0,"Select Editor"),original:"Select Editor"},precondition:YC.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:rtt,primary:9}})}runEditorCommand(t,i){var e;null===(e=ott.get(i))||void 0===e||e.selectEditor()}});var htt,ctt=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},att=function(t,i){return function(e,s){i(e,s,t)}};class ltt{constructor(t,i,e,s,n,o){this.range=t,this.insertText=i,this.filterText=e,this.additionalTextEdits=s,this.command=n,this.completion=o}}let utt=class extends ee{constructor(t,i,e,s,n,o){super(n.disposable),this.model=t,this.line=i,this.word=e,this.completionModel=s,this._suggestMemoryService=o}canBeReused(t,i,e){return this.model===t&&this.line===i&&this.word.word.length>0&&this.word.startColumn===e.startColumn&&this.word.endColumn=0&&e.resolve(ke.None)}return i}};utt=ctt([att(5,e6)],utt);let dtt=class{constructor(t,i,e,s){this._getEditorOption=t,this._languageFeatureService=i,this._clipboardService=e,this._suggestMemoryService=s}async provideInlineCompletions(t,i,e,s){var n;if(e.selectedSuggestionInfo)return;const o=this._getEditorOption(88,t);if(L3.isAllOff(o))return;t.tokenization.tokenizeIfCheap(i.lineNumber);const r=t.tokenization.getLineTokens(i.lineNumber),h=r.getStandardTokenType(r.findTokenIndexAtOffset(Math.max(i.column-1-1,0)));if("inline"!==L3.valueFor(o,h))return;let c,a,l=t.getWordAtPosition(i);if((null==l?void 0:l.word)||(c=this._getTriggerCharacterInfo(t,i)),!(null==l?void 0:l.word)&&!c)return;if(l||(l=t.getWordUntilPosition(i)),l.endColumn!==i.column)return;const u=t.getValueInRange(new Ms(i.lineNumber,1,i.lineNumber,i.column));if(!c&&(null===(n=this._lastResult)||void 0===n?void 0:n.canBeReused(t,i.lineNumber,l))){const t=new l6(u,i.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=t,this._lastResult.acquire(),a=this._lastResult}else{const e=await E3(this._languageFeatureService.completionProvider,t,i,new S3(void 0,void 0,null==c?void 0:c.providers),c&&{triggerKind:1,triggerCharacter:c.ch},s);let n;e.needsClipboard&&(n=await this._clipboardService.readText());const o=new u6(e.items,i.column,new l6(u,0),a6.None,this._getEditorOption(117,t),this._getEditorOption(111,t),{boostFullMatch:!1,firstMatchCanBeWeak:!1},n);a=new utt(t,i.lineNumber,l,o,e,this._suggestMemoryService)}return this._lastResult=a,a}handleItemDidShow(t,i){i.completion.resolve(ke.None)}freeInlineCompletions(t){t.release()}_getTriggerCharacterInfo(t,i){var e;const s=t.getValueInRange(Ms.fromPositions({lineNumber:i.lineNumber,column:i.column-1},i)),n=new Set;for(const i of this._languageFeatureService.completionProvider.all(t))(null===(e=i.triggerCharacters)||void 0===e?void 0:e.includes(s))&&n.add(i);if(0!==n.size)return{providers:n,ch:s}}};dtt=ctt([att(1,xg),att(2,yH),att(3,e6)],dtt);let ftt=htt=class{constructor(t,i,e,s){if(1==++htt._counter){const n=s.createInstance(dtt,((i,s)=>{var n;return(null!==(n=e.listCodeEditors().find((t=>t.getModel()===s)))&&void 0!==n?n:t).getOption(i)}));htt._disposable=i.inlineCompletionsProvider.register("*",n)}}dispose(){var t;0==--htt._counter&&(null===(t=htt._disposable)||void 0===t||t.dispose(),htt._disposable=void 0)}};ftt._counter=0,ftt=htt=ctt([att(1,xg),att(2,fr),att(3,ur)],ftt),lu("suggest.inlineCompletionsProvider",ftt,0),cu(class extends su{constructor(){super({id:"editor.action.forceRetokenize",label:ot(0,"Developer: Force Retokenize"),alias:"Developer: Force Retokenize",precondition:void 0})}run(t,i){if(!i.hasModel())return;const e=i.getModel();e.tokenization.resetTokenization();const s=new re;e.tokenization.forceTokenization(e.getLineCount()),s.stop(),console.log(`tokenization took ${s.elapsed()}`)}});class ptt extends Ph{constructor(){super({id:ptt.ID,title:{value:ot(0,"Toggle Tab Key Moves Focus"),original:"Toggle Tab Key Moves Focus"},precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},f1:!0})}run(){const t=!Gm.getTabFocusMode();Gm.setTabFocusMode(t),Pm(ot(0,t?"Pressing Tab will now move focus to the next focusable element":"Pressing Tab will now insert the tab character"))}}ptt.ID="editor.action.toggleTabFocusMode",$h(ptt);let gtt=class extends te{get enabled(){return this._enabled}set enabled(t){t?(this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1):(this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0),this._enabled=t}constructor(t,i,e={},s){var n;super(),this._link=i,this._enabled=!0,this.el=Ol(t,$l("a.monaco-link",{tabIndex:null!==(n=i.tabIndex)&&void 0!==n?n:0,href:i.href,title:i.title},i.label)),this.el.setAttribute("role","button");const o=this._register(new Bk(this.el,"click")),r=this._register(new Bk(this.el,"keypress")),h=he.chain(r.event,(t=>t.map((t=>new Qh(t))).filter((t=>3===t.keyCode)))),c=this._register(new Bk(this.el,ow.Tap)).event;this._register(rw.addTarget(this.el));const a=he.any(o.event,h,c);this._register(a((t=>{this.enabled&&(Fl(t,!0),(null==e?void 0:e.opener)?e.opener(this._link.href):s.open(this._link.href,{allowCommands:!0}))}))),this.enabled=!0}};gtt=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(3,dP)],gtt);var mtt=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},wtt=function(t,i){return function(e,s){i(e,s,t)}};let vtt=class extends te{constructor(t,i){super(),this._editor=t,this.instantiationService=i,this.banner=this._register(this.instantiationService.createInstance(btt))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(t){this.banner.show({...t,onClose:()=>{var i;this.hide(),null===(i=t.onClose)||void 0===i||i.call(t)}}),this._editor.setBanner(this.banner.element,26)}};vtt=mtt([wtt(1,ur)],vtt);let btt=class extends te{constructor(t){super(),this.instantiationService=t,this.markdownRenderer=this.instantiationService.createInstance(lQ,{}),this.element=$l("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(t){return t.ariaLabel?t.ariaLabel:"string"==typeof t.message?t.message:void 0}getBannerMessage(t){if("string"==typeof t){const i=$l("span");return i.innerText=t,i}return this.markdownRenderer.render(t).element}clear(){za(this.element)}show(t){za(this.element);const i=this.getAriaLabel(t);i&&this.element.setAttribute("aria-label",i);const e=Ol(this.element,$l("div.icon-container"));e.setAttribute("aria-hidden","true"),t.icon&&e.appendChild($l(`div${Cr.asCSSSelector(t.icon)}`));const s=Ol(this.element,$l("div.message-container"));if(s.setAttribute("aria-hidden","true"),s.appendChild(this.getBannerMessage(t.message)),this.messageActionsContainer=Ol(this.element,$l("div.message-actions-container")),t.actions)for(const i of t.actions)this._register(this.instantiationService.createInstance(gtt,this.messageActionsContainer,{...i,tabIndex:-1},{}));const n=Ol(this.element,$l("div.action-container"));this.actionBar=this._register(new YB(n)),this.actionBar.push(this._register(new mr("banner.close","Close Banner",Cr.asClassName(Gz),!0,(()=>{"function"==typeof t.onClose&&t.onClose()}))),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};btt=mtt([wtt(0,ur)],btt);var ytt=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},ktt=function(t,i){return function(e,s){i(e,s,t)}};const xtt=Hz("extensions-warning-message",Os.warning,ot(0,"Icon shown with a warning message in the extensions editor."));let Ctt=class extends te{constructor(t,i,e,s){super(),this._editor=t,this._editorWorkerService=i,this._workspaceTrustService=e,this._highlighter=null,this._bannerClosed=!1,this._updateState=t=>{if(t&&t.hasMore){if(this._bannerClosed)return;const i=Math.max(t.ambiguousCharacterCount,t.nonBasicAsciiCharacterCount,t.invisibleCharacterCount);let e;if(t.nonBasicAsciiCharacterCount>=i)e={message:ot(0,"This document contains many non-basic ASCII unicode characters"),command:new _tt};else if(t.ambiguousCharacterCount>=i)e={message:ot(0,"This document contains many ambiguous unicode characters"),command:new Ott};else{if(!(t.invisibleCharacterCount>=i))throw new Error("Unreachable");e={message:ot(0,"This document contains many invisible unicode characters"),command:new Itt}}this._bannerController.show({id:"unicodeHighlightBanner",message:e.message,icon:xtt,actions:[{label:e.command.shortLabel,href:`command:${e.command.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(s.createInstance(vtt,t)),this._register(this._editor.onDidChangeModel((()=>{this._bannerClosed=!1,this._updateHighlighter()}))),this._options=t.getOption(124),this._register(e.onDidChangeTrust((()=>{this._updateHighlighter()}))),this._register(t.onDidChangeConfiguration((i=>{i.hasChanged(124)&&(this._options=t.getOption(124),this._updateHighlighter())}))),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const t=function(t,i){return{nonBasicASCII:i.nonBasicASCII===Ci?!t:i.nonBasicASCII,ambiguousCharacters:i.ambiguousCharacters,invisibleCharacters:i.invisibleCharacters,includeComments:i.includeComments===Ci?!t:i.includeComments,includeStrings:i.includeStrings===Ci?!t:i.includeStrings,allowedCharacters:i.allowedCharacters,allowedLocales:i.allowedLocales}}(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([t.nonBasicASCII,t.ambiguousCharacters,t.invisibleCharacters].every((t=>!1===t)))return;const i={nonBasicASCII:t.nonBasicASCII,ambiguousCharacters:t.ambiguousCharacters,invisibleCharacters:t.invisibleCharacters,includeComments:t.includeComments,includeStrings:t.includeStrings,allowedCodePoints:Object.keys(t.allowedCharacters).map((t=>t.codePointAt(0))),allowedLocales:Object.keys(t.allowedLocales).map((t=>"_os"===t?(new Intl.NumberFormat).resolvedOptions().locale:"_vscode"===t?Tt:t))};this._highlighter=this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?new Stt(this._editor,i,this._updateState,this._editorWorkerService):new Dtt(this._editor,i,this._updateState)}getDecorationInfo(t){return this._highlighter?this._highlighter.getDecorationInfo(t):null}};Ctt.ID="editor.contrib.unicodeHighlighter",Ctt=ytt([ktt(1,vP),ktt(2,cI),ktt(3,ur)],Ctt);let Stt=class extends te{constructor(t,i,e,s){super(),this._editor=t,this._options=i,this._updateState=e,this._editorWorkerService=s,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new pc((()=>this._update()),250)),this._register(this._editor.onDidChangeModelContent((()=>{this._updateSoon.schedule()}))),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII())return void this._decorations.clear();const t=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then((i=>{if(this._model.isDisposed())return;if(this._model.getVersionId()!==t)return;this._updateState(i);const e=[];if(!i.hasMore)for(const t of i.ranges)e.push({range:t,options:Ftt.instance.getDecorationFromOptions(this._options)});this._decorations.set(e)}))}getDecorationInfo(t){if(!this._decorations.has(t))return null;const i=this._editor.getModel();return RF(i,t)?{reason:Ltt(i.getValueInRange(t.range),this._options),inComment:OF(i,t),inString:IF(i,t)}:null}};Stt=ytt([ktt(3,vP)],Stt);class Dtt extends te{constructor(t,i,e){super(),this._editor=t,this._options=i,this._updateState=e,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new pc((()=>this._update()),250)),this._register(this._editor.onDidLayoutChange((()=>{this._updateSoon.schedule()}))),this._register(this._editor.onDidScrollChange((()=>{this._updateSoon.schedule()}))),this._register(this._editor.onDidChangeHiddenAreas((()=>{this._updateSoon.schedule()}))),this._register(this._editor.onDidChangeModelContent((()=>{this._updateSoon.schedule()}))),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII())return void this._decorations.clear();const t=this._editor.getVisibleRanges(),i=[],e={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const i of t){const t=Xf.computeUnicodeHighlights(this._model,this._options,i);for(const i of t.ranges)e.ranges.push(i);e.ambiguousCharacterCount+=e.ambiguousCharacterCount,e.invisibleCharacterCount+=e.invisibleCharacterCount,e.nonBasicAsciiCharacterCount+=e.nonBasicAsciiCharacterCount,e.hasMore=e.hasMore||t.hasMore}if(!e.hasMore)for(const t of e.ranges)i.push({range:t,options:Ftt.instance.getDecorationFromOptions(this._options)});this._updateState(e),this._decorations.set(i)}getDecorationInfo(t){if(!this._decorations.has(t))return null;const i=this._editor.getModel(),e=i.getValueInRange(t.range);return RF(i,t)?{reason:Ltt(e,this._options),inComment:OF(i,t),inString:IF(i,t)}:null}}let Ett=class{constructor(t,i,e){this._editor=t,this._languageService=i,this._openerService=e,this.hoverOrdinal=5}computeSync(t,i){if(!this._editor.hasModel()||1!==t.type)return[];const e=this._editor.getModel(),s=this._editor.getContribution(Ctt.ID);if(!s)return[];const n=[],o=new Set;let r=300;for(const t of i){const i=s.getDecorationInfo(t);if(!i)continue;const h=e.getValueInRange(t.range).codePointAt(0),c=Mtt(h);let a;switch(i.reason.kind){case 0:a=Eo(i.reason.confusableWith)?ot(0,"The character {0} could be confused with the ASCII character {1}, which is more common in source code.",c,Mtt(i.reason.confusableWith.codePointAt(0))):ot(0,"The character {0} could be confused with the character {1}, which is more common in source code.",c,Mtt(i.reason.confusableWith.codePointAt(0)));break;case 1:a=ot(0,"The character {0} is invisible.",c);break;case 2:a=ot(0,"The character {0} is not a basic ASCII character.",c)}if(o.has(a))continue;o.add(a);const l={codePoint:h,reason:i.reason,inComment:i.inComment,inString:i.inString},u=ot(0,"Adjust settings"),d=`command:${Ntt.ID}?${encodeURIComponent(JSON.stringify(l))}`,f=new N_("",!0).appendMarkdown(a).appendText(" ").appendLink(d,u);n.push(new UX(this,t.range,[f],!1,r++))}return n}renderHoverParts(t,i){return KX(t,i,this._editor,this._languageService,this._openerService)}};function Att(t){return`U+${t.toString(16).padStart(4,"0")}`}function Mtt(t){let i=`\`${Att(t)}\``;return Po.isInvisibleCharacter(t)||(i+=` "${function(t){return 96===t?"`` ` ``":"`"+String.fromCodePoint(t)+"`"}(t)}"`),i}function Ltt(t,i){return Xf.computeUnicodeHighlightReason(t,i)}Ett=ytt([ktt(1,yd),ktt(2,dP)],Ett);class Ftt{constructor(){this.map=new Map}getDecorationFromOptions(t){return this.getDecoration(!t.includeComments,!t.includeStrings)}getDecoration(t,i){const e=`${t}${i}`;let s=this.map.get(e);return s||(s=AL.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:t,hideInStringTokens:i}),this.map.set(e,s)),s}}Ftt.instance=new Ftt;class Ttt extends su{constructor(){super({id:Ott.ID,label:ot(0,"Disable highlighting of characters in comments"),alias:"Disable highlighting of characters in comments",precondition:void 0}),this.shortLabel=ot(0,"Disable Highlight In Comments")}async run(t,i,e){const s=null==t?void 0:t.get(pd);s&&this.runAction(s)}async runAction(t){await t.updateValue(Mi,!1,2)}}class Rtt extends su{constructor(){super({id:Ott.ID,label:ot(0,"Disable highlighting of characters in strings"),alias:"Disable highlighting of characters in strings",precondition:void 0}),this.shortLabel=ot(0,"Disable Highlight In Strings")}async run(t,i,e){const s=null==t?void 0:t.get(pd);s&&this.runAction(s)}async runAction(t){await t.updateValue(Li,!1,2)}}class Ott extends su{constructor(){super({id:Ott.ID,label:ot(0,"Disable highlighting of ambiguous characters"),alias:"Disable highlighting of ambiguous characters",precondition:void 0}),this.shortLabel=ot(0,"Disable Ambiguous Highlight")}async run(t,i,e){const s=null==t?void 0:t.get(pd);s&&this.runAction(s)}async runAction(t){await t.updateValue(Ai,!1,2)}}Ott.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters";class Itt extends su{constructor(){super({id:Itt.ID,label:ot(0,"Disable highlighting of invisible characters"),alias:"Disable highlighting of invisible characters",precondition:void 0}),this.shortLabel=ot(0,"Disable Invisible Highlight")}async run(t,i,e){const s=null==t?void 0:t.get(pd);s&&this.runAction(s)}async runAction(t){await t.updateValue(Di,!1,2)}}Itt.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters";class _tt extends su{constructor(){super({id:_tt.ID,label:ot(0,"Disable highlighting of non basic ASCII characters"),alias:"Disable highlighting of non basic ASCII characters",precondition:void 0}),this.shortLabel=ot(0,"Disable Non ASCII Highlight")}async run(t,i,e){const s=null==t?void 0:t.get(pd);s&&this.runAction(s)}async runAction(t){await t.updateValue(Ei,!1,2)}}_tt.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters";class Ntt extends su{constructor(){super({id:Ntt.ID,label:ot(0,"Show Exclude Options"),alias:"Show Exclude Options",precondition:void 0})}async run(t,i,e){const{codePoint:s,reason:n,inString:o,inComment:r}=e,h=String.fromCodePoint(s),c=t.get(Oj),a=t.get(pd),l=[];if(0===n.kind)for(const t of n.notAmbiguousInLocales)l.push({label:ot(0,'Allow unicode characters that are more common in the language "{0}".',t),run:async()=>{Btt(a,[t])}});if(l.push({label:function(t){return Po.isInvisibleCharacter(t)?ot(0,"Exclude {0} (invisible character) from being highlighted",Att(t)):ot(0,"Exclude {0} from being highlighted",`${Att(t)} "${h}"`)}(s),run:()=>async function(t,i){const e=t.getValue(Si);let s;s="object"==typeof e&&e?e:{};for(const t of i)s[String.fromCodePoint(t)]=!0;await t.updateValue(Si,s,2)}(a,[s])}),r){const t=new Ttt;l.push({label:t.label,run:async()=>t.runAction(a)})}else if(o){const t=new Rtt;l.push({label:t.label,run:async()=>t.runAction(a)})}if(0===n.kind){const t=new Ott;l.push({label:t.label,run:async()=>t.runAction(a)})}else if(1===n.kind){const t=new Itt;l.push({label:t.label,run:async()=>t.runAction(a)})}else if(2===n.kind){const t=new _tt;l.push({label:t.label,run:async()=>t.runAction(a)})}else!function(t){throw new Error(`Unexpected value: ${t}`)}(n);const u=await c.pick(l,{title:ot(0,"Configure Unicode Highlight Options")});u&&await u.run()}}async function Btt(t,i){var e;const s=null===(e=t.inspect(Fi).user)||void 0===e?void 0:e.value;let n;n="object"==typeof s&&s?Object.assign({},s):{};for(const t of i)n[t]=!0;await t.updateValue(Fi,n,2)}Ntt.ID="editor.action.unicodeHighlight.showExcludeOptions",cu(Ott),cu(Itt),cu(_tt),cu(Ntt),lu(Ctt.ID,Ctt,1),xX.register(Ett);var Ptt=function(t,i){return function(e,s){i(e,s,t)}};const $tt="ignoreUnusualLineTerminators";let Wtt=class extends te{constructor(t,i,e){super(),this._editor=t,this._dialogService=i,this._codeEditorService=e,this._isPresentingDialog=!1,this._config=this._editor.getOption(125),this._register(this._editor.onDidChangeConfiguration((t=>{t.hasChanged(125)&&(this._config=this._editor.getOption(125),this._checkForUnusualLineTerminators())}))),this._register(this._editor.onDidChangeModel((()=>{this._checkForUnusualLineTerminators()}))),this._register(this._editor.onDidChangeModelContent((t=>{t.isUndoing||this._checkForUnusualLineTerminators()}))),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if("off"===this._config)return;if(!this._editor.hasModel())return;const t=this._editor.getModel();if(!t.mightContainUnusualLineTerminators())return;const i=function(t,i){return t.getModelProperty(i.uri,$tt)}(this._codeEditorService,t);if(!0===i)return;if(this._editor.getOption(90))return;if("auto"===this._config)return void t.removeUnusualLineTerminators(this._editor.getSelections());if(this._isPresentingDialog)return;let e;try{this._isPresentingDialog=!0,e=await this._dialogService.confirm({title:ot(0,"Unusual Line Terminators"),message:ot(0,"Detected unusual line terminators"),detail:ot(0,"The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.",bA(t.uri)),primaryButton:ot(0,"&&Remove Unusual Line Terminators"),cancelButton:ot(0,"Ignore")})}finally{this._isPresentingDialog=!1}e.confirmed?t.removeUnusualLineTerminators(this._editor.getSelections()):function(t,i){t.setModelProperty(i.uri,$tt,!0)}(this._codeEditorService,t)}};Wtt.ID="editor.contrib.unusualLineTerminatorsDetector",Wtt=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Ptt(1,JT),Ptt(2,fr)],Wtt),lu(Wtt.ID,Wtt,1);var jtt,ztt,Htt=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},Vtt=function(t,i){return function(e,s){i(e,s,t)}};const Utt=new ch("hasWordHighlights",!1);function qtt(t,i,e,s){return uc(t.ordered(i).map((t=>()=>Promise.resolve(t.provideDocumentHighlights(i,e,s)).then(void 0,Pi))),b).then((t=>{if(t){const e=new zp;return e.set(i.uri,t),e}return new zp}))}class Ktt{constructor(t,i,e){this._model=t,this._selection=i,this._wordSeparators=e,this._wordRange=this._getCurrentWordRange(t,i),this._result=null}get result(){return this._result||(this._result=nc((t=>this._compute(this._model,this._selection,this._wordSeparators,t)))),this._result}_getCurrentWordRange(t,i){const e=t.getWordAtPosition(i.getPosition());return e?new Ms(i.startLineNumber,e.startColumn,i.startLineNumber,e.endColumn):null}isValid(t,i,e){const s=i.startLineNumber,n=i.startColumn,o=i.endColumn,r=this._getCurrentWordRange(t,i);let h=Boolean(this._wordRange&&this._wordRange.equalsRange(r));for(let t=0,i=e.length;!h&&t=o&&(h=!0)}return h}cancel(){this.result.cancel()}}class Gtt extends Ktt{constructor(t,i,e,s){super(t,i,e),this._providers=s}_compute(t,i,e,s){return qtt(this._providers,t,i.getPosition(),s).then((t=>t||new zp))}}class Ztt extends Ktt{constructor(t,i,e,s,n){super(t,i,e),this._providers=s,this._otherModels=n}_compute(t,i,e,s){return function(t,i,e,s,n,o){return uc(t.ordered(i).map((t=>()=>{const s=o.filter((i=>XR(t.selector,i.uri,i.getLanguageId(),!0,void 0,void 0)>0));return Promise.resolve(t.provideMultiDocumentHighlights(i,e,s,n)).then(void 0,Pi)})),(t=>t instanceof zp&&t.size>0))}(this._providers,t,i.getPosition(),0,s,this._otherModels).then((t=>t||new zp))}}class Qtt extends Ktt{constructor(t,i,e,s,n){super(t,i,s),this._otherModels=n,this._selectionIsEmpty=i.isEmpty(),this._word=e}_compute(t,i,e,s){return ac(250,s).then((()=>{const s=new zp;let n;if(n=this._word?this._word:t.getWordAtPosition(i.getPosition()),!n)return new zp;const o=[t,...this._otherModels];for(const t of o){if(t.isDisposed())continue;const i=t.findMatches(n.word,!0,!1,!0,e,!1).map((t=>({range:t.range,kind:js.Text})));i&&s.set(t.uri,i)}return s}))}isValid(t,i,e){const s=i.isEmpty();return this._selectionIsEmpty===s&&super.isValid(t,i,e)}}ru("_executeDocumentHighlights",(async(t,i,e)=>{const s=t.get(xg),n=await qtt(s.documentHighlightProvider,i,e,ke.None);return null==n?void 0:n.get(i.uri)}));let Jtt=jtt=class{constructor(t,i,e,s,n){this.toUnhook=new Xi,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new zp,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=t,this.providers=i,this.multiDocumentProviders=e,this.codeEditorService=n,this._hasWordHighlights=Utt.bindTo(s),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(80),this.model=this.editor.getModel(),this.toUnhook.add(t.onDidChangeCursorPosition((t=>{this._ignorePositionChangeEvent||"off"!==this.occurrencesHighlight&&this._onPositionChanged(t)}))),this.toUnhook.add(t.onDidChangeModelContent((()=>{this._stopAll()}))),this.toUnhook.add(t.onDidChangeModel((t=>{!t.newModelUrl&&t.oldModelUrl?this._stopSingular():jtt.query&&this._run()}))),this.toUnhook.add(t.onDidChangeConfiguration((()=>{const t=this.editor.getOption(80);this.occurrencesHighlight!==t&&(this.occurrencesHighlight=t,this._stopAll())}))),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,jtt.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(){"off"!==this.occurrencesHighlight&&this._run()}_getSortedHighlights(){return this.decorations.getRanges().sort(Ms.compareRangesUsingStarts)}moveNext(){const t=this._getSortedHighlights(),i=t.findIndex((t=>t.containsPosition(this.editor.getPosition()))),e=(i+1)%t.length,s=t[e];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(s.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(s);const i=this._getWord();i&&Pm(`${this.editor.getModel().getLineContent(s.startLineNumber)}, ${e+1} of ${t.length} for '${i.word}'`)}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const t=this._getSortedHighlights(),i=t.findIndex((t=>t.containsPosition(this.editor.getPosition()))),e=(i-1+t.length)%t.length,s=t[e];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(s.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(s);const i=this._getWord();i&&Pm(`${this.editor.getModel().getLineContent(s.startLineNumber)}, ${e+1} of ${t.length} for '${i.word}'`)}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const t=jtt.storedDecorations.get(this.editor.getModel().uri);t&&(this.editor.removeDecorations(t),jtt.storedDecorations.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(){const t=this.codeEditorService.listCodeEditors();for(const i of t){if(!i.hasModel())continue;const t=jtt.storedDecorations.get(i.getModel().uri);if(!t)continue;i.removeDecorations(t),jtt.storedDecorations.delete(i.getModel().uri);const e=Ytt.get(i);(null==e?void 0:e.wordHighlighter)&&e.wordHighlighter.decorations.length>0&&(e.wordHighlighter.decorations.clear(),e.wordHighlighter._hasWordHighlights.set(!1))}}_stopSingular(){var t,i,e,s;this._removeSingleDecorations(),this.editor.hasWidgetFocus()&&((null===(t=this.editor.getModel())||void 0===t?void 0:t.uri.scheme)!==ka.vscodeNotebookCell&&(null===(e=null===(i=jtt.query)||void 0===i?void 0:i.modelInfo)||void 0===e?void 0:e.model.uri.scheme)!==ka.vscodeNotebookCell?(jtt.query=null,this._run()):(null===(s=jtt.query)||void 0===s?void 0:s.modelInfo)&&(jtt.query.modelInfo=null)),-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),null!==this.workerRequest&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_stopAll(){this._removeAllDecorations(),-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),null!==this.workerRequest&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(t){var i;"off"===this.occurrencesHighlight||3!==t.reason&&(null===(i=this.editor.getModel())||void 0===i?void 0:i.uri.scheme)!==ka.vscodeNotebookCell?this._stopAll():this._run()}_getWord(){const t=this.editor.getSelection(),i=t.startLineNumber,e=t.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber:i,column:e})}getOtherModelsToHighlight(t){if(!t)return[];if(t.uri.scheme===ka.vscodeNotebookCell){const i=[],e=this.codeEditorService.listCodeEditors();for(const s of e){const e=s.getModel();e&&e!==t&&e.uri.scheme===ka.vscodeNotebookCell&&i.push(e)}return i}const i=[],e=this.codeEditorService.listCodeEditors();for(const s of e){if(!EK(s))continue;const e=s.getModel();e&&t===e.modified&&i.push(e.modified)}if(i.length)return i;if("singleFile"===this.occurrencesHighlight)return[];for(const s of e){const e=s.getModel();e&&e!==t&&i.push(e)}return i}_run(){var t,i;let e;if(this.editor.hasWidgetFocus()){const t=this.editor.getSelection();if(!t||t.startLineNumber!==t.endLineNumber)return void this._stopAll();const i=t.startColumn,s=t.endColumn,n=this._getWord();if(!n||n.startColumn>i||n.endColumn{e===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=t||[],this._beginRenderDecorations())}),Bi)}}computeWithModel(t,i,e,s){return s.length?function(t,i,e,s,n,o){return t.has(i)?new Ztt(i,e,n,t,o):new Qtt(i,e,s,n,o)}(this.multiDocumentProviders,t,i,e,this.editor.getOption(129),s):function(t,i,e,s,n){return t.has(i)?new Gtt(i,e,n,t):new Qtt(i,e,s,n,[])}(this.providers,t,i,e,this.editor.getOption(129))}_beginRenderDecorations(){const t=(new Date).getTime(),i=this.lastCursorPositionChangeTime+250;t>=i?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout((()=>{this.renderDecorations()}),i-t)}renderDecorations(){var t,i,e;this.renderDecorationsTimer=-1;const s=this.codeEditorService.listCodeEditors();for(const o of s){const s=Ytt.get(o);if(!s)continue;const r=[],h=null===(t=o.getModel())||void 0===t?void 0:t.uri;if(h&&this.workerRequestValue.has(h)){const t=jtt.storedDecorations.get(h),c=this.workerRequestValue.get(h);if(c)for(const t of c)r.push({range:t.range,options:(n=t.kind,n===js.Write?x7:n===js.Text?C7:E7)});let a=[];o.changeDecorations((i=>{a=i.deltaDecorations(null!=t?t:[],r)})),jtt.storedDecorations=jtt.storedDecorations.set(h,a),r.length>0&&(null===(i=s.wordHighlighter)||void 0===i||i.decorations.set(r),null===(e=s.wordHighlighter)||void 0===e||e._hasWordHighlights.set(!0))}}var n}dispose(){this._stopSingular(),this.toUnhook.dispose()}};Jtt.storedDecorations=new zp,Jtt.query=null,Jtt=jtt=Htt([Vtt(4,fr)],Jtt);let Ytt=ztt=class extends te{static get(t){return t.getContribution(ztt.ID)}constructor(t,i,e,s){super(),this._wordHighlighter=null;const n=()=>{t.hasModel()&&!t.getModel().isTooLargeForTokenization()&&(this._wordHighlighter=new Jtt(t,e.documentHighlightProvider,e.multiDocumentHighlightProvider,i,s))};this._register(t.onDidChangeModel((()=>{this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),n()}))),n()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!(!this._wordHighlighter||!this._wordHighlighter.hasDecorations())}moveNext(){var t;null===(t=this._wordHighlighter)||void 0===t||t.moveNext()}moveBack(){var t;null===(t=this._wordHighlighter)||void 0===t||t.moveBack()}restoreViewState(t){this._wordHighlighter&&t&&this._wordHighlighter.restore()}dispose(){this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),super.dispose()}};Ytt.ID="editor.contrib.wordHighlighter",Ytt=ztt=Htt([Vtt(1,ah),Vtt(2,xg),Vtt(3,fr)],Ytt);class Xtt extends su{constructor(t,i){super(i),this._isNext=t}run(t,i){const e=Ytt.get(i);e&&(this._isNext?e.moveNext():e.moveBack())}}lu(Ytt.ID,Ytt,0),cu(class extends Xtt{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:ot(0,"Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:Utt,kbOpts:{kbExpr:YC.editorTextFocus,primary:65,weight:100}})}}),cu(class extends Xtt{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:ot(0,"Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:Utt,kbOpts:{kbExpr:YC.editorTextFocus,primary:1089,weight:100}})}}),cu(class extends su{constructor(){super({id:"editor.action.wordHighlight.trigger",label:ot(0,"Trigger Symbol Highlight"),alias:"Trigger Symbol Highlight",precondition:Utt.toNegated(),kbOpts:{kbExpr:YC.editorTextFocus,primary:0,weight:100}})}run(t,i,e){const s=Ytt.get(i);s&&s.restoreViewState(!0)}});class tit extends eu{constructor(t){super(t),this._inSelectionMode=t.inSelectionMode,this._wordNavigationType=t.wordNavigationType}runEditorCommand(t,i,e){if(!i.hasModel())return;const s=If(i.getOption(129)),n=i.getModel(),o=i.getSelections().map((t=>{const i=new As(t.positionLineNumber,t.positionColumn),e=this._move(s,n,i,this._wordNavigationType);return this._moveTo(t,e,this._inSelectionMode)}));if(n.pushStackElement(),i._getViewModel().setCursorStates("moveWordCommand",3,o.map((t=>gC.fromModelSelection(t)))),1===o.length){const t=new As(o[0].positionLineNumber,o[0].positionColumn);i.revealPosition(t,0)}}_moveTo(t,i,e){return e?new Ls(t.selectionStartLineNumber,t.selectionStartColumn,i.lineNumber,i.column):new Ls(i.lineNumber,i.column,i.lineNumber,i.column)}}class iit extends tit{_move(t,i,e,s){return FC.moveWordLeft(t,i,e,s)}}class eit extends tit{_move(t,i,e,s){return FC.moveWordRight(t,i,e,s)}}class sit extends eu{constructor(t){super(t),this._whitespaceHeuristics=t.whitespaceHeuristics,this._wordNavigationType=t.wordNavigationType}runEditorCommand(t,i,e){const s=t.get(Xd);if(!i.hasModel())return;const n=If(i.getOption(129)),o=i.getModel(),r=i.getSelections(),h=i.getOption(6),c=i.getOption(11),a=s.getLanguageConfiguration(o.getLanguageId()).getAutoClosingPairs(),l=i._getViewModel(),u=r.map((t=>{const e=this._delete({wordSeparators:n,model:o,selection:t,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:i.getOption(9),autoClosingBrackets:h,autoClosingQuotes:c,autoClosingPairs:a,autoClosedCharacters:l.getCursorAutoClosedCharacters()},this._wordNavigationType);return new xC(e,"")}));i.pushUndoStop(),i.executeCommands(this.id,u),i.pushUndoStop()}}class nit extends sit{_delete(t,i){return FC.deleteWordLeft(t,i)||new Ms(1,1,1,1)}}class oit extends sit{_delete(t,i){const e=FC.deleteWordRight(t,i);if(e)return e;const s=t.model.getLineCount(),n=t.model.getLineMaxColumn(s);return new Ms(s,n,s,n)}}hu(new class extends iit{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}),hu(new class extends iit{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}),hu(new class extends iit{constructor(){var t;super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:zr.and(YC.textInputFocus,null===(t=zr.and(Qm,bW))||void 0===t?void 0:t.negate()),primary:2063,mac:{primary:527},weight:100}})}}),hu(new class extends iit{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}),hu(new class extends iit{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}),hu(new class extends iit{constructor(){var t;super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:zr.and(YC.textInputFocus,null===(t=zr.and(Qm,bW))||void 0===t?void 0:t.negate()),primary:3087,mac:{primary:1551},weight:100}})}}),hu(new class extends eit{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}),hu(new class extends eit{constructor(){var t;super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:zr.and(YC.textInputFocus,null===(t=zr.and(Qm,bW))||void 0===t?void 0:t.negate()),primary:2065,mac:{primary:529},weight:100}})}}),hu(new class extends eit{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}),hu(new class extends eit{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}),hu(new class extends eit{constructor(){var t;super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:zr.and(YC.textInputFocus,null===(t=zr.and(Qm,bW))||void 0===t?void 0:t.negate()),primary:3089,mac:{primary:1553},weight:100}})}}),hu(new class extends eit{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}),hu(new class extends iit{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(t,i,e,s){return super._move(If(_i.wordSeparators.defaultValue),i,e,s)}}),hu(new class extends iit{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(t,i,e,s){return super._move(If(_i.wordSeparators.defaultValue),i,e,s)}}),hu(new class extends eit{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(t,i,e,s){return super._move(If(_i.wordSeparators.defaultValue),i,e,s)}}),hu(new class extends eit{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(t,i,e,s){return super._move(If(_i.wordSeparators.defaultValue),i,e,s)}}),hu(new class extends nit{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:YC.writable})}}),hu(new class extends nit{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:YC.writable})}}),hu(new class extends nit{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:YC.writable,kbOpts:{kbExpr:YC.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}),hu(new class extends oit{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:YC.writable})}}),hu(new class extends oit{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:YC.writable})}}),hu(new class extends oit{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:YC.writable,kbOpts:{kbExpr:YC.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}),cu(class extends su{constructor(){super({id:"deleteInsideWord",precondition:YC.writable,label:ot(0,"Delete Word"),alias:"Delete Word"})}run(t,i,e){if(!i.hasModel())return;const s=If(i.getOption(129)),n=i.getModel(),o=i.getSelections().map((t=>{const i=FC.deleteInsideWord(s,n,t);return new xC(i,"")}));i.pushUndoStop(),i.executeCommands(this.id,o),i.pushUndoStop()}});class rit extends tit{_move(t,i,e,s){return TC.moveWordPartLeft(t,i,e)}}Dr.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft"),Dr.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class hit extends tit{_move(t,i,e,s){return TC.moveWordPartRight(t,i,e)}}hu(new class extends sit{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:YC.writable,kbOpts:{kbExpr:YC.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(t,i){return TC.deleteWordPartLeft(t)||new Ms(1,1,1,1)}}),hu(new class extends sit{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:YC.writable,kbOpts:{kbExpr:YC.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(t,i){const e=TC.deleteWordPartRight(t);if(e)return e;const s=t.model.getLineCount(),n=t.model.getLineMaxColumn(s);return new Ms(s,n,s,n)}}),hu(new class extends rit{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:YC.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}),hu(new class extends rit{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:YC.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}),hu(new class extends hit{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:YC.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}),hu(new class extends hit{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:YC.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}});class cit extends te{constructor(t){super(),this.editor=t,this._register(this.editor.onDidAttemptReadOnlyEdit((()=>this._onDidAttemptReadOnlyEdit())))}_onDidAttemptReadOnlyEdit(){const t=gQ.get(this.editor);if(t&&this.editor.hasModel()){let i=this.editor.getOptions().get(91);i||(i=new N_(ot(0,this.editor.isSimpleWidget?"Cannot edit in read-only input":"Cannot edit in read-only editor"))),t.showMessage(i,this.editor.getPosition())}}}cit.ID="editor.contrib.readOnlyMessageController",lu(cit.ID,cit,2);class ait extends te{constructor(t){super(),this.editor=t,this.widget=null,Mt&&(this._register(t.onDidChangeConfiguration((()=>this.update()))),this.update())}update(){const t=!this.editor.getOption(90);!this.widget&&t?this.widget=new lit(this.editor):this.widget&&!t&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}}ait.ID="editor.contrib.iPadShowKeyboard";class lit extends te{constructor(t){super(),this.editor=t,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(Va(this._domNode,"touchstart",(()=>{this.editor.focus()}))),this._register(Va(this._domNode,"focus",(()=>{this.editor.focus()}))),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return lit.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}}lit.ID="editor.contrib.ShowKeyboardWidget",lu(ait.ID,ait,3);var uit,dit=function(t,i){return function(e,s){i(e,s,t)}};let fit=uit=class extends te{static get(t){return t.getContribution(uit.ID)}constructor(t,i,e){super(),this._editor=t,this._languageService=e,this._widget=null,this._register(this._editor.onDidChangeModel((()=>this.stop()))),this._register(this._editor.onDidChangeModelLanguage((()=>this.stop()))),this._register(Zs.onDidChange((()=>this.stop()))),this._register(this._editor.onKeyUp((t=>9===t.keyCode&&this.stop())))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new pit(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}};fit.ID="editor.contrib.inspectTokens",fit=uit=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([dit(1,rH),dit(2,yd)],fit);class pit extends te{constructor(t,i){super(),this.allowEditorOverflow=!0,this._editor=t,this._languageService=i,this._model=this._editor.getModel(),this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=function(t,i){const e=Zs.get(i);if(e)return e;const s=t.encodeLanguageId(i);return{getInitialState:()=>Ig,tokenize:(t,e,s)=>_g(i,s),tokenizeEncoded:(t,i,e)=>Ng(s,e)}}(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition((()=>this._compute(this._editor.getPosition())))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return pit._ID}_compute(t){const i=this._getTokensAtLine(t.lineNumber);let e=0;for(let s=i.tokens1.length-1;s>=0;s--)if(t.column-1>=i.tokens1[s].offset){e=s;break}let s=0;for(let e=i.tokens2.length>>>1;e>=0;e--)if(t.column-1>=i.tokens2[e<<1]){s=e;break}const n=this._model.getLineContent(t.lineNumber);let o="";e{const[i]=t.selectedItems;i&&this.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})}))),i.add(t.onDidChangeValue((t=>{const i=this.registry.getQuickAccessProvider(t.substr(git.PREFIX.length));i&&i.prefix&&i.prefix!==git.PREFIX&&this.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})}))),t.items=this.getQuickAccessProviders().filter((t=>t.prefix!==git.PREFIX)),i}getQuickAccessProviders(){return this.registry.getQuickAccessProviders().sort(((t,i)=>t.prefix.localeCompare(i.prefix))).flatMap((t=>this.createPicks(t)))}createPicks(t){return t.helpEntries.map((i=>{const e=i.prefix||t.prefix,s=e||"…";return{prefix:e,label:s,keybinding:i.commandId?this.keybindingService.lookupKeybinding(i.commandId):void 0,ariaLabel:ot(0,"{0}, {1}",s,i.description),description:i.description}}))}};wit.PREFIX="?",wit=git=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([mit(0,Oj),mit(1,oC)],wit),Dh.as(Lj).registerQuickAccessProvider({ctor:wit,prefix:"",helpEntries:[{description:eI.helpQuickAccessActionLabel}]});class vit{constructor(t){this.options=t,this.rangeHighlightDecorationId=void 0}provide(t,i){var e;const s=new Xi;t.canAcceptInBackground=!!(null===(e=this.options)||void 0===e?void 0:e.canAcceptInBackground),t.matchOnLabel=t.matchOnDescription=t.matchOnDetail=t.sortByLabel=!1;const n=s.add(new ie);return n.value=this.doProvide(t,i),s.add(this.onDidActiveTextEditorControlChange((()=>{n.value=void 0,n.value=this.doProvide(t,i)}))),s}doProvide(t,i){var e;const s=new Xi,n=this.activeTextEditorControl;if(n&&this.canProvideWithTextEditor(n)){const o={editor:n},r=AK(n);if(r){let t=null!==(e=n.saveViewState())&&void 0!==e?e:void 0;s.add(r.onDidChangeCursorPosition((()=>{var i;t=null!==(i=n.saveViewState())&&void 0!==i?i:void 0}))),o.restoreViewState=()=>{t&&n===this.activeTextEditorControl&&n.restoreViewState(t)},s.add(Gi(i.onCancellationRequested)((()=>{var t;return null===(t=o.restoreViewState)||void 0===t?void 0:t.call(o)})))}s.add(Yi((()=>this.clearDecorations(n)))),s.add(this.provideWithTextEditor(o,t,i))}else s.add(this.provideWithoutTextEditor(t,i));return s}canProvideWithTextEditor(t){return!0}gotoLocation({editor:t},i){t.setSelection(i.range),t.revealRangeInCenter(i.range,0),i.preserveFocus||t.focus();const e=t.getModel();e&&"getLineContent"in e&&$m(`${e.getLineContent(i.range.startLineNumber)}`)}getModel(t){var i;return EK(t)?null===(i=t.getModel())||void 0===i?void 0:i.modified:t.getModel()}addDecorations(t,i){t.changeDecorations((t=>{const e=[];this.rangeHighlightDecorationId&&(e.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),e.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const s=[{range:i,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:i,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:tx(Rx),position:_f.Full}}}],[n,o]=t.deltaDecorations(e,s);this.rangeHighlightDecorationId={rangeHighlightId:n,overviewRulerDecorationId:o}}))}clearDecorations(t){const i=this.rangeHighlightDecorationId;i&&(t.changeDecorations((t=>{t.deltaDecorations([i.overviewRulerDecorationId,i.rangeHighlightId],[])})),this.rangeHighlightDecorationId=void 0)}}class bit extends vit{constructor(){super({canAcceptInBackground:!0})}provideWithoutTextEditor(t){const i=ot(0,"Open a text editor first to go to a line.");return t.items=[{label:i}],t.ariaLabel=i,te.None}provideWithTextEditor(t,i,e){const s=t.editor,n=new Xi;n.add(i.onDidAccept((e=>{const[n]=i.selectedItems;if(n){if(!this.isValidLineNumber(s,n.lineNumber))return;this.gotoLocation(t,{range:this.toRange(n.lineNumber,n.column),keyMods:i.keyMods,preserveFocus:e.inBackground}),e.inBackground||i.hide()}})));const o=()=>{const t=this.parsePosition(s,i.value.trim().substr(bit.PREFIX.length)),e=this.getPickLabel(s,t.lineNumber,t.column);if(i.items=[{lineNumber:t.lineNumber,column:t.column,label:e}],i.ariaLabel=e,!this.isValidLineNumber(s,t.lineNumber))return void this.clearDecorations(s);const n=this.toRange(t.lineNumber,t.column);s.revealRangeInCenter(n,0),this.addDecorations(s,n)};o(),n.add(i.onDidChangeValue((()=>o())));const r=AK(s);return r&&2===r.getOptions().get(67).renderType&&(r.updateOptions({lineNumbers:"on"}),n.add(Yi((()=>r.updateOptions({lineNumbers:"relative"}))))),n}toRange(t=1,i=1){return{startLineNumber:t,startColumn:i,endLineNumber:t,endColumn:i}}parsePosition(t,i){const e=i.split(/,|:|#/).map((t=>parseInt(t,10))).filter((t=>!isNaN(t))),s=this.lineCount(t)+1;return{lineNumber:e[0]>0?e[0]:s+e[0],column:e[1]}}getPickLabel(t,i,e){if(this.isValidLineNumber(t,i))return this.isValidColumn(t,i,e)?ot(0,"Go to line {0} and character {1}.",i,e):ot(0,"Go to line {0}.",i);const s=t.getPosition()||{lineNumber:1,column:1},n=this.lineCount(t);return n>1?ot(0,"Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.",s.lineNumber,s.column,n):ot(0,"Current Line: {0}, Character: {1}. Type a line number to navigate to.",s.lineNumber,s.column)}isValidLineNumber(t,i){return!(!i||"number"!=typeof i)&&i>0&&i<=this.lineCount(t)}isValidColumn(t,i,e){if(!e||"number"!=typeof e)return!1;const s=this.getModel(t);if(!s)return!1;const n={lineNumber:i,column:e};return s.validatePosition(n).equals(n)}lineCount(t){var i,e;return null!==(e=null===(i=this.getModel(t))||void 0===i?void 0:i.getLineCount())&&void 0!==e?e:0}}bit.PREFIX=":";let yit=class extends bit{constructor(t){super(),this.editorService=t,this.onDidActiveTextEditorControlChange=he.None}get activeTextEditorControl(){var t;return null!==(t=this.editorService.getFocusedCodeEditor())&&void 0!==t?t:void 0}};yit=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([function(t,i){return function(e,s){i(e,s,t)}}(0,fr)],yit);class kit extends su{constructor(){super({id:kit.ID,label:iI.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:2085,mac:{primary:293},weight:100}})}run(t){t.get(Oj).quickAccess.show(yit.PREFIX)}}kit.ID="editor.action.gotoLine",cu(kit),Dh.as(Lj).registerQuickAccessProvider({ctor:yit,prefix:yit.PREFIX,helpEntries:[{description:iI.gotoLineActionLabel,commandId:kit.ID}]});const xit=[void 0,[]];function Cit(t,i,e=0,s=0){return i.values&&i.values.length>1?function(t,i,e,s){let n=0;const o=[];for(const r of i){const[i,h]=Sit(t,r,e,s);if("number"!=typeof i)return xit;n+=i,o.push(...h)}return[n,Dit(o)]}(t,i.values,e,s):Sit(t,i,e,s)}function Sit(t,i,e,s){const n=S_(i.original,i.originalLowercase,e,t,t.toLowerCase(),s,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return n?[n[0],l_(n)]:xit}function Dit(t){const i=t.sort(((t,i)=>t.start-i.start)),e=[];let s;for(const t of i)!s||((n=s).end<(o=t).start||o.end=0,r=Eit(t);let h;const c=t.split(Ait);if(c.length>1)for(const t of c){const i=Eit(t),{pathNormalized:e,normalized:s,normalizedLowercase:n}=Lit(t);s&&(h||(h=[]),h.push({original:t,originalLowercase:t.toLowerCase(),pathNormalized:e,normalized:s,normalizedLowercase:n,expectContiguousMatch:i}))}return{original:t,originalLowercase:i,pathNormalized:e,normalized:s,normalizedLowercase:n,values:h,containsPathSeparator:o,expectContiguousMatch:r}}function Lit(t){let i;i=t.replace(xt?/\//g:/\\/g,as);const e=(s=i,s.replace(/\*/g,"")).replace(/\s|"/g,"");var s;return{pathNormalized:i,normalized:e,normalizedLowercase:e.toLowerCase()}}function Fit(t){return Array.isArray(t)?Mit(t.map((t=>t.original)).join(Ait)):Mit(t.original)}var Tit,Rit=function(t,i){return function(e,s){i(e,s,t)}};let Oit=Tit=class extends vit{constructor(t,i,e=Object.create(null)){super(e),this._languageFeaturesService=t,this._outlineModelService=i,this.options=e,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(t){return this.provideLabelPick(t,ot(0,"To go to a symbol, first open a text editor with symbol information.")),te.None}provideWithTextEditor(t,i,e){const s=this.getModel(t.editor);return s?this._languageFeaturesService.documentSymbolProvider.has(s)?this.doProvideWithEditorSymbols(t,s,i,e):this.doProvideWithoutEditorSymbols(t,s,i,e):te.None}doProvideWithoutEditorSymbols(t,i,e,s){const n=new Xi;return this.provideLabelPick(e,ot(0,"The active text editor does not provide symbol information.")),(async()=>{await this.waitForLanguageSymbolRegistry(i,n)&&!s.isCancellationRequested&&n.add(this.doProvideWithEditorSymbols(t,i,e,s))})(),n}provideLabelPick(t,i){t.items=[{label:i,index:0,kind:14}],t.ariaLabel=i}async waitForLanguageSymbolRegistry(t,i){if(this._languageFeaturesService.documentSymbolProvider.has(t))return!0;const e=new bc,s=i.add(this._languageFeaturesService.documentSymbolProvider.onDidChange((()=>{this._languageFeaturesService.documentSymbolProvider.has(t)&&(s.dispose(),e.complete(!0))})));return i.add(Yi((()=>e.complete(!1)))),e.p}doProvideWithEditorSymbols(t,i,e,s){var n;const o=t.editor,r=new Xi;r.add(e.onDidAccept((i=>{const[s]=e.selectedItems;s&&s.range&&(this.gotoLocation(t,{range:s.range.selection,keyMods:e.keyMods,preserveFocus:i.inBackground}),i.inBackground||e.hide())}))),r.add(e.onDidTriggerItemButton((({item:i})=>{i&&i.range&&(this.gotoLocation(t,{range:i.range.selection,keyMods:e.keyMods,forceSideBySide:!0}),e.hide())})));const h=this.getDocumentSymbols(i,s);let c;const a=async t=>{null==c||c.dispose(!0),e.busy=!1,c=new Ce(s),e.busy=!0;try{const i=Mit(e.value.substr(Tit.PREFIX.length).trim()),n=await this.doGetSymbolPicks(h,i,void 0,c.token);if(s.isCancellationRequested)return;if(n.length>0){if(e.items=n,t&&0===i.original.length){const i=rp(n,(i=>Boolean("separator"!==i.type&&i.range&&Ms.containsPosition(i.range.decoration,t))));i&&(e.activeItems=[i])}}else this.provideLabelPick(e,ot(0,i.original.length>0?"No matching editor symbols":"No editor symbols"))}finally{s.isCancellationRequested||(e.busy=!1)}};return r.add(e.onDidChangeValue((()=>a(void 0)))),a(null===(n=o.getSelection())||void 0===n?void 0:n.getPosition()),r.add(e.onDidChangeActive((()=>{const[t]=e.activeItems;t&&t.range&&(o.revealRangeInCenter(t.range.selection,0),this.addDecorations(o,t.range.decoration))}))),r}async doGetSymbolPicks(t,i,e,s){var n,o;const r=await t;if(s.isCancellationRequested)return[];const h=0===i.original.indexOf(Tit.SCOPE_PREFIX),c=h?1:0;let a,l,u;i.values&&i.values.length>1?(a=Fit(i.values[0]),l=Fit(i.values.slice(1))):a=i;const d=null===(o=null===(n=this.options)||void 0===n?void 0:n.openSideBySideDirection)||void 0===o?void 0:o.call(n);d&&(u=[{iconClass:Cr.asClassName("right"===d?Os.splitHorizontal:Os.splitVertical),tooltip:ot(0,"right"===d?"Open to the Side":"Open to the Bottom")}]);const f=[];for(let v=0;vc){let L=!1;if(a!==i&&([C,S]=Cit(k,{...i,values:void 0},c,x),"number"==typeof C&&(L=!0)),"number"!=typeof C&&([C,S]=Cit(k,a,c,x),"number"!=typeof C))continue;if(!L&&l){if(A&&l.original.length>0&&([D,E]=Cit(A,l)),"number"!=typeof D)continue;"number"==typeof C&&(C+=D)}}const M=b.tags&&b.tags.indexOf(1)>=0;f.push({index:v,kind:b.kind,score:C,label:k,ariaLabel:(p=b.name,g=b.kind,ot(0,"{0} ({1})",p,Hs[g])),description:A,highlights:M?void 0:{label:S,description:E},range:{selection:Ms.collapseToStart(b.selectionRange),decoration:b.range},strikethrough:M,buttons:u})}var p,g;const m=f.sort(((t,i)=>h?this.compareByKindAndScore(t,i):this.compareByScore(t,i)));let w=[];if(h){let F,T,R=0;function O(){T&&"number"==typeof F&&R>0&&(T.label=qn(_it[F]||Iit,R))}for(const I of m)F!==I.kind?(O(),F=I.kind,R=1,T={type:"separator"},w.push(T)):R++,w.push(I);O()}else m.length>0&&(w=[{label:ot(0,"symbols ({0})",f.length),type:"separator"},...m]);return w}compareByScore(t,i){if("number"!=typeof t.score&&"number"==typeof i.score)return 1;if("number"==typeof t.score&&"number"!=typeof i.score)return-1;if("number"==typeof t.score&&"number"==typeof i.score){if(t.score>i.score)return-1;if(t.scorei.index?1:0}compareByKindAndScore(t,i){const e=(_it[t.kind]||Iit).localeCompare(_it[i.kind]||Iit);return 0===e?this.compareByScore(t,i):e}async getDocumentSymbols(t,i){const e=await this._outlineModelService.getOrCreate(t,i);return i.isCancellationRequested?[]:e.asListOfDocumentSymbols()}};Oit.PREFIX="@",Oit.SCOPE_PREFIX=":",Oit.PREFIX_BY_CATEGORY=`${Tit.PREFIX}${Tit.SCOPE_PREFIX}`,Oit=Tit=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Rit(0,xg),Rit(1,F5)],Oit);const Iit=ot(0,"properties ({0})"),_it={5:ot(0,"methods ({0})"),11:ot(0,"functions ({0})"),8:ot(0,"constructors ({0})"),12:ot(0,"variables ({0})"),4:ot(0,"classes ({0})"),22:ot(0,"structs ({0})"),23:ot(0,"events ({0})"),24:ot(0,"operators ({0})"),10:ot(0,"interfaces ({0})"),2:ot(0,"namespaces ({0})"),3:ot(0,"packages ({0})"),25:ot(0,"type parameters ({0})"),1:ot(0,"modules ({0})"),6:ot(0,"properties ({0})"),9:ot(0,"enumerations ({0})"),21:ot(0,"enumeration members ({0})"),14:ot(0,"strings ({0})"),0:ot(0,"files ({0})"),17:ot(0,"arrays ({0})"),15:ot(0,"numbers ({0})"),16:ot(0,"booleans ({0})"),18:ot(0,"objects ({0})"),19:ot(0,"keys ({0})"),7:ot(0,"fields ({0})"),13:ot(0,"constants ({0})")};var Nit=function(t,i){return function(e,s){i(e,s,t)}};let Bit=class extends Oit{constructor(t,i,e){super(i,e),this.editorService=t,this.onDidActiveTextEditorControlChange=he.None}get activeTextEditorControl(){var t;return null!==(t=this.editorService.getFocusedCodeEditor())&&void 0!==t?t:void 0}};Bit=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([Nit(0,fr),Nit(1,xg),Nit(2,F5)],Bit);class Pit extends su{constructor(){super({id:Pit.ID,label:nI.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:YC.hasDocumentSymbolProvider,kbOpts:{kbExpr:YC.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(t){t.get(Oj).quickAccess.show(Oit.PREFIX,{itemActivation:Rj.NONE})}}function $it(t,i){return i&&(t.stack||t.stacktrace)?ot(0,"{0}: {1}",jit(t),Wit(t.stack)||Wit(t.stacktrace)):jit(t)}function Wit(t){return Array.isArray(t)?t.join("\n"):t}function jit(t){return"ERR_UNC_HOST_NOT_ALLOWED"===t.code?`${t.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:"string"==typeof t.code&&"number"==typeof t.errno&&"string"==typeof t.syscall?ot(0,"A system error occurred ({0})",t.message):t.message||ot(0,"An unknown error occurred. Please consult the log for more details.")}function zit(t=null,i=!1){if(!t)return ot(0,"An unknown error occurred. Please consult the log for more details.");if(Array.isArray(t)){const e=m(t),s=zit(e[0],i);return e.length>1?ot(0,"{0} ({1} errors in total)",s,e.length):s}if(B(t))return t;if(t.detail){const e=t.detail;if(e.error)return $it(e.error,i);if(e.exception)return $it(e.exception,i)}return t.stack?$it(t,i):t.message?t.message:ot(0,"An unknown error occurred. Please consult the log for more details.")}Pit.ID="editor.action.quickOutline",cu(Pit),Dh.as(Lj).registerQuickAccessProvider({ctor:Bit,prefix:Oit.PREFIX,helpEntries:[{description:nI.quickOutlineActionLabel,prefix:Oit.PREFIX,commandId:Pit.ID},{description:nI.quickOutlineByCategoryActionLabel,prefix:Oit.PREFIX_BY_CATEGORY}]});class Hit{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(t,i){const e=this.computeEmbedding(t),s=new Map,n=[];for(const[t,o]of this.documents){if(i.isCancellationRequested)return[];for(const i of o.chunks){const o=this.computeSimilarityScore(i,e,s);o>0&&n.push({key:t,score:o})}}return n}static termFrequencies(t){return function(t){var i;const e=new Map;for(const s of t)e.set(s,(null!==(i=e.get(s))&&void 0!==i?i:0)+1);return e}(Hit.splitTerms(t))}static*splitTerms(t){const i=t=>t.toLowerCase();for(const[e]of t.matchAll(/\b\p{Letter}[\p{Letter}\d]{2,}\b/gu)){yield i(e);const t=e.replace(/([a-z])([A-Z])/g,"$1 $2").split(/\s+/g);if(t.length>1)for(const e of t)e.length>2&&/\p{Letter}{3,}/gu.test(e)&&(yield i(e))}}updateDocuments(t){var i;for(const{key:i}of t)this.deleteDocument(i);for(const e of t){const t=[];for(const s of e.textChunks){const e=Hit.termFrequencies(s);for(const t of e.keys())this.chunkOccurrences.set(t,(null!==(i=this.chunkOccurrences.get(t))&&void 0!==i?i:0)+1);t.push({text:s,tf:e})}this.chunkCount+=t.length,this.documents.set(e.key,{chunks:t})}return this}deleteDocument(t){const i=this.documents.get(t);if(i){this.documents.delete(t),this.chunkCount-=i.chunks.length;for(const t of i.chunks)for(const i of t.tf.keys()){const t=this.chunkOccurrences.get(i);if("number"==typeof t){const e=t-1;e<=0?this.chunkOccurrences.delete(i):this.chunkOccurrences.set(i,e)}}}}computeSimilarityScore(t,i,e){let s=0;for(const[n,o]of Object.entries(i)){const i=t.tf.get(n);if(!i)continue;let r=e.get(n);"number"!=typeof r&&(r=this.computeIdf(n),e.set(n,r)),s+=i*r*o}return s}computeEmbedding(t){const i=Hit.termFrequencies(t);return this.computeTfidf(i)}computeIdf(t){var i;const e=null!==(i=this.chunkOccurrences.get(t))&&void 0!==i?i:0;return e>0?Math.log((this.chunkCount+1)/e):0}computeTfidf(t){const i=Object.create(null);for(const[e,s]of t){const t=this.computeIdf(e);t>0&&(i[e]=s*t)}return i}}var Vit;function Uit(t){return Array.isArray(t.items)}function qit(t){return!!t.picks&&t.additionalPicks instanceof Promise}!function(t){t[t.NO_ACTION=0]="NO_ACTION",t[t.CLOSE_PICKER=1]="CLOSE_PICKER",t[t.REFRESH_PICKER=2]="REFRESH_PICKER",t[t.REMOVE_ITEM=3]="REMOVE_ITEM"}(Vit||(Vit={}));class Kit extends te{constructor(t,i){super(),this.prefix=t,this.options=i}provide(t,i,e){var s;const n=new Xi;let o;t.canAcceptInBackground=!!(null===(s=this.options)||void 0===s?void 0:s.canAcceptInBackground),t.matchOnLabel=t.matchOnDescription=t.matchOnDetail=t.sortByLabel=!1;const r=n.add(new ie),h=async()=>{const s=r.value=new Xi;null==o||o.dispose(!0),t.busy=!1,o=new Ce(i);const n=o.token,h=t.value.substr(this.prefix.length).trim(),c=this._getPicks(h,s,n,e),a=(i,e)=>{var s;let n,o;if(Uit(i)?(n=i.items,o=i.active):n=i,0===n.length){if(e)return!1;(h.length>0||t.hideInput)&&(null===(s=this.options)||void 0===s?void 0:s.noResultsPick)&&(n=G(this.options.noResultsPick)?[this.options.noResultsPick(h)]:[this.options.noResultsPick])}return t.items=n,o&&(t.activeItems=[o]),!0},l=async i=>{let e=!1,s=!1;await Promise.all([(async()=>{"number"==typeof i.mergeDelay&&(await ac(i.mergeDelay),n.isCancellationRequested)||s||(e=a(i.picks,!0))})(),(async()=>{t.busy=!0;try{const s=await i.additionalPicks;if(n.isCancellationRequested)return;let o,r,h,c;if(Uit(i.picks)?(o=i.picks.items,r=i.picks.active):o=i.picks,Uit(s)?(h=s.items,c=s.active):h=s,h.length>0||!e){let i;if(!r&&!c){const e=t.activeItems[0];e&&-1!==o.indexOf(e)&&(i=e)}a({items:[...o,...h],active:r||c||i})}}finally{n.isCancellationRequested||(t.busy=!1),s=!0}})()])};if(null===c);else if(qit(c))await l(c);else if(c instanceof Promise){t.busy=!0;try{const t=await c;if(n.isCancellationRequested)return;qit(t)?await l(t):a(t)}finally{n.isCancellationRequested||(t.busy=!1)}}else a(c)};return n.add(t.onDidChangeValue((()=>h()))),h(),n.add(t.onDidAccept((i=>{const[e]=t.selectedItems;"function"==typeof(null==e?void 0:e.accept)&&(i.inBackground||t.hide(),e.accept(t.keyMods,i))}))),n.add(t.onDidTriggerItemButton((async({button:e,item:s})=>{var n,o;if("function"==typeof s.trigger){const r=null!==(o=null===(n=s.buttons)||void 0===n?void 0:n.indexOf(e))&&void 0!==o?o:-1;if(r>=0){const e=s.trigger(r,t.keyMods),n="number"==typeof e?e:await e;if(i.isCancellationRequested)return;switch(n){case Vit.NO_ACTION:break;case Vit.CLOSE_PICKER:t.hide();break;case Vit.REFRESH_PICKER:h();break;case Vit.REMOVE_ITEM:{const i=t.items.indexOf(s);if(-1!==i){const e=t.items.slice(),s=e.splice(i,1),n=t.activeItems.filter((t=>t!==s[0])),o=t.keepScrollPosition;t.keepScrollPosition=!0,t.items=e,n&&(t.activeItems=n),t.keepScrollPosition=o}break}}}}}))),n}}var Git,Zit,Qit=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r},Jit=function(t,i){return function(e,s){i(e,s,t)}};let Yit=Git=class extends Kit{constructor(t,i,e,s,n,o){super(Git.PREFIX,t),this.instantiationService=i,this.keybindingService=e,this.commandService=s,this.telemetryService=n,this.dialogService=o,this.commandsHistory=this._register(this.instantiationService.createInstance(Xit)),this.options=t}async _getPicks(t,i,e,s){var n,o,r,h;const c=await this.getCommandPicks(e);if(e.isCancellationRequested)return[];const a=Gi((()=>{const i=new Hit;return i.updateDocuments(c.map((t=>({key:t.commandId,textChunks:[this.getTfIdfChunk(t)]})))),function(t){var i,e;const s=t.slice(0);s.sort(((t,i)=>i.score-t.score));const n=null!==(e=null===(i=s[0])||void 0===i?void 0:i.score)&&void 0!==e?e:0;if(n>0)for(const t of s)t.score/=n;return s}(i.calculateScores(t,e)).filter((t=>t.score>Git.TFIDF_THRESHOLD)).slice(0,Git.TFIDF_MAX_RESULTS)})),l=[];for(const i of c){const s=null!==(n=Git.WORD_FILTER(t,i.label))&&void 0!==n?n:void 0,r=i.commandAlias&&null!==(o=Git.WORD_FILTER(t,i.commandAlias))&&void 0!==o?o:void 0;if(s||r)i.highlights={label:s,detail:this.options.showAlias?r:void 0},l.push(i);else if(t===i.commandId)l.push(i);else if(t.length>=3){const t=a();if(e.isCancellationRequested)return[];const s=t.find((t=>t.key===i.commandId));s&&(i.tfIdfScore=s.score,l.push(i))}}const u=new Map;for(const t of l){const i=u.get(t.label);i?(t.description=t.commandId,i.description=i.commandId):u.set(t.label,t)}l.sort(((t,i)=>{if(t.tfIdfScore&&i.tfIdfScore)return t.tfIdfScore===i.tfIdfScore?t.label.localeCompare(i.label):i.tfIdfScore-t.tfIdfScore;if(t.tfIdfScore)return 1;if(i.tfIdfScore)return-1;const e=this.commandsHistory.peek(t.commandId),s=this.commandsHistory.peek(i.commandId);if(e&&s)return e>s?-1:1;if(e)return-1;if(s)return 1;if(this.options.suggestedCommandIds){const e=this.options.suggestedCommandIds.has(t.commandId),s=this.options.suggestedCommandIds.has(i.commandId);if(e&&s)return 0;if(e)return-1;if(s)return 1}return t.label.localeCompare(i.label)}));const d=[];let f=!1,p=!0,g=!!this.options.suggestedCommandIds;for(let t=0;t{var i;const n=await this.getAdditionalCommandPicks(c,l,t,e);if(e.isCancellationRequested)return[];const o=n.map((t=>this.toCommandPick(t,s)));return p&&"separator"!==(null===(i=o[0])||void 0===i?void 0:i.type)&&o.unshift({type:"separator",label:ot(0,"similar commands")}),o})()}:d}toCommandPick(t,i){if("separator"===t.type)return t;const e=this.keybindingService.lookupKeybinding(t.commandId),s=e?ot(0,"{0}, {1}",t.label,e.getAriaLabel()):t.label;return{...t,ariaLabel:s,detail:this.options.showAlias&&t.commandAlias!==t.label?t.commandAlias:void 0,keybinding:e,accept:async()=>{var e,s;this.commandsHistory.push(t.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:t.commandId,from:null!==(e=null==i?void 0:i.from)&&void 0!==e?e:"quick open"});try{(null===(s=t.args)||void 0===s?void 0:s.length)?await this.commandService.executeCommand(t.commandId,...t.args):await this.commandService.executeCommand(t.commandId)}catch(i){ji(i)||this.dialogService.error(ot(0,"Command '{0}' resulted in an error",t.label),zit(i))}}}}getTfIdfChunk({label:t,commandAlias:i,commandDescription:e}){let s=t;return i&&i!==t&&(s+=` - ${i}`),e&&e.value!==t&&(s+=` - ${e.value===e.original?e.value:`${e.value} (${e.original})`}`),s}};Yit.PREFIX=">",Yit.TFIDF_THRESHOLD=.5,Yit.TFIDF_MAX_RESULTS=5,Yit.WORD_FILTER=NI(BI,(function(t,i,e=!1){if(!i||0===i.length)return null;let s=null,n=0;for(t=t.toLowerCase(),i=i.toLowerCase();nthis.updateConfiguration(t)))),this._register(this.storageService.onWillSaveState((t=>{t.reason===MB.SHUTDOWN&&this.saveState()})))}updateConfiguration(t){t&&!t.affectsConfiguration("workbench.commandPalette.history")||(this.configuredCommandsHistoryLength=Zit.getConfiguredCommandHistoryLength(this.configurationService),Zit.cache&&Zit.cache.limit!==this.configuredCommandsHistoryLength&&(Zit.cache.limit=this.configuredCommandsHistoryLength,Zit.hasChanges=!0))}load(){const t=this.storageService.get(Zit.PREF_KEY_CACHE,0);let i;if(t)try{i=JSON.parse(t)}catch(t){}const e=Zit.cache=new Vp(this.configuredCommandsHistoryLength,1);if(i){let t;t=i.usesLRU?i.entries:i.entries.sort(((t,i)=>t.value-i.value)),t.forEach((t=>e.set(t.key,t.value)))}Zit.counter=this.storageService.getNumber(Zit.PREF_KEY_COUNTER,0,Zit.counter)}push(t){Zit.cache&&(Zit.cache.set(t,Zit.counter++),Zit.hasChanges=!0)}peek(t){var i;return null===(i=Zit.cache)||void 0===i?void 0:i.peek(t)}saveState(){if(!Zit.cache)return;if(!Zit.hasChanges)return;const t={usesLRU:!0,entries:[]};Zit.cache.forEach(((i,e)=>t.entries.push({key:e,value:i}))),this.storageService.store(Zit.PREF_KEY_CACHE,JSON.stringify(t),0,0),this.storageService.store(Zit.PREF_KEY_COUNTER,Zit.counter,0,0),Zit.hasChanges=!1}static getConfiguredCommandHistoryLength(t){var i,e;const s=null===(e=null===(i=t.getValue().workbench)||void 0===i?void 0:i.commandPalette)||void 0===e?void 0:e.history;return"number"==typeof s?s:Zit.DEFAULT_COMMANDS_HISTORY_LENGTH}};Xit.DEFAULT_COMMANDS_HISTORY_LENGTH=50,Xit.PREF_KEY_CACHE="commandPalette.mru.cache",Xit.PREF_KEY_COUNTER="commandPalette.mru.counter",Xit.counter=1,Xit.hasChanges=!1,Xit=Zit=Qit([Jit(0,AB),Jit(1,pd)],Xit);class tet extends Yit{constructor(t,i,e,s,n,o){super(t,i,e,s,n,o)}getCodeEditorCommandPicks(){const t=this.activeTextEditorControl;if(!t)return[];const i=[];for(const e of t.getSupportedActions())i.push({commandId:e.id,commandAlias:e.alias,label:R_(e.label)||e.id});return i}}var iet=function(t,i){return function(e,s){i(e,s,t)}};let eet=class extends tet{get activeTextEditorControl(){var t;return null!==(t=this.codeEditorService.getFocusedCodeEditor())&&void 0!==t?t:void 0}constructor(t,i,e,s,n,o){super({showAlias:!1},t,e,s,n,o),this.codeEditorService=i}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}};eet=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([iet(0,ur),iet(1,fr),iet(2,oC),iet(3,Sr),iet(4,Wh),iet(5,JT)],eet);class set extends su{constructor(){super({id:set.ID,label:sI.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:YC.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(t){t.get(Oj).quickAccess.show(eet.PREFIX)}}set.ID="editor.action.quickCommand",cu(set),Dh.as(Lj).registerQuickAccessProvider({ctor:eet,prefix:eet.PREFIX,helpEntries:[{description:sI.quickCommandHelp,commandId:set.ID}]});var net=function(t,i){return function(e,s){i(e,s,t)}};let oet=class extends _Y{constructor(t,i,e,s,n,o,r){super(!0,t,i,e,s,n,o,r)}};oet=function(t,i,e,s){var n,o=arguments.length,r=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(i,e,r):n(i,e))||r);return o>3&&r&&Object.defineProperty(i,e,r),r}([net(1,ah),net(2,fr),net(3,oT),net(4,ur),net(5,AB),net(6,pd)],oet),lu(_Y.ID,oet,4),cu(class extends su{constructor(){super({id:"editor.action.toggleHighContrast",label:rI.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}),this._originalThemeName=null}run(t,i){const e=t.get(rH),s=e.getColorTheme();zy(s.type)?(e.setTheme(this._originalThemeName||(Hy(s.type)?Jz:Qz)),this._originalThemeName=null):(e.setTheme(Hy(s.type)?Yz:Xz),this._originalThemeName=s.themeName)}});const ret=performance.getEntriesByType("resource").slice(-1)[0].name;self.MonacoEnvironment={getWorkerUrl:(t,i)=>`${ret.replace(/(.*\/).*?$/,"$1")}${"html"===i?"html":"editor"}.worker.js?t=${Date.now()}`};const het=class{constructor(i){t(this,i),this.monacoEditorDidLoad=o(this,"monacoEditorDidLoad",7),this.defaultOptions={language:"html",readOnly:!1,theme:"vs-light",scrollBeyondLastLine:!1,minimap:{enabled:!1},automaticLayout:!0,wordWrap:"on"},this.rendered=!1,this.options=void 0,this.initialValue="",this.tiptapEditor=void 0,this.updateInputValue=void 0}init(){const t=this.element.querySelector(":scope > *:first-of-type");this.monaco=JK.create(this.container,Object.assign({value:this.initialValue||(null==t?void 0:t.innerHTML.trim())||""},this.mergeOptions())),this.monaco.onDidChangeModelContent((()=>{var t,i,e;null===(t=this.tiptapEditor)||void 0===t||t.chain().setContent(null===(i=this.monaco)||void 0===i?void 0:i.getValue()).run(),null===(e=this.updateInputValue)||void 0===e||e.call(this)})),this.monacoEditorDidLoad.emit();let i=0;const e=setInterval((()=>{const t=this.monaco.getAction("editor.action.formatDocument");(t||++i>50)&&(null==t||t.run(),clearInterval(e))}),100)}connectedCallback(){this.rendered&&this.init()}componentDidLoad(){this.init(),this.rendered=!0}async disconnectedCallback(){return Boolean(this.monaco)?new Promise((t=>{var i;this.monaco.onDidDispose((()=>t())),null===(i=this.monaco.getModel())||void 0===i||i.dispose(),this.monaco.dispose()})):Promise.resolve()}onOptionsChange(){var t;null===(t=this.monaco)||void 0===t||t.updateOptions(this.mergeOptions())}async setFocus(){var t;null===(t=this.monaco)||void 0===t||t.focus()}async getValue(){var t;return null===(t=this.monaco)||void 0===t?void 0:t.getValue()}mergeOptions(){return Object.assign(Object.assign({},this.defaultOptions),this.options||{})}render(){return e(r,{key:"cd80178b2bf7795caaec0c96aa895419b675cb3f"},e("article",{key:"8406db710730148496161e93d66ff1a845beac99",ref:t=>this.container=t}))}get element(){return n(this)}static get watchers(){return{options:["onOptionsChange"]}}};het.style='/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56)\n * Released under the MIT license\n * https://github.com/microsoft/vscode/blob/main/LICENSE.txt\n *-----------------------------------------------------------*/.monaco-action-bar{white-space:nowrap;height:100%}.monaco-action-bar .actions-container{display:flex;margin:0 auto;padding:0;height:100%;width:100%;align-items:center}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar .action-item{display:block;align-items:center;justify-content:center;cursor:pointer;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar .action-item .codicon,.monaco-action-bar .action-item .icon{display:block}.monaco-action-bar .action-item .codicon{display:flex;align-items:center;width:16px;height:16px}.monaco-action-bar .action-label{display:flex;font-size:11px;padding:3px;border-radius:5px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover{opacity:.6}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{display:block;border-bottom:1px solid #bbb;padding-top:1px;margin-left:.8em;margin-right:.8em}.monaco-action-bar .action-item .action-label.separator{width:1px;height:16px;margin:5px 4px!important;cursor:default;min-width:1px;padding:0;background-color:#bbb}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{overflow:hidden;flex:1;max-width:170px;min-width:60px;display:flex;align-items:center;justify-content:center;margin-right:10px}.monaco-action-bar .action-item.action-dropdown-item{display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator{display:flex;align-items:center;cursor:default}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator>div{width:1px}.monaco-aria-container{position:absolute;left:-999em}.monaco-text-button{box-sizing:border-box;display:flex;width:100%;padding:4px;border-radius:2px;text-align:center;cursor:pointer;justify-content:center;align-items:center;border:1px solid var(--vscode-button-border,transparent);line-height:18px}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled,.monaco-button.disabled:focus{opacity:.4!important;cursor:default}.monaco-text-button .codicon{margin:0 .2em;color:inherit!important}.monaco-text-button.monaco-text-button-with-short-label{flex-direction:row;flex-wrap:wrap;padding:0 4px;overflow:hidden;height:28px}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label{flex-basis:100%}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{flex-grow:1;width:0;overflow:hidden}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label,.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{display:flex;justify-content:center;align-items:center;font-weight:400;font-style:inherit;padding:4px 0}.monaco-button-dropdown{display:flex;cursor:pointer}.monaco-button-dropdown.disabled{cursor:default}.monaco-button-dropdown>.monaco-button:focus{outline-offset:-1px!important}.monaco-button-dropdown.disabled>.monaco-button-dropdown-separator,.monaco-button-dropdown.disabled>.monaco-button.disabled,.monaco-button-dropdown.disabled>.monaco-button.disabled:focus{opacity:.4!important}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-right-width:0!important}.monaco-button-dropdown .monaco-button-dropdown-separator{padding:4px 0;cursor:default}.monaco-button-dropdown .monaco-button-dropdown-separator>div{height:100%;width:1px}.monaco-button-dropdown>.monaco-button.monaco-dropdown-button{border:1px solid var(--vscode-button-border,transparent);border-left-width:0!important;border-radius:0 2px 2px 0;display:flex;align-items:center}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-radius:2px 0 0 2px}.monaco-description-button{display:flex;flex-direction:column;align-items:center;margin:4px 5px}.monaco-description-button .monaco-button-description{font-style:italic;font-size:11px;padding:4px 20px}.monaco-description-button .monaco-button-description,.monaco-description-button .monaco-button-label{display:flex;justify-content:center;align-items:center}.monaco-description-button .monaco-button-description>.codicon,.monaco-description-button .monaco-button-label>.codicon{margin:0 .2em;color:inherit!important}.monaco-button-dropdown.default-colors>.monaco-button,.monaco-button.default-colors{color:var(--vscode-button-foreground);background-color:var(--vscode-button-background)}.monaco-button-dropdown.default-colors>.monaco-button:hover,.monaco-button.default-colors:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-button-dropdown.default-colors>.monaco-button.secondary,.monaco-button.default-colors.secondary{color:var(--vscode-button-secondaryForeground);background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors>.monaco-button.secondary:hover,.monaco-button.default-colors.secondary:hover{background-color:var(--vscode-button-secondaryHoverBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator{background-color:var(--vscode-button-background);border-top:1px solid var(--vscode-button-border);border-bottom:1px solid var(--vscode-button-border)}.monaco-button-dropdown.default-colors .monaco-button.secondary+.monaco-button-dropdown-separator{background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator>div{background-color:var(--vscode-button-separator)}@font-face{font-family:codicon;font-display:block;src:url(../base/browser/ui/codicons/codicon/codicon.ttf) format("truetype")}.codicon[class*=codicon-]{font:normal normal normal 16px/1 codicon;display:inline-block;text-decoration:none;text-rendering:auto;text-align:center;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none}.codicon-wrench-subaction{opacity:.5}@keyframes codicon-spin{to{transform:rotate(1turn)}}.codicon-gear.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin,.codicon-sync.codicon-modifier-spin{animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.context-view{position:absolute}.context-view.fixed{all:initial;font-family:inherit;font-size:13px;position:fixed;color:inherit}.monaco-count-badge{padding:3px 6px;border-radius:11px;font-size:11px;min-width:18px;min-height:18px;line-height:11px;font-weight:400;text-align:center;display:inline-block;box-sizing:border-box}.monaco-count-badge.long{padding:2px 3px;border-radius:2px;min-height:auto;line-height:normal}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{cursor:pointer;height:100%;display:flex;align-items:center;justify-content:center}.monaco-dropdown>.dropdown-label>.action-label.disabled{cursor:default}.monaco-dropdown-with-primary{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-primary>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:50%;background-repeat:no-repeat}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.hc-light .monaco-findInput.highlight-0 .controls,.monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-0 .1s linear 0s}.hc-light .monaco-findInput.highlight-1 .controls,.monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@keyframes monaco-findInput-highlight-0{0%{background:rgba(253,255,0,.8)}to{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:rgba(253,255,0,.8)}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:hsla(0,0%,100%,.44)}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:hsla(0,0%,100%,.44)}99%{background:transparent}}.monaco-hover{cursor:default;position:absolute;overflow:hidden;user-select:text;-webkit-user-select:text;box-sizing:border-box;animation:fadein .1s linear;line-height:1.5em;white-space:var(--vscode-hover-whiteSpace,normal)}.monaco-hover.hidden{display:none}.monaco-hover a:hover:not(.disabled){cursor:pointer}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){max-width:var(--vscode-hover-maxWidth,500px);word-wrap:break-word}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover .code,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6,.monaco-hover p,.monaco-hover ul{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-hover hr{box-sizing:border-box;border-left:0;border-right:0;margin:4px -8px -4px;height:1px}.monaco-hover .code:first-child,.monaco-hover p:first-child,.monaco-hover ul:first-child{margin-top:0}.monaco-hover .code:last-child,.monaco-hover p:last-child,.monaco-hover ul:last-child{margin-bottom:0}.monaco-hover ol,.monaco-hover ul{padding-left:20px}.monaco-hover li>p{margin-bottom:0}.monaco-hover li>ul{margin-top:0}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:var(--vscode-hover-sourceWhiteSpace,pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px}.monaco-hover .hover-row.status-bar .actions .action-container{margin-right:16px;cursor:pointer}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-hover .hover-contents a.code-link,.monaco-hover .hover-contents a.code-link:hover{color:inherit}.monaco-hover .hover-contents a.code-link:before{content:"("}.monaco-hover .hover-contents a.code-link:after{content:")"}.monaco-hover .hover-contents a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-foreground)}.monaco-hover .hover-contents a.code-link>span:hover{color:var(--vscode-textLink-activeForeground)}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{margin-bottom:4px;display:inline-block}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{pointer-events:none;opacity:.4;cursor:default}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-size:16px;background-position:0;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;line-height:inherit!important;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;flex-shrink:0}.monaco-icon-label-container.disabled{color:var(--vscode-disabledForeground)}.monaco-icon-label>.monaco-icon-label-container{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-suffix-container>.label-suffix{opacity:.7;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.7;margin-left:.5em;font-size:.9em;white-space:pre}.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{white-space:nowrap}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{font-style:italic}.monaco-icon-label.deprecated{text-decoration:line-through;opacity:.66}.monaco-icon-label.italic:after{font-style:italic}.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{text-decoration:line-through}.monaco-icon-label:after{opacity:.75;font-size:90%;font-weight:600;margin:auto 16px 0 5px;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description{opacity:.8}.monaco-inputbox{position:relative;display:block;padding:0;box-sizing:border-box;border-radius:2px;font-size:inherit}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px 6px}.monaco-inputbox>.ibwrapper{position:relative;width:100%;height:100%}.monaco-inputbox>.ibwrapper>.input{display:inline-block;box-sizing:border-box;width:100%;height:100%;line-height:inherit;border:none;font-family:inherit;font-size:inherit;resize:none;color:inherit}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{display:block;scrollbar-width:none;outline:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.ibwrapper>.mirror{position:absolute;display:inline-block;width:100%;top:0;left:0;box-sizing:border-box;white-space:pre-wrap;visibility:hidden;word-wrap:break-word}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{display:inline-block;overflow:hidden;text-align:left;width:100%;box-sizing:border-box;padding:.4em;font-size:12px;line-height:17px;margin-top:-1px;word-wrap:break-word}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;width:16px;height:16px}.monaco-keybinding{display:flex;align-items:center;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{display:inline-block;border-style:solid;border-width:1px;border-radius:3px;vertical-align:middle;font-size:11px;padding:3px 5px;margin:0 2px}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-list{position:relative;height:100%;width:100%;white-space:nowrap}.monaco-list.mouse-support{user-select:none;-webkit-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{position:relative;width:100%;height:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{width:auto;min-width:100%}.monaco-list-row{position:absolute;box-sizing:border-box;overflow:hidden;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list .monaco-scrollable-element>.scrollbar.vertical,.monaco-pane-view>.monaco-split-view2.vertical>.monaco-scrollable-element>.scrollbar.vertical{z-index:14}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0!important}.monaco-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute;z-index:1000}.monaco-list-type-filter-message{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;padding:40px 1em 1em;text-align:center;white-space:normal;opacity:.7;pointer-events:none}.monaco-list-type-filter-message:empty{display:none}.monaco-mouse-cursor-text{cursor:text}.monaco-progress-container{width:100%;height:2px;overflow:hidden}.monaco-progress-container .progress-bit{width:2%;height:2px;position:absolute;left:0;display:none}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{animation-name:progress;animation-duration:4s;animation-iteration-count:infinite;transform:translateZ(0);animation-timing-function:linear}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes progress{0%{transform:translateX(0) scaleX(1)}50%{transform:translateX(2500%) scaleX(3)}to{transform:translateX(4900%) scaleX(1)}}:root{--vscode-sash-size:4px;--vscode-sash-hover-size:4px}.monaco-sash{position:absolute;z-index:35;touch-action:none}.monaco-sash.disabled{pointer-events:none}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.vertical{cursor:ew-resize;top:0;width:var(--vscode-sash-size);height:100%}.monaco-sash.horizontal{cursor:ns-resize;left:0;width:100%;height:var(--vscode-sash-size)}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";height:calc(var(--vscode-sash-size)*2);width:calc(var(--vscode-sash-size)*2);z-index:100;display:block;cursor:all-scroll;position:absolute}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:calc(var(--vscode-sash-size)*-0.5);top:calc(var(--vscode-sash-size)*-1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{left:calc(var(--vscode-sash-size)*-0.5);bottom:calc(var(--vscode-sash-size)*-1)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{top:calc(var(--vscode-sash-size)*-0.5);left:calc(var(--vscode-sash-size)*-1)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{top:calc(var(--vscode-sash-size)*-0.5);right:calc(var(--vscode-sash-size)*-1)}.monaco-sash:before{content:"";pointer-events:none;position:absolute;width:100%;height:100%;background:transparent}.monaco-workbench:not(.reduce-motion) .monaco-sash:before{transition:background-color .1s ease-out}.monaco-sash.active:before,.monaco-sash.hover:before{background:var(--vscode-sash-hoverBorder)}.monaco-sash.vertical:before{width:var(--vscode-sash-hover-size);left:calc(50% - var(--vscode-sash-hover-size)/2)}.monaco-sash.horizontal:before{height:var(--vscode-sash-hover-size);top:calc(50% - var(--vscode-sash-hover-size)/2)}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:rgba(0,255,255,.2)}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{opacity:1;background:transparent;transition:opacity .1s linear;z-index:11}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{position:absolute;display:none}.monaco-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.monaco-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.scrollbar>.slider{background:var(--vscode-scrollbarSlider-background)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-scrollable-element>.scrollbar>.slider.active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-select-box{width:100%;cursor:pointer;border-radius:2px}.monaco-select-box-dropdown-container{font-size:13px;font-weight:400;text-transform:none}.monaco-action-bar .action-item.select-container{cursor:default}.monaco-action-bar .action-item .monaco-select-box{cursor:pointer;min-width:100px;min-height:18px;padding:2px 23px 2px 8px}.mac .monaco-action-bar .action-item .monaco-select-box{font-size:11px;border-radius:5px}.monaco-select-box-dropdown-padding{--dropdown-padding-top:1px;--dropdown-padding-bottom:1px}.hc-black .monaco-select-box-dropdown-padding,.hc-light .monaco-select-box-dropdown-padding{--dropdown-padding-top:3px;--dropdown-padding-bottom:4px}.monaco-select-box-dropdown-container{display:none;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown *{margin:0}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown a:focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown code{line-height:15px;font-family:var(--monaco-monospace-font)}.monaco-select-box-dropdown-container.visible{display:flex;flex-direction:column;text-align:left;width:1px;overflow:hidden;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container{flex:0 0 auto;align-self:flex-start;padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom);padding-left:1px;padding-right:1px;width:100%;overflow:hidden;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane{padding:5px}.hc-black .monaco-select-box-dropdown-container>.select-box-dropdown-list-container{padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom)}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row{cursor:pointer}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-text{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-detail{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left;opacity:.7}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-decorator-right{text-overflow:ellipsis;overflow:hidden;padding-right:10px;white-space:nowrap;float:right}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.visually-hidden{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control{flex:1 1 auto;align-self:flex-start;opacity:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div{overflow:hidden;max-height:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div>.option-text-width-control{padding-left:4px;padding-right:8px;white-space:nowrap}.monaco-split-view2{position:relative;width:100%;height:100%}.monaco-split-view2>.sash-container{position:absolute;width:100%;height:100%;pointer-events:none}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:auto}.monaco-split-view2>.monaco-scrollable-element{width:100%;height:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container{width:100%;height:100%;white-space:nowrap;position:relative}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{white-space:normal;position:absolute}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{content:" ";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--separator-border)}.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{display:flex;flex-direction:column;position:relative;height:100%;width:100%;white-space:nowrap;overflow:hidden}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table>.monaco-list{flex:1}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{width:100%;height:100%;font-weight:700;overflow:hidden;text-overflow:ellipsis}.monaco-table-td,.monaco-table-th{box-sizing:border-box;flex-shrink:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{content:"";position:absolute;left:calc(var(--vscode-sash-size)/2);width:0;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2,.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-custom-toggle{margin-left:2px;float:left;cursor:pointer;overflow:hidden;width:20px;height:20px;border-radius:3px;border:1px solid transparent;padding:1px;box-sizing:border-box;user-select:none;-webkit-user-select:none}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.hc-black .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle,.hc-light .monaco-custom-toggle:hover{background:none}.monaco-custom-toggle.monaco-checkbox{height:18px;width:18px;border:1px solid transparent;border-radius:3px;margin-right:9px;margin-left:0;padding:0;opacity:1;background-size:16px!important}.monaco-action-bar .checkbox-action-item{display:flex;align-items:center}.monaco-action-bar .checkbox-action-item>.monaco-custom-toggle.monaco-checkbox{margin-right:4px}.monaco-action-bar .checkbox-action-item>.checkbox-label{font-size:12px}.monaco-custom-toggle.monaco-checkbox:not(.checked):before{visibility:hidden}.monaco-toolbar{height:100%}.monaco-toolbar .toolbar-toggle-more{display:inline-block;padding:0}.monaco-tl-row{display:flex;height:100%;align-items:center;position:relative}.monaco-tl-row.disabled{cursor:default}.monaco-tl-indent{height:100%;position:absolute;top:0;left:16px;pointer-events:none}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{display:inline-block;box-sizing:border-box;height:100%;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-tl-indent>.indent-guide{transition:border-color .1s linear}.monaco-tl-contents,.monaco-tl-twistie{height:100%}.monaco-tl-twistie{font-size:10px;text-align:right;padding-right:6px;flex-shrink:0;width:16px;display:flex!important;align-items:center;justify-content:center;transform:translateX(3px)}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:codicon-spin 1.25s steps(30) infinite}.monaco-tree-type-filter{position:absolute;top:0;display:flex;padding:3px;max-width:200px;z-index:100;margin:0 6px;border:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter{transition:top .3s}.monaco-tree-type-filter.disabled{top:-40px!important}.monaco-tree-type-filter-grab{display:flex!important;align-items:center;justify-content:center;cursor:grab;margin-right:2px}.monaco-tree-type-filter-grab.grabbing{cursor:grabbing}.monaco-tree-type-filter-input{flex:1}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.input,.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.mirror{padding:2px 4px}.monaco-tree-type-filter-input .monaco-findInput>.controls{top:2px}.monaco-tree-type-filter-actionbar{margin-left:4px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{position:absolute;top:0;left:0;width:100%;height:0;z-index:13;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{position:absolute;width:100%;opacity:1!important;overflow:hidden;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{background-color:var(--vscode-list-hoverBackground)!important;cursor:pointer}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow{position:absolute;bottom:-3px;left:0;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-editor .inputarea{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent;z-index:-10}.monaco-editor .inputarea.ime-input{z-index:10;caret-color:var(--vscode-editorCursor-foreground);color:var(--vscode-editor-foreground)}.monaco-editor .blockDecorations-container{position:absolute;top:0;pointer-events:none}.monaco-editor .blockDecorations-block{position:absolute;box-sizing:border-box}.monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{display:block;position:absolute;left:0;top:0;box-sizing:border-box}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .glyph-margin-widgets .cgmr{position:absolute;display:flex;align-items:center;justify-content:center}.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin:before{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.monaco-editor .lines-content .core-guide{position:absolute;box-sizing:border-box}.monaco-editor .margin-view-overlays .line-numbers{font-variant-numeric:tabular-nums;position:absolute;text-align:right;display:inline-block;vertical-align:middle;box-sizing:border-box;cursor:default;height:100%}.monaco-editor .relative-current-line-number{text-align:left;display:inline-block;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor .line-numbers{color:var(--vscode-editorLineNumber-foreground)}.monaco-editor .line-numbers.active-line-number{color:var(--vscode-editorLineNumber-activeForeground)}.mtkcontrol{color:#fff!important;background:#960000!important}.mtkoverflow{background-color:var(--vscode-button-background,var(--vscode-editor-background));color:var(--vscode-button-foreground,var(--vscode-editor-foreground));border:1px solid var(--vscode-contrastBorder);border-radius:2px;padding:4px;cursor:pointer}.mtkoverflow:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{user-select:none;-webkit-user-select:none}.monaco-editor.mac .lines-content:hover,.monaco-editor.mac .view-line:hover,.monaco-editor.mac .view-lines:hover{user-select:text;-webkit-user-select:text;-ms-user-select:text}.monaco-editor.enable-user-select{user-select:initial;-webkit-user-select:initial}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .mtkw,.monaco-editor .mtkz{color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .mtkz{display:inline-block}.monaco-editor .lines-decorations{position:absolute;top:0;background:#fff}.monaco-editor .margin-view-overlays .cldr{position:absolute;height:100%}.monaco-editor .margin{background-color:var(--vscode-editorGutter-background)}.monaco-editor .margin-view-overlays .cmdr{position:absolute;left:0;width:100%;height:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover .minimap-slider.active,.monaco-editor .minimap.slider-mouseover:hover .minimap-slider{opacity:1}.monaco-editor .minimap-slider .minimap-slider-horizontal{background:var(--vscode-minimapSlider-background)}.monaco-editor .minimap-slider:hover .minimap-slider-horizontal{background:var(--vscode-minimapSlider-hoverBackground)}.monaco-editor .minimap-slider.active .minimap-slider-horizontal{background:var(--vscode-minimapSlider-activeBackground)}.monaco-editor .minimap-shadow-visible{box-shadow:var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{position:absolute;left:-6px;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{position:absolute;left:-1px;width:1px}.minimap.autohide{opacity:0;transition:opacity .5s}.minimap.autohide:hover{opacity:1}.monaco-editor .minimap{z-index:5}.monaco-editor .overlayWidgets{position:absolute;top:0;left:0}.monaco-editor .view-ruler{position:absolute;top:0;box-shadow:1px 0 0 0 var(--vscode-editorRuler-foreground) inset}.monaco-editor .scroll-decoration{position:absolute;top:0;left:0;height:6px;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.monaco-editor .selected-text{background-color:var(--vscode-editor-inactiveSelectionBackground)}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{position:absolute;overflow:hidden;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{border-bottom-width:2px;border-bottom-style:solid;background:transparent!important}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{border-bottom-width:1px;border-bottom-style:solid;background:transparent!important}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-editor .mwh{position:absolute;color:var(--vscode-editorWhitespace-foreground)!important}.monaco-diff-editor .diff-review-line-number{text-align:right;display:inline-block;color:var(--vscode-editorLineNumber-foreground)}.monaco-diff-editor .diff-review{position:absolute;user-select:none;-webkit-user-select:none;z-index:99}.monaco-diff-editor .diff-review-summary{padding-left:10px}.monaco-diff-editor .diff-review-shadow{position:absolute;box-shadow:var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset}.monaco-diff-editor .diff-review-row{white-space:pre}.monaco-diff-editor .diff-review-table{display:table;min-width:100%}.monaco-diff-editor .diff-review-row{display:table-row;width:100%}.monaco-diff-editor .diff-review-spacer{display:inline-block;width:10px;vertical-align:middle}.monaco-diff-editor .diff-review-spacer>.codicon{font-size:9px!important}.monaco-diff-editor .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px;z-index:100}.monaco-diff-editor .diff-review-actions .action-label{width:16px;height:16px;margin:2px 0}.monaco-diff-editor .revertButton{cursor:pointer}.monaco-editor .diff-hidden-lines-widget{width:100%}.monaco-editor .diff-hidden-lines{height:0;transform:translateY(-10px);font-size:13px;line-height:14px}.monaco-editor .diff-hidden-lines .bottom.dragging,.monaco-editor .diff-hidden-lines .top.dragging,.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover{background-color:var(--vscode-focusBorder)}.monaco-editor .diff-hidden-lines .bottom,.monaco-editor .diff-hidden-lines .top{transition:background-color .1s ease-out;height:4px;background-color:transparent;background-clip:padding-box;border-bottom:2px solid transparent;border-top:4px solid transparent}.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom),.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *{cursor:n-resize!important}.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom,.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *{cursor:s-resize!important}.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom,.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *{cursor:ns-resize!important}.monaco-editor .diff-hidden-lines .top{transform:translateY(4px)}.monaco-editor .diff-hidden-lines .bottom{transform:translateY(-6px)}.monaco-editor .diff-unchanged-lines{background:var(--vscode-diffEditor-unchangedCodeBackground)}.monaco-editor .noModificationsOverlay{z-index:1;background:var(--vscode-editor-background);display:flex;justify-content:center;align-items:center}.monaco-editor .diff-hidden-lines .center{background:var(--vscode-diffEditor-unchangedRegionBackground);color:var(--vscode-diffEditor-unchangedRegionForeground);overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;height:24px;box-shadow:inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow),inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow)}.monaco-editor .diff-hidden-lines .center span.codicon{vertical-align:middle}.monaco-editor .diff-hidden-lines .center a:hover .codicon{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .diff-hidden-lines div.breadcrumb-item{cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover{color:var(--vscode-editorLink-activeForeground)}.monaco-editor .movedModified,.monaco-editor .movedOriginal{border:2px solid var(--vscode-diffEditor-move-border)}.monaco-editor .movedModified.currentMove,.monaco-editor .movedOriginal.currentMove{border:2px solid var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path.currentMove{stroke:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path{pointer-events:visiblestroke}.monaco-diff-editor .moved-blocks-lines .arrow{fill:var(--vscode-diffEditor-move-border)}.monaco-diff-editor .moved-blocks-lines .arrow.currentMove{fill:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines .arrow-rectangle{fill:var(--vscode-editor-background)}.monaco-diff-editor .moved-blocks-lines{position:absolute;pointer-events:none}.monaco-diff-editor .moved-blocks-lines path{fill:none;stroke:var(--vscode-diffEditor-move-border);stroke-width:2}.monaco-editor .char-delete.diff-range-empty{margin-left:-1px;border-left:3px solid var(--vscode-diffEditor-removedTextBackground)}.monaco-editor .char-insert.diff-range-empty{border-left:3px solid var(--vscode-diffEditor-insertedTextBackground)}.monaco-editor .fold-unchanged{cursor:pointer}.monaco-diff-editor .diff-moved-code-block{display:flex;justify-content:flex-end;margin-top:-4px}.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon{width:12px;height:12px;font-size:12px}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:rgba(0,0,0,.03)}.monaco-diff-editor.vs-dark .diffOverview{background:hsla(0,0%,100%,.01)}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar{background:transparent}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:hsla(0,0%,67.1%,.4)}.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .slider.active{background:none}.monaco-diff-editor .delete-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-editor .insert-sign{font-size:11px!important;opacity:.7!important;display:flex!important;align-items:center}.monaco-diff-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-diff-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-editor.hc-light .insert-sign{opacity:1}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone{text-align:right}.monaco-editor .arrow-revert-change{z-index:10;position:absolute}.monaco-editor .arrow-revert-change:hover{cursor:pointer}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-diff-editor .char-insert,.monaco-editor .char-insert{background-color:var(--vscode-diffEditor-insertedTextBackground)}.monaco-diff-editor .line-insert,.monaco-editor .line-insert{background-color:var(--vscode-diffEditor-insertedLineBackground,var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .char-insert,.monaco-editor .line-insert{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-insertedTextBorder)}.monaco-editor.hc-black .char-insert,.monaco-editor.hc-black .line-insert,.monaco-editor.hc-light .char-insert,.monaco-editor.hc-light .line-insert{border-style:dashed}.monaco-editor .char-delete,.monaco-editor .line-delete{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-removedTextBorder)}.monaco-editor.hc-black .char-delete,.monaco-editor.hc-black .line-delete,.monaco-editor.hc-light .char-delete,.monaco-editor.hc-light .line-delete{border-style:dashed}.monaco-diff-editor .gutter-insert,.monaco-editor .gutter-insert,.monaco-editor .inline-added-margin-view-zone{background-color:var(--vscode-diffEditorGutter-insertedLineBackground,var(--vscode-diffEditor-insertedLineBackground),var(--vscode-diffEditor-insertedTextBackground))}.monaco-diff-editor .char-delete,.monaco-editor .char-delete{background-color:var(--vscode-diffEditor-removedTextBackground)}.monaco-diff-editor .line-delete,.monaco-editor .line-delete{background-color:var(--vscode-diffEditor-removedLineBackground,var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor .gutter-delete,.monaco-editor .gutter-delete,.monaco-editor .inline-deleted-margin-view-zone{background-color:var(--vscode-diffEditorGutter-removedLineBackground,var(--vscode-diffEditor-removedLineBackground),var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor.side-by-side .editor.modified{box-shadow:-6px 0 5px -5px var(--vscode-scrollbar-shadow);border-left:1px solid var(--vscode-diffEditor-border)}.monaco-diff-editor .diffViewport{background:var(--vscode-scrollbarSlider-background)}.monaco-diff-editor .diffViewport:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-diff-editor .diffViewport:active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .diagonal-fill{background-image:linear-gradient(-45deg,var(--vscode-diffEditor-diagonalFill) 12.5%,transparent 0,transparent 50%,var(--vscode-diffEditor-diagonalFill) 0,var(--vscode-diffEditor-diagonalFill) 62.5%,transparent 0,transparent);background-size:8px 8px}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{position:relative;overflow:visible;-webkit-text-size-adjust:100%;color:var(--vscode-editor-foreground)}.monaco-editor,.monaco-editor-background{background-color:var(--vscode-editor-background)}.monaco-editor .rangeHighlight{background-color:var(--vscode-editor-rangeHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-rangeHighlightBorder)}.monaco-editor.hc-black .rangeHighlight,.monaco-editor.hc-light .rangeHighlight{border-style:dotted}.monaco-editor .symbolHighlight{background-color:var(--vscode-editor-symbolHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-symbolHighlightBorder)}.monaco-editor.hc-black .symbolHighlight,.monaco-editor.hc-light .symbolHighlight{border-style:dotted}.monaco-editor .overflow-guard{position:relative;overflow:hidden}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .squiggly-error{border-bottom:4px double var(--vscode-editorError-border)}.monaco-editor .squiggly-error:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorError-background)}.monaco-editor .squiggly-warning{border-bottom:4px double var(--vscode-editorWarning-border)}.monaco-editor .squiggly-warning:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorWarning-background)}.monaco-editor .squiggly-info{border-bottom:4px double var(--vscode-editorInfo-border)}.monaco-editor .squiggly-info:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorInfo-background)}.monaco-editor .squiggly-hint{border-bottom:2px dotted var(--vscode-editorHint-border)}.monaco-editor.showUnused .squiggly-unnecessary{border-bottom:2px dashed var(--vscode-editorUnnecessaryCode-border)}.monaco-editor.showDeprecated .squiggly-inline-deprecated{text-decoration:line-through;text-decoration-color:var(--vscode-editor-foreground,inherit)}.monaco-component .multiDiffEntry{display:flex;flex-direction:column}.monaco-component .multiDiffEntry .editorParent{border-left:2px solid var(--vscode-tab-inactiveBackground)}.monaco-component .multiDiffEntry.focused .editorParent{border-left:2px solid var(--vscode-notebook-focusedCellBorder)}.monaco-component .multiDiffEntry .editorParent .editorContainer{border-left:17px solid var(--vscode-tab-inactiveBackground)}.monaco-component .multiDiffEntry .collapse-button{margin:0 5px;cursor:pointer}.monaco-component .multiDiffEntry .collapse-button a{display:block}.monaco-component .multiDiffEntry .header{display:flex;align-items:center;padding:8px 5px;color:var(--vscode-foreground);background:var(--vscode-editor-background);z-index:1000;border-bottom:1px solid var(--vscode-sideBarSectionHeader-border);border-top:1px solid var(--vscode-sideBarSectionHeader-border);border-left:2px solid var(--vscode-editor-background)}.monaco-component .multiDiffEntry.focused .header{border-left:2px solid var(--vscode-notebook-focusedCellBorder)}.monaco-component .multiDiffEntry .header.shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px}.monaco-component .multiDiffEntry .header .title{flex:1;font-size:14px;line-height:22px}.monaco-component .multiDiffEntry .header .actions{padding:0 8px}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .bracket-match{box-sizing:border-box;background-color:var(--vscode-editorBracketMatch-background);border:1px solid var(--vscode-editorBracketMatch-border)}.monaco-editor .lightBulbWidget{display:flex;align-items:center;justify-content:center}.monaco-editor .lightBulbWidget:hover{cursor:pointer}.monaco-editor .lightBulbWidget.codicon-light-bulb,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix{color:var(--vscode-editorLightBulbAutoFix-foreground,var(--vscode-editorLightBulb-foreground))}.monaco-editor .lightBulbWidget.codicon-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground,var(--vscode-icon-foreground))}.monaco-editor .lightBulbWidget:before{position:relative;z-index:2}.monaco-editor .lightBulbWidget:after{position:absolute;top:0;left:0;content:"";display:block;width:100%;height:100%;opacity:.3;background-color:var(--vscode-editor-background);z-index:1}.monaco-editor .codelens-decoration{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize);padding-right:calc(var(--vscode-editorCodeLens-fontSize)*0.5);font-feature-settings:var(--vscode-editorCodeLens-fontFeatureSettings);font-family:var(--vscode-editorCodeLens-fontFamily),var(--vscode-editorCodeLens-fontFamilyDefault)}.monaco-editor .codelens-decoration>a,.monaco-editor .codelens-decoration>span{user-select:none;-webkit-user-select:none;white-space:nowrap;vertical-align:sub}.monaco-editor .codelens-decoration>a{text-decoration:none}.monaco-editor .codelens-decoration>a:hover{cursor:pointer}.monaco-editor .codelens-decoration>a:hover,.monaco-editor .codelens-decoration>a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration .codicon{vertical-align:middle;color:currentColor!important;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize)}.monaco-editor .codelens-decoration>a:hover .codicon:before{cursor:pointer}@keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{animation:fadein .1s linear}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:.1em solid #000;box-sizing:border-box;margin:.1em .2em 0;width:.8em;height:.8em;line-height:.8em;display:inline-block;cursor:pointer}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:.1em solid #eee}.colorpicker-header{display:flex;height:24px;position:relative;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-header .picked-color{width:240px;display:flex;align-items:center;justify-content:center;line-height:24px;cursor:pointer;color:#fff;flex:1;white-space:nowrap;overflow:hidden}.colorpicker-header .picked-color .picked-color-presentation{white-space:nowrap;margin-left:5px;margin-right:5px}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{width:74px;z-index:inherit;cursor:pointer}.standalone-colorpicker{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header.standalone-colorpicker{border-bottom:none}.colorpicker-header .close-button{cursor:pointer;background-color:var(--vscode-editorHoverWidget-background);border-left:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header .close-button-inner-div{width:100%;height:100%;text-align:center}.colorpicker-header .close-button-inner-div:hover{background-color:var(--vscode-toolbar-hoverBackground)}.colorpicker-header .close-icon{padding:3px}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{overflow:hidden;height:150px;position:relative;min-width:220px;flex:1}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{width:9px;height:9px;margin:-5px 0 0 -5px;border:1px solid #fff;border-radius:100%;box-shadow:0 0 2px rgba(0,0,0,.8);position:absolute}.colorpicker-body .strip{width:25px;height:150px}.colorpicker-body .standalone-strip{width:25px;height:122px}.colorpicker-body .hue-strip{position:relative;margin-left:8px;cursor:grab;background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.colorpicker-body .opacity-strip{position:relative;margin-left:8px;cursor:grab;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-body .strip.grabbing{cursor:grabbing}.colorpicker-body .slider{position:absolute;top:0;left:-2px;width:calc(100% + 4px);height:4px;box-sizing:border-box;border:1px solid hsla(0,0%,100%,.71);box-shadow:0 0 1px rgba(0,0,0,.85)}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.colorpicker-body .standalone-strip .standalone-overlay{height:122px;pointer-events:none}.standalone-colorpicker-body{display:block;border:1px solid transparent;border-bottom:1px solid var(--vscode-editorHoverWidget-border);overflow:hidden}.colorpicker-body .insert-button{position:absolute;height:20px;width:58px;padding:0;right:8px;bottom:8px;background:var(--vscode-button-background);color:var(--vscode-button-foreground);border-radius:2px;border:none;cursor:pointer}.colorpicker-body .insert-button:hover{background:var(--vscode-button-hoverBackground)}.monaco-editor.hc-light .dnd-target,.monaco-editor.vs .dnd-target{border-right:2px dotted #000;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #aeafad;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.hc-light.mac.mouse-default .view-lines,.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines{cursor:default}.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.hc-light.mac.mouse-copy .view-lines,.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines{cursor:copy}.post-edit-widget{box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:1px solid var(--vscode-widget-border,transparent);border-radius:4px;background-color:var(--vscode-editorWidget-background);overflow:hidden}.post-edit-widget .monaco-button{padding:2px;border:none;border-radius:0}.post-edit-widget .monaco-button:hover{background-color:var(--vscode-button-secondaryHoverBackground)!important}.post-edit-widget .monaco-button .codicon{margin:0}.monaco-editor .findOptionsWidget{background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground);box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:2px solid var(--vscode-contrastBorder)}.monaco-editor .find-widget{position:absolute;z-index:35;height:33px;overflow:hidden;line-height:19px;transition:transform .2s linear;padding:0 4px;box-sizing:border-box;transform:translateY(calc(-100% - 10px));border-bottom-left-radius:4px;border-bottom-right-radius:4px}.monaco-workbench.reduce-motion .monaco-editor .find-widget{transition:transform 0ms linear}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:transparent;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{margin:3px 25px 0 17px;font-size:12px;display:flex}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-top:2px;padding-bottom:2px}.monaco-editor .find-widget>.find-part .find-actions,.monaco-editor .find-widget>.replace-part .replace-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget .monaco-findInput{vertical-align:middle;display:flex;flex:1}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{display:flex;flex:initial;margin:0 0 0 3px;padding:2px 0 0 2px;height:25px;vertical-align:middle;box-sizing:border-box;text-align:center;line-height:23px}.monaco-editor .find-widget .button{width:16px;height:16px;padding:3px;border-radius:5px;flex:initial;margin-left:3px;background-position:50%;background-repeat:no-repeat;cursor:pointer;display:flex;align-items:center;justify-content:center}.monaco-editor .find-widget .codicon-find-selection{width:22px;height:22px;padding:3px;border-radius:5px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{width:auto;padding:1px 6px;top:-1px}.monaco-editor .find-widget .button.toggle{position:absolute;top:0;left:3px;width:18px;height:100%;border-radius:0;box-sizing:border-box}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{color:var(--vscode-disabledForeground);cursor:default}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{position:relative;display:flex;vertical-align:middle;flex:auto;flex-grow:0;flex-shrink:0}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important}.monaco-editor .find-widget .monaco-sash{left:0!important}.monaco-editor.hc-black .find-widget .button:before{position:relative;top:1px;left:2px}.monaco-editor .find-widget>.button.codicon-widget-close{position:absolute;top:5px;right:4px}.monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{cursor:pointer;opacity:0;transition:opacity .5s;display:flex;align-items:center;justify-content:center;font-size:140%;margin-left:2px}.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{transition:initial}.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays:hover .codicon{opacity:1}.monaco-editor .inline-folded:after{color:grey;margin:.1em .2em 0;content:"\\22EF";display:inline;line-height:1em;cursor:pointer}.monaco-editor .folded-background{background-color:var(--vscode-editor-foldBackground)}.monaco-editor .cldr.codicon.codicon-folding-collapsed,.monaco-editor .cldr.codicon.codicon-folding-expanded,.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed,.monaco-editor .cldr.codicon.codicon-folding-manual-expanded{color:var(--vscode-editorGutter-foldingControlForeground)!important}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;vertical-align:text-top;margin-right:4px}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{opacity:.6;font-style:italic}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{position:absolute;white-space:pre;user-select:text;-webkit-user-select:text;padding:8px 12px 0 20px}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{opacity:.6;color:inherit}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before{content:"("}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after{content:")"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-foreground);color:var(--vscode-textLink-activeForeground)}.monaco-editor .marker-widget .descriptioncontainer .filename{cursor:pointer}.monaco-editor .goto-definition-link{text-decoration:underline;cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-top-width:1px;border-bottom-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;width:100%;text-align:center;padding:3em 0}.monaco-editor .reference-zone-widget .ref-tree{line-height:23px;background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground)}.monaco-editor .reference-zone-widget .ref-tree .reference{text-overflow:ellipsis;overflow:hidden}.monaco-editor .reference-zone-widget .ref-tree .reference-file{display:inline-flex;width:100%;height:100%;color:var(--vscode-peekViewResult-fileForeground)}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file{color:inherit!important}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows>.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground)!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-right:12px;margin-left:auto}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{background-color:var(--vscode-peekViewResult-matchHighlightBackground)}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input,.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted var(--vscode-contrastActiveBorder,transparent);box-sizing:border-box}.monaco-editor .hoverHighlight{background-color:var(--vscode-editor-hoverHighlightBackground)}.monaco-editor .monaco-hover{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px}.monaco-editor .monaco-hover a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .monaco-hover .hover-row .actions{background-color:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-editor .monaco-hover code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor.vs .valueSetReplacement{outline:solid 2px var(--vscode-editorBracketMatch-border)}.monaco-editor .suggest-preview-additional-widget{white-space:nowrap}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:transparent;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{display:inline-block;cursor:pointer;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden{opacity:0;font-size:0}.monaco-editor .ghost-text-decoration,.monaco-editor .suggest-preview-text .ghost-text{font-style:italic}.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-decoration,.monaco-editor .ghost-text-decoration-preview,.monaco-editor .suggest-preview-text .ghost-text{color:var(--vscode-editorGhostText-foreground)!important;background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border)}.monaco-editor .inlineSuggestionsHints.withBorder{z-index:39;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .inlineSuggestionsHints a,.monaco-editor .inlineSuggestionsHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineSuggestionsHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a{display:flex;min-width:19px;justify-content:center}.monaco-editor .inlineSuggestionStatusBarItemLabel{margin-right:2px}.inline-editor-progress-decoration{display:inline-block;width:1em;height:1em}.inline-progress-widget{display:flex!important;justify-content:center;align-items:center}.inline-progress-widget .icon{font-size:80%!important}.inline-progress-widget:hover .icon{font-size:90%!important;animation:none}.inline-progress-widget:hover .icon:before{content:"\\ea76"}.monaco-editor .linked-editing-decoration{background-color:var(--vscode-editor-linkedEditingBackground);min-width:1px}.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .rendered-markdown kbd{background-color:var(--vscode-keybindingLabel-background);color:var(--vscode-keybindingLabel-foreground);border-radius:3px;border:1px solid var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);vertical-align:middle;padding:1px 3px}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:fadeIn .15s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:fadeOut .1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{padding:2px 4px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-inputValidation-infoBorder);border-radius:3px}.monaco-editor .monaco-editor-overlaymessage .message p{margin-block:0}.monaco-editor .monaco-editor-overlaymessage .message a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-editor-overlaymessage .message a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .monaco-editor-overlaymessage .message{border-width:2px}.monaco-editor .monaco-editor-overlaymessage .anchor{width:0!important;height:0!important;z-index:1000;border:8px solid transparent;position:absolute;left:2px}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage.below .anchor.below,.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top{display:none}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.monaco-editor .parameter-hints-widget{z-index:39;display:flex;flex-direction:column;line-height:1.5em;cursor:default;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.hc-black .monaco-editor .parameter-hints-widget,.hc-light .monaco-editor .parameter-hints-widget{border-width:2px}.monaco-editor .parameter-hints-widget>.phwrapper{max-width:440px;display:flex;flex-direction:row}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.multiple .body:before{content:"";display:block;height:100%;position:absolute;opacity:.5;border-left:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul{margin:8px 0}.monaco-editor .parameter-hints-widget .body,.monaco-editor .parameter-hints-widget .monaco-scrollable-element{display:flex;flex:1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px;position:relative}.monaco-editor .parameter-hints-widget .signature.has-docs:after{content:"";display:block;position:absolute;left:0;width:100%;padding-top:4px;opacity:.5;border-bottom:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs.empty{display:none}.monaco-editor .parameter-hints-widget .docs a{color:var(--vscode-textLink-foreground)}.monaco-editor .parameter-hints-widget .docs a:hover{color:var(--vscode-textLink-activeForeground);cursor:pointer}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:normal}.monaco-editor .parameter-hints-widget .docs code{font-family:var(--monaco-monospace-font);border-radius:3px;padding:0 .4em;background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .parameter-hints-widget .docs .code,.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .controls{display:none;flex-direction:column;align-items:center;min-width:22px;justify-content:flex-end}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{width:16px;height:16px;background-repeat:no-repeat;cursor:pointer}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{text-align:center;height:12px;line-height:12px;font-family:var(--monaco-monospace-font)}.monaco-editor .parameter-hints-widget .signature .parameter.active{color:var(--vscode-editorHoverWidget-highlightForeground);font-weight:700}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;justify-content:space-between;flex-wrap:nowrap}.monaco-editor .peekview-widget .head .peekview-title{display:flex;align-items:baseline;font-size:13px;margin-left:20px;min-width:0;text-overflow:ellipsis;overflow:hidden}.monaco-editor .peekview-widget .head .peekview-title.clickable{cursor:pointer}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .peekview-widget .head .peekview-title .filename,.monaco-editor .peekview-widget .head .peekview-title .meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:"-";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;text-align:right;padding-right:2px}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar{display:inline-block}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container{height:100%}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{margin-right:4px;align-self:center}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon{color:inherit!important}.monaco-editor .rename-box{z-index:100;color:inherit;border-radius:4px}.monaco-editor .rename-box.preview{padding:4px 4px 0}.monaco-editor .rename-box .rename-input{padding:3px;border-radius:2px}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .snippet-placeholder{min-width:2px;outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetTabstopHighlightBackground,transparent);outline-color:var(--vscode-editor-snippetTabstopHighlightBorder,transparent)}.monaco-editor .finish-snippet-placeholder{outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground,transparent);outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder,transparent)}.monaco-editor .sticky-widget{overflow:hidden}.monaco-editor .sticky-widget-line-numbers{float:left;background-color:inherit}.monaco-editor .sticky-widget-lines-scrollable{display:inline-block;position:absolute;overflow:hidden;width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit}.monaco-editor .sticky-widget-lines{position:absolute;background-color:inherit}.monaco-editor .sticky-line-content,.monaco-editor .sticky-line-number{color:var(--vscode-editorLineNumber-foreground);white-space:nowrap;display:inline-block;position:absolute;background-color:inherit}.monaco-editor .sticky-line-number .codicon-folding-collapsed,.monaco-editor .sticky-line-number .codicon-folding-expanded{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit;white-space:nowrap}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor.hc-black .sticky-widget,.monaco-editor.hc-light .sticky-widget{border-bottom:1px solid var(--vscode-contrastBorder)}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget{width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 3px 2px -2px;z-index:4;background-color:var(--vscode-editorStickyScroll-background)}.monaco-editor .sticky-widget.peek{background-color:var(--vscode-peekViewEditorStickyScroll-background)}.monaco-editor .suggest-widget{width:430px;z-index:40;display:flex;flex-direction:column;border-radius:3px}.monaco-editor .suggest-widget.message{flex-direction:row;align-items:center}.monaco-editor .suggest-details,.monaco-editor .suggest-widget{flex:0 1 auto;width:100%;border:1px solid var(--vscode-editorSuggestWidget-border);background-color:var(--vscode-editorSuggestWidget-background)}.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-light .suggest-details,.monaco-editor.hc-light .suggest-widget{border-width:2px}.monaco-editor .suggest-widget .suggest-status-bar{box-sizing:border-box;display:none;flex-flow:row nowrap;justify-content:space-between;width:100%;font-size:80%;padding:0 4px;border-top:1px solid var(--vscode-editorSuggestWidget-border);overflow:hidden}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar{display:flex}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:var(--vscode-editorSuggestWidgetStatus-foreground)}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label{margin-right:0}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:", ";margin-right:.3em}.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:100%}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget>.tree{height:100%;width:100%}.monaco-editor .suggest-widget .monaco-list{user-select:none;-webkit-user-select:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{display:flex;-mox-box-sizing:border-box;box-sizing:border-box;padding-right:10px;background-repeat:no-repeat;background-position:2px 2px;white-space:nowrap;cursor:pointer;touch-action:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;overflow:hidden;text-overflow:ellipsis;white-space:pre;justify-content:space-between}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{display:flex}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;opacity:1;font-size:14px;cursor:pointer}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;top:6px;right:2px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover{opacity:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{overflow:hidden;text-overflow:ellipsis;opacity:.6}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{margin-left:12px;opacity:.4;font-size:85%;line-height:normal;text-overflow:ellipsis;overflow:hidden;align-self:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{font-size:85%;margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{display:none}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-shrink:1;flex-grow:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label{max-width:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{overflow:hidden;flex-shrink:4;max-width:70%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;position:absolute;right:10px;width:18px;height:18px;visibility:hidden}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:inline-block}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container{text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before{height:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{display:block;height:16px;width:16px;margin-left:2px;background-repeat:no-repeat;background-size:80%;background-position:50%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{display:flex;align-items:center;margin-right:4px}.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{margin:0 0 0 .3em;border:.1em solid #000;width:.7em;height:.7em;display:inline-block}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{display:flex;flex-direction:column;cursor:default;color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-details.focused{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details a{color:var(--vscode-textLink-foreground)}.monaco-editor .suggest-details a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .suggest-details.no-docs{display:none}.monaco-editor .suggest-details>.monaco-scrollable-element{flex:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2;overflow:hidden;text-overflow:ellipsis;opacity:.7;white-space:pre;margin:0 24px 0 0;padding:4px 0 12px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px;overflow:hidden}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{padding:0;white-space:normal;min-height:calc(1rem + 8px)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child{margin-top:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child{margin-bottom:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source{white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{white-space:pre-wrap;word-wrap:break-word}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty{display:none}.monaco-editor .suggest-details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details ol,.monaco-editor .suggest-details ul{padding-left:20px}.monaco-editor .suggest-details p code{font-family:var(--monaco-monospace-font)}.monaco-editor .codicon.codicon-symbol-array,.monaco-workbench .codicon.codicon-symbol-array{color:var(--vscode-symbolIcon-arrayForeground)}.monaco-editor .codicon.codicon-symbol-boolean,.monaco-workbench .codicon.codicon-symbol-boolean{color:var(--vscode-symbolIcon-booleanForeground)}.monaco-editor .codicon.codicon-symbol-class,.monaco-workbench .codicon.codicon-symbol-class{color:var(--vscode-symbolIcon-classForeground)}.monaco-editor .codicon.codicon-symbol-method,.monaco-workbench .codicon.codicon-symbol-method{color:var(--vscode-symbolIcon-methodForeground)}.monaco-editor .codicon.codicon-symbol-color,.monaco-workbench .codicon.codicon-symbol-color{color:var(--vscode-symbolIcon-colorForeground)}.monaco-editor .codicon.codicon-symbol-constant,.monaco-workbench .codicon.codicon-symbol-constant{color:var(--vscode-symbolIcon-constantForeground)}.monaco-editor .codicon.codicon-symbol-constructor,.monaco-workbench .codicon.codicon-symbol-constructor{color:var(--vscode-symbolIcon-constructorForeground)}.monaco-editor .codicon.codicon-symbol-enum,.monaco-editor .codicon.codicon-symbol-value,.monaco-workbench .codicon.codicon-symbol-enum,.monaco-workbench .codicon.codicon-symbol-value{color:var(--vscode-symbolIcon-enumeratorForeground)}.monaco-editor .codicon.codicon-symbol-enum-member,.monaco-workbench .codicon.codicon-symbol-enum-member{color:var(--vscode-symbolIcon-enumeratorMemberForeground)}.monaco-editor .codicon.codicon-symbol-event,.monaco-workbench .codicon.codicon-symbol-event{color:var(--vscode-symbolIcon-eventForeground)}.monaco-editor .codicon.codicon-symbol-field,.monaco-workbench .codicon.codicon-symbol-field{color:var(--vscode-symbolIcon-fieldForeground)}.monaco-editor .codicon.codicon-symbol-file,.monaco-workbench .codicon.codicon-symbol-file{color:var(--vscode-symbolIcon-fileForeground)}.monaco-editor .codicon.codicon-symbol-folder,.monaco-workbench .codicon.codicon-symbol-folder{color:var(--vscode-symbolIcon-folderForeground)}.monaco-editor .codicon.codicon-symbol-function,.monaco-workbench .codicon.codicon-symbol-function{color:var(--vscode-symbolIcon-functionForeground)}.monaco-editor .codicon.codicon-symbol-interface,.monaco-workbench .codicon.codicon-symbol-interface{color:var(--vscode-symbolIcon-interfaceForeground)}.monaco-editor .codicon.codicon-symbol-key,.monaco-workbench .codicon.codicon-symbol-key{color:var(--vscode-symbolIcon-keyForeground)}.monaco-editor .codicon.codicon-symbol-keyword,.monaco-workbench .codicon.codicon-symbol-keyword{color:var(--vscode-symbolIcon-keywordForeground)}.monaco-editor .codicon.codicon-symbol-module,.monaco-workbench .codicon.codicon-symbol-module{color:var(--vscode-symbolIcon-moduleForeground)}.monaco-editor .codicon.codicon-symbol-namespace,.monaco-workbench .codicon.codicon-symbol-namespace{color:var(--vscode-symbolIcon-namespaceForeground)}.monaco-editor .codicon.codicon-symbol-null,.monaco-workbench .codicon.codicon-symbol-null{color:var(--vscode-symbolIcon-nullForeground)}.monaco-editor .codicon.codicon-symbol-number,.monaco-workbench .codicon.codicon-symbol-number{color:var(--vscode-symbolIcon-numberForeground)}.monaco-editor .codicon.codicon-symbol-object,.monaco-workbench .codicon.codicon-symbol-object{color:var(--vscode-symbolIcon-objectForeground)}.monaco-editor .codicon.codicon-symbol-operator,.monaco-workbench .codicon.codicon-symbol-operator{color:var(--vscode-symbolIcon-operatorForeground)}.monaco-editor .codicon.codicon-symbol-package,.monaco-workbench .codicon.codicon-symbol-package{color:var(--vscode-symbolIcon-packageForeground)}.monaco-editor .codicon.codicon-symbol-property,.monaco-workbench .codicon.codicon-symbol-property{color:var(--vscode-symbolIcon-propertyForeground)}.monaco-editor .codicon.codicon-symbol-reference,.monaco-workbench .codicon.codicon-symbol-reference{color:var(--vscode-symbolIcon-referenceForeground)}.monaco-editor .codicon.codicon-symbol-snippet,.monaco-workbench .codicon.codicon-symbol-snippet{color:var(--vscode-symbolIcon-snippetForeground)}.monaco-editor .codicon.codicon-symbol-string,.monaco-workbench .codicon.codicon-symbol-string{color:var(--vscode-symbolIcon-stringForeground)}.monaco-editor .codicon.codicon-symbol-struct,.monaco-workbench .codicon.codicon-symbol-struct{color:var(--vscode-symbolIcon-structForeground)}.monaco-editor .codicon.codicon-symbol-text,.monaco-workbench .codicon.codicon-symbol-text{color:var(--vscode-symbolIcon-textForeground)}.monaco-editor .codicon.codicon-symbol-type-parameter,.monaco-workbench .codicon.codicon-symbol-type-parameter{color:var(--vscode-symbolIcon-typeParameterForeground)}.monaco-editor .codicon.codicon-symbol-unit,.monaco-workbench .codicon.codicon-symbol-unit{color:var(--vscode-symbolIcon-unitForeground)}.monaco-editor .codicon.codicon-symbol-variable,.monaco-workbench .codicon.codicon-symbol-variable{color:var(--vscode-symbolIcon-variableForeground)}.editor-banner{box-sizing:border-box;cursor:default;width:100%;font-size:12px;display:flex;overflow:visible;height:26px;background:var(--vscode-banner-background)}.editor-banner .icon-container{display:flex;flex-shrink:0;align-items:center;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-repeat:no-repeat;background-position:50%;background-size:16px;width:16px;padding:0;margin:0 6px 0 10px}.editor-banner .message-container{display:flex;align-items:center;line-height:26px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.editor-banner .message-container p{margin-block-start:0;margin-block-end:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{width:inherit;margin:2px 8px;padding:0 12px}.editor-banner .message-actions-container a{padding:3px;margin-left:12px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner{background-color:var(--vscode-banner-background)}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-editor .unicode-highlight{border:1px solid var(--vscode-editorUnicodeHighlight-border);background-color:var(--vscode-editorUnicodeHighlight-background);box-sizing:border-box}.monaco-editor .focused .selectionHighlight{background-color:var(--vscode-editor-selectionHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-selectionHighlightBorder)}.monaco-editor.hc-black .focused .selectionHighlight,.monaco-editor.hc-light .focused .selectionHighlight{border-style:dotted}.monaco-editor .wordHighlight{background-color:var(--vscode-editor-wordHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightBorder)}.monaco-editor.hc-black .wordHighlight,.monaco-editor.hc-light .wordHighlight{border-style:dotted}.monaco-editor .wordHighlightStrong{background-color:var(--vscode-editor-wordHighlightStrongBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightStrongBorder)}.monaco-editor.hc-black .wordHighlightStrong,.monaco-editor.hc-light .wordHighlightStrong{border-style:dotted}.monaco-editor .wordHighlightText{background-color:var(--vscode-editor-wordHighlightTextBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightTextBorder)}.monaco-editor.hc-black .wordHighlightText,.monaco-editor.hc-light .wordHighlightText{border-style:dotted}.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-top-style:solid;border-bottom-style:solid;border-top-width:0;border-bottom-width:0;position:relative}.monaco-editor .iPadShowKeyboard{width:58px;min-width:0;height:36px;min-height:0;margin:0;padding:0;position:absolute;resize:none;overflow:hidden;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00OC4wMzYgNC4wMUg0LjAwOFYzMi4wM2g0NC4wMjhWNC4wMXpNNC4wMDguMDA4QTQuMDAzIDQuMDAzIDAgMDAuMDA1IDQuMDFWMzIuMDNhNC4wMDMgNC4wMDMgMCAwMDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAwNC4wMDMtNC4wMDJWNC4wMUE0LjAwMyA0LjAwMyAwIDAwNDguMDM2LjAwOEg0LjAwOHpNOC4wMSA4LjAxM2g0LjAwM3Y0LjAwM0g4LjAxVjguMDEzem0xMi4wMDggMGgtNC4wMDJ2NC4wMDNoNC4wMDJWOC4wMTN6bTQuMDAzIDBoNC4wMDJ2NC4wMDNoLTQuMDAyVjguMDEzem0xMi4wMDggMGgtNC4wMDN2NC4wMDNoNC4wMDNWOC4wMTN6bTQuMDAyIDBoNC4wMDN2NC4wMDNINDAuMDNWOC4wMTN6bS0yNC4wMTUgOC4wMDVIOC4wMXY0LjAwM2g4LjAwNnYtNC4wMDN6bTQuMDAyIDBoNC4wMDN2NC4wMDNoLTQuMDAzdi00LjAwM3ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzdi00LjAwM3ptMTIuMDA4IDB2NC4wMDNoLTguMDA1di00LjAwM2g4LjAwNXptLTMyLjAyMSA4LjAwNUg4LjAxdjQuMDAzaDQuMDAzdi00LjAwM3ptNC4wMDMgMGgyMC4wMTN2NC4wMDNIMTYuMDE2di00LjAwM3ptMjguMDE4IDBINDAuMDN2NC4wMDNoNC4wMDN2LTQuMDAzeiIgZmlsbD0iIzQyNDI0MiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImNsaXAwIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+) 50% no-repeat;border:4px solid #f6f6f6;border-radius:4px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00OC4wMzYgNC4wMUg0LjAwOFYzMi4wM2g0NC4wMjhWNC4wMXpNNC4wMDguMDA4QTQuMDAzIDQuMDAzIDAgMDAuMDA1IDQuMDFWMzIuMDNhNC4wMDMgNC4wMDMgMCAwMDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAwNC4wMDMtNC4wMDJWNC4wMUE0LjAwMyA0LjAwMyAwIDAwNDguMDM2LjAwOEg0LjAwOHpNOC4wMSA4LjAxM2g0LjAwM3Y0LjAwM0g4LjAxVjguMDEzem0xMi4wMDggMGgtNC4wMDJ2NC4wMDNoNC4wMDJWOC4wMTN6bTQuMDAzIDBoNC4wMDJ2NC4wMDNoLTQuMDAyVjguMDEzem0xMi4wMDggMGgtNC4wMDN2NC4wMDNoNC4wMDNWOC4wMTN6bTQuMDAyIDBoNC4wMDN2NC4wMDNINDAuMDNWOC4wMTN6bS0yNC4wMTUgOC4wMDVIOC4wMXY0LjAwM2g4LjAwNnYtNC4wMDN6bTQuMDAyIDBoNC4wMDN2NC4wMDNoLTQuMDAzdi00LjAwM3ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzdi00LjAwM3ptMTIuMDA4IDB2NC4wMDNoLTguMDA1di00LjAwM2g4LjAwNXptLTMyLjAyMSA4LjAwNUg4LjAxdjQuMDAzaDQuMDAzdi00LjAwM3ptNC4wMDMgMGgyMC4wMTN2NC4wMDNIMTYuMDE2di00LjAwM3ptMjguMDE4IDBINDAuMDN2NC4wMDNoNC4wMDN2LTQuMDAzeiIgZmlsbD0iI0M1QzVDNSIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImNsaXAwIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+) 50% no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{z-index:50;user-select:text;-webkit-user-select:text;padding:10px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor.hc-black .tokens-inspect-widget,.monaco-editor.hc-light .tokens-inspect-widget{border-width:2px}.monaco-editor .tokens-inspect-widget .tokens-inspect-separator{height:1px;border:0;background-color:var(--vscode-editorHoverWidget-border)}.monaco-editor .tokens-inspect-widget .tm-token{font-family:var(--monaco-monospace-font)}.monaco-editor .tokens-inspect-widget .tm-token-length{font-weight:400;font-size:60%;float:right}.monaco-editor .tokens-inspect-widget .tm-metadata-table{width:100%}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:var(--monaco-monospace-font)}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,86.7%,.4);border:1px solid hsla(0,0%,80%,.4);border-bottom-color:hsla(0,0%,73.3%,.4);box-shadow:inset 0 -1px 0 hsla(0,0%,73.3%,.4);color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:1px solid #6fc3df;box-shadow:none;color:#fff}.hc-light .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:1px solid #0f4a85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,50.2%,.17);border:1px solid rgba(51,51,51,.6);border-bottom-color:rgba(68,68,68,.6);box-shadow:inset 0 -1px 0 rgba(68,68,68,.6);color:#ccc}.monaco-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif;--monaco-monospace-font:"SF Mono",Monaco,Menlo,Consolas,"Ubuntu Mono","Liberation Mono","DejaVu Sans Mono","Courier New",monospace}.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{position:absolute!important;top:0;height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%)}.action-widget{font-size:13px;border-radius:0;min-width:160px;max-width:80vw;z-index:40;display:block;width:100%;border:1px solid var(--vscode-editorWidget-border)!important;border-radius:2px;background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground)}.context-view-block{z-index:-1}.context-view-block,.context-view-pointerBlock{position:fixed;cursor:auto;left:0;top:0;width:100%;height:100%}.context-view-pointerBlock{z-index:2}.action-widget .monaco-list{user-select:none;-webkit-user-select:none;border:0!important}.action-widget .monaco-list:focus:before{outline:0!important}.action-widget .monaco-list .monaco-scrollable-element{overflow:visible}.action-widget .monaco-list .monaco-list-row{padding:0 10px;white-space:nowrap;cursor:pointer;touch-action:none;width:100%}.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled){background-color:var(--vscode-quickInputList-focusBackground)!important;color:var(--vscode-quickInputList-focusForeground);outline:1px solid var(--vscode-menu-selectionBorder,transparent);outline-offset:-1px}.action-widget .monaco-list-row.group-header{color:var(--vscode-descriptionForeground)!important;font-weight:600}.action-widget .monaco-list .group-header,.action-widget .monaco-list .option-disabled,.action-widget .monaco-list .option-disabled .focused,.action-widget .monaco-list .option-disabled .focused:before,.action-widget .monaco-list .option-disabled:before{cursor:default!important;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background-color:transparent!important;outline:0 solid!important}.action-widget .monaco-list-row.action{display:flex;gap:6px;align-items:center}.action-widget .monaco-list-row.action.option-disabled,.action-widget .monaco-list-row.action.option-disabled .codicon,.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled{color:var(--vscode-disabledForeground)}.action-widget .monaco-list-row.action:not(.option-disabled) .codicon{color:inherit}.action-widget .monaco-list-row.action .title{flex:1;overflow:hidden;text-overflow:ellipsis}.action-widget .action-widget-action-bar{background-color:var(--vscode-editorHoverWidget-statusBarBackground);border-top:1px solid var(--vscode-editorHoverWidget-border)}.action-widget .action-widget-action-bar:before{display:block;content:"";width:100%}.action-widget .action-widget-action-bar .actions-container{padding:0 8px}.action-widget-action-bar .action-label{color:var(--vscode-textLink-activeForeground);font-size:12px;line-height:22px;padding:0;pointer-events:all}.action-widget-action-bar .action-item{margin-right:16px;pointer-events:none}.action-widget-action-bar .action-label:hover{background-color:transparent!important}.monaco-action-bar .actions-container.highlight-toggled .action-label.checked{background:var(--vscode-actionBar-toggledBackground)!important}.monaco-action-bar .action-item.menu-entry .action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-default>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-default>.action-container.menu-entry>.action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:50%;background-repeat:no-repeat}.monaco-link{color:var(--vscode-textLink-foreground)}.monaco-link:hover{color:var(--vscode-textLink-activeForeground)}.quick-input-widget{position:absolute;width:600px;z-index:2550;left:50%;margin-left:-300px;-webkit-app-region:no-drag;border-radius:6px}.quick-input-titlebar{display:flex;align-items:center;border-top-left-radius:5px;border-top-right-radius:5px}.quick-input-left-action-bar{display:flex;margin-left:4px;flex:1}.quick-input-title{padding:3px 0;text-align:center;text-overflow:ellipsis;overflow:hidden}.quick-input-right-action-bar{display:flex;margin-right:4px;flex:1}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:50%;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px 6px 6px 11px}.quick-input-header .quick-input-description{margin:4px 2px;flex:1}.quick-input-header{display:flex;padding:8px 6px 6px}.quick-input-widget.hidden-input .quick-input-header{padding:0;margin-bottom:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-filter{flex-grow:1;display:flex;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{position:absolute;left:-10000px}.quick-input-count{align-self:center;position:absolute;right:4px;display:flex;align-items:center}.quick-input-count .monaco-count-badge{vertical-align:middle;padding:2px 4px;border-radius:2px;min-height:auto;line-height:normal}.quick-input-action{margin-left:6px}.quick-input-action .monaco-text-button{font-size:11px;padding:0 6px;display:flex;height:25px;align-items:center}.quick-input-message{margin-top:-1px;padding:5px;overflow-wrap:break-word}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-message a{color:inherit}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-list{line-height:22px}.quick-input-widget.hidden-input .quick-input-list{margin-top:4px;padding-bottom:4px}.quick-input-list .monaco-list{overflow:hidden;max-height:440px;padding-bottom:5px}.quick-input-list .monaco-scrollable-element{padding:0 5px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;overflow:hidden;display:flex;height:100%;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-width:1px;border-top-style:solid}.quick-input-list .monaco-list-row{border-radius:3px}.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{overflow:hidden;display:flex;height:100%;flex:1}.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-list .quick-input-list-icon{background-size:16px;background-position:0;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;display:flex;align-items:center;justify-content:center}.quick-input-list .quick-input-list-rows{overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;height:100%;flex:1;margin-left:5px}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox{display:inline}.quick-input-list .quick-input-list-rows>.quick-input-list-row{display:flex;align-items:center}.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-rows .monaco-highlighted-label>span{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{opacity:.7;line-height:normal;text-overflow:ellipsis;overflow:hidden}.quick-input-list .monaco-highlighted-label .highlight{font-weight:700}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:4px}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:0 2px 2px}.quick-input-list .quick-input-list-entry-action-bar{margin-top:1px;margin-right:4px}.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label{display:flex}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator{color:inherit}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}.quick-input-list .quick-input-list-separator-as-item{font-weight:600;font-size:12px}.extension-editor .codicon.codicon-error,.extensions-viewlet>.extensions .codicon.codicon-error,.markers-panel .marker-icon .codicon.codicon-error,.markers-panel .marker-icon.error,.monaco-editor .zone-widget .codicon.codicon-error,.preferences-editor .codicon.codicon-error,.text-search-provider-messages .providerMessage .codicon.codicon-error{color:var(--vscode-problemsErrorIcon-foreground)}.extension-editor .codicon.codicon-warning,.extensions-viewlet>.extensions .codicon.codicon-warning,.markers-panel .marker-icon .codicon.codicon-warning,.markers-panel .marker-icon.warning,.monaco-editor .zone-widget .codicon.codicon-warning,.preferences-editor .codicon.codicon-warning,.text-search-provider-messages .providerMessage .codicon.codicon-warning{color:var(--vscode-problemsWarningIcon-foreground)}.extension-editor .codicon.codicon-info,.extensions-viewlet>.extensions .codicon.codicon-info,.markers-panel .marker-icon .codicon.codicon-info,.markers-panel .marker-icon.info,.monaco-editor .zone-widget .codicon.codicon-info,.preferences-editor .codicon.codicon-info,.text-search-provider-messages .providerMessage .codicon.codicon-info{color:var(--vscode-problemsInfoIcon-foreground)}article{width:var(--monaco-editor-width, 100%);height:var(--monaco-editor-height, 100%)}::slotted(*){display:none}';export{het as M,c as Z,tG as m,cZ as t} \ No newline at end of file diff --git a/www/js/zui3/zen-editor/p-97f79079.js b/www/js/zui3/zen-editor/p-b50c412c.js similarity index 95% rename from www/js/zui3/zen-editor/p-97f79079.js rename to www/js/zui3/zen-editor/p-b50c412c.js index 700aa397cf..2c68d87ee4 100644 --- a/www/js/zui3/zen-editor/p-97f79079.js +++ b/www/js/zui3/zen-editor/p-b50c412c.js @@ -1,7 +1,7 @@ -import{m as e}from"./p-eb7120ba.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/var t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,m=(e,m,l,i)=>{if(m&&"object"==typeof m||"function"==typeof m)for(let o of a(m))r.call(e,o)||o===l||t(e,o,{get:()=>m[o],enumerable:!(i=n(m,o))||i.enumerable});return e},l={};m(l,e,"default");var i=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],o={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{{!--","--}}"]},brackets:[["\x3c!--","--\x3e"],["<",">"],["{{","}}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${i.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:l.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${i.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:l.languages.IndentAction.Indent}}]},s={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/\{\{!--/,"comment.block.start.handlebars","@commentBlock"],[/\{\{!/,"comment.start.handlebars","@comment"],[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/\}\}/,"comment.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentBlock:[[/--\}\}/,"comment.block.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentHtml:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],handlebarsInSimpleState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3"}],{include:"handlebarsRoot"}],handlebarsInEmbeddedState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"handlebarsRoot"}],handlebarsRoot:[[/"[^"]*"/,"string.handlebars"],[/[#/][^\s}]+/,"keyword.helper.handlebars"],[/else\b/,"keyword.helper.handlebars"],[/[\s]+/],[/[^}]/,"variable.parameter.handlebars"]]}};export{o as conf,s as language} \ No newline at end of file + *-----------------------------------------------------------------------------*/var t=Object.defineProperty,a=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,m=(e,m,l,i)=>{if(m&&"object"==typeof m||"function"==typeof m)for(let o of n(m))r.call(e,o)||o===l||t(e,o,{get:()=>m[o],enumerable:!(i=a(m,o))||i.enumerable});return e},l={};m(l,e,"default");var i=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],o={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{{!--","--}}"]},brackets:[["\x3c!--","--\x3e"],["<",">"],["{{","}}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${i.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:l.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${i.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:l.languages.IndentAction.Indent}}]},s={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/\{\{!--/,"comment.block.start.handlebars","@commentBlock"],[/\{\{!/,"comment.start.handlebars","@comment"],[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/\}\}/,"comment.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentBlock:[[/--\}\}/,"comment.block.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentHtml:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],handlebarsInSimpleState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3"}],{include:"handlebarsRoot"}],handlebarsInEmbeddedState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"handlebarsRoot"}],handlebarsRoot:[[/"[^"]*"/,"string.handlebars"],[/[#/][^\s}]+/,"keyword.helper.handlebars"],[/else\b/,"keyword.helper.handlebars"],[/[\s]+/],[/[^}]/,"variable.parameter.handlebars"]]}};export{o as conf,s as language} \ No newline at end of file diff --git a/www/js/zui3/zen-editor/p-54c067fe.entry.js b/www/js/zui3/zen-editor/p-b74f15a0.entry.js similarity index 99% rename from www/js/zui3/zen-editor/p-54c067fe.entry.js rename to www/js/zui3/zen-editor/p-b74f15a0.entry.js index 59fa48e967..9220cf61c3 100644 --- a/www/js/zui3/zen-editor/p-54c067fe.entry.js +++ b/www/js/zui3/zen-editor/p-b74f15a0.entry.js @@ -1 +1 @@ -export{M as monaco_editor,Z as zen_editor}from"./p-eb7120ba.js";import{r as e,h as t,g as A,c as n,F as i}from"./p-7900c24a.js";import{P as r,a as o,E as s,i as E,b as B,p as c,t as a,M as g,m as l,g as Q,c as h,d as u,e as w,N as R,w as I,f as d,h as k,T as G,D as C,j as f,k as D,l as F,n as Y,o as m,q as U,r as S,s as N,S as b,u as y,v as p,x as T,F as H,y as x,z,A as J,B as j,C as v,G as P,H as L,I as V,J as O,K as _,L as K,O as W,Q as X,R as q}from"./p-fda4ec51.js";import{L as $}from"./p-986e5fe7.js";class ee{constructor({editor:e,element:t,view:A,tippyOptions:n={},updateDelay:i=250,shouldShow:r}){this.preventHide=!1,this.shouldShow=({view:e,state:t,from:A,to:n})=>{const{doc:i,selection:r}=t,{empty:o}=r,s=!i.textBetween(A,n).length&&E(t.selection),B=this.element.contains(document.activeElement);return!(!e.hasFocus()&&!B||o||s||!this.editor.isEditable)},this.mousedownHandler=()=>{this.preventHide=!0},this.dragstartHandler=()=>{this.hide()},this.focusHandler=()=>{setTimeout((()=>this.update(this.editor.view)))},this.blurHandler=({event:e})=>{var t;this.preventHide?this.preventHide=!1:(null==e?void 0:e.relatedTarget)&&(null===(t=this.element.parentNode)||void 0===t?void 0:t.contains(e.relatedTarget))||this.hide()},this.tippyBlurHandler=e=>{this.blurHandler({event:e})},this.handleDebouncedUpdate=(e,t)=>{const A=!(null==t?void 0:t.selection.eq(e.state.selection)),n=!(null==t?void 0:t.doc.eq(e.state.doc));(A||n)&&(this.updateDebounceTimer&&clearTimeout(this.updateDebounceTimer),this.updateDebounceTimer=window.setTimeout((()=>{this.updateHandler(e,A,n,t)}),this.updateDelay))},this.updateHandler=(e,t,A,n)=>{var i,r,o;const{state:s,composing:E}=e,{selection:a}=s;if(E||!t&&!A)return;this.createTooltip();const{ranges:g}=a,l=Math.min(...g.map((e=>e.$from.pos))),Q=Math.max(...g.map((e=>e.$to.pos)));(null===(i=this.shouldShow)||void 0===i?void 0:i.call(this,{editor:this.editor,view:e,state:s,oldState:n,from:l,to:Q}))?(null===(r=this.tippy)||void 0===r||r.setProps({getReferenceClientRect:(null===(o=this.tippyOptions)||void 0===o?void 0:o.getReferenceClientRect)||(()=>{if(B(s.selection)){let t=e.nodeDOM(l);const A=t.dataset.nodeViewWrapper?t:t.querySelector("[data-node-view-wrapper]");if(A&&(t=A.firstChild),t)return t.getBoundingClientRect()}return c(e,l,Q)})}),this.show()):this.hide()},this.editor=e,this.element=t,this.view=A,this.updateDelay=i,r&&(this.shouldShow=r),this.element.addEventListener("mousedown",this.mousedownHandler,{capture:!0}),this.view.dom.addEventListener("dragstart",this.dragstartHandler),this.editor.on("focus",this.focusHandler),this.editor.on("blur",this.blurHandler),this.tippyOptions=n,this.element.remove(),this.element.style.visibility="visible"}createTooltip(){const{element:e}=this.editor.options;!this.tippy&&e.parentElement&&(this.tippy=a(e,{duration:0,getReferenceClientRect:null,content:this.element,interactive:!0,trigger:"manual",placement:"top",hideOnClick:"toggle",...this.tippyOptions}),this.tippy.popper.firstChild&&this.tippy.popper.firstChild.addEventListener("blur",this.tippyBlurHandler))}update(e,t){const{state:A}=e;if(this.updateDelay>0&&A.selection.$from.pos!==A.selection.$to.pos)return void this.handleDebouncedUpdate(e,t);const n=!(null==t?void 0:t.selection.eq(e.state.selection)),i=!(null==t?void 0:t.doc.eq(e.state.doc));this.updateHandler(e,n,i,t)}show(){var e;null===(e=this.tippy)||void 0===e||e.show()}hide(){var e;null===(e=this.tippy)||void 0===e||e.hide()}destroy(){var e,t;(null===(e=this.tippy)||void 0===e?void 0:e.popper.firstChild)&&this.tippy.popper.firstChild.removeEventListener("blur",this.tippyBlurHandler),null===(t=this.tippy)||void 0===t||t.destroy(),this.element.removeEventListener("mousedown",this.mousedownHandler,{capture:!0}),this.view.dom.removeEventListener("dragstart",this.dragstartHandler),this.editor.off("focus",this.focusHandler),this.editor.off("blur",this.blurHandler)}}const te=e=>new r({key:"string"==typeof e.pluginKey?new o(e.pluginKey):e.pluginKey,view:t=>new ee({view:t,...e})}),Ae=s.create({name:"bubbleMenu",addOptions:()=>({element:null,tippyOptions:{},pluginKey:"bubbleMenu",updateDelay:void 0,shouldShow:null}),addProseMirrorPlugins(){return this.options.element?[te({pluginKey:this.options.pluginKey,editor:this.editor,element:this.options.element,tippyOptions:this.options.tippyOptions,updateDelay:this.options.updateDelay,shouldShow:this.options.shouldShow})]:[]}}),ne=g.create({name:"textStyle",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"span",getAttrs:e=>!!e.hasAttribute("style")&&{}}],renderHTML({HTMLAttributes:e}){return["span",l(this.options.HTMLAttributes,e),0]},addCommands(){return{removeEmptyTextStyle:()=>({state:e,commands:t})=>{const A=Q(e,this.type);return!!Object.entries(A).some((([,e])=>!!e))||t.unsetMark(this.name)}}}}),ie=[9,13,16,20,24,36,48],re=s.create({name:"fontSize",addOptions:()=>({types:["textStyle"]}),addGlobalAttributes(){return[{types:this.options.types,attributes:{fontSize:{default:null,parseHTML:e=>{var t;return parseInt(null===(t=e.style.fontSize)||void 0===t?void 0:t.replace(/px$/,""))},renderHTML:e=>e.fontSize?{style:`font-size: ${e.fontSize}px`}:{}}}}]},addCommands:()=>({setFontSize:e=>({chain:t})=>t().setMark("textStyle",{fontSize:e}).run(),unsetFontSize:()=>({chain:e})=>e().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run(),scaleFontSize:(e="upscale")=>({state:t})=>{const{doc:A,selection:n}=t,{from:i,to:r}=n;return A.slice(i,r).content.descendants(((A,n)=>{var r;if(A.isText){const o=(null===(r=A.marks.find((e=>"textStyle"===e.type.name)))||void 0===r?void 0:r.attrs.fontSize)||13,s=ie.reduce(((e,t)=>Math.abs(t-o)({types:["textStyle"]}),addGlobalAttributes(){return[{types:this.options.types,attributes:{lineHeight:{default:null,parseHTML:e=>e.style.lineHeight,renderHTML:e=>e.lineHeight?{style:`line-height: ${e.lineHeight}`}:{}}}}]},addCommands:()=>({setLineHeight:e=>({chain:t})=>t().selectParentNode().setMark("textStyle",{lineHeight:e}).run(),unsetLineHeight:()=>({chain:e})=>e().selectParentNode().setMark("textStyle",{lineHeight:null}).removeEmptyTextStyle().run()})}),Ee=["Crimson","DeepPink","DarkOrange","DarkViolet","ForestGreen","RoyalBlue","SaddleBrown","DimGray"],Be={"Sans-serif":'"Source Han Sans CN", PingFangSC, "Microsoft YaHei", HiraginoSansGB, Roboto, Helvetica, Tahoma, sans-serif',Serif:'SimSun, STSong, Georgia, "Times New Roman", Times, serif',Cursive:"FangSong, KaiTi, cursive",Monospace:'"Source Code Pro", Menlo, Monaco, Consolas, "Courier New", monospace'};var ce;!function(e){e[e.basic=0]="basic",e[e.compact=1]="compact",e[e.full=2]="full"}(ce||(ce={}));const ae=[1,2,3,4],ge=e=>{const t=Boolean(e.storage.markdown);return[[{icon:"ci-text_align_left",title:$.getString("menu.align.left"),action:()=>e.chain().focus().setTextAlign("left").run(),isActive:()=>e.isActive({textAlign:"left"}),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.full},{icon:"ci-text_align_center",title:$.getString("menu.align.center"),action:()=>e.chain().focus().setTextAlign("center").run(),isActive:()=>e.isActive({textAlign:"center"}),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.full},{icon:"ci-text_align_right",title:$.getString("menu.align.right"),action:()=>e.chain().focus().setTextAlign("right").run(),isActive:()=>e.isActive({textAlign:"right"}),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.full},{icon:"ci-text_align_justify",title:$.getString("menu.align.justify"),action:()=>e.chain().focus().setTextAlign("justify").run(),isActive:()=>e.isActive({textAlign:"justify"}),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.full}],[{icon:"ci-text",title:$.getString("menu.font.family"),subMenu:Object.keys(Be).map((t=>({label:$.getString(`menu.font.family.${t.toLowerCase().replace(/[^\w]/g,"")}`),action:()=>e.chain().focus().setFontFamily(Be[t]).run(),isActive:()=>e.isActive("textStyle",{fontFamily:Be[t]})}))),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.full},{icon:"ci-font",title:$.getString("menu.font.size"),subMenu:ie.map((t=>({label:$.format("menu.font.size.format.px",t.toString()),action:()=>e.chain().focus().setFontSize(t).run(),isActive:()=>e.isActive({fontSize:t})}))),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.compact},{icon:"ci-swatches_palette",title:$.getString("menu.font.color"),subMenu:[...Ee.map((t=>({icon:`ci-text color color-${t.toLowerCase()}`,title:$.getString(`menu.font.color.${t.toLowerCase()}`),action:()=>e.chain().focus().setColor(t).run(),isActive:()=>e.isActive("textStyle",{color:t})}))),{icon:"ci-close_md",title:$.getString("menu.font.color.none"),action:()=>e.chain().focus().unsetColor().run()}],isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.compact},{icon:"ci-bold",title:$.getString("menu.font.weight.bold"),action:()=>e.chain().focus().toggleBold().run(),isActive:()=>e.isActive("bold"),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading"))},{icon:"ci-italic",title:$.getString("menu.font.italic"),action:()=>e.chain().focus().toggleItalic().run(),isActive:()=>e.isActive("italic"),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading"))},{icon:"ci-underline",title:$.getString("menu.font.decoration.underline"),action:()=>{e.isActive("strike")?e.chain().focus().toggleStrike().run():e.chain().focus().toggleUnderline().run()},isActive:()=>e.isActive("underline")||e.isActive("strike"),subMenu:[{icon:"ci-underline",title:$.getString("menu.font.decoration.underline"),action:()=>e.chain().focus().toggleUnderline().run(),isActive:()=>e.isActive("underline")},{icon:"ci-strikethrough",title:$.getString("menu.font.decoration.strike"),action:()=>e.chain().focus().toggleStrike().run(),isActive:()=>e.isActive("strike")}],isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.compact},{icon:"ci-bulb",title:$.getString("menu.font.highlight"),action:()=>e.chain().focus().toggleHighlight().run(),isActive:()=>e.isActive("highlight"),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.full},{icon:"ci-link",title:$.getString("menu.link"),action:()=>{const t=e.isActive("link")?e.getAttributes("link").href:"",A=prompt("Enter URL",t);null!==A&&(""!==A?e.chain().focus().setLink({href:A}).run():e.chain().focus().unsetLink().run())},isActive:()=>e.isActive("link"),subMenu:[{icon:"ci-bar_top",title:$.getString("menu.iframe"),action:()=>{const t=prompt("Enter URL");Boolean(t)&&e.chain().focus().setIframe({src:t}).run()},menuModeLevel:ce.full},{icon:"ci-link",title:$.getString("menu.link"),action:()=>{const t=e.isActive("link")?e.getAttributes("link").href:"",A=prompt("Enter URL",t);null!==A&&(""!==A?e.chain().focus().setLink({href:A}).run():e.chain().focus().unsetLink().run())}},{icon:"ci-link_break",title:$.getString("menu.link.remove"),action:()=>e.chain().focus().unsetLink().run(),isDisabled:()=>!e.isActive("link")}],isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading"))},{icon:"ci-menu_duo_md",title:$.getString("menu.line.spacing"),subMenu:oe.map((t=>({label:$.format("menu.line.spacing.format",t.toString()),action:()=>e.chain().focus().setLineHeight(t).run(),isActive:()=>e.isActive({lineHeight:t})}))),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.full}],[{icon:"ci-heading",title:$.getString("menu.heading"),isActive:()=>e.isActive("heading"),subMenu:ae.map((A=>({icon:`ci-heading_h${A}`,title:$.getString(`menu.heading.${A}`),action:()=>{let n=e.chain().focus().toggleHeading({level:A});return t||(n=n.unsetFontSize()),n.run()},isActive:()=>e.isActive("heading",{level:A})})))},{icon:"ci-paragraph",title:$.getString("menu.paragraph"),action:()=>e.chain().focus().setParagraph().run(),isActive:()=>e.isActive("paragraph")},{icon:"ci-code",title:$.getString("menu.code"),action:()=>{e.isActive("code")?e.chain().focus().toggleCode().run():e.chain().focus().toggleCodeBlock().run()},isActive:()=>e.isActive("code")||e.isActive("codeBlock"),subMenu:[{icon:"ci-window_code_block",title:$.getString("menu.code.block"),action:()=>e.chain().focus().toggleCodeBlock().run(),isActive:()=>e.isActive("codeBlock")},{icon:"ci-code",title:$.getString("menu.code"),action:()=>e.chain().focus().toggleCode().run(),isActive:()=>e.isActive("code")}]}],[{icon:"ci-list_unordered",title:$.getString("menu.list.bullet"),action:()=>{e.isActive("bulletList")?e.chain().focus().toggleBulletList().run():e.isActive("orderedList")?e.chain().focus().toggleOrderedList().run():e.isActive("taskList")?e.chain().focus().toggleTaskList().run():e.chain().focus().toggleBulletList().run()},subMenu:[{icon:"ci-list_unordered",title:$.getString("menu.list.bullet"),action:()=>e.chain().focus().toggleBulletList().run(),isActive:()=>e.isActive("bulletList")},{icon:"ci-list_ordered",title:$.getString("menu.list.ordered"),action:()=>e.chain().focus().toggleOrderedList().run(),isActive:()=>e.isActive("orderedList")},{icon:"ci-list_checklist",title:$.getString("menu.list.task"),action:()=>e.chain().focus().toggleTaskList().run(),isActive:()=>e.isActive("taskList"),menuModeLevel:ce.full}],isActive:()=>e.isActive("bulletList")||e.isActive("orderedList")||e.isActive("taskList")},{icon:"ci-image_02",title:$.getString("menu.image"),action:()=>{const t=document.createElement("input");t.setAttribute("type","file"),t.setAttribute("accept","image/jpeg,image/gif,image/png,image/jpg"),t.onchange=t=>{const{files:A}=t.target;Boolean(A.length)&&e.chain().focus().uploadImage(A.item(0)).run()},t.click()}}],[{icon:"ci-double_quotes_l",title:$.getString("menu.quote"),action:()=>e.chain().focus().toggleBlockquote().run(),isActive:()=>e.isActive("blockquote"),menuModeLevel:ce.full},{icon:"ci-remove_minus",title:$.getString("menu.hr"),action:()=>e.chain().focus().setHorizontalRule().run(),menuModeLevel:ce.full}],[{icon:"ci-table",title:$.getString("menu.table"),subMenu:[{icon:"ci-table",title:$.getString("menu.table"),action:()=>e.chain().focus().insertTable({rows:3,cols:4,withHeaderRow:Boolean(e.storage.markdown)}).run(),isDisabled:()=>e.isActive("table")},{icon:"ci-combine_cells",title:$.getString("menu.table.cell.merge"),action:()=>e.chain().focus().mergeOrSplit().run(),isActive:()=>e.can().splitCell(),isDisabled:()=>!e.can().mergeOrSplit()},{icon:{icon:"ci-add_row",flip:"v"},title:$.getString("menu.table.row.insert.before"),action:()=>e.chain().focus().addRowBefore().run(),isDisabled:()=>!e.can().addRowBefore()},{icon:"ci-add_row",title:$.getString("menu.table.row.insert.after"),action:()=>e.chain().focus().addRowAfter().run(),isDisabled:()=>!e.can().addRowAfter()},{icon:{icon:"ci-add_column",flip:"h"},title:$.getString("menu.table.column.insert.before"),action:()=>e.chain().focus().addColumnBefore().run(),isDisabled:()=>!e.can().addColumnBefore()},{icon:"ci-add_column",title:$.getString("menu.table.column.insert.after"),action:()=>e.chain().focus().addColumnAfter().run(),isDisabled:()=>!e.can().addColumnAfter()},{icon:"ci-delete_row",title:$.getString("menu.table.row.remove"),action:()=>e.chain().focus().deleteRow().run(),isDisabled:()=>!e.can().deleteRow()},{icon:"ci-delete_column",title:$.getString("menu.table.column.remove"),action:()=>e.chain().focus().deleteColumn().run(),isDisabled:()=>!e.can().deleteColumn()},{icon:"ci-table_remove",title:$.getString("menu.table.remove"),action:()=>e.chain().focus().deleteTable().run(),isDisabled:()=>!e.can().deleteTable()}]}],[{icon:"ci-close_circle",title:$.getString("menu.format.clear"),action:()=>e.chain().focus().clearNodes().unsetAllMarks().run(),menuModeLevel:ce.full}],[{icon:"ci-undo",title:$.getString("menu.undo"),action:()=>e.chain().focus().undo().run(),isDisabled:()=>!e.can().undo(),menuModeLevel:ce.full},{icon:"ci-redo",title:$.getString("menu.redo"),action:()=>e.chain().focus().redo().run(),isDisabled:()=>!e.can().redo(),menuModeLevel:ce.full}]]};const le=class{constructor(t){e(this,t),this.menuProps=void 0,this.editor=void 0,this.disabled=!1,this.element=void 0}componentDidLoad(){if(!Boolean(this.element)||this.editor.isDestroyed)return;const{pluginKey:e="bubbleMenu",tippyOptions:t={},shouldShow:A=(this.disabled?()=>!1:({view:e,state:t,from:A,to:n})=>{var i;if(null===(i=e.input)||void 0===i?void 0:i.mouseDown)return!1;const{doc:r,selection:o}=t,s=!Boolean(r.textBetween(A,n).length)&&E(o);return!(!e.hasFocus()||o.empty||s)})}=this.menuProps,n=te({pluginKey:e,editor:this.editor,element:this.element,tippyOptions:t,shouldShow:A});this.editor.registerPlugin(n)}render(){const e=(A=this.editor,[{icon:"ci-bold",title:"Bold",action:()=>A.chain().focus().toggleBold().run(),isActive:()=>A.isActive("bold")},{icon:"ci-italic",title:"Italic",action:()=>A.chain().focus().toggleItalic().run(),isActive:()=>A.isActive("italic")},{icon:"ci-strikethrough",title:"Strike",action:()=>A.chain().focus().toggleStrike().run(),isActive:()=>A.isActive("strike")},{icon:"ci-code",title:"Code",action:()=>A.chain().focus().toggleCode().run(),isActive:()=>A.isActive("code")},{icon:"ci-bulb",title:"Highlight",action:()=>A.chain().focus().toggleHighlight().run(),isActive:()=>A.isActive("highlight")}]);var A;return t("div",{key:"4b08d3930e8d99e4fece5edcc57c37578557c8b0",ref:e=>this.element=e,class:"bubble-menu",style:{visibility:"hidden"}},e.map(((e,A)=>{const n=e,{isHidden:i,type:r}=n,o=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);ithis.editorContentRef=e},e)),t("zen-editor-bubble-menu",{key:"3cc21915d1e89c7b6cb86bd1cc238ba6be12cf5b",editor:this.editor,menuProps:{tippyOptions:{duration:100}},disabled:!this.bubbleMenu}))}get element(){return A(this)}};Qe.style='.ProseMirror{white-space:pre-wrap}.ProseMirror>*+*{margin-top:0.75em}.ProseMirror ul,.ProseMirror ol{padding:0 1em}.ProseMirror h1,.ProseMirror h2,.ProseMirror h3,.ProseMirror h4,.ProseMirror h5,.ProseMirror h6{line-height:1.1}.ProseMirror code{background-color:rgba(97, 97, 97, 0.1);color:#616161}.ProseMirror pre{background:#0d0d0d;border-radius:0.5em;color:#fff;font-family:"JetBrainsMono", monospace;padding:0.75em 1em}.ProseMirror pre code{background:none;color:inherit;font-size:0.8em;padding:0}.ProseMirror pre .hljs-comment,.ProseMirror pre .hljs-quote{color:#616161}.ProseMirror pre .hljs-variable,.ProseMirror pre .hljs-template-variable,.ProseMirror pre .hljs-attribute,.ProseMirror pre .hljs-tag,.ProseMirror pre .hljs-name,.ProseMirror pre .hljs-regexp,.ProseMirror pre .hljs-link,.ProseMirror pre .hljs-selector-id,.ProseMirror pre .hljs-selector-class{color:#f98181}.ProseMirror pre .hljs-number,.ProseMirror pre .hljs-meta,.ProseMirror pre .hljs-built_in,.ProseMirror pre .hljs-builtin-name,.ProseMirror pre .hljs-literal,.ProseMirror pre .hljs-type,.ProseMirror pre .hljs-params{color:#fbbc88}.ProseMirror pre .hljs-string,.ProseMirror pre .hljs-symbol,.ProseMirror pre .hljs-bullet{color:#b9f18d}.ProseMirror pre .hljs-title,.ProseMirror pre .hljs-section{color:#faf594}.ProseMirror pre .hljs-keyword,.ProseMirror pre .hljs-selector-tag{color:#70cff8}.ProseMirror pre .hljs-emphasis{font-style:italic}.ProseMirror pre .hljs-strong{font-weight:700}.ProseMirror mark{background-color:#faf594}.ProseMirror blockquote{border-left:2px solid rgba(13, 13, 13, 0.1);padding-left:1em}.ProseMirror hr{border:none;border-top:2px solid rgba(13, 13, 13, 0.1);margin:2em 0}.ProseMirror ul[data-type=taskList]{list-style:none;padding:0}.ProseMirror ul[data-type=taskList] li{align-items:center;display:flex}.ProseMirror ul[data-type=taskList] li>label{flex:0 0 auto;margin-right:0.5em;user-select:none}.ProseMirror ul[data-type=taskList] li>div{flex:1 1 auto}.ProseMirror ul[data-type=taskList] li>div>p{margin:0.1em 0}.ProseMirror table{border-collapse:collapse;table-layout:fixed;margin:8px 0;overflow:hidden}.ProseMirror table td,.ProseMirror table th{min-width:1em;border:1px solid #616161;padding:3px 5px;vertical-align:top;box-sizing:border-box;position:relative}.ProseMirror table td>*,.ProseMirror table th>*{margin-bottom:0}.ProseMirror table th{font-weight:bold;text-align:left;background-color:#f1f3f5}.ProseMirror table .selectedCell:after{z-index:2;position:absolute;content:"";left:0;right:0;top:0;bottom:0;background:rgba(200, 200, 255, 0.4);pointer-events:none}.ProseMirror table .column-resize-handle{position:absolute;right:-2px;top:0;bottom:-2px;width:3px;background-color:#ace;pointer-events:none}.ProseMirror .resizable-image-holder{position:relative;width:fit-content;height:fit-content;display:inline-block;padding:1px;margin-right:1px}.ProseMirror .resizable-image-holder:hover,.ProseMirror .resizable-image-holder.is-dragging,.ProseMirror .resizable-image-holder.ProseMirror-selectednode{outline:1px solid #aaa}.ProseMirror .resizable-image-holder:hover .resizable-image-size,.ProseMirror .resizable-image-holder:hover .resizable-image-handle,.ProseMirror .resizable-image-holder.is-dragging .resizable-image-size,.ProseMirror .resizable-image-holder.is-dragging .resizable-image-handle,.ProseMirror .resizable-image-holder.ProseMirror-selectednode .resizable-image-size,.ProseMirror .resizable-image-holder.ProseMirror-selectednode .resizable-image-handle{display:block}.ProseMirror .resizable-image-holder>img{display:block}.ProseMirror .resizable-image-holder>.resizable-image-size{display:none;position:absolute;top:0;right:0;background:rgba(97, 97, 97, 0.6666666667);color:#fff;outline:1px solid rgba(170, 170, 170, 0.6666666667);padding:0.1em 0.3em;font-size:0.8em;white-space:nowrap;user-select:none}.ProseMirror .resizable-image-holder>.resizable-image-handle{display:none;position:absolute;bottom:-1px;right:-1px;width:10px;height:10px;background:repeating-linear-gradient(135deg, rgba(0, 0, 0, 0.5333333333), rgba(255, 255, 255, 0.8666666667) 1px, 0, transparent 3px);clip-path:polygon(0 75%, 0 100%, 100% 100%, 100% 0, 75% 0);cursor:nwse-resize;user-select:none}.ProseMirror p.is-editor-empty:first-child::before{color:#adb5bd;content:attr(data-placeholder);float:left;height:0;pointer-events:none}.ProseMirror.resize-cursor{cursor:ew-resize;cursor:col-resize}.ProseMirror:focus{outline:none}';const he=()=>new Map,ue=e=>{const t=he();return e.forEach(((e,A)=>{t.set(A,e)})),t},we=(e,t,A)=>{let n=e.get(t);return void 0===n&&e.set(t,n=A()),n},Me=()=>new Set,Re=e=>e[e.length-1],Ie=(e,t)=>{for(let A=0;A{this.off(e,A),t(...n)};this.on(e,A)}off(e,t){const A=this._observers.get(e);void 0!==A&&(A.delete(t),0===A.size&&this._observers.delete(e))}emit(e,t){return de((this._observers.get(e)||he()).values()).forEach((e=>e(...t)))}destroy(){this._observers=he()}}const Ce=Math.floor,fe=Math.abs,De=(e,t)=>ee>t?e:t,Ye=e=>0!==e?e<0:1/e<0,me=64,Ue=128,Se=127,Ne=Number.MAX_SAFE_INTEGER,be=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&Ce(e)===e),ye=/^\s*/g,pe=/([A-Z])/g,Te=(e,t)=>(e=>e.replace(ye,""))(e.replace(pe,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),He="undefined"!=typeof TextEncoder?new TextEncoder:null,xe=He?e=>He.encode(e):e=>{const t=unescape(encodeURIComponent(e)),A=t.length,n=new Uint8Array(A);for(let e=0;enew Je,Ze=e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let A=0;A{const A=e.cbuf.length;e.cpos===A&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*A),e.cpos=0),e.cbuf[e.cpos++]=t},Pe=ve,Le=(e,t)=>{for(;t>Se;)ve(e,Ue|Se&t),t=Ce(t/128);ve(e,Se&t)},Ve=(e,t)=>{const A=Ye(t);for(A&&(t=-t),ve(e,(t>63?Ue:0)|(A?me:0)|63&t),t=Ce(t/64);t>0;)ve(e,(t>Se?Ue:0)|Se&t),t=Ce(t/128)},Oe=new Uint8Array(3e4),_e=Oe.length/3,Ke=He&&He.encodeInto?(e,t)=>{if(t.length<_e){const A=He.encodeInto(t,Oe).written||0;Le(e,A);for(let t=0;t{const A=unescape(encodeURIComponent(t)),n=A.length;Le(e,n);for(let t=0;t{const A=e.cbuf.length,n=e.cpos,i=De(A-n,t.length),r=t.length-i;e.cbuf.set(t.subarray(0,i),n),e.cpos+=i,r>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(Fe(2*A,r)),e.cbuf.set(t.subarray(i)),e.cpos=r)},Xe=(e,t)=>{Le(e,t.byteLength),We(e,t)},qe=(e,t)=>{((e,t)=>{const A=e.cbuf.length;A-e.cpos{switch(typeof t){case"string":ve(e,119),Ke(e,t);break;case"number":be(t)&&fe(t)<=2147483647?(ve(e,125),Ve(e,t)):($e.setFloat32(0,A=t),$e.getFloat32(0)===A?(ve(e,124),((e,t)=>{qe(e,4).setFloat32(0,t,!1)})(e,t)):(ve(e,123),((e,t)=>{qe(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":ve(e,122),((e,t)=>{qe(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)ve(e,126);else if(ke(t)){ve(e,117),Le(e,t.length);for(let A=0;A0&&Le(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const At=e=>{e.count>0&&(Ve(e.encoder,1===e.count?e.s:-e.s),e.count>1&&Le(e.encoder,e.count-2))};class nt{constructor(){this.encoder=new Je,this.s=0,this.count=0}write(e){this.s===e?this.count++:(At(this),this.count=1,this.s=e)}toUint8Array(){return At(this),Ze(this.encoder)}}const it=e=>{e.count>0&&(Ve(e.encoder,2*e.diff+(1===e.count?0:1)),e.count>1&&Le(e.encoder,e.count-2))};class rt{constructor(){this.encoder=new Je,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(it(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return it(this),Ze(this.encoder)}}class ot{constructor(){this.sarr=[],this.s="",this.lensE=new nt}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){const e=new Je;return this.sarr.push(this.s),this.s="",Ke(e,this.sarr.join("")),We(e,this.lensE.toUint8Array()),Ze(e)}}const st=e=>new Error(e),Et=()=>{throw st("Method unimplemented")},Bt=()=>{throw st("Unexpected case")},ct=st("Unexpected end of array"),at=st("Integer out of Range");class gt{constructor(e){this.arr=e,this.pos=0}}const lt=e=>new gt(e),Qt=e=>((e,t)=>{const A=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,A})(e,ut(e)),ht=e=>e.arr[e.pos++],ut=e=>{let t=0,A=1;const n=e.arr.length;for(;e.posNe)throw at}throw ct},wt=e=>{let t=e.arr[e.pos++],A=63&t,n=64;const i=(t&me)>0?-1:1;if(!(t&Ue))return i*A;const r=e.arr.length;for(;e.posNe)throw at}throw ct},Mt=ze?e=>ze.decode(Qt(e)):e=>{let t=ut(e);if(0===t)return"";{let A=String.fromCodePoint(ht(e));if(--t<100)for(;t--;)A+=String.fromCodePoint(ht(e));else for(;t>0;){const n=t<1e4?t:1e4,i=e.arr.subarray(e.pos,e.pos+n);e.pos+=n,A+=String.fromCodePoint.apply(null,i),t-=n}return decodeURIComponent(escape(A))}},Rt=(e,t)=>{const A=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,A},It=[()=>{},()=>null,wt,e=>Rt(e,4).getFloat32(0,!1),e=>Rt(e,8).getFloat64(0,!1),e=>Rt(e,8).getBigInt64(0,!1),()=>!1,()=>!0,Mt,e=>{const t=ut(e),A={};for(let n=0;n{const t=ut(e),A=[];for(let n=0;nIt[127-ht(e)](e);class kt extends gt{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){return 0===this.count&&(this.s=this.reader(this),this.count=this.pos!==this.arr.length?ut(this)+1:-1),this.count--,this.s}}class Gt extends gt{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=wt(this);const e=Ye(this.s);this.count=1,e&&(this.s=-this.s,this.count=ut(this)+2)}return this.count--,this.s}}class Ct extends gt{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=wt(this),t=1&e;this.diff=Ce(e/2),this.count=1,t&&(this.count=ut(this)+2)}return this.s+=this.diff,this.count--,this.s}}class ft{constructor(e){this.decoder=new Gt(e),this.str=Mt(this.decoder),this.spos=0}read(){const e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}}const Dt=crypto.getRandomValues.bind(crypto),Ft=Math.random,Yt=()=>Dt(new Uint32Array(1))[0],mt=[1e7]+-1e3+-4e3+-8e3+-1e11,Ut=()=>mt.replace(/[018]/g,(e=>(e^Yt()&15>>e/4).toString(16))),St=Date.now,Nt=e=>new Promise(e);Promise.all.bind(Promise);let bt=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}};try{"undefined"!=typeof localStorage&&localStorage&&(bt=localStorage)}catch(e){}const yt=bt,pt=Object.assign,Tt=Object.keys,Ht=e=>Tt(e).length,xt=(e,t,A=0)=>{try{for(;Ae,Jt="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0),jt="undefined"!=typeof window&&"undefined"!=typeof document&&!Jt;let Zt;"undefined"!=typeof navigator&&/Mac/.test(navigator.platform);const vt=e=>(()=>{if(void 0===Zt)if(Jt){Zt=he();const e=process.argv;let t=null;for(let A=0;A{if(0!==e.length){const[t,A]=e.split("=");Zt.set(`--${Te(t,"-")}`,A),Zt.set(`-${Te(t,"-")}`,A)}}))):Zt=he();return Zt})().has(e),Pt=e=>{return void 0===(t=Jt?process.env[e.toUpperCase()]:yt.getItem(e))?null:t;var t};vt("--"+"production")||Pt("production");const Lt=Jt&&(Vt=process.env.FORCE_COLOR,["true","1","2"].includes(Vt));var Vt;const Ot=!vt("no-colors")&&(!Jt||process.stdout.isTTY||Lt)&&(!Jt||vt("color")||Lt||null!==Pt("COLORTERM")||(Pt("TERM")||"").includes("color"));class _t{constructor(e,t){this.left=e,this.right=t}}const Kt=(e,t)=>new _t(e,t),Wt="undefined"!=typeof document?document:{};"undefined"!=typeof DOMParser&&new DOMParser;const Xt=(qt=clearTimeout,class{constructor(e){this._=e}destroy(){qt(this._)}});var qt;const $t=(e,t)=>new Xt(setTimeout(t,e)),eA=Symbol,tA=eA(),AA=eA(),nA=eA(),iA=eA(),rA=eA(),oA=eA(),sA=eA(),EA=eA(),BA=eA(),cA={[tA]:Kt("font-weight","bold"),[AA]:Kt("font-weight","normal"),[nA]:Kt("color","blue"),[rA]:Kt("color","green"),[iA]:Kt("color","grey"),[oA]:Kt("color","red"),[sA]:Kt("color","purple"),[EA]:Kt("color","orange"),[BA]:Kt("color","black")},aA=Ot?e=>{const t=[],A=[],n=he();let i=[],r=0;for(;r{const A=[];for(const[n,i]of e)A.push(t(i,n));return A})(n,((e,t)=>`${t}:${e};`)).join("");r>0||e.length>0?(t.push("%c"+i),A.push(e)):t.push(i)}}}for(r>0&&(i=A,i.unshift(t.join("")));r{const t=[];let A=0;for(;A({[Symbol.iterator](){return this},next:e}),QA=(e,t)=>lA((()=>{const{done:A,value:n}=e.next();return{done:A,value:A?void 0:t(n)}}));class hA{constructor(e,t){this.clock=e,this.len=t}}class uA{constructor(){this.clients=new Map}}const wA=(e,t,A)=>t.clients.forEach(((t,n)=>{const i=e.doc.store.clients.get(n);for(let n=0;n{const A=e.clients.get(t.client);return void 0!==A&&null!==((e,t)=>{let A=0,n=e.length-1;for(;A<=n;){const i=Ce((A+n)/2),r=e[i],o=r.clock;if(o<=t){if(t{e.clients.forEach((e=>{let t,A;for(e.sort(((e,t)=>e.clock-t.clock)),t=1,A=1;t=i.clock?n.len=Fe(n.len,i.clock+i.len-n.clock):(A{const t=new uA;for(let A=0;A{if(!t.clients.has(i)){const r=n.slice();for(let t=A+1;t{we(e.clients,t,(()=>[])).push(new hA(A,n))},kA=()=>new uA,GA=e=>{const t=kA();return e.clients.forEach(((e,A)=>{const n=[];for(let t=0;t0&&t.clients.set(A,n)})),t},CA=(e,t)=>{Le(e.restEncoder,t.clients.size),de(t.clients.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,A])=>{e.resetDsCurVal(),Le(e.restEncoder,t);const n=A.length;Le(e.restEncoder,n);for(let t=0;t{const t=new uA,A=ut(e.restDecoder);for(let n=0;n0){const i=we(t.clients,A,(()=>[]));for(let t=0;t{const n=new uA,i=ut(e.restDecoder);for(let r=0;r0){const e=new TA;return Le(e.restEncoder,0),CA(e,n),e.toUint8Array()}return null},FA=Yt;class YA extends Ge{constructor({guid:e=Ut(),collectionid:t=null,gc:A=!0,gcFilter:n=(()=>!0),meta:i=null,autoLoad:r=!1,shouldLoad:o=!0}={}){super(),this.gc=A,this.gcFilter=n,this.clientID=FA(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new En,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=o,this.autoLoad=r,this.meta=i,this.isLoaded=!1,this.isSynced=!1,this.whenLoaded=Nt((e=>{this.on("load",(()=>{this.isLoaded=!0,e(this)}))}));const s=()=>Nt((e=>{const t=A=>{void 0!==A&&!0!==A||(this.off("sync",t),e())};this.on("sync",t)}));this.on("sync",(e=>{!1===e&&this.isSynced&&(this.whenSynced=s()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])})),this.whenSynced=s()}load(){const e=this._item;null===e||this.shouldLoad||Gn(e.parent.doc,(e=>{e.subdocsLoaded.add(this)}),null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(de(this.subdocs).map((e=>e.guid)))}transact(e,t=null){return Gn(this,e,t)}get(e,t=On){const A=we(this.share,e,(()=>{const e=new t;return e._integrate(this,null),e})),n=A.constructor;if(t!==On&&n!==t){if(n===On){const n=new t;n._map=A._map,A._map.forEach((e=>{for(;null!==e;e=e.left)e.parent=n})),n._start=A._start;for(let e=n._start;null!==e;e=e.right)e.parent=n;return n._length=A._length,this.share.set(e,n),n._integrate(this,null),n}throw new Error(`Type with the name ${e} has already been defined with a different constructor`)}return A}getArray(e=""){return this.get(e,gi)}getText(e=""){return this.get(e,Ui)}getMap(e=""){return this.get(e,Qi)}getXmlElement(e=""){return this.get(e,bi)}getXmlFragment(e=""){return this.get(e,Ni)}toJSON(){const e={};return this.share.forEach(((t,A)=>{e[A]=t.toJSON()})),e}destroy(){de(this.subdocs).forEach((e=>e.destroy()));const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new YA({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,Gn(e.parent.doc,(A=>{e.deleted||A.subdocsAdded.add(t.doc),A.subdocsRemoved.add(this)}),null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class mA{constructor(e){this.restDecoder=e}resetDsCurVal(){}readDsClock(){return ut(this.restDecoder)}readDsLen(){return ut(this.restDecoder)}}class UA extends mA{readLeftID(){return _A(ut(this.restDecoder),ut(this.restDecoder))}readRightID(){return _A(ut(this.restDecoder),ut(this.restDecoder))}readClient(){return ut(this.restDecoder)}readInfo(){return ht(this.restDecoder)}readString(){return Mt(this.restDecoder)}readParentInfo(){return 1===ut(this.restDecoder)}readTypeRef(){return ut(this.restDecoder)}readLen(){return ut(this.restDecoder)}readAny(){return dt(this.restDecoder)}readBuf(){return(e=>{const t=new Uint8Array(e.byteLength);return t.set(e),t})(Qt(this.restDecoder))}readJSON(){return JSON.parse(Mt(this.restDecoder))}readKey(){return Mt(this.restDecoder)}}class SA{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=ut(this.restDecoder),this.dsCurrVal}readDsLen(){const e=ut(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class NA extends SA{constructor(e){super(e),this.keys=[],ut(e),this.keyClockDecoder=new Ct(Qt(e)),this.clientDecoder=new Gt(Qt(e)),this.leftClockDecoder=new Ct(Qt(e)),this.rightClockDecoder=new Ct(Qt(e)),this.infoDecoder=new kt(Qt(e),ht),this.stringDecoder=new ft(Qt(e)),this.parentInfoDecoder=new kt(Qt(e),ht),this.typeRefDecoder=new Gt(Qt(e)),this.lenDecoder=new Gt(Qt(e))}readLeftID(){return new VA(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new VA(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return 1===this.parentInfoDecoder.read()}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return dt(this.restDecoder)}readBuf(){return Qt(this.restDecoder)}readJSON(){return dt(this.restDecoder)}readKey(){const e=this.keyClockDecoder.read();if(e{const n=new Map;A.forEach(((e,A)=>{cn(t,A)>e&&n.set(A,e)})),Bn(t).forEach(((e,t)=>{A.has(t)||n.set(t,0)})),Le(e.restEncoder,n.size),de(n.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([A,n])=>{((e,t,A,n)=>{n=Fe(n,t[0].id.clock);const i=gn(t,n);Le(e.restEncoder,t.length-i),e.writeClient(A),Le(e.restEncoder,n);const r=t[i];r.write(e,n-r.id.clock);for(let A=i+1;A{const i=lt(t);((e,t,A,n=new NA(e))=>{Gn(t,(e=>{e.local=!1;let t=!1;const A=e.doc,i=A.store,r=((e,t)=>{const A=he(),n=ut(e.restDecoder);for(let i=0;i{const n=[];let i=de(A.keys()).sort(((e,t)=>e-t));if(0===i.length)return null;const r=()=>{if(0===i.length)return null;let e=A.get(i[i.length-1]);for(;e.refs.length===e.i;){if(i.pop(),!(i.length>0))return null;e=A.get(i[i.length-1])}return e};let o=r();if(null===o)return null;const s=new En,E=new Map,B=(e,t)=>{const A=E.get(e);(null==A||A>t)&&E.set(e,t)};let c=o.refs[o.i++];const a=new Map,g=()=>{for(const e of n){const t=e.id.client,n=A.get(t);n?(n.i--,s.clients.set(t,n.refs.slice(n.i)),A.delete(t),n.i=0,n.refs=[]):s.clients.set(t,[e]),i=i.filter((e=>e!==t))}n.length=0};for(;;){if(c.constructor!==ar){const i=we(a,c.id.client,(()=>cn(t,c.id.client)))-c.id.clock;if(i<0)n.push(c),B(c.id.client,c.id.clock-1),g();else{const r=c.getMissing(e,t);if(null!==r){n.push(c);const e=A.get(r)||{refs:[],i:0};if(e.refs.length!==e.i){c=e.refs[e.i++];continue}B(r,cn(t,r)),g()}else(0===i||i0)c=n.pop();else if(null!==o&&o.i0){const e=new TA;return HA(e,s,new Map),Le(e.restEncoder,0),{missing:E,update:e.toUint8Array()}}return null})(e,i,r),s=i.pendingStructs;if(s){for(const[e,A]of s.missing)if(At)&&s.missing.set(e,t)}s.update=Nn([s.update,o.update])}}else i.pendingStructs=o;const E=DA(n,e,i);if(i.pendingDs){const t=new NA(lt(i.pendingDs));ut(t.restDecoder);const A=DA(t,e,i);i.pendingDs=E&&A?Nn([E,A]):E||A}else i.pendingDs=E;if(t){const t=i.pendingStructs.update;i.pendingStructs=null,xA(e.doc,t)}}),A,!1)})(i,e,A,new n(i))},zA=e=>(e=>{const t=new Map,A=ut(e.restDecoder);for(let n=0;n(Le(e.restEncoder,t.size),de(t.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,A])=>{Le(e.restEncoder,t),Le(e.restEncoder,A)})),e);class jA{constructor(){this.l=[]}}const ZA=()=>new jA,vA=(e,t)=>e.l.push(t),PA=(e,t)=>{const A=e.l,n=A.length;e.l=A.filter((e=>t!==e)),n===e.l.length&&console.error("[yjs] Tried to remove event handler that doesn't exist.")},LA=(e,t,A)=>xt(e.l,[t,A]);class VA{constructor(e,t){this.client=e,this.clock=t}}const OA=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,_A=(e,t)=>new VA(e,t),KA=e=>{for(const[t,A]of e.doc.share.entries())if(A===e)return t;throw Bt()},WA=(e,t)=>{for(;null!==t;){if(t.parent===e)return!0;t=t.parent._item}return!1};class XA{constructor(e,t,A,n=0){this.type=e,this.tname=t,this.item=A,this.assoc=n}}const qA=e=>new XA(null==e.type?null:_A(e.type.client,e.type.clock),e.tname||null,null==e.item?null:_A(e.item.client,e.item.clock),null==e.assoc?0:e.assoc);class $A{constructor(e,t,A=0){this.type=e,this.index=t,this.assoc=A}}const en=(e,t,A)=>{let n=null,i=null;return null===e._item?i=KA(e):n=_A(e._item.id.client,e._item.id.clock),new XA(n,i,t,A)},tn=(e,t,A=0)=>{let n=e._start;if(A<0){if(0===t)return en(e,null,A);t--}for(;null!==n;){if(!n.deleted&&n.countable){if(n.length>t)return en(e,_A(n.id.client,n.id.clock+t),A);t-=n.length}if(null===n.right&&A<0)return en(e,n.lastId,A);n=n.right}return en(e,null,A)},An=(e,t)=>e===t||null!==e&&null!==t&&e.tname===t.tname&&OA(e.item,t.item)&&OA(e.type,t.type)&&e.assoc===t.assoc;class nn{constructor(e,t){this.ds=e,this.sv=t}}const rn=(e,t)=>new nn(e,t);rn(kA(),new Map);const on=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!MA(t.ds,e.id),sn=(e,t)=>{const A=we(e.meta,sn,Me),n=e.doc.store;A.has(t)||(t.sv.forEach(((t,A)=>{t{})),A.add(t))};class En{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Bn=e=>{const t=new Map;return e.clients.forEach(((e,A)=>{const n=e[e.length-1];t.set(A,n.id.clock+n.length)})),t},cn=(e,t)=>{const A=e.clients.get(t);if(void 0===A)return 0;const n=A[A.length-1];return n.id.clock+n.length},an=(e,t)=>{let A=e.clients.get(t.id.client);if(void 0===A)A=[],e.clients.set(t.id.client,A);else{const e=A[A.length-1];if(e.id.clock+e.length!==t.id.clock)throw Bt()}A.push(t)},gn=(e,t)=>{let A=0,n=e.length-1,i=e[n],r=i.id.clock;if(r===t)return n;let o=Ce(t/(r+i.length-1)*n);for(;A<=n;){if(i=e[o],r=i.id.clock,r<=t){if(t{const A=e.clients.get(t.client);return A[gn(A,t.clock)]},Qn=(e,t,A)=>{const n=gn(t,A),i=t[n];return i.id.clock{const A=e.doc.store.clients.get(t.client);return A[Qn(e,A,t.clock)]},un=(e,t,A)=>{const n=t.clients.get(A.client),i=gn(n,A.clock),r=n[i];return A.clock!==r.id.clock+r.length-1&&r.constructor!==xi&&n.splice(i+1,0,rr(e,r,A.clock-r.id.clock+1)),r},wn=(e,t,A,n,i)=>{if(0===n)return;const r=A+n;let o,s=Qn(e,t,A);do{o=t[s++],r!(0===t.deleteSet.clients.size&&!(e=>{for(const[n,i]of e)if(A=i,t.beforeState.get(n)!==A)return!0;var A;return!1})(t.afterState)||(RA(t.deleteSet),((e,t)=>{HA(e,t.doc.store,t.beforeState)})(e,t),CA(e,t.deleteSet),0)),In=(e,t,A)=>{const n=t._item;(null===n||n.id.clock<(e.beforeState.get(n.id.client)||0)&&!n.deleted)&&we(e.changed,t,Me).add(A)},dn=(e,t)=>{let A=e[t],n=e[t-1],i=t;for(;i>0&&n.deleted===A.deleted&&n.constructor===A.constructor&&n.mergeWith(A);A=n,n=e[--i-1])A instanceof Er&&null!==A.parentSub&&A.parent._map.get(A.parentSub)===A&&A.parent._map.set(A.parentSub,n);const r=t-i;return r&&e.splice(t+1-r,r),r},kn=(e,t)=>{if(te.push((()=>{null!==n._item&&n._item.deleted||n._callObserver(A,t)})))),e.push((()=>{A.changedParentTypes.forEach(((e,t)=>{t._dEH.l.length>0&&(null===t._item||!t._item.deleted)&&((e=e.filter((e=>null===e.target._item||!e.target._item.deleted))).forEach((e=>{e.currentTarget=t,e._path=null})),e.sort(((e,t)=>e.path.length-t.path.length)),LA(t._dEH,e,A))}))})),e.push((()=>n.emit("afterTransaction",[A,n]))),xt(e,[]),A._needFormattingCleanup&&Fi(A)}finally{n.gc&&((e,t,A)=>{for(const[n,i]of e.clients.entries()){const e=t.clients.get(n);for(let n=i.length-1;n>=0;n--){const r=i[n],o=r.clock+r.len;for(let n=gn(e,r.clock),i=e[n];n{e.clients.forEach(((e,A)=>{const n=t.clients.get(A);for(let t=e.length-1;t>=0;t--){const A=e[t];for(let e=De(n.length-1,1+gn(n,A.clock+A.len-1)),t=n[e];e>0&&t.id.clock>=A.clock;t=n[e])e-=1+dn(n,e)}}))})(r,i),A.afterState.forEach(((e,t)=>{const n=A.beforeState.get(t)||0;if(n!==e){const e=i.clients.get(t),A=Fe(gn(e,n),1);for(let t=e.length-1;t>=A;)t-=1+dn(e,t)}}));for(let e=o.length-1;e>=0;e--){const{client:t,clock:A}=o[e].id,n=i.clients.get(t),r=gn(n,A);r+11||r>0&&dn(n,r)}if(A.local||A.afterState.get(n.clientID)===A.beforeState.get(n.clientID)||(((...e)=>{console.log(...aA(e)),gA.forEach((t=>t.print(e)))})(EA,tA,"[yjs] ",AA,oA,"Changed the client-id because another client seems to be using it."),n.clientID=FA()),n.emit("afterTransactionCleanup",[A,n]),n._observers.has("update")){const e=new yA;Rn(e,A)&&n.emit("update",[e.toUint8Array(),A.origin,n,A])}if(n._observers.has("updateV2")){const e=new TA;Rn(e,A)&&n.emit("updateV2",[e.toUint8Array(),A.origin,n,A])}const{subdocsAdded:s,subdocsLoaded:E,subdocsRemoved:B}=A;(s.size>0||B.size>0||E.size>0)&&(s.forEach((e=>{e.clientID=n.clientID,null==e.collectionid&&(e.collectionid=n.collectionid),n.subdocs.add(e)})),B.forEach((e=>n.subdocs.delete(e))),n.emit("subdocs",[{loaded:E,added:s,removed:B},n,A]),B.forEach((e=>e.destroy()))),e.length<=t+1?(n._transactionCleanups=[],n.emit("afterAllTransactions",[n,e])):kn(e,t+1)}}},Gn=(e,t,A=null,n=!0)=>{const i=e._transactionCleanups;let r=!1,o=null;null===e._transaction&&(r=!0,e._transaction=new Mn(e,A,n),i.push(e._transaction),1===i.length&&e.emit("beforeAllTransactions",[e]),e.emit("beforeTransaction",[e._transaction,e]));try{o=t(e._transaction)}finally{if(r){const t=e._transaction===i[0];e._transaction=null,t&&kn(i,0)}}return o};class Cn{constructor(e,t){this.insertions=t,this.deletions=e,this.meta=new Map}}const fn=(e,t,A)=>{wA(e,A.deletions,(e=>{e instanceof Er&&t.scope.some((t=>WA(t,e)))&&ir(e,!1)}))},Dn=(e,t,A)=>{let n=null;const i=e.doc,r=e.scope;return Gn(i,(A=>{for(;t.length>0&&null===e.currStackItem;){const n=i.store,o=t.pop(),s=new Set,E=[];let B=!1;wA(A,o.insertions,(e=>{if(e instanceof Er){if(null!==e.redone){let{item:t,diff:i}=nr(n,e.id);i>0&&(t=hn(A,_A(t.id.client,t.id.clock+i))),e=t}!e.deleted&&r.some((t=>WA(t,e)))&&E.push(e)}})),wA(A,o.deletions,(e=>{e instanceof Er&&r.some((t=>WA(t,e)))&&!MA(o.insertions,e.id)&&s.add(e)})),s.forEach((t=>{B=null!==sr(A,t,s,o.insertions,e.ignoreRemoteMapChanges,e)||B}));for(let t=E.length-1;t>=0;t--){const n=E[t];e.deleteFilter(n)&&(n.delete(A),B=!0)}e.currStackItem=B?o:null}A.changed.forEach(((e,t)=>{e.has(null)&&t._searchMarker&&(t._searchMarker.length=0)})),n=A}),e),null!=e.currStackItem&&(e.emit("stack-item-popped",[{stackItem:e.currStackItem,type:A,changedParentTypes:n.changedParentTypes,origin:e},e]),e.currStackItem=null),e.currStackItem};class Fn extends Ge{constructor(e,{captureTimeout:t=500,captureTransaction:A=(()=>!0),deleteFilter:n=(()=>!0),trackedOrigins:i=new Set([null]),ignoreRemoteMapChanges:r=!1,doc:o=(ke(e)?e[0].doc:e.doc)}={}){super(),this.scope=[],this.doc=o,this.addToScope(e),this.deleteFilter=n,i.add(this),this.trackedOrigins=i,this.captureTransaction=A,this.undoStack=[],this.redoStack=[],this.undoing=!1,this.redoing=!1,this.currStackItem=null,this.lastChange=0,this.ignoreRemoteMapChanges=r,this.captureTimeout=t,this.afterTransactionHandler=e=>{if(!(this.captureTransaction(e)&&this.scope.some((t=>e.changedParentTypes.has(t)))&&(this.trackedOrigins.has(e.origin)||e.origin&&this.trackedOrigins.has(e.origin.constructor))))return;const t=this.undoing,A=this.redoing,n=t?this.redoStack:this.undoStack;t?this.stopCapturing():A||this.clear(!1,!0);const i=new uA;e.afterState.forEach(((t,A)=>{const n=e.beforeState.get(A)||0,r=t-n;r>0&&dA(i,A,n,r)}));const r=St();let o=!1;if(this.lastChange>0&&r-this.lastChange0&&!t&&!A){const t=n[n.length-1];t.deletions=IA([t.deletions,e.deleteSet]),t.insertions=IA([t.insertions,i])}else n.push(new Cn(e.deleteSet,i)),o=!0;t||A||(this.lastChange=r),wA(e,e.deleteSet,(e=>{e instanceof Er&&this.scope.some((t=>WA(t,e)))&&ir(e,!0)}));this.emit(o?"stack-item-added":"stack-item-updated",[{stackItem:n[n.length-1],origin:e.origin,type:t?"redo":"undo",changedParentTypes:e.changedParentTypes},this])},this.doc.on("afterTransaction",this.afterTransactionHandler),this.doc.on("destroy",(()=>{this.destroy()}))}addToScope(e){(e=ke(e)?e:[e]).forEach((e=>{this.scope.every((t=>t!==e))&&(e.doc!==this.doc&&((...e)=>{console.warn(...aA(e)),e.unshift(EA),gA.forEach((t=>t.print(e)))})("[yjs#509] Not same Y.Doc"),this.scope.push(e))}))}addTrackedOrigin(e){this.trackedOrigins.add(e)}removeTrackedOrigin(e){this.trackedOrigins.delete(e)}clear(e=!0,t=!0){(e&&this.canUndo()||t&&this.canRedo())&&this.doc.transact((A=>{e&&(this.undoStack.forEach((e=>fn(A,this,e))),this.undoStack=[]),t&&(this.redoStack.forEach((e=>fn(A,this,e))),this.redoStack=[]),this.emit("stack-cleared",[{undoStackCleared:e,redoStackCleared:t}])}))}stopCapturing(){this.lastChange=0}undo(){let e;this.undoing=!0;try{e=Dn(this,this.undoStack,"undo")}finally{this.undoing=!1}return e}redo(){let e;this.redoing=!0;try{e=Dn(this,this.redoStack,"redo")}finally{this.redoing=!1}return e}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}destroy(){this.trackedOrigins.delete(this),this.doc.off("afterTransaction",this.afterTransactionHandler),super.destroy()}}class Yn{constructor(e,t){this.gen=function*(e){const t=ut(e.restDecoder);for(let A=0;ANn(e,UA,yA),Sn=(e,t)=>{if(e.constructor===xi){const{client:A,clock:n}=e.id;return new xi(_A(A,n+t),e.length-t)}if(e.constructor===ar){const{client:A,clock:n}=e.id;return new ar(_A(A,n+t),e.length-t)}{const A=e,{client:n,clock:i}=A.id;return new Er(_A(n,i+t),null,_A(n,i+t-1),null,A.rightOrigin,A.parent,A.parentSub,A.content.splice(t))}},Nn=(e,t=NA,A=TA)=>{if(1===e.length)return e[0];const n=e.map((e=>new t(lt(e))));let i=n.map((e=>new Yn(e,!0))),r=null;const o=new A,s=new mn(o);for(;i=i.filter((e=>null!==e.curr)),i.sort(((e,t)=>{if(e.curr.id.client===t.curr.id.client){const A=e.curr.id.clock-t.curr.id.clock;return 0===A?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===ar?1:-1:A}return t.curr.id.client-e.curr.id.client})),0!==i.length;){const e=i[0],t=e.curr.id.client;if(null!==r){let A=e.curr,n=!1;for(;null!==A&&A.id.clock+A.length<=r.struct.id.clock+r.struct.length&&A.id.client>=r.struct.id.client;)A=e.next(),n=!0;if(null===A||A.id.client!==t||n&&A.id.clock>r.struct.id.clock+r.struct.length)continue;if(t!==r.struct.id.client)pn(s,r.struct,r.offset),r={struct:A,offset:0},e.next();else if(r.struct.id.clock+r.struct.length0&&(r.struct.constructor===ar?r.struct.length-=t:A=Sn(A,t)),r.struct.mergeWith(A)||(pn(s,r.struct,r.offset),r={struct:A,offset:0},e.next())}}else r={struct:e.curr,offset:0},e.next();for(let A=e.curr;null!==A&&A.id.client===t&&A.id.clock===r.struct.id.clock+r.struct.length&&A.constructor!==ar;A=e.next())pn(s,r.struct,r.offset),r={struct:A,offset:0}}null!==r&&(pn(s,r.struct,r.offset),r=null),Tn(s);const E=n.map((e=>fA(e))),B=IA(E);return CA(o,B),o.toUint8Array()},bn=(e,t,A=NA,n=TA)=>{const i=zA(t),r=new n,o=new mn(r),s=new A(lt(e)),E=new Yn(s,!1);for(;E.curr;){const e=E.curr,t=e.id.client,A=i.get(t)||0;if(E.curr.constructor!==ar)if(e.id.clock+e.length>A)for(pn(o,e,Fe(A-e.id.clock,0)),E.next();E.curr&&E.curr.id.client===t;)pn(o,E.curr,0),E.next();else for(;E.curr&&E.curr.id.client===t&&E.curr.id.clock+E.curr.length<=A;)E.next();else E.next()}Tn(o);const B=fA(s);return CA(r,B),r.toUint8Array()},yn=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:Ze(e.encoder.restEncoder)}),e.encoder.restEncoder=je(),e.written=0)},pn=(e,t,A)=>{e.written>0&&e.currClient!==t.id.client&&yn(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),Le(e.encoder.restEncoder,t.id.clock+A)),t.write(e.encoder,A),e.written++},Tn=e=>{yn(e);const t=e.encoder.restEncoder;Le(t,e.clientStructs.length);for(let A=0;A((e,t,A,n)=>{const i=new NA(lt(e)),r=new Yn(i,!1),o=new n,s=new mn(o);for(let e=r.curr;null!==e;e=r.next())pn(s,t(e),0);Tn(s);const E=fA(i);return CA(o,E),o.toUint8Array()})(e,zt,0,yA),xn="You must not compute changes after the event-handler fired.";class zn{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=Jn(this.currentTarget,this.target))}deletes(e){return MA(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw st(xn);const e=new Map,t=this.target;this.transaction.changed.get(t).forEach((A=>{if(null!==A){const n=t._map.get(A);let i,r;if(this.adds(n)){let e=n.left;for(;null!==e&&this.adds(e);)e=e.left;if(this.deletes(n)){if(null===e||!this.deletes(e))return;i="delete",r=Re(e.content.getContent())}else null!==e&&this.deletes(e)?(i="update",r=Re(e.content.getContent())):(i="add",r=void 0)}else{if(!this.deletes(n))return;i="delete",r=Re(n.content.getContent())}e.set(A,{action:i,oldValue:r})}})),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(null===e){if(0===this.transaction.doc._transactionCleanups.length)throw st(xn);const t=this.target,A=Me(),n=Me(),i=[];if(e={added:A,deleted:n,delta:i,keys:this.keys},this.transaction.changed.get(t).has(null)){let e=null;const r=()=>{e&&i.push(e)};for(let i=t._start;null!==i;i=i.right)i.deleted?this.deletes(i)&&!this.adds(i)&&(null!==e&&void 0!==e.delete||(r(),e={delete:0}),e.delete+=i.length,n.add(i)):this.adds(i)?(null!==e&&void 0!==e.insert||(r(),e={insert:[]}),e.insert=e.insert.concat(i.content.getContent()),A.add(i)):(null!==e&&void 0!==e.retain||(r(),e={retain:0}),e.retain+=i.length);null!==e&&void 0===e.retain&&r()}this._changes=e}return e}}const Jn=(e,t)=>{const A=[];for(;null!==t._item&&t!==e;){if(null!==t._item.parentSub)A.unshift(t._item.parentSub);else{let e=0,n=t._item.parent._start;for(;n!==t._item&&null!==n;)n.deleted||e++,n=n.right;A.unshift(e)}t=t._item.parent}return A};let jn=0;class Zn{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=jn++}}const vn=(e,t,A)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=A,e.timestamp=jn++},Pn=(e,t)=>{if(null===e._start||0===t||null===e._searchMarker)return null;const A=0===e._searchMarker.length?null:e._searchMarker.reduce(((e,A)=>fe(t-e.index){e.timestamp=jn++})(A));null!==n.right&&it;)n=n.left,!n.deleted&&n.countable&&(i-=n.length);for(;null!==n.left&&n.left.id.client===n.id.client&&n.left.id.clock+n.left.length===n.id.clock;)n=n.left,!n.deleted&&n.countable&&(i-=n.length);return null!==A&&fe(A.index-i){if(e.length>=80){const n=e.reduce(((e,t)=>e.timestamp{for(let n=e.length-1;n>=0;n--){const i=e[n];if(A>0){let t=i.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(i.index-=t.length);if(null===t||!0===t.marker){e.splice(n,1);continue}i.p=t,t.marker=!0}(t0&&t===i.index)&&(i.index=Fe(t,i.index+A))}},Vn=(e,t,A)=>{const n=e,i=t.changedParentTypes;for(;we(i,e,(()=>[])).push(A),null!==e._item;)e=e._item.parent;LA(n._eH,A,t)};class On{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=ZA(),this._dEH=ZA(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw Et()}clone(){throw Et()}_write(e){}get _first(){let e=this._start;for(;null!==e&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){vA(this._eH,e)}observeDeep(e){vA(this._dEH,e)}unobserve(e){PA(this._eH,e)}unobserveDeep(e){PA(this._dEH,e)}toJSON(){}}const _n=(e,t,A)=>{t<0&&(t=e._length+t),A<0&&(A=e._length+A);let n=A-t;const i=[];let r=e._start;for(;null!==r&&n>0;){if(r.countable&&!r.deleted){const e=r.content.getContent();if(e.length<=t)t-=e.length;else{for(let A=t;A0;A++)i.push(e[A]),n--;t=0}}r=r.right}return i},Kn=e=>{const t=[];let A=e._start;for(;null!==A;){if(A.countable&&!A.deleted){const e=A.content.getContent();for(let A=0;A{const A=[];let n=e._start;for(;null!==n;){if(n.countable&&on(n,t)){const e=n.content.getContent();for(let t=0;t{let A=0,n=e._start;for(;null!==n;){if(n.countable&&!n.deleted){const i=n.content.getContent();for(let n=0;n{const A=[];return Xn(e,((n,i)=>{A.push(t(n,i,e))})),A},$n=e=>{let t=e._start,A=null,n=0;return{[Symbol.iterator](){return this},next:()=>{if(null===A){for(;null!==t&&t.deleted;)t=t.right;if(null===t)return{done:!0,value:void 0};A=t.content.getContent(),n=0,t=t.right}const e=A[n++];return A.length<=n&&(A=null),{done:!1,value:e}}}},ei=(e,t)=>{const A=Pn(e,t);let n=e._start;for(null!==A&&(n=A.p,t-=A.index);null!==n;n=n.right)if(!n.deleted&&n.countable){if(t{let i=A;const r=e.doc,o=r.clientID,s=r.store,E=null===A?t._start:A.right;let B=[];const c=()=>{B.length>0&&(i=new Er(_A(o,cn(s,o)),i,i&&i.lastId,E,E&&E.id,t,null,new Vi(B)),i.integrate(e,0),B=[])};n.forEach((A=>{if(null===A)B.push(A);else switch(A.constructor){case Number:case Object:case Boolean:case Array:case String:B.push(A);break;default:switch(c(),A.constructor){case Uint8Array:case ArrayBuffer:i=new Er(_A(o,cn(s,o)),i,i&&i.lastId,E,E&&E.id,t,null,new zi(new Uint8Array(A))),i.integrate(e,0);break;case YA:i=new Er(_A(o,cn(s,o)),i,i&&i.lastId,E,E&&E.id,t,null,new Zi(A)),i.integrate(e,0);break;default:if(!(A instanceof On))throw new Error("Unexpected content type in insert operation");i=new Er(_A(o,cn(s,o)),i,i&&i.lastId,E,E&&E.id,t,null,new Ar(A)),i.integrate(e,0)}}})),c()},Ai=()=>st("Length exceeded!"),ni=(e,t,A,n)=>{if(A>t._length)throw Ai();if(0===A)return t._searchMarker&&Ln(t._searchMarker,A,n.length),ti(e,t,null,n);const i=A,r=Pn(t,A);let o=t._start;for(null!==r&&(o=r.p,0==(A-=r.index)&&(o=o.prev,A+=o&&o.countable&&!o.deleted?o.length:0));null!==o;o=o.right)if(!o.deleted&&o.countable){if(A<=o.length){A{if(0===n)return;const i=A,r=n,o=Pn(t,A);let s=t._start;for(null!==o&&(s=o.p,A-=o.index);null!==s&&A>0;s=s.right)!s.deleted&&s.countable&&(A0&&null!==s;)s.deleted||(n0)throw Ai();t._searchMarker&&Ln(t._searchMarker,i,-r+n)},ri=(e,t,A)=>{const n=t._map.get(A);void 0!==n&&n.delete(e)},oi=(e,t,A,n)=>{const i=t._map.get(A)||null,r=e.doc,o=r.clientID;let s;if(null==n)s=new Vi([n]);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:s=new Vi([n]);break;case Uint8Array:s=new zi(n);break;case YA:s=new Zi(n);break;default:if(!(n instanceof On))throw new Error("Unexpected content type");s=new Ar(n)}new Er(_A(o,cn(r.store,o)),i,i&&i.lastId,null,null,t,A,s).integrate(e,0)},si=(e,t)=>{const A=e._map.get(t);return void 0===A||A.deleted?void 0:A.content.getContent()[A.length-1]},Ei=e=>{const t={};return e._map.forEach(((e,A)=>{e.deleted||(t[A]=e.content.getContent()[e.length-1])})),t},Bi=(e,t)=>{const A=e._map.get(t);return void 0!==A&&!A.deleted},ci=e=>{return t=e.entries(),A=e=>!e[1].deleted,lA((()=>{let e;do{e=t.next()}while(!e.done&&!A(e.value));return e}));var t,A};class ai extends zn{constructor(e,t){super(e,t),this._transaction=t}}class gi extends On{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new gi;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new gi}clone(){const e=new gi;return e.insert(0,this.toArray().map((e=>e instanceof On?e.clone():e))),e}get length(){return null===this._prelimContent?this._length:this._prelimContent.length}_callObserver(e,t){super._callObserver(e,t),Vn(this,e,new ai(this,e))}insert(e,t){null!==this.doc?Gn(this.doc,(A=>{ni(A,this,e,t)})):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?Gn(this.doc,(t=>{((e,t,A)=>{let n=(t._searchMarker||[]).reduce(((e,t)=>t.index>e.index?t:e),{index:0,p:t._start}).p;if(n)for(;n.right;)n=n.right;ti(e,t,n,A)})(t,this,e)})):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?Gn(this.doc,(A=>{ii(A,this,e,t)})):this._prelimContent.splice(e,t)}get(e){return ei(this,e)}toArray(){return Kn(this)}slice(e=0,t=this.length){return _n(this,e,t)}toJSON(){return this.map((e=>e instanceof On?e.toJSON():e))}map(e){return qn(this,e)}forEach(e){Xn(this,e)}[Symbol.iterator](){return $n(this)}_write(e){e.writeTypeRef(Ki)}}class li extends zn{constructor(e,t,A){super(e,t),this.keysChanged=A}}class Qi extends On{constructor(e){super(),this._prelimContent=null,this._prelimContent=void 0===e?new Map:new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach(((e,t)=>{this.set(t,e)})),this._prelimContent=null}_copy(){return new Qi}clone(){const e=new Qi;return this.forEach(((t,A)=>{e.set(A,t instanceof On?t.clone():t)})),e}_callObserver(e,t){Vn(this,e,new li(this,e,t))}toJSON(){const e={};return this._map.forEach(((t,A)=>{if(!t.deleted){const n=t.content.getContent()[t.length-1];e[A]=n instanceof On?n.toJSON():n}})),e}get size(){return[...ci(this._map)].length}keys(){return QA(ci(this._map),(e=>e[0]))}values(){return QA(ci(this._map),(e=>e[1].content.getContent()[e[1].length-1]))}entries(){return QA(ci(this._map),(e=>[e[0],e[1].content.getContent()[e[1].length-1]]))}forEach(e){this._map.forEach(((t,A)=>{t.deleted||e(t.content.getContent()[t.length-1],A,this)}))}[Symbol.iterator](){return this.entries()}delete(e){null!==this.doc?Gn(this.doc,(t=>{ri(t,this,e)})):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?Gn(this.doc,(A=>{oi(A,this,e,t)})):this._prelimContent.set(e,t),t}get(e){return si(this,e)}has(e){return Bi(this,e)}clear(){null!==this.doc?Gn(this.doc,(e=>{this.forEach((function(t,A,n){ri(e,n,A)}))})):this._prelimContent.clear()}_write(e){e.writeTypeRef(Wi)}}const hi=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||Ht(e)===Ht(t)&&((e,t)=>{for(const A in e)if(!t(e[A],A))return!1;return!0})(e,((e,A)=>(void 0!==e||((e,t)=>Object.prototype.hasOwnProperty.call(e,t))(t,A))&&t[A]===e)))(e,t);class ui{constructor(e,t,A,n){this.left=e,this.right=t,this.index=A,this.currentAttributes=n}forward(){null===this.right&&Bt(),this.right.content.constructor===Pi?this.right.deleted||Ii(this.currentAttributes,this.right.content):this.right.deleted||(this.index+=this.right.length),this.left=this.right,this.right=this.right.right}}const wi=(e,t,A)=>{for(;null!==t.right&&A>0;)t.right.content.constructor===Pi?t.right.deleted||Ii(t.currentAttributes,t.right.content):t.right.deleted||(A{const i=new Map,r=n?Pn(t,A):null;if(r){const t=new ui(r.p.left,r.p,r.index,i);return wi(e,t,A-r.index)}{const n=new ui(null,t._start,0,i);return wi(e,n,A)}},Ri=(e,t,A,n)=>{for(;null!==A.right&&(!0===A.right.deleted||A.right.content.constructor===Pi&&hi(n.get(A.right.content.key),A.right.content.value));)A.right.deleted||n.delete(A.right.content.key),A.forward();const i=e.doc,r=i.clientID;n.forEach(((n,o)=>{const s=A.left,E=A.right,B=new Er(_A(r,cn(i.store,r)),s,s&&s.lastId,E,E&&E.id,t,null,new Pi(o,n));B.integrate(e,0),A.right=B,A.forward()}))},Ii=(e,t)=>{const{key:A,value:n}=t;null===n?e.delete(A):e.set(A,n)},di=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===Pi&&hi(t[e.right.content.key]??null,e.right.content.value));)e.forward()},ki=(e,t,A,n)=>{const i=e.doc,r=i.clientID,o=new Map;for(const s in n){const E=n[s],B=A.currentAttributes.get(s)??null;if(!hi(B,E)){o.set(s,B);const{left:n,right:c}=A;A.right=new Er(_A(r,cn(i.store,r)),n,n&&n.lastId,c,c&&c.id,t,null,new Pi(s,E)),A.right.integrate(e,0),A.forward()}}return o},Gi=(e,t,A,n,i)=>{A.currentAttributes.forEach(((e,t)=>{void 0===i[t]&&(i[t]=null)}));const r=e.doc,o=r.clientID;di(A,i);const s=ki(e,t,A,i),E=n.constructor===String?new Oi(n):n instanceof On?new Ar(n):new vi(n);let{left:B,right:c,index:a}=A;t._searchMarker&&Ln(t._searchMarker,A.index,E.getLength()),c=new Er(_A(o,cn(r.store,o)),B,B&&B.lastId,c,c&&c.id,t,null,E),c.integrate(e,0),A.right=c,A.index=a,A.forward(),Ri(e,t,A,s)},Ci=(e,t,A,n,i)=>{const r=e.doc,o=r.clientID;di(A,i);const s=ki(e,t,A,i);e:for(;null!==A.right&&(n>0||s.size>0&&(A.right.deleted||A.right.content.constructor===Pi));){if(!A.right.deleted)switch(A.right.content.constructor){case Pi:{const{key:t,value:r}=A.right.content,o=i[t];if(void 0!==o){if(hi(o,r))s.delete(t);else{if(0===n)break e;s.set(t,r)}A.right.delete(e)}else A.currentAttributes.set(t,r);break}default:n0){let i="";for(;n>0;n--)i+="\n";A.right=new Er(_A(o,cn(r.store,o)),A.left,A.left&&A.left.lastId,A.right,A.right&&A.right.id,t,null,new Oi(i)),A.right.integrate(e,0),A.forward()}Ri(e,t,A,s)},fi=(e,t,A,n,i)=>{let r=t;const o=he();for(;r&&(!r.countable||r.deleted);){if(!r.deleted&&r.content.constructor===Pi){const e=r.content;o.set(e.key,e)}r=r.right}let s=0,E=!1;for(;t!==r;){if(A===t&&(E=!0),!t.deleted){const A=t.content;switch(A.constructor){case Pi:{const{key:r,value:B}=A,c=n.get(r)??null;o.get(r)===A&&c!==B||(t.delete(e),s++,E||(i.get(r)??null)!==B||c===B||(null===c?i.delete(r):i.set(r,c))),E||t.deleted||Ii(i,A);break}}}t=t.right}return s},Di=e=>{let t=0;return Gn(e.doc,(A=>{let n=e._start,i=e._start,r=he();const o=ue(r);for(;i;)!1===i.deleted&&(i.content.constructor===Pi?Ii(o,i.content):(t+=fi(A,n,i,r,o),r=ue(o),n=i)),i=i.right})),t},Fi=e=>{const t=new Set,A=e.doc;for(const[n,i]of e.afterState.entries()){const r=e.beforeState.get(n)||0;i!==r&&wn(e,A.store.clients.get(n),r,i,(e=>{e.deleted||e.content.constructor!==Pi||e.constructor===xi||t.add(e.parent)}))}Gn(A,(A=>{wA(e,e.deleteSet,(e=>{e instanceof xi||!e.parent._hasFormatting||t.has(e.parent)||(e.content.constructor===Pi?t.add(e.parent):((e,t)=>{for(;t&&t.right&&(t.right.deleted||!t.right.countable);)t=t.right;const A=new Set;for(;t&&(t.deleted||!t.countable);){if(!t.deleted&&t.content.constructor===Pi){const n=t.content.key;A.has(n)?t.delete(e):A.add(n)}t=t.left}})(A,e))}));for(const e of t)Di(e)}))},Yi=(e,t,A)=>{const n=A,i=ue(t.currentAttributes),r=t.right;for(;A>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case Ar:case vi:case Oi:A{null===e?this.childListChanged=!0:this.keysChanged.add(e)}))}get changes(){if(null===this._changes){const e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(null===this._delta){const e=[];Gn(this.target.doc,(t=>{const A=new Map,n=new Map;let i=this.target._start,r=null;const o={};let s="",E=0,B=0;const c=()=>{if(null!==r){let t=null;switch(r){case"delete":B>0&&(t={delete:B}),B=0;break;case"insert":("object"==typeof s||s.length>0)&&(t={insert:s},A.size>0&&(t.attributes={},A.forEach(((e,A)=>{null!==e&&(t.attributes[A]=e)})))),s="";break;case"retain":E>0&&(t={retain:E},(e=>{for(const t in e)return!1;return!0})(o)||(t.attributes=pt({},o))),E=0}t&&e.push(t),r=null}};for(;null!==i;){switch(i.content.constructor){case Ar:case vi:this.adds(i)?this.deletes(i)||(c(),r="insert",s=i.content.getContent()[0],c()):this.deletes(i)?("delete"!==r&&(c(),r="delete"),B+=1):i.deleted||("retain"!==r&&(c(),r="retain"),E+=1);break;case Oi:this.adds(i)?this.deletes(i)||("insert"!==r&&(c(),r="insert"),s+=i.content.str):this.deletes(i)?("delete"!==r&&(c(),r="delete"),B+=i.length):i.deleted||("retain"!==r&&(c(),r="retain"),E+=i.length);break;case Pi:{const{key:e,value:s}=i.content;if(this.adds(i)){if(!this.deletes(i)){const E=A.get(e)??null;hi(E,s)?null!==s&&i.delete(t):("retain"===r&&c(),hi(s,n.get(e)??null)?delete o[e]:o[e]=s)}}else if(this.deletes(i)){n.set(e,s);const t=A.get(e)??null;hi(t,s)||("retain"===r&&c(),o[e]=t)}else if(!i.deleted){n.set(e,s);const A=o[e];void 0!==A&&(hi(A,s)?null!==A&&i.delete(t):("retain"===r&&c(),null===s?delete o[e]:o[e]=s))}i.deleted||("insert"===r&&c(),Ii(A,i.content));break}}i=i.right}for(c();e.length>0;){const t=e[e.length-1];if(void 0===t.retain||void 0!==t.attributes)break;e.pop()}})),this._delta=e}return this._delta}}class Ui extends On{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach((e=>e()))}catch(e){console.error(e)}this._pending=null}_copy(){return new Ui}clone(){const e=new Ui;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const A=new mi(this,e,t);Vn(this,e,A),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===Oi&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?Gn(this.doc,(A=>{const n=new ui(null,this._start,0,new Map);for(let i=0;i0)&&Gi(A,this,n,o,r.attributes||{})}else void 0!==r.retain?Ci(A,this,n,r.retain,r.attributes||{}):void 0!==r.delete&&Yi(A,n,r.delete)}})):this._pending.push((()=>this.applyDelta(e)))}toDelta(e,t,A){const n=[],i=new Map;let r="",o=this._start;function s(){if(r.length>0){const e={};let t=!1;i.forEach(((A,n)=>{t=!0,e[n]=A}));const A={insert:r};t&&(A.attributes=e),n.push(A),r=""}}const E=()=>{for(;null!==o;){if(on(o,e)||void 0!==t&&on(o,t))switch(o.content.constructor){case Oi:{const n=i.get("ychange");void 0===e||on(o,e)?void 0===t||on(o,t)?void 0!==n&&(s(),i.delete("ychange")):void 0!==n&&n.user===o.id.client&&"added"===n.type||(s(),i.set("ychange",A?A("added",o.id):{type:"added"})):void 0!==n&&n.user===o.id.client&&"removed"===n.type||(s(),i.set("ychange",A?A("removed",o.id):{type:"removed"})),r+=o.content.str;break}case Ar:case vi:{s();const e={insert:o.content.getContent()[0]};if(i.size>0){const t={};e.attributes=t,i.forEach(((e,A)=>{t[A]=e}))}n.push(e);break}case Pi:on(o,e)&&(s(),Ii(i,o.content))}o=o.right}s()};return e||t?Gn(this.doc,(A=>{e&&sn(A,e),t&&sn(A,t),E()}),"cleanup"):E(),n}insert(e,t,A){if(t.length<=0)return;const n=this.doc;null!==n?Gn(n,(n=>{const i=Mi(n,this,e,!A);A||(A={},i.currentAttributes.forEach(((e,t)=>{A[t]=e}))),Gi(n,this,i,t,A)})):this._pending.push((()=>this.insert(e,t,A)))}insertEmbed(e,t,A){const n=this.doc;null!==n?Gn(n,(n=>{const i=Mi(n,this,e,!A);Gi(n,this,i,t,A||{})})):this._pending.push((()=>this.insertEmbed(e,t,A||{})))}delete(e,t){if(0===t)return;const A=this.doc;null!==A?Gn(A,(A=>{Yi(A,Mi(A,this,e,!0),t)})):this._pending.push((()=>this.delete(e,t)))}format(e,t,A){if(0===t)return;const n=this.doc;null!==n?Gn(n,(n=>{const i=Mi(n,this,e,!1);null!==i.right&&Ci(n,this,i,t,A)})):this._pending.push((()=>this.format(e,t,A)))}removeAttribute(e){null!==this.doc?Gn(this.doc,(t=>{ri(t,this,e)})):this._pending.push((()=>this.removeAttribute(e)))}setAttribute(e,t){null!==this.doc?Gn(this.doc,(A=>{oi(A,this,e,t)})):this._pending.push((()=>this.setAttribute(e,t)))}getAttribute(e){return si(this,e)}getAttributes(){return Ei(this)}_write(e){e.writeTypeRef(Xi)}}class Si{constructor(e,t=(()=>!0)){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(null!==e&&(!this._firstCall||e.deleted||!this._filter(t)))do{if(t=e.content.type,e.deleted||t.constructor!==bi&&t.constructor!==Ni||null===t._start)for(;null!==e;){if(null!==e.right){e=e.right;break}e=e.parent===this._root?null:e.parent._item}else e=t._start}while(null!==e&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,null===e?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}}class Ni extends On{constructor(){super(),this._prelimContent=[]}get firstChild(){const e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Ni}clone(){const e=new Ni;return e.insert(0,this.toArray().map((e=>e instanceof On?e.clone():e))),e}get length(){return null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new Si(this,e)}querySelector(e){e=e.toUpperCase();const t=new Si(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),de(new Si(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)))}_callObserver(e,t){Vn(this,e,new yi(this,t,e))}toString(){return qn(this,(e=>e.toString())).join("")}toJSON(){return this.toString()}toDOM(e=document,t={},A){const n=e.createDocumentFragment();return void 0!==A&&A._createAssociation(n,this),Xn(this,(i=>{n.insertBefore(i.toDOM(e,t,A),null)})),n}insert(e,t){null!==this.doc?Gn(this.doc,(A=>{ni(A,this,e,t)})):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)Gn(this.doc,(A=>{ti(A,this,e&&e instanceof On?e._item:e,t)}));else{const A=this._prelimContent,n=null===e?0:A.findIndex((t=>t===e))+1;if(0===n&&null!==e)throw st("Reference item not found");A.splice(n,0,...t)}}delete(e,t=1){null!==this.doc?Gn(this.doc,(A=>{ii(A,this,e,t)})):this._prelimContent.splice(e,t)}toArray(){return Kn(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return ei(this,e)}slice(e=0,t=this.length){return _n(this,e,t)}forEach(e){Xn(this,e)}_write(e){e.writeTypeRef($i)}}class bi extends Ni{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach(((e,t)=>{this.setAttribute(t,e)})),this._prelimAttrs=null}_copy(){return new bi(this.nodeName)}clone(){const e=new bi(this.nodeName);return((e,t)=>{for(const A in e)t(e[A],A)})(this.getAttributes(),((t,A)=>{"string"==typeof t&&e.setAttribute(A,t)})),e.insert(0,this.toArray().map((e=>e instanceof On?e.clone():e))),e}toString(){const e=this.getAttributes(),t=[],A=[];for(const t in e)A.push(t);A.sort();const n=A.length;for(let i=0;i0?" "+t.join(" "):""}>${super.toString()}`}removeAttribute(e){null!==this.doc?Gn(this.doc,(t=>{ri(t,this,e)})):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?Gn(this.doc,(A=>{oi(A,this,e,t)})):this._prelimAttrs.set(e,t)}getAttribute(e){return si(this,e)}hasAttribute(e){return Bi(this,e)}getAttributes(e){return e?((e,t)=>{const A={};return this._map.forEach(((e,n)=>{let i=e;for(;null!==i&&(!t.sv.has(i.id.client)||i.id.clock>=(t.sv.get(i.id.client)||0));)i=i.left;null!==i&&on(i,t)&&(A[n]=i.content.getContent()[i.length-1])})),A})(0,e):Ei(this)}toDOM(e=document,t={},A){const n=e.createElement(this.nodeName),i=this.getAttributes();for(const e in i){const t=i[e];"string"==typeof t&&n.setAttribute(e,t)}return Xn(this,(i=>{n.appendChild(i.toDOM(e,t,A))})),void 0!==A&&A._createAssociation(n,this),n}_write(e){e.writeTypeRef(qi),e.writeKey(this.nodeName)}}class yi extends zn{constructor(e,t,A){super(e,A),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach((e=>{null===e?this.childListChanged=!0:this.attributesChanged.add(e)}))}}class pi extends Qi{constructor(e){super(),this.hookName=e}_copy(){return new pi(this.hookName)}clone(){const e=new pi(this.hookName);return this.forEach(((t,A)=>{e.set(A,t)})),e}toDOM(e=document,t={},A){const n=t[this.hookName];let i;return i=void 0!==n?n.createDom(this):document.createElement(this.hookName),i.setAttribute("data-yjs-hook",this.hookName),void 0!==A&&A._createAssociation(i,this),i}_write(e){e.writeTypeRef(er),e.writeKey(this.hookName)}}class Ti extends Ui{get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new Ti}clone(){const e=new Ti;return e.applyDelta(this.toDelta()),e}toDOM(e=document,t,A){const n=e.createTextNode(this.toString());return void 0!==A&&A._createAssociation(n,this),n}toString(){return this.toDelta().map((e=>{const t=[];for(const A in e.attributes){const n=[];for(const t in e.attributes[A])n.push({key:t,value:e.attributes[A][t]});n.sort(((e,t)=>e.keye.nodeName=0;e--)A+=``;return A})).join("")}toJSON(){return this.toString()}_write(e){e.writeTypeRef(tr)}}class Hi{constructor(e,t){this.id=e,this.length=t}get deleted(){throw Et()}mergeWith(e){return!1}write(e,t,A){throw Et()}integrate(e,t){throw Et()}}class xi extends Hi{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),an(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class zi{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new zi(this.content)}splice(e){throw Et()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class Ji{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new Ji(this.len)}splice(e){const t=new Ji(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){dA(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted()}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t)}getRef(){return 1}}const ji=(e,t)=>new YA({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Zi{constructor(e){e._item&&console.error("This document was already integrated as a sub-document. You should create a second instance instead with the same guid."),this.doc=e;const t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),null!==e.meta&&(t.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new Zi(ji(this.doc.guid,this.opts))}splice(e){throw Et()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}}class vi{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new vi(this.embed)}splice(e){throw Et()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class Pi{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new Pi(this.key,this.value)}splice(e){throw Et()}mergeWith(e){return!1}integrate(e,t){const A=t.parent;A._searchMarker=null,A._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}}class Li{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Li(this.arr)}splice(e){const t=new Li(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const A=this.arr.length;e.writeLen(A-t);for(let n=t;n=55296&&A<=56319&&(this.str=this.str.slice(0,e-1)+"�",t.str="�"+t.str.slice(1)),t}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(0===t?this.str:this.str.slice(t))}getRef(){return 4}}const _i=[()=>new gi,()=>new Qi,()=>new Ui,e=>new bi(e.readKey()),()=>new Ni,e=>new pi(e.readKey()),()=>new Ti],Ki=0,Wi=1,Xi=2,qi=3,$i=4,er=5,tr=6;class Ar{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new Ar(this.type._copy())}splice(e){throw Et()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;null!==t;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach((t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)})),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;null!==t;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach((t=>{for(;null!==t;)t.gc(e,!0),t=t.left})),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}}const nr=(e,t)=>{let A,n=t,i=0;do{i>0&&(n=_A(n.client,n.clock+i)),A=ln(e,n),i=n.clock-A.id.clock,n=A.redone}while(null!==n&&A instanceof Er);return{item:A,diff:i}},ir=(e,t)=>{for(;null!==e&&e.keep!==t;)e.keep=t,e=e.parent._item},rr=(e,t,A)=>{const{client:n,clock:i}=t.id,r=new Er(_A(n,i+A),t,_A(n,i+A-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(A));return t.deleted&&r.markDeleted(),t.keep&&(r.keep=!0),null!==t.redone&&(r.redone=_A(t.redone.client,t.redone.clock+A)),t.right=r,null!==r.right&&(r.right.left=r),e._mergeStructs.push(r),null!==r.parentSub&&null===r.right&&r.parent._map.set(r.parentSub,r),t.length=A,r},or=(e,t)=>(e=>{for(let A=0;A{const o=e.doc,s=o.store,E=o.clientID,B=t.redone;if(null!==B)return hn(e,B);let c,a=t.parent._item,g=null;if(null!==a&&!0===a.deleted){if(null===a.redone&&(!A.has(a)||null===sr(e,a,A,n,i,r)))return null;for(;null!==a.redone;)a=hn(e,a.redone)}const l=null===a?t.parent:a.content.type;if(null===t.parentSub){for(g=t.left,c=t;null!==g;){let t=g;for(;null!==t&&t.parent._item!==a;)t=null===t.redone?null:hn(e,t.redone);if(null!==t&&t.parent._item===a){g=t;break}g=g.left}for(;null!==c;){let t=c;for(;null!==t&&t.parent._item!==a;)t=null===t.redone?null:hn(e,t.redone);if(null!==t&&t.parent._item===a){c=t;break}c=c.right}}else if(c=null,t.right&&!i){for(g=t;null!==g&&null!==g.right&&(g.right.redone||MA(n,g.right.id)||or(r.undoStack,g.right.id)||or(r.redoStack,g.right.id));)for(g=g.right;g.redone;)g=hn(e,g.redone);if(g&&null!==g.right)return null}else g=l._map.get(t.parentSub)||null;const Q=cn(s,E),h=_A(E,Q),u=new Er(h,g,g&&g.lastId,c,c&&c.id,l,t.parentSub,t.content.copy());return t.redone=h,ir(u,!0),u.integrate(e,0),u};class Er extends Hi{constructor(e,t,A,n,i,r,o,s){super(e,s.getLength()),this.origin=A,this.left=t,this.right=n,this.rightOrigin=i,this.parent=r,this.parentSub=o,this.redone=null,this.content=s,this.info=this.content.isCountable()?2:0}set marker(e){(8&this.info)>0!==e&&(this.info^=8)}get marker(){return(8&this.info)>0}get keep(){return(1&this.info)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(2&this.info)>0}get deleted(){return(4&this.info)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=cn(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=cn(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===VA&&this.id.client!==this.parent.client&&this.parent.clock>=cn(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=un(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=hn(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===xi||this.right&&this.right.constructor===xi)this.parent=null;else if(this.parent){if(this.parent.constructor===VA){const e=ln(t,this.parent);this.parent=e.constructor===xi?null:e.content.type}}else this.left&&this.left.constructor===Er&&(this.parent=this.left.parent,this.parentSub=this.left.parentSub),this.right&&this.right.constructor===Er&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=un(e,e.doc.store,_A(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||null!==this.right.left)||this.left&&this.left.right!==this.right){let t,A=this.left;if(null!==A)t=A.right;else if(null!==this.parentSub)for(t=this.parent._map.get(this.parentSub)||null;null!==t&&null!==t.left;)t=t.left;else t=this.parent._start;const n=new Set,i=new Set;for(;null!==t&&t!==this.right;){if(i.add(t),n.add(t),OA(this.origin,t.origin)){if(t.id.client{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))})),e.keep&&(this.keep=!0),this.right=e.right,null!==this.right&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){const t=this.parent;this.countable&&null===this.parentSub&&(t._length-=this.length),this.markDeleted(),dA(e.deleteSet,this.id.client,this.id.clock,this.length),In(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw Bt();this.content.gc(e),t?((e,t,A)=>{const n=e.clients.get(t.id.client);n[gn(n,t.id.clock)]=A})(e,this,new xi(this.id,this.length)):this.content=new Ji(this.length)}write(e,t){const A=t>0?_A(this.id.client,this.id.clock+t-1):this.origin,n=this.rightOrigin,i=this.parentSub,r=31&this.content.getRef()|(null===A?0:Ue)|(null===n?0:me)|(null===i?0:32);if(e.writeInfo(r),null!==A&&e.writeLeftID(A),null!==n&&e.writeRightID(n),null===A&&null===n){const t=this.parent;if(void 0!==t._item){const A=t._item;if(null===A){const A=KA(t);e.writeParentInfo(!0),e.writeString(A)}else e.writeParentInfo(!1),e.writeLeftID(A.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===VA?(e.writeParentInfo(!1),e.writeLeftID(t)):Bt();null!==i&&e.writeString(i)}this.content.write(e,t)}}const Br=(e,t)=>cr[31&t](e),cr=[()=>{Bt()},e=>new Ji(e.readLen()),e=>{const t=e.readLen(),A=[];for(let n=0;nnew zi(e.readBuf()),e=>new Oi(e.readString()),e=>new vi(e.readJSON()),e=>new Pi(e.readKey(),e.readJSON()),e=>new Ar(_i[e.readTypeRef()](e)),e=>{const t=e.readLen(),A=[];for(let n=0;nnew Zi(ji(e.readString(),e.readAny())),()=>{Bt()}];class ar extends Hi{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){Bt()}write(e,t){e.writeInfo(10),Le(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const gr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},lr="__ $YJS$ __";!0===gr[lr]&&console.error("Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438"),gr[lr]=!0;class Qr extends h{constructor(){super(...arguments),this.contentComponent=null}}const hr=s.create({name:"characterCount",addOptions:()=>({limit:null,mode:"textSize"}),addStorage:()=>({characters:()=>0,words:()=>0}),onBeforeCreate(){this.storage.characters=e=>{const t=(null==e?void 0:e.node)||this.editor.state.doc;return"textSize"===((null==e?void 0:e.mode)||this.options.mode)?t.textBetween(0,t.content.size,void 0," ").length:t.nodeSize},this.storage.words=e=>{const t=(null==e?void 0:e.node)||this.editor.state.doc;return t.textBetween(0,t.content.size," "," ").split(" ").filter((e=>""!==e)).length}},addProseMirrorPlugins(){return[new r({key:new o("characterCount"),filterTransaction:(e,t)=>{const A=this.options.limit;if(!e.docChanged||0===A||null==A)return!0;const n=this.storage.characters({node:t.doc}),i=this.storage.characters({node:e.doc});if(i<=A)return!0;if(n>A&&i>A&&i<=n)return!0;if(n>A&&i>A&&i>n)return!1;if(!e.getMeta("paste"))return!1;const r=e.selection.$head.pos;return e.deleteRange(r-(i-A),r),!(this.storage.characters({node:e.doc})>A)}})]}}),ur=/(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))$/,wr=/(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))/g,Mr=g.create({name:"highlight",addOptions:()=>({multicolor:!1,HTMLAttributes:{}}),addAttributes(){return this.options.multicolor?{color:{default:null,parseHTML:e=>e.getAttribute("data-color")||e.style.backgroundColor,renderHTML:e=>e.color?{"data-color":e.color,style:`background-color: ${e.color}; color: inherit`}:{}}}:{}},parseHTML:()=>[{tag:"mark"}],renderHTML({HTMLAttributes:e}){return["mark",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setHighlight:e=>({commands:t})=>t.setMark(this.name,e),toggleHighlight:e=>({commands:t})=>t.toggleMark(this.name,e),unsetHighlight:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-h":()=>this.editor.commands.toggleHighlight()}},addInputRules(){return[u({find:ur,type:this.type})]},addPasteRules(){return[w({find:wr,type:this.type})]}}),Rr=/^\s*(\[([( |x])?\])\s$/,Ir=R.create({name:"taskItem",addOptions:()=>({nested:!1,HTMLAttributes:{},taskListTypeName:"taskList"}),content(){return this.options.nested?"paragraph block*":"paragraph+"},defining:!0,addAttributes:()=>({checked:{default:!1,keepOnSplit:!1,parseHTML:e=>"true"===e.getAttribute("data-checked"),renderHTML:e=>({"data-checked":e.checked})}}),parseHTML(){return[{tag:`li[data-type="${this.name}"]`,priority:51}]},renderHTML({node:e,HTMLAttributes:t}){return["li",l(this.options.HTMLAttributes,t,{"data-type":this.name}),["label",["input",{type:"checkbox",checked:e.attrs.checked?"checked":null}],["span"]],["div",0]]},addKeyboardShortcuts(){const e={Enter:()=>this.editor.commands.splitListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)};return this.options.nested?{...e,Tab:()=>this.editor.commands.sinkListItem(this.name)}:e},addNodeView(){return({node:e,HTMLAttributes:t,getPos:A,editor:n})=>{const i=document.createElement("li"),r=document.createElement("label"),o=document.createElement("span"),s=document.createElement("input"),E=document.createElement("div");return r.contentEditable="false",s.type="checkbox",s.addEventListener("change",(t=>{if(!n.isEditable&&!this.options.onReadOnlyChecked)return void(s.checked=!s.checked);const{checked:i}=t.target;n.isEditable&&"function"==typeof A&&n.chain().focus(void 0,{scrollIntoView:!1}).command((({tr:e})=>{const t=A(),n=e.doc.nodeAt(t);return e.setNodeMarkup(t,void 0,{...null==n?void 0:n.attrs,checked:i}),!0})).run(),!n.isEditable&&this.options.onReadOnlyChecked&&(this.options.onReadOnlyChecked(e,i)||(s.checked=!s.checked))})),Object.entries(this.options.HTMLAttributes).forEach((([e,t])=>{i.setAttribute(e,t)})),i.dataset.checked=e.attrs.checked,e.attrs.checked&&s.setAttribute("checked","checked"),r.append(s,o),i.append(r,E),Object.entries(t).forEach((([e,t])=>{i.setAttribute(e,t)})),{dom:i,contentDOM:E,update:e=>e.type===this.type&&(i.dataset.checked=e.attrs.checked,e.attrs.checked?s.setAttribute("checked","checked"):s.removeAttribute("checked"),!0)}}},addInputRules(){return[I({find:Rr,type:this.type,getAttributes:e=>({checked:"x"===e[e.length-1]})})]}}),dr=R.create({name:"taskList",addOptions:()=>({itemTypeName:"taskItem",HTMLAttributes:{}}),group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul[data-type="${this.name}"]`,priority:51}]},renderHTML({HTMLAttributes:e}){return["ul",l(this.options.HTMLAttributes,e,{"data-type":this.name}),0]},addCommands(){return{toggleTaskList:()=>({commands:e})=>e.toggleList(this.name,this.options.itemTypeName)}},addKeyboardShortcuts(){return{"Mod-Shift-9":()=>this.editor.commands.toggleTaskList()}}}),kr=s.create({name:"typography",addInputRules(){const e=[];var t;return!1!==this.options.emDash&&e.push(d({find:/--$/,replace:null!=(t=this.options.emDash)?t:"—"})),!1!==this.options.ellipsis&&e.push((e=>d({find:/\.\.\.$/,replace:null!=e?e:"…"}))(this.options.ellipsis)),!1!==this.options.openDoubleQuote&&e.push((e=>d({find:/(?:^|[\s{[(<'"\u2018\u201C])(")$/,replace:null!=e?e:"“"}))(this.options.openDoubleQuote)),!1!==this.options.closeDoubleQuote&&e.push((e=>d({find:/"$/,replace:null!=e?e:"”"}))(this.options.closeDoubleQuote)),!1!==this.options.openSingleQuote&&e.push((e=>d({find:/(?:^|[\s{[(<'"\u2018\u201C])(')$/,replace:null!=e?e:"‘"}))(this.options.openSingleQuote)),!1!==this.options.closeSingleQuote&&e.push((e=>d({find:/'$/,replace:null!=e?e:"’"}))(this.options.closeSingleQuote)),!1!==this.options.leftArrow&&e.push((e=>d({find:/<-$/,replace:null!=e?e:"←"}))(this.options.leftArrow)),!1!==this.options.rightArrow&&e.push((e=>d({find:/->$/,replace:null!=e?e:"→"}))(this.options.rightArrow)),!1!==this.options.copyright&&e.push((e=>d({find:/\(c\)$/,replace:null!=e?e:"©"}))(this.options.copyright)),!1!==this.options.trademark&&e.push((e=>d({find:/\(tm\)$/,replace:null!=e?e:"™"}))(this.options.trademark)),!1!==this.options.servicemark&&e.push((e=>d({find:/\(sm\)$/,replace:null!=e?e:"℠"}))(this.options.servicemark)),!1!==this.options.registeredTrademark&&e.push((e=>d({find:/\(r\)$/,replace:null!=e?e:"®"}))(this.options.registeredTrademark)),!1!==this.options.oneHalf&&e.push((e=>d({find:/(?:^|\s)(1\/2)\s$/,replace:null!=e?e:"½"}))(this.options.oneHalf)),!1!==this.options.plusMinus&&e.push((e=>d({find:/\+\/-$/,replace:null!=e?e:"±"}))(this.options.plusMinus)),!1!==this.options.notEqual&&e.push((e=>d({find:/!=$/,replace:null!=e?e:"≠"}))(this.options.notEqual)),!1!==this.options.laquo&&e.push((e=>d({find:/<<$/,replace:null!=e?e:"«"}))(this.options.laquo)),!1!==this.options.raquo&&e.push((e=>d({find:/>>$/,replace:null!=e?e:"»"}))(this.options.raquo)),!1!==this.options.multiplication&&e.push((e=>d({find:/\d+\s?([*x])\s?\d+$/,replace:null!=e?e:"×"}))(this.options.multiplication)),!1!==this.options.superscriptTwo&&e.push((e=>d({find:/\^2$/,replace:null!=e?e:"²"}))(this.options.superscriptTwo)),!1!==this.options.superscriptThree&&e.push((e=>d({find:/\^3$/,replace:null!=e?e:"³"}))(this.options.superscriptThree)),!1!==this.options.oneQuarter&&e.push((e=>d({find:/(?:^|\s)(1\/4)\s$/,replace:null!=e?e:"¼"}))(this.options.oneQuarter)),!1!==this.options.threeQuarters&&e.push((e=>d({find:/(?:^|\s)(3\/4)\s$/,replace:null!=e?e:"¾"}))(this.options.threeQuarters)),e}}),Gr=/^```([a-z]+)?[\s\n]$/,Cr=/^~~~([a-z]+)?[\s\n]$/,fr=R.create({name:"codeBlock",addOptions:()=>({languageClassPrefix:"language-",exitOnTripleEnter:!0,exitOnArrowDown:!0,HTMLAttributes:{}}),content:"text*",marks:"",group:"block",code:!0,defining:!0,addAttributes(){return{language:{default:null,parseHTML:e=>{var t;const{languageClassPrefix:A}=this.options;return[...(null===(t=e.firstElementChild)||void 0===t?void 0:t.classList)||[]].filter((e=>e.startsWith(A))).map((e=>e.replace(A,"")))[0]||null},rendered:!1}}},parseHTML:()=>[{tag:"pre",preserveWhitespace:"full"}],renderHTML({node:e,HTMLAttributes:t}){return["pre",l(this.options.HTMLAttributes,t),["code",{class:e.attrs.language?this.options.languageClassPrefix+e.attrs.language:null},0]]},addCommands(){return{setCodeBlock:e=>({commands:t})=>t.setNode(this.name,e),toggleCodeBlock:e=>({commands:t})=>t.toggleNode(this.name,"paragraph",e)}},addKeyboardShortcuts(){return{"Mod-Alt-c":()=>this.editor.commands.toggleCodeBlock(),Backspace:()=>{const{empty:e,$anchor:t}=this.editor.state.selection;return!(!e||t.parent.type.name!==this.name)&&!(1!==t.pos&&t.parent.textContent.length)&&this.editor.commands.clearNodes()},Enter:({editor:e})=>{if(!this.options.exitOnTripleEnter)return!1;const{state:t}=e,{selection:A}=t,{$from:n,empty:i}=A;if(!i||n.parent.type!==this.type)return!1;const r=n.parentOffset===n.parent.nodeSize-2,o=n.parent.textContent.endsWith("\n\n");return!(!r||!o)&&e.chain().command((({tr:e})=>(e.delete(n.pos-2,n.pos),!0))).exitCode().run()},ArrowDown:({editor:e})=>{if(!this.options.exitOnArrowDown)return!1;const{state:t}=e,{selection:A,doc:n}=t,{$from:i,empty:r}=A;if(!r||i.parent.type!==this.type)return!1;if(i.parentOffset!==i.parent.nodeSize-2)return!1;const o=i.after();return void 0!==o&&(!n.nodeAt(o)&&e.commands.exitCode())}}},addInputRules(){return[k({find:Gr,type:this.type,getAttributes:e=>({language:e[1]})}),k({find:Cr,type:this.type,getAttributes:e=>({language:e[1]})})]},addProseMirrorPlugins(){return[new r({key:new o("codeBlockVSCodeHandler"),props:{handlePaste:(e,t)=>{if(!t.clipboardData)return!1;if(this.editor.isActive(this.type.name))return!1;const A=t.clipboardData.getData("text/plain"),n=t.clipboardData.getData("vscode-editor-data"),i=n?JSON.parse(n):void 0,r=null==i?void 0:i.mode;if(!A||!r)return!1;const{tr:o}=e.state;return e.state.selection.from===e.state.doc.nodeSize-(1+2*e.state.selection.$to.depth)?o.insert(e.state.selection.from-1,this.type.create({language:r})):o.replaceSelectionWith(this.type.create({language:r})),o.setSelection(G.near(o.doc.resolve(Math.max(0,o.selection.from-2)))),o.insertText(A.replace(/\r\n?/g,"\n")),o.setMeta("paste",!0),e.dispatch(o),!0}}})]}});var Dr={exports:{}};function Fr(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((function(t){var A=e[t];"object"!=typeof A||Object.isFrozen(A)||Fr(A)})),e}Dr.exports=Fr,Dr.exports.default=Fr;class Yr{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function mr(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Ur(e,...t){const A=Object.create(null);for(const t in e)A[t]=e[t];return t.forEach((function(e){for(const t in e)A[t]=e[t]})),A}const Sr=e=>!!e.scope||e.sublanguage&&e.language;class Nr{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=mr(e)}openNode(e){if(!Sr(e))return;let t="";t=e.sublanguage?`language-${e.language}`:((e,{prefix:t})=>{if(e.includes(".")){const A=e.split(".");return[`${t}${A.shift()}`,...A.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ")}return`${t}${e}`})(e.scope,{prefix:this.classPrefix}),this.span(t)}closeNode(e){Sr(e)&&(this.buffer+="")}value(){return this.buffer}span(e){this.buffer+=``}}const br=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class yr{constructor(){this.rootNode=br(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=br({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{yr._collapse(e)})))}}class pr extends yr{constructor(e){super(),this.options=e}addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const A=e.root;A.sublanguage=!0,A.language=t,this.add(A)}toHTML(){return new Nr(this,this.options).value()}finalize(){return!0}}function Tr(e){return e?"string"==typeof e?e:e.source:null}function Hr(e){return Jr("(?=",e,")")}function xr(e){return Jr("(?:",e,")*")}function zr(e){return Jr("(?:",e,")?")}function Jr(...e){return e.map((e=>Tr(e))).join("")}function jr(...e){const t=function(e){const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e);return"("+(t.capture?"":"?:")+e.map((e=>Tr(e))).join("|")+")"}function Zr(e){return new RegExp(e.toString()+"|").exec("").length-1}const vr=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Pr(e,{joinWith:t}){let A=0;return e.map((e=>{A+=1;const t=A;let n=Tr(e),i="";for(;n.length>0;){const e=vr.exec(n);if(!e){i+=n;break}i+=n.substring(0,e.index),n=n.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+String(Number(e[1])+t):(i+=e[0],"("===e[0]&&A++)}return i})).map((e=>`(${e})`)).join(t)}const Lr="[a-zA-Z]\\w*",Vr="[a-zA-Z_]\\w*",Or="\\b\\d+(\\.\\d+)?",_r="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Kr="\\b(0b[01]+)",Wr={begin:"\\\\[\\s\\S]",relevance:0},Xr={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Wr]},qr={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Wr]},$r=function(e,t,A={}){const n=Ur({scope:"comment",begin:e,end:t,contains:[]},A);n.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=jr("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return n.contains.push({begin:Jr(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),n},eo=$r("//","$"),to=$r("/\\*","\\*/"),Ao=$r("#","$");var no=Object.freeze({__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:Lr,UNDERSCORE_IDENT_RE:Vr,NUMBER_RE:Or,C_NUMBER_RE:_r,BINARY_NUMBER_RE:Kr,RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=Jr(t,/.*\b/,e.binary,/\b.*/)),Ur({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:Wr,APOS_STRING_MODE:Xr,QUOTE_STRING_MODE:qr,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},COMMENT:$r,C_LINE_COMMENT_MODE:eo,C_BLOCK_COMMENT_MODE:to,HASH_COMMENT_MODE:Ao,NUMBER_MODE:{scope:"number",begin:Or,relevance:0},C_NUMBER_MODE:{scope:"number",begin:_r,relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:Kr,relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[Wr,{begin:/\[/,end:/\]/,relevance:0,contains:[Wr]}]}]},TITLE_MODE:{scope:"title",begin:Lr,relevance:0},UNDERSCORE_TITLE_MODE:{scope:"title",begin:Vr,relevance:0},METHOD_GUARD:{begin:"\\.\\s*"+Vr,relevance:0},END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})}});function io(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function ro(e){void 0!==e.className&&(e.scope=e.className,delete e.className)}function oo(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=io,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function so(e){Array.isArray(e.illegal)&&(e.illegal=jr(...e.illegal))}function Eo(e){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Bo(e){void 0===e.relevance&&(e.relevance=1)}const co=e=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]})),e.keywords=t.keywords,e.begin=Jr(t.beforeMatch,Hr(t.begin)),e.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},e.relevance=0,delete t.beforeMatch},ao=["of","and","for","in","not","or","if","then","parent","list","value"],go="keyword";function lo(e,t,A=go){const n=Object.create(null);return"string"==typeof e?i(A,e.split(" ")):Array.isArray(e)?i(A,e):Object.keys(e).forEach((function(A){Object.assign(n,lo(e[A],t,A))})),n;function i(e,A){t&&(A=A.map((e=>e.toLowerCase()))),A.forEach((function(t){const A=t.split("|");n[A[0]]=[e,Qo(A[0],A[1])]}))}}function Qo(e,t){return t?Number(t):function(e){return ao.includes(e.toLowerCase())}(e)?0:1}const ho={},uo=e=>{console.error(e)},wo=(e,...t)=>{console.log(`WARN: ${e}`,...t)},Mo=(e,t)=>{ho[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),ho[`${e}/${t}`]=!0)},Ro=new Error;function Io(e,t,{key:A}){let n=0;const i=e[A],r={},o={};for(let e=1;e<=t.length;e++)o[e+n]=i[e],r[e+n]=!0,n+=Zr(t[e-1]);e[A]=o,e[A]._emit=r,e[A]._multi=!0}function ko(e){!function(e){e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)}(e),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw uo("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Ro;if("object"!=typeof e.beginScope||null===e.beginScope)throw uo("beginScope must be object"),Ro;Io(e,e.begin,{key:"beginScope"}),e.begin=Pr(e.begin,{joinWith:""})}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw uo("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Ro;if("object"!=typeof e.endScope||null===e.endScope)throw uo("endScope must be object"),Ro;Io(e,e.end,{key:"endScope"}),e.end=Pr(e.end,{joinWith:""})}}(e)}function Go(e){function t(t,A){return new RegExp(Tr(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(A?"g":""))}class A{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=Zr(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map((e=>e[1]));this.matcherRe=t(Pr(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t)return null;const A=t.findIndex(((e,t)=>t>0&&void 0!==e)),n=this.matchIndexes[A];return t.splice(0,A),Object.assign(t,n)}}class n{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const t=new A;return this.rules.slice(e).forEach((([e,A])=>t.addRule(e,A))),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let A=t.exec(e);if(this.resumingScanAtSamePosition())if(A&&A.index===this.lastIndex);else{const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,A=t.exec(e)}return A&&(this.regexIndex+=A.position+1,this.regexIndex===this.count&&this.considerAll()),A}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Ur(e.classNameAliases||{}),function A(i,r){const o=i;if(i.isCompiled)return o;[ro,Eo,ko,co].forEach((e=>e(i,r))),e.compilerExtensions.forEach((e=>e(i,r))),i.__beforeBegin=null,[oo,so,Bo].forEach((e=>e(i,r))),i.isCompiled=!0;let s=null;return"object"==typeof i.keywords&&i.keywords.$pattern&&(i.keywords=Object.assign({},i.keywords),s=i.keywords.$pattern,delete i.keywords.$pattern),s=s||/\w+/,i.keywords&&(i.keywords=lo(i.keywords,e.case_insensitive)),o.keywordPatternRe=t(s,!0),r&&(i.begin||(i.begin=/\B|\b/),o.beginRe=t(o.begin),i.end||i.endsWithParent||(i.end=/\B|\b/),i.end&&(o.endRe=t(o.end)),o.terminatorEnd=Tr(o.end)||"",i.endsWithParent&&r.terminatorEnd&&(o.terminatorEnd+=(i.end?"|":"")+r.terminatorEnd)),i.illegal&&(o.illegalRe=t(i.illegal)),i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map((function(e){return function(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(t){return Ur(e,{variants:null},t)}))),e.cachedVariants?e.cachedVariants:Co(e)?Ur(e,{starts:e.starts?Ur(e.starts):null}):Object.isFrozen(e)?Ur(e):e}("self"===e?i:e)}))),i.contains.forEach((function(e){A(e,o)})),i.starts&&A(i.starts,r),o.matcher=function(e){const t=new n;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t}(o),o}(e)}function Co(e){return!!e&&(e.endsWithParent||Co(e.starts))}class fo extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const Do=mr,Fo=Ur,Yo=Symbol("nomatch");var mo=function(e){const t=Object.create(null),A=Object.create(null),n=[];let i=!0;const r="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]};let s={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:pr};function E(e){return s.noHighlightRe.test(e)}function B(e,t,A){let n="",i="";"object"==typeof t?(n=e,A=t.ignoreIllegals,i=t.language):(Mo("10.7.0","highlight(lang, code, ...args) has been deprecated."),Mo("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),i=e,n=t),void 0===A&&(A=!0);const r={code:n,language:i};M("before:highlight",r);const o=r.result?r.result:c(r.language,r.code,A);return o.code=r.code,M("after:highlight",o),o}function c(e,A,n,o){const E=Object.create(null);function B(){if(!C.keywords)return void D.addText(F);let e=0;C.keywordPatternRe.lastIndex=0;let t=C.keywordPatternRe.exec(F),A="";for(;t;){A+=F.substring(e,t.index);const n=d.case_insensitive?t[0].toLowerCase():t[0],i=C.keywords[n];if(i){const[e,r]=i;D.addText(A),A="",E[n]=(E[n]||0)+1,E[n]<=7&&(Y+=r),e.startsWith("_")?A+=t[0]:D.addKeyword(t[0],d.classNameAliases[e]||e)}else A+=t[0];e=C.keywordPatternRe.lastIndex,t=C.keywordPatternRe.exec(F)}A+=F.substring(e),D.addText(A)}function g(){null!=C.subLanguage?function(){if(""===F)return;let e=null;if("string"==typeof C.subLanguage){if(!t[C.subLanguage])return void D.addText(F);e=c(C.subLanguage,F,!0,f[C.subLanguage]),f[C.subLanguage]=e._top}else e=a(F,C.subLanguage.length?C.subLanguage:null);C.relevance>0&&(Y+=e.relevance),D.addSublanguage(e._emitter,e.language)}():B(),F=""}function l(e,t){let A=1;const n=t.length-1;for(;A<=n;){if(!e._emit[A]){A++;continue}const n=d.classNameAliases[e[A]]||e[A],i=t[A];n?D.addKeyword(i,n):(F=i,B(),F=""),A++}}function Q(e,t){return e.scope&&"string"==typeof e.scope&&D.openNode(d.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(D.addKeyword(F,d.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),F=""):e.beginScope._multi&&(l(e.beginScope,t),F="")),C=Object.create(e,{parent:{value:C}}),C}function u(e,t,A){let n=function(e,t){const A=e&&e.exec(t);return A&&0===A.index}(e.endRe,A);if(n){if(e["on:end"]){const A=new Yr(e);e["on:end"](t,A),A.isMatchIgnored&&(n=!1)}if(n){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return u(e.parent,t,A)}function w(e){return 0===C.matcher.regexIndex?(F+=e[0],1):(S=!0,0)}function M(e){const t=e[0],n=A.substring(e.index),i=u(C,e,n);if(!i)return Yo;const r=C;C.endScope&&C.endScope._wrap?(g(),D.addKeyword(t,C.endScope._wrap)):C.endScope&&C.endScope._multi?(g(),l(C.endScope,e)):r.skip?F+=t:(r.returnEnd||r.excludeEnd||(F+=t),g(),r.excludeEnd&&(F=t));do{C.scope&&D.closeNode(),C.skip||C.subLanguage||(Y+=C.relevance),C=C.parent}while(C!==i.parent);return i.starts&&Q(i.starts,e),r.returnEnd?0:t.length}let R={};function I(t,r){const o=r&&r[0];if(F+=t,null==o)return g(),0;if("begin"===R.type&&"end"===r.type&&R.index===r.index&&""===o){if(F+=A.slice(r.index,r.index+1),!i){const t=new Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=R.rule,t}return 1}if(R=r,"begin"===r.type)return function(e){const t=e[0],A=e.rule,n=new Yr(A),i=[A.__beforeBegin,A["on:begin"]];for(const A of i)if(A&&(A(e,n),n.isMatchIgnored))return w(t);return A.skip?F+=t:(A.excludeBegin&&(F+=t),g(),A.returnBegin||A.excludeBegin||(F=t)),Q(A,e),A.returnBegin?0:t.length}(r);if("illegal"===r.type&&!n){const e=new Error('Illegal lexeme "'+o+'" for mode "'+(C.scope||"")+'"');throw e.mode=C,e}if("end"===r.type){const e=M(r);if(e!==Yo)return e}if("illegal"===r.type&&""===o)return 1;if(U>1e5&&U>3*r.index)throw new Error("potential infinite loop, way more iterations than matches");return F+=o,o.length}const d=h(e);if(!d)throw uo(r.replace("{}",e)),new Error('Unknown language: "'+e+'"');const k=Go(d);let G="",C=o||k;const f={},D=new s.__emitter(s);!function(){const e=[];for(let t=C;t!==d;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach((e=>D.openNode(e)))}();let F="",Y=0,m=0,U=0,S=!1;try{for(C.matcher.considerAll();;){U++,S?S=!1:C.matcher.considerAll(),C.matcher.lastIndex=m;const e=C.matcher.exec(A);if(!e)break;const t=I(A.substring(m,e.index),e);m=e.index+t}return I(A.substring(m)),D.closeAllNodes(),D.finalize(),G=D.toHTML(),{language:e,value:G,relevance:Y,illegal:!1,_emitter:D,_top:C}}catch(t){if(t.message&&t.message.includes("Illegal"))return{language:e,value:Do(A),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:m,context:A.slice(m-100,m+100),mode:t.mode,resultSoFar:G},_emitter:D};if(i)return{language:e,value:Do(A),illegal:!1,relevance:0,errorRaised:t,_emitter:D,_top:C};throw t}}function a(e,A){A=A||s.languages||Object.keys(t);const n=function(e){const t={value:Do(e),illegal:!1,relevance:0,_top:o,_emitter:new s.__emitter(s)};return t._emitter.addText(e),t}(e),i=A.filter(h).filter(w).map((t=>c(t,e,!1)));i.unshift(n);const r=i.sort(((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(h(e.language).supersetOf===t.language)return 1;if(h(t.language).supersetOf===e.language)return-1}return 0})),[E,B]=r,a=E;return a.secondBest=B,a}function g(e){let t=null;const n=function(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";const A=s.languageDetectRe.exec(t);if(A){const t=h(A[1]);return t||(wo(r.replace("{}",A[1])),wo("Falling back to no-highlight mode for this block.",e)),t?A[1]:"no-highlight"}return t.split(/\s+/).find((e=>E(e)||h(e)))}(e);if(E(n))return;if(M("before:highlightElement",{el:e,language:n}),e.children.length>0&&(s.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),s.throwUnescapedHTML))throw new fo("One of your code blocks includes unescaped HTML.",e.innerHTML);t=e;const i=t.textContent,o=n?B(i,{language:n,ignoreIllegals:!0}):a(i);e.innerHTML=o.value,function(e,t,n){const i=t&&A[t]||n;e.classList.add("hljs"),e.classList.add(`language-${i}`)}(e,n,o.language),e.result={language:o.language,re:o.relevance,relevance:o.relevance},o.secondBest&&(e.secondBest={language:o.secondBest.language,relevance:o.secondBest.relevance}),M("after:highlightElement",{el:e,result:o,text:i})}let l=!1;function Q(){"loading"!==document.readyState?document.querySelectorAll(s.cssSelector).forEach(g):l=!0}function h(e){return e=(e||"").toLowerCase(),t[e]||t[A[e]]}function u(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{A[e.toLowerCase()]=t}))}function w(e){const t=h(e);return t&&!t.disableAutodetect}function M(e,t){const A=e;n.forEach((function(e){e[A]&&e[A](t)}))}"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(function(){l&&Q()}),!1),Object.assign(e,{highlight:B,highlightAuto:a,highlightAll:Q,highlightElement:g,highlightBlock:function(e){return Mo("10.7.0","highlightBlock will be removed entirely in v12.0"),Mo("10.7.0","Please use highlightElement now."),g(e)},configure:function(e){s=Fo(s,e)},initHighlighting:()=>{Q(),Mo("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){Q(),Mo("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(A,n){let r=null;try{r=n(e)}catch(e){if(uo("Language definition for '{}' could not be registered.".replace("{}",A)),!i)throw e;uo(e),r=o}r.name||(r.name=A),t[A]=r,r.rawDefinition=n.bind(null,e),r.aliases&&u(r.aliases,{languageName:A})},unregisterLanguage:function(e){delete t[e];for(const t of Object.keys(A))A[t]===e&&delete A[t]},listLanguages:function(){return Object.keys(t)},getLanguage:h,registerAliases:u,autoDetection:w,inherit:Fo,addPlugin:function(e){!function(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{e["before:highlightBlock"](Object.assign({block:t.el},t))}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{e["after:highlightBlock"](Object.assign({block:t.el},t))})}(e),n.push(e)}}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString="11.6.0",e.regex={concat:Jr,lookahead:Hr,either:jr,optional:zr,anyNumberOfTimes:xr};for(const e in no)"object"==typeof no[e]&&Dr.exports(no[e]);return Object.assign(e,no),e}({}),Uo=mo;mo.HighlightJS=mo,mo.default=mo;var So=Uo;function No(e,t=[]){return e.map((e=>{const A=[...t,...e.properties?e.properties.className:[]];return e.children?No(e.children,A):{text:e.value,classes:A}})).flat()}function bo(e){return e.value||e.children||[]}function yo({doc:e,name:t,lowlight:A,defaultLanguage:n}){const i=[];return f(e,(e=>e.type.name===t)).forEach((e=>{let t=e.pos+1;const r=e.node.attrs.language||n,o=A.listLanguages();No(r&&(o.includes(r)||Boolean(So.getLanguage(r)))?bo(A.highlight(r,e.node.textContent)):bo(A.highlightAuto(e.node.textContent))).forEach((e=>{const A=t+e.text.length;if(e.classes.length){const n=D.inline(t,A,{class:e.classes.join(" ")});i.push(n)}t=A}))})),C.create(e,i)}function po({name:e,lowlight:t,defaultLanguage:A}){if(!["highlight","highlightAuto","listLanguages"].every((e=>"function"==typeof t[e])))throw Error("You should provide an instance of lowlight to use the code-block-lowlight extension");const n=new r({key:new o("lowlight"),state:{init:(n,{doc:i})=>yo({doc:i,name:e,lowlight:t,defaultLanguage:A}),apply:(n,i,r,o)=>{const s=r.selection.$head.parent.type.name,E=o.selection.$head.parent.type.name,B=f(r.doc,(t=>t.type.name===e)),c=f(o.doc,(t=>t.type.name===e));return n.docChanged&&([s,E].includes(e)||c.length!==B.length||n.steps.some((e=>void 0!==e.from&&void 0!==e.to&&B.some((t=>t.pos>=e.from&&t.pos+t.node.nodeSize<=e.to)))))?yo({doc:n.doc,name:e,lowlight:t,defaultLanguage:A}):i.map(n.mapping,n.doc)}},props:{decorations:e=>n.getState(e)}});return n}const To=fr.extend({addOptions(){var e;return{...null===(e=this.parent)||void 0===e?void 0:e.call(this),lowlight:{},defaultLanguage:null}},addProseMirrorPlugins(){var e;return[...(null===(e=this.parent)||void 0===e?void 0:e.call(this))||[],po({name:this.name,lowlight:this.options.lowlight,defaultLanguage:this.options.defaultLanguage})]}});const Ho=function(e){const t={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},A=function(e){const t=e.regex,A=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),n="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="(?!struct)("+n+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},E={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},B={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{className:"string",begin:/<.*?>/},A,e.C_BLOCK_COMMENT_MODE]},c={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},a=t.optional(i)+e.IDENT_RE+"\\s*\\(",g={type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]},l={className:"function.dispatch",relevance:0,keywords:{_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},Q=[l,B,o,A,e.C_BLOCK_COMMENT_MODE,E,s],h={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:g,contains:Q.concat([{begin:/\(/,end:/\)/,keywords:g,contains:Q.concat(["self"]),relevance:0}]),relevance:0};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:g,illegal:".]/,contains:[{begin:n,keywords:g,relevance:0},{begin:a,returnBegin:!0,contains:[c],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,E]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[A,e.C_BLOCK_COMMENT_MODE,s,E,o,{begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:["self",A,e.C_BLOCK_COMMENT_MODE,s,E,o]}]},o,A,e.C_BLOCK_COMMENT_MODE,B]},l,Q,[B,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\s*<(?!<)",end:">",keywords:g,contains:["self",o]},{begin:e.IDENT_RE+"::",keywords:g},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}(e),n=A.keywords;return n.type=[...n.type,...t.type],n.literal=[...n.literal,...t.literal],n.built_in=[...n.built_in,...t.built_in],n._hints=t._hints,A.name="Arduino",A.aliases=["ino"],A.supersetOf="cpp",A};const xo=function(e){const t=e.regex,A=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),n="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="("+n+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},s={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},E={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},B={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{className:"string",begin:/<.*?>/},A,e.C_BLOCK_COMMENT_MODE]},c={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},a=t.optional(i)+e.IDENT_RE+"\\s*\\(",g={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},l=[B,o,A,e.C_BLOCK_COMMENT_MODE,E,s],Q={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:g,contains:l.concat([{begin:/\(/,end:/\)/,keywords:g,contains:l.concat(["self"]),relevance:0}]),relevance:0},h={begin:"("+r+"[\\*&\\s]+)+"+a,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:g,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:n,keywords:g,relevance:0},{begin:a,returnBegin:!0,contains:[e.inherit(c,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[A,e.C_BLOCK_COMMENT_MODE,s,E,o,{begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:["self",A,e.C_BLOCK_COMMENT_MODE,s,E,o]}]},o,A,e.C_BLOCK_COMMENT_MODE,B]};return{name:"C",aliases:["h"],keywords:g,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:B,strings:s,keywords:g}}};const zo=function(e){const t=e.regex,A=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),n="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="(?!struct)("+n+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},E={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},B={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{className:"string",begin:/<.*?>/},A,e.C_BLOCK_COMMENT_MODE]},c={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},a=t.optional(i)+e.IDENT_RE+"\\s*\\(",g={type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]},l={className:"function.dispatch",relevance:0,keywords:{_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},Q=[l,B,o,A,e.C_BLOCK_COMMENT_MODE,E,s],h={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:g,contains:Q.concat([{begin:/\(/,end:/\)/,keywords:g,contains:Q.concat(["self"]),relevance:0}]),relevance:0};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:g,illegal:".]/,contains:[{begin:n,keywords:g,relevance:0},{begin:a,returnBegin:!0,contains:[c],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,E]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[A,e.C_BLOCK_COMMENT_MODE,s,E,o,{begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:["self",A,e.C_BLOCK_COMMENT_MODE,s,E,o]}]},o,A,e.C_BLOCK_COMMENT_MODE,B]},l,Q,[B,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\s*<(?!<)",end:">",keywords:g,contains:["self",o]},{begin:e.IDENT_RE+"::",keywords:g},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}};const Jo=function(e){const t={keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],literal:["default","false","null","true"]},A=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),n={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},r=e.inherit(i,{illegal:/\n/}),o={className:"subst",begin:/\{/,end:/\}/,keywords:t},s=e.inherit(o,{illegal:/\n/}),E={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,s]},B={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]},c=e.inherit(B,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]});o.contains=[B,E,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,n,e.C_BLOCK_COMMENT_MODE],s.contains=[c,E,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,n,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const a={variants:[B,E,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},g={begin:"<",end:">",contains:[{beginKeywords:"in out"},A]},l=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",Q={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:t,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},a,n,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},A,g,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[A,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[A,g,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+l+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:t,contains:[{beginKeywords:["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"].join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,g],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,relevance:0,contains:[a,n,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},Q]}},jo=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Zo=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],vo=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],Po=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],Lo=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();const Vo=function(e){const t=e.regex,A=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}))(e),n=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[A.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/},A.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},A.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+vo.join("|")+")"},{begin:":(:)?("+Po.join("|")+")"}]},A.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Lo.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[A.BLOCK_COMMENT,A.HEXCOLOR,A.IMPORTANT,A.CSS_NUMBER_MODE,...n,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...n,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},A.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:Zo.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...n,A.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+jo.join("|")+")\\b"}]}};const Oo=function(e){const t=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}};const _o=function(e){const t={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:t,illegal:"ts(e,t,A-1)))}const As=function(e){const t=e.regex,A="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",n=A+ts("(?:<"+A+"~~~(?:\\s*,\\s*"+A+"~~~)*>)?",/~~~/g,2),i={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},r={className:"meta",begin:"@"+A,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},o={className:"params",begin:/\(/,end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,A],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,A),/\s+/,A,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,A],className:{1:"keyword",3:"title.class"},contains:[o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+n+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:i,relevance:0,contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,es,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},es,r]}},ns="[A-Za-z$_][0-9A-Za-z$_]*",is=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],rs=["true","false","null","undefined","NaN","Infinity"],os=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ss=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Es=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Bs=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],cs=[].concat(Es,os,ss);const as=function(e){const t=e.regex,A=ns,n={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{const A=e[0].length+e.index,n=e.input[A];if("<"===n||","===n)return void t.ignoreMatch();let i;">"===n&&(((e,{after:t})=>{const A="",D={match:[/const|var|let/,/\s+/,A,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(f)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[M]};var F;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:w,CLASS_REFERENCE:I},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,a,g,l,Q,{match:/\$\d+/},E,I,{className:"attr",begin:A+t.lookahead(":"),relevance:0},D,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[Q,e.REGEXP_MODE,{className:"function",begin:f,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:w}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:""},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:n.begin,"on:begin":n.isTrulyOpeningTag,end:n.end}],subLanguage:"xml",contains:[{begin:n.begin,end:n.end,skip:!0,contains:["self"]}]}]},d,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[M,e.inherit(e.TITLE_MODE,{begin:A,className:"title.function"})]},{match:/\.\.\./,relevance:0},G,{match:"\\$"+A,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[M]},k,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},R,C,{match:/\$[(.]/}]}};const gs=function(e){const t=["true","false","null"],A={scope:"literal",beginKeywords:t.join(" ")};return{name:"JSON",keywords:{literal:t},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0},e.QUOTE_STRING_MODE,A,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}};var ls="[0-9](_*[0-9])*",Qs=`\\.(${ls})`,hs="[0-9a-fA-F](_*[0-9a-fA-F])*",us={className:"number",variants:[{begin:`(\\b(${ls})((${Qs})|\\.)?|(${Qs}))[eE][+-]?(${ls})[fFdD]?\\b`},{begin:`\\b(${ls})((${Qs})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Qs})[fFdD]?\\b`},{begin:`\\b(${ls})[fFdD]\\b`},{begin:`\\b0[xX]((${hs})\\.?|(${hs})?\\.(${hs}))[pP][+-]?(${ls})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${hs})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};const ws=function(e){const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},A={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},n={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,n]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,i,n]}]};n.contains.push(r);const o={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},s={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}]},E=us,B=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),c={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},a=c;return a.variants[1].contains=[c],c.variants[1].contains=[a],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,B,{className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},A,o,s,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[c,e.C_LINE_COMMENT_MODE,B],relevance:0},e.C_LINE_COMMENT_MODE,B,o,s,r,e.C_NUMBER_MODE]},B]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},o,s]},r,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},E]}},Ms=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Rs=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],Is=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],ds=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],ks=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),Gs=Is.concat(ds);const Cs=function(e){const t=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}))(e),A=Gs,n="[\\w-]+",i="("+n+"|@\\{"+n+"\\})",r=[],o=[],s=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},E=function(e,t,A){return{className:e,begin:t,relevance:A}},B={$pattern:/[a-z-]+/,keyword:"and or not only",attribute:Rs.join(" ")},c={begin:"\\(",end:"\\)",contains:o,keywords:B,relevance:0};o.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s("'"),s('"'),t.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},t.HEXCOLOR,c,E("variable","@@?"+n,10),E("variable","@\\{"+n+"\\}"),E("built_in","~?`[^`]*?`"),{className:"attribute",begin:n+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},t.IMPORTANT,{beginKeywords:"and not"},t.FUNCTION_DISPATCH);const a=o.concat({begin:/\{/,end:/\}/,contains:r}),g={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(o)},l={begin:i+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ks.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:o}}]},Q={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:B,returnEnd:!0,contains:o,relevance:0}},h={className:"variable",variants:[{begin:"@"+n+"\\s*:",relevance:15},{begin:"@"+n}],starts:{end:"[;}]",returnEnd:!0,contains:a}},u={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:i,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g,E("keyword","all\\b"),E("variable","@\\{"+n+"\\}"),{begin:"\\b("+Ms.join("|")+")\\b",className:"selector-tag"},t.CSS_NUMBER_MODE,E("selector-tag",i,0),E("selector-id","#"+i),E("selector-class","\\."+i,0),E("selector-tag","&",0),t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+Is.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+ds.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:a},{begin:"!important"},t.FUNCTION_DISPATCH]},w={begin:n+":(:)?"+`(${A.join("|")})`,returnBegin:!0,contains:[u]};return r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,Q,h,w,l,u,g,t.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:r}};const fs=function(e){const t={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},A={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},n={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},i={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},r=e.inherit(n,{contains:[]}),o=e.inherit(i,{contains:[]});n.contains.push(o),i.contains.push(r);let s=[t,A];return[n,i,r,o].forEach((e=>{e.contains=e.contains.concat(s)})),s=s.concat(n,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:s},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:s}]}]},t,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},n,i,{className:"quote",begin:"^>\\s+",contains:s,end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},A,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}};const Ds=function(e){const t=e.regex,A=/[dualxmsipngr]{0,12}/,n={$pattern:/[\w.]+/,keyword:["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"].join(" ")},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:n},r={begin:/->\{/,end:/\}/},o={variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},s=[e.BACKSLASH_ESCAPE,i,o],E=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],B=(e,n,i="\\1")=>{const r="\\1"===i?i:t.concat(i,n);return t.concat(t.concat("(?:",e,")"),n,/(?:\\.|[^\\\/])*?/,r,/(?:\\.|[^\\\/])*?/,i,A)},c=(e,n,i)=>t.concat(t.concat("(?:",e,")"),n,/(?:\\.|[^\\\/])*?/,i,A),a=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),r,{className:"string",contains:s,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:B("s|tr|y",t.either(...E,{capture:!0}))},{begin:B("s|tr|y","\\(","\\)")},{begin:B("s|tr|y","\\[","\\]")},{begin:B("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:c("(?:m|qr)?",/\//,/\//)},{begin:c("m|qr",t.either(...E,{capture:!0}),/\1/)},{begin:c("m|qr",/\(/,/\)/)},{begin:c("m|qr",/\[/,/\]/)},{begin:c("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return i.contains=a,r.contains=a,{name:"Perl",aliases:["pl","pm"],keywords:n,contains:a}};const Fs=function(e){const t=e.regex,A=/(?![A-Za-z0-9])(?![$])/,n=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,A),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,A),r={scope:"variable",match:"\\$+"+n},o={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},s=e.inherit(e.APOS_STRING_MODE,{illegal:null}),E="[ \t\n]",B={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(o)}),s,{begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(o),"on:begin":(e,t)=>{t.data._beginMatch=e[1]||e[2]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}},e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/})]},c={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},a=["false","null","true"],g=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],l=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],Q={keyword:g,literal:(e=>{const t=[];return e.forEach((e=>{t.push(e),e.toLowerCase()===e?t.push(e.toUpperCase()):t.push(e.toLowerCase())})),t})(a),built_in:l},h=e=>e.map((e=>e.replace(/\|\d+$/,""))),u={variants:[{match:[/new/,t.concat(E,"+"),t.concat("(?!",h(l).join("\\b|"),"\\b)"),i],scope:{1:"keyword",4:"title.class"}}]},w=t.concat(n,"\\b(?!\\()"),M={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),w],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),w],scope:{1:"title.class",3:"variable.constant"}},{match:[i,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},R={scope:"attr",match:t.concat(n,t.lookahead(":"),t.lookahead(/(?!::)/))},I={relevance:0,begin:/\(/,end:/\)/,keywords:Q,contains:[R,r,M,e.C_BLOCK_COMMENT_MODE,B,c,u]},d={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",h(g).join("\\b|"),"|",h(l).join("\\b|"),"\\b)"),n,t.concat(E,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[I]};I.contains.push(d);const k=[R,M,e.C_BLOCK_COMMENT_MODE,B,c,u];return{case_insensitive:!1,keywords:Q,contains:[{begin:t.concat(/#\[\s*/,i),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:a,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:a,keyword:["new","array"]},contains:["self",...k]},...k,{scope:"meta",match:i}]},e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},r,d,M,{match:[/const/,/\s/,n],scope:{1:"keyword",3:"variable.constant"}},u,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:Q,contains:["self",r,M,e.C_BLOCK_COMMENT_MODE,B,c]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},B,c]}};const Ys=function(e){const t=e.regex,A=/[\p{XID_Start}_]\p{XID_Continue}*/u,n=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:n,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},r={className:"meta",begin:/^(>>>|\.\.\.) /},o={className:"subst",begin:/\{/,end:/\}/,keywords:i,illegal:/#/},s={begin:/\{\{/,relevance:0},E={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,r,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,s,o]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,o]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},B="[0-9](_?[0-9])*",c=`(\\b(${B}))?\\.(${B})|\\b(${B})\\.`,a=`\\b|${n.join("|")}`,g={className:"number",relevance:0,variants:[{begin:`(\\b(${B})|(${c}))[eE][+-]?(${B})[jJ]?(?=${a})`},{begin:`(${c})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${a})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${a})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${a})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${a})`},{begin:`\\b(${B})[jJ](?=${a})`}]},l={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:i,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},Q={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:["self",r,g,E,e.HASH_COMMENT_MODE]}]};return o.contains=[E,g,r],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i,illegal:/(<\/|\?)|=>/,contains:[r,g,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},E,l,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,A],scope:{1:"keyword",3:"title.function"},contains:[Q]},{variants:[{match:[/\bclass/,/\s+/,A,/\s*/,/\(\s*/,A,/\s*\)/]},{match:[/\bclass/,/\s+/,A]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[g,Q,E]}]}};const ms=function(e){const t=e.regex,A=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,n=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,r=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:A,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:A},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[i,n]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,n]},{scope:{1:"punctuation",2:"number"},match:[r,n]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,n]}]},{scope:{3:"operator"},match:[A,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}};const Us=function(e){const t=e.regex,A="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",n=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=t.concat(n,/(::\w+)*/),r={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},o={className:"doctag",begin:"@[A-Za-z]+"},s={begin:"#<",end:">"},E=[e.COMMENT("#","$",{contains:[o]}),e.COMMENT("^=begin","^=end",{contains:[o],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],B={className:"subst",begin:/#\{/,end:/\}/,keywords:r},c={className:"string",contains:[e.BACKSLASH_ESCAPE,B],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,B]})]}]},a="[0-9](_?[0-9])*",g={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:r}]},l=[c,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,i],scope:{2:"title.class"},keywords:r},{relevance:0,match:[i,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:n,scope:"title.class"},{match:[/def/,/\s+/,A],scope:{1:"keyword",3:"title.function"},contains:[g]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[c,{begin:A}],relevance:0},{className:"number",relevance:0,variants:[{begin:`\\b([1-9](_?[0-9])*|0)(\\.(${a}))?([eE][+-]?(${a})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,B],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(s,E),relevance:0}].concat(s,E);B.contains=l,g.contains=l;const Q=[{begin:/^\s*=>/,starts:{end:"$",contains:l}},{className:"meta.prompt",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",starts:{end:"$",keywords:r,contains:l}}];return E.unshift(s),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(Q).concat(E).concat(l)}};const Ss=function(e){const t=e.regex,A={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let\b)/,e.IDENT_RE,t.lookahead(/\s*\(/))},n="([ui](8|16|32|64|128|size)|f(32|64))?",i=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],r=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:r,keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"],literal:["true","false","Some","None","Ok","Err"],built_in:i},illegal:""},A]}},Ns=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],bs=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],ys=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],ps=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],Ts=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();const Hs=function(e){const t=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}))(e),A=ps,n=ys,i="@[a-z-]+",r={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+Ns.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+n.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+A.join("|")+")"},r,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Ts.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[t.BLOCK_COMMENT,r,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:bs.join(" ")},contains:[{begin:i,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},r,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}};const xs=function(e){const t=e.regex,A=e.COMMENT("--","$"),n=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],r=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],o=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],s=r,E=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!r.includes(e))),B={begin:t.concat(/\b/,t.either(...s),/\s*\(/),relevance:0,keywords:{built_in:s}};return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:function(e,{exceptions:t,when:A}={}){const n=A;return t=t||[],e.map((e=>e.match(/\|\d+$/)||t.includes(e)?e:n(e)?`${e}|0`:e))}(E,{when:e=>e.length<3}),literal:n,type:i,built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]},contains:[{begin:t.either(...o),relevance:0,keywords:{$pattern:/[\w\.]+/,keyword:E.concat(o),literal:n,type:i}},{className:"type",begin:t.either("double precision","large object","with timezone","without timezone")},B,{className:"variable",begin:/@[a-z0-9][a-z0-9_]*/},{className:"string",variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,A,{className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}};function zs(e){return e?"string"==typeof e?e:e.source:null}function Js(e){return js("(?=",e,")")}function js(...e){return e.map((e=>zs(e))).join("")}function Zs(...e){const t=function(e){const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e);return"("+(t.capture?"":"?:")+e.map((e=>zs(e))).join("|")+")"}const vs=e=>js(/\b/,e,/\w$/.test(e)?/\b/:/\B/),Ps=["Protocol","Type"].map(vs),Ls=["init","self"].map(vs),Vs=["Any","Self"],Os=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","distributed","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],_s=["false","nil","true"],Ks=["assignment","associativity","higherThan","left","lowerThan","none","right"],Ws=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],Xs=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],qs=Zs(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),$s=Zs(qs,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),eE=js(qs,$s,"*"),tE=Zs(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),AE=Zs(tE,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),nE=js(tE,AE,"*"),iE=js(/[A-Z]/,AE,"*"),rE=["autoclosure",js(/convention\(/,Zs("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",js(/objc\(/,nE,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],oE=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];const sE=function(e){const t={match:/\s+/,relevance:0},A=e.COMMENT("/\\*","\\*/",{contains:["self"]}),n=[e.C_LINE_COMMENT_MODE,A],i={match:[/\./,Zs(...Ps,...Ls)],className:{2:"keyword"}},r={match:js(/\./,Zs(...Os)),relevance:0},o=Os.filter((e=>"string"==typeof e)).concat(["_|0"]),s={variants:[{className:"keyword",match:Zs(...Os.filter((e=>"string"!=typeof e)).concat(Vs).map(vs),...Ls)}]},E={$pattern:Zs(/\b\w+/,/#\w+/),keyword:o.concat(Ws),literal:_s},B=[i,r,s],c=[{match:js(/\./,Zs(...Xs)),relevance:0},{className:"built_in",match:js(/\b/,Zs(...Xs),/(?=\()/)}],a={match:/->/,relevance:0},g=[a,{className:"operator",relevance:0,variants:[{match:eE},{match:`\\.(\\.|${$s})+`}]}],l="([0-9]_*)+",Q="([0-9a-fA-F]_*)+",h={className:"number",relevance:0,variants:[{match:`\\b(${l})(\\.(${l}))?([eE][+-]?(${l}))?\\b`},{match:`\\b0x(${Q})(\\.(${Q}))?([pP][+-]?(${l}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},u=(e="")=>({className:"subst",variants:[{match:js(/\\/,e,/[0\\tnr"']/)},{match:js(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),w=(e="")=>({className:"subst",match:js(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),M=(e="")=>({className:"subst",label:"interpol",begin:js(/\\/,e,/\(/),end:/\)/}),R=(e="")=>({begin:js(e,/"""/),end:js(/"""/,e),contains:[u(e),w(e),M(e)]}),I=(e="")=>({begin:js(e,/"/),end:js(/"/,e),contains:[u(e),M(e)]}),d={className:"string",variants:[R(),R("#"),R("##"),R("###"),I(),I("#"),I("##"),I("###")]},k={match:js(/`/,nE,/`/)},G=[k,{className:"variable",match:/\$\d+/},{className:"variable",match:`\\$${AE}+`}],C=[{match:/(@|#(un)?)available/,className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:oE,contains:[...g,h,d]}]}},{className:"keyword",match:js(/@/,Zs(...rE))},{className:"meta",match:js(/@/,nE)}],f={match:Js(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:js(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,AE,"+")},{className:"type",match:iE,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:js(/\s+&\s+/,Js(iE)),relevance:0}]},D={begin://,keywords:E,contains:[...n,...B,...C,a,f]};f.contains.push(D);const F={begin:/\(/,end:/\)/,relevance:0,keywords:E,contains:["self",{match:js(nE,/\s*:/),keywords:"_|0",relevance:0},...n,...B,...c,...g,h,d,...G,...C,f]},Y={begin://,contains:[...n,f]},m={begin:/\(/,end:/\)/,keywords:E,contains:[{begin:Zs(Js(js(nE,/\s*:/)),Js(js(nE,/\s+/,nE,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:nE}]},...n,...B,...g,h,d,...C,f,F],endsParent:!0,illegal:/["']/},U={match:[/func/,/\s+/,Zs(k.match,nE,eE)],className:{1:"keyword",3:"title.function"},contains:[Y,m,t],illegal:[/\[/,/%/]},S={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Y,m,t],illegal:/\[|%/},N={match:[/operator/,/\s+/,eE],className:{1:"keyword",3:"title"}},b={begin:[/precedencegroup/,/\s+/,iE],className:{1:"keyword",3:"title"},contains:[f],keywords:[...Ks,..._s],end:/}/};for(const e of d.variants){const t=e.contains.find((e=>"interpol"===e.label));t.keywords=E;const A=[...B,...c,...g,h,d,...G];t.contains=[...A,{begin:/\(/,end:/\)/,contains:["self",...A]}]}return{name:"Swift",keywords:E,contains:[...n,U,S,{beginKeywords:"struct protocol class extension enum actor",end:"\\{",excludeEnd:!0,keywords:E,contains:[e.inherit(e.TITLE_MODE,{className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B]},N,b,{beginKeywords:"import",end:/$/,contains:[...n],relevance:0},...B,...c,...g,h,d,...G,...C,f,F]}},EE="[A-Za-z$_][0-9A-Za-z$_]*",BE=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],cE=["true","false","null","undefined","NaN","Infinity"],aE=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],gE=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],lE=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],QE=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],hE=[].concat(lE,aE,gE);function uE(e){const t=e.regex,A=EE,n={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{const A=e[0].length+e.index,n=e.input[A];if("<"===n||","===n)return void t.ignoreMatch();let i;">"===n&&(((e,{after:t})=>{const A="",D={match:[/const|var|let/,/\s+/,A,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(f)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[M]};var F;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:w,CLASS_REFERENCE:I},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,a,g,l,Q,{match:/\$\d+/},E,I,{className:"attr",begin:A+t.lookahead(":"),relevance:0},D,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[Q,e.REGEXP_MODE,{className:"function",begin:f,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:w}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:""},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:n.begin,"on:begin":n.isTrulyOpeningTag,end:n.end}],subLanguage:"xml",contains:[{begin:n.begin,end:n.end,skip:!0,contains:["self"]}]}]},d,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[M,e.inherit(e.TITLE_MODE,{begin:A,className:"title.function"})]},{match:/\.\.\./,relevance:0},G,{match:"\\$"+A,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[M]},k,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},R,C,{match:/\$[(.]/}]}}const wE=function(e){const t=uE(e),A=EE,n=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],i={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[t.exports.CLASS_REFERENCE]},r={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:n},contains:[t.exports.CLASS_REFERENCE]},o={$pattern:EE,keyword:BE.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]),literal:cE,built_in:hE.concat(n),"variable.language":QE},s={className:"meta",begin:"@"+A},E=(e,t,A)=>{const n=e.contains.findIndex((e=>e.label===t));if(-1===n)throw new Error("can not find mode to replace");e.contains.splice(n,1,A)};return Object.assign(t.keywords,o),t.exports.PARAMS_CONTAINS.push(s),t.contains=t.contains.concat([s,i,r]),E(t,"shebang",e.SHEBANG()),E(t,"use_strict",{className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/}),t.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(t,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t};const ME=function(e){const t=e.regex,A=/\d{1,2}\/\d{1,2}\/\d{4}/,n=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,o={className:"literal",variants:[{begin:t.concat(/# */,t.either(n,A),/ *#/)},{begin:t.concat(/# */,r,/ *#/)},{begin:t.concat(/# */,i,/ *#/)},{begin:t.concat(/# */,t.either(n,A),/ +/,t.either(i,r),/ *#/)}]},s=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),E=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},o,{className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{className:"label",begin:/^\w+:/},s,E,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[E]}]}};const RE=function(e){const t=e.regex,A=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),n={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},r=e.inherit(i,{begin:/\(/,end:/\)/}),o=e.inherit(e.APOS_STRING_MODE,{className:"string"}),s=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),E={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[i,s,o,r,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[i,r,s,o]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},n,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[s]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[E],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[E],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:A,relevance:0,starts:E}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(A,/>/))),contains:[{className:"name",begin:A,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}};const IE=function(e){const t="true false yes no null",A="[\\w#;/?:@&=+$,.~*'()[\\]]+",n={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(n,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),r={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},o=[{className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+A},{className:"type",begin:"!<"+A+">"},{className:"type",begin:"!"+A},{className:"type",begin:"!!"+A},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},{className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},{begin:/\{/,end:/\}/,contains:[r],illegal:"\\n",relevance:0},{begin:"\\[",end:"\\]",contains:[r],illegal:"\\n",relevance:0},n],s=[...o];return s.pop(),s.push(i),r.contains=s,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:o}};function dE(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((t=>{const A=e[t],n=typeof A;"object"!==n&&"function"!==n||Object.isFrozen(A)||dE(A)})),e}class kE{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function GE(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function CE(e,...t){const A=Object.create(null);for(const t in e)A[t]=e[t];return t.forEach((function(e){for(const t in e)A[t]=e[t]})),A}const fE=e=>!!e.scope;class DE{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=GE(e)}openNode(e){if(!fE(e))return;const t=((e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const A=e.split(".");return[`${t}${A.shift()}`,...A.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ")}return`${t}${e}`})(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){fE(e)&&(this.buffer+="")}value(){return this.buffer}span(e){this.buffer+=``}}const FE=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class YE{constructor(){this.rootNode=FE(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=FE({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{YE._collapse(e)})))}}class mE extends YE{constructor(e){super(),this.options=e}addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){const A=e.root;t&&(A.scope=`language:${t}`),this.add(A)}toHTML(){return new DE(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function UE(e){return e?"string"==typeof e?e:e.source:null}function SE(e){return yE("(?=",e,")")}function NE(e){return yE("(?:",e,")*")}function bE(e){return yE("(?:",e,")?")}function yE(...e){return e.map((e=>UE(e))).join("")}function pE(...e){const t=function(e){const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e);return"("+(t.capture?"":"?:")+e.map((e=>UE(e))).join("|")+")"}function TE(e){return new RegExp(e.toString()+"|").exec("").length-1}const HE=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function xE(e,{joinWith:t}){let A=0;return e.map((e=>{A+=1;const t=A;let n=UE(e),i="";for(;n.length>0;){const e=HE.exec(n);if(!e){i+=n;break}i+=n.substring(0,e.index),n=n.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+String(Number(e[1])+t):(i+=e[0],"("===e[0]&&A++)}return i})).map((e=>`(${e})`)).join(t)}const zE="[a-zA-Z]\\w*",JE="[a-zA-Z_]\\w*",jE="\\b\\d+(\\.\\d+)?",ZE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",vE="\\b(0b[01]+)",PE={begin:"\\\\[\\s\\S]",relevance:0},LE={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[PE]},VE={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[PE]},OE=function(e,t,A={}){const n=CE({scope:"comment",begin:e,end:t,contains:[]},A);n.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=pE("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return n.contains.push({begin:yE(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),n},_E=OE("//","$"),KE=OE("/\\*","\\*/"),WE=OE("#","$");var XE=Object.freeze({__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:zE,UNDERSCORE_IDENT_RE:JE,NUMBER_RE:jE,C_NUMBER_RE:ZE,BINARY_NUMBER_RE:vE,RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=yE(t,/.*\b/,e.binary,/\b.*/)),CE({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:PE,APOS_STRING_MODE:LE,QUOTE_STRING_MODE:VE,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},COMMENT:OE,C_LINE_COMMENT_MODE:_E,C_BLOCK_COMMENT_MODE:KE,HASH_COMMENT_MODE:WE,NUMBER_MODE:{scope:"number",begin:jE,relevance:0},C_NUMBER_MODE:{scope:"number",begin:ZE,relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:vE,relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[PE,{begin:/\[/,end:/\]/,relevance:0,contains:[PE]}]}]},TITLE_MODE:{scope:"title",begin:zE,relevance:0},UNDERSCORE_TITLE_MODE:{scope:"title",begin:JE,relevance:0},METHOD_GUARD:{begin:"\\.\\s*"+JE,relevance:0},END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})}});function qE(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function $E(e){void 0!==e.className&&(e.scope=e.className,delete e.className)}function eB(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=qE,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function tB(e){Array.isArray(e.illegal)&&(e.illegal=pE(...e.illegal))}function AB(e){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function nB(e){void 0===e.relevance&&(e.relevance=1)}const iB=e=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]})),e.keywords=t.keywords,e.begin=yE(t.beforeMatch,SE(t.begin)),e.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},e.relevance=0,delete t.beforeMatch},rB=["of","and","for","in","not","or","if","then","parent","list","value"],oB="keyword";function sB(e,t,A=oB){const n=Object.create(null);return"string"==typeof e?i(A,e.split(" ")):Array.isArray(e)?i(A,e):Object.keys(e).forEach((function(A){Object.assign(n,sB(e[A],t,A))})),n;function i(e,A){t&&(A=A.map((e=>e.toLowerCase()))),A.forEach((function(t){const A=t.split("|");n[A[0]]=[e,EB(A[0],A[1])]}))}}function EB(e,t){return t?Number(t):function(e){return rB.includes(e.toLowerCase())}(e)?0:1}const BB={},cB=e=>{console.error(e)},aB=(e,...t)=>{console.log(`WARN: ${e}`,...t)},gB=(e,t)=>{BB[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),BB[`${e}/${t}`]=!0)},lB=new Error;function QB(e,t,{key:A}){let n=0;const i=e[A],r={},o={};for(let e=1;e<=t.length;e++)o[e+n]=i[e],r[e+n]=!0,n+=TE(t[e-1]);e[A]=o,e[A]._emit=r,e[A]._multi=!0}function hB(e){!function(e){e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)}(e),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw cB("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),lB;if("object"!=typeof e.beginScope||null===e.beginScope)throw cB("beginScope must be object"),lB;QB(e,e.begin,{key:"beginScope"}),e.begin=xE(e.begin,{joinWith:""})}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw cB("skip, excludeEnd, returnEnd not compatible with endScope: {}"),lB;if("object"!=typeof e.endScope||null===e.endScope)throw cB("endScope must be object"),lB;QB(e,e.end,{key:"endScope"}),e.end=xE(e.end,{joinWith:""})}}(e)}function uB(e){function t(t,A){return new RegExp(UE(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(A?"g":""))}class A{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=TE(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map((e=>e[1]));this.matcherRe=t(xE(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t)return null;const A=t.findIndex(((e,t)=>t>0&&void 0!==e)),n=this.matchIndexes[A];return t.splice(0,A),Object.assign(t,n)}}class n{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const t=new A;return this.rules.slice(e).forEach((([e,A])=>t.addRule(e,A))),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let A=t.exec(e);if(this.resumingScanAtSamePosition())if(A&&A.index===this.lastIndex);else{const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,A=t.exec(e)}return A&&(this.regexIndex+=A.position+1,this.regexIndex===this.count&&this.considerAll()),A}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=CE(e.classNameAliases||{}),function A(i,r){const o=i;if(i.isCompiled)return o;[$E,AB,hB,iB].forEach((e=>e(i,r))),e.compilerExtensions.forEach((e=>e(i,r))),i.__beforeBegin=null,[eB,tB,nB].forEach((e=>e(i,r))),i.isCompiled=!0;let s=null;return"object"==typeof i.keywords&&i.keywords.$pattern&&(i.keywords=Object.assign({},i.keywords),s=i.keywords.$pattern,delete i.keywords.$pattern),s=s||/\w+/,i.keywords&&(i.keywords=sB(i.keywords,e.case_insensitive)),o.keywordPatternRe=t(s,!0),r&&(i.begin||(i.begin=/\B|\b/),o.beginRe=t(o.begin),i.end||i.endsWithParent||(i.end=/\B|\b/),i.end&&(o.endRe=t(o.end)),o.terminatorEnd=UE(o.end)||"",i.endsWithParent&&r.terminatorEnd&&(o.terminatorEnd+=(i.end?"|":"")+r.terminatorEnd)),i.illegal&&(o.illegalRe=t(i.illegal)),i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map((function(e){return function(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(t){return CE(e,{variants:null},t)}))),e.cachedVariants?e.cachedVariants:wB(e)?CE(e,{starts:e.starts?CE(e.starts):null}):Object.isFrozen(e)?CE(e):e}("self"===e?i:e)}))),i.contains.forEach((function(e){A(e,o)})),i.starts&&A(i.starts,r),o.matcher=function(e){const t=new n;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t}(o),o}(e)}function wB(e){return!!e&&(e.endsWithParent||wB(e.starts))}class MB extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const RB=GE,IB=CE,dB=Symbol("nomatch"),kB=function(e){const t=Object.create(null),A=Object.create(null),n=[];let i=!0;const r="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]};let s={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:mE};function E(e){return s.noHighlightRe.test(e)}function B(e,t,A){let n="",i="";"object"==typeof t?(n=e,A=t.ignoreIllegals,i=t.language):(gB("10.7.0","highlight(lang, code, ...args) has been deprecated."),gB("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),i=e,n=t),void 0===A&&(A=!0);const r={code:n,language:i};M("before:highlight",r);const o=r.result?r.result:c(r.language,r.code,A);return o.code=r.code,M("after:highlight",o),o}function c(e,A,n,o){const E=Object.create(null);function B(){if(!f.keywords)return void F.addText(Y);let e=0;f.keywordPatternRe.lastIndex=0;let t=f.keywordPatternRe.exec(Y),A="";for(;t;){A+=Y.substring(e,t.index);const n=k.case_insensitive?t[0].toLowerCase():t[0],i=f.keywords[n];if(i){const[e,r]=i;F.addText(A),A="",E[n]=(E[n]||0)+1,E[n]<=7&&(m+=r),e.startsWith("_")?A+=t[0]:l(t[0],k.classNameAliases[e]||e)}else A+=t[0];e=f.keywordPatternRe.lastIndex,t=f.keywordPatternRe.exec(Y)}A+=Y.substring(e),F.addText(A)}function g(){null!=f.subLanguage?function(){if(""===Y)return;let e=null;if("string"==typeof f.subLanguage){if(!t[f.subLanguage])return void F.addText(Y);e=c(f.subLanguage,Y,!0,D[f.subLanguage]),D[f.subLanguage]=e._top}else e=a(Y,f.subLanguage.length?f.subLanguage:null);f.relevance>0&&(m+=e.relevance),F.__addSublanguage(e._emitter,e.language)}():B(),Y=""}function l(e,t){""!==e&&(F.startScope(t),F.addText(e),F.endScope())}function Q(e,t){let A=1;const n=t.length-1;for(;A<=n;){if(!e._emit[A]){A++;continue}const n=k.classNameAliases[e[A]]||e[A],i=t[A];n?l(i,n):(Y=i,B(),Y=""),A++}}function u(e,t){return e.scope&&"string"==typeof e.scope&&F.openNode(k.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(l(Y,k.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),Y=""):e.beginScope._multi&&(Q(e.beginScope,t),Y="")),f=Object.create(e,{parent:{value:f}}),f}function w(e,t,A){let n=function(e,t){const A=e&&e.exec(t);return A&&0===A.index}(e.endRe,A);if(n){if(e["on:end"]){const A=new kE(e);e["on:end"](t,A),A.isMatchIgnored&&(n=!1)}if(n){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return w(e.parent,t,A)}function M(e){return 0===f.matcher.regexIndex?(Y+=e[0],1):(N=!0,0)}function R(e){const t=e[0],n=A.substring(e.index),i=w(f,e,n);if(!i)return dB;const r=f;f.endScope&&f.endScope._wrap?(g(),l(t,f.endScope._wrap)):f.endScope&&f.endScope._multi?(g(),Q(f.endScope,e)):r.skip?Y+=t:(r.returnEnd||r.excludeEnd||(Y+=t),g(),r.excludeEnd&&(Y=t));do{f.scope&&F.closeNode(),f.skip||f.subLanguage||(m+=f.relevance),f=f.parent}while(f!==i.parent);return i.starts&&u(i.starts,e),r.returnEnd?0:t.length}let I={};function d(t,r){const o=r&&r[0];if(Y+=t,null==o)return g(),0;if("begin"===I.type&&"end"===r.type&&I.index===r.index&&""===o){if(Y+=A.slice(r.index,r.index+1),!i){const t=new Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=I.rule,t}return 1}if(I=r,"begin"===r.type)return function(e){const t=e[0],A=e.rule,n=new kE(A),i=[A.__beforeBegin,A["on:begin"]];for(const A of i)if(A&&(A(e,n),n.isMatchIgnored))return M(t);return A.skip?Y+=t:(A.excludeBegin&&(Y+=t),g(),A.returnBegin||A.excludeBegin||(Y=t)),u(A,e),A.returnBegin?0:t.length}(r);if("illegal"===r.type&&!n){const e=new Error('Illegal lexeme "'+o+'" for mode "'+(f.scope||"")+'"');throw e.mode=f,e}if("end"===r.type){const e=R(r);if(e!==dB)return e}if("illegal"===r.type&&""===o)return 1;if(S>1e5&&S>3*r.index)throw new Error("potential infinite loop, way more iterations than matches");return Y+=o,o.length}const k=h(e);if(!k)throw cB(r.replace("{}",e)),new Error('Unknown language: "'+e+'"');const G=uB(k);let C="",f=o||G;const D={},F=new s.__emitter(s);!function(){const e=[];for(let t=f;t!==k;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach((e=>F.openNode(e)))}();let Y="",m=0,U=0,S=0,N=!1;try{if(k.__emitTokens)k.__emitTokens(A,F);else{for(f.matcher.considerAll();;){S++,N?N=!1:f.matcher.considerAll(),f.matcher.lastIndex=U;const e=f.matcher.exec(A);if(!e)break;const t=d(A.substring(U,e.index),e);U=e.index+t}d(A.substring(U))}return F.finalize(),C=F.toHTML(),{language:e,value:C,relevance:m,illegal:!1,_emitter:F,_top:f}}catch(t){if(t.message&&t.message.includes("Illegal"))return{language:e,value:RB(A),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:U,context:A.slice(U-100,U+100),mode:t.mode,resultSoFar:C},_emitter:F};if(i)return{language:e,value:RB(A),illegal:!1,relevance:0,errorRaised:t,_emitter:F,_top:f};throw t}}function a(e,A){A=A||s.languages||Object.keys(t);const n=function(e){const t={value:RB(e),illegal:!1,relevance:0,_top:o,_emitter:new s.__emitter(s)};return t._emitter.addText(e),t}(e),i=A.filter(h).filter(w).map((t=>c(t,e,!1)));i.unshift(n);const r=i.sort(((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(h(e.language).supersetOf===t.language)return 1;if(h(t.language).supersetOf===e.language)return-1}return 0})),[E,B]=r,a=E;return a.secondBest=B,a}function g(e){let t=null;const n=function(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";const A=s.languageDetectRe.exec(t);if(A){const t=h(A[1]);return t||(aB(r.replace("{}",A[1])),aB("Falling back to no-highlight mode for this block.",e)),t?A[1]:"no-highlight"}return t.split(/\s+/).find((e=>E(e)||h(e)))}(e);if(E(n))return;if(M("before:highlightElement",{el:e,language:n}),e.children.length>0&&(s.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),s.throwUnescapedHTML))throw new MB("One of your code blocks includes unescaped HTML.",e.innerHTML);t=e;const i=t.textContent,o=n?B(i,{language:n,ignoreIllegals:!0}):a(i);e.innerHTML=o.value,function(e,t,n){const i=t&&A[t]||n;e.classList.add("hljs"),e.classList.add(`language-${i}`)}(e,n,o.language),e.result={language:o.language,re:o.relevance,relevance:o.relevance},o.secondBest&&(e.secondBest={language:o.secondBest.language,relevance:o.secondBest.relevance}),M("after:highlightElement",{el:e,result:o,text:i})}let l=!1;function Q(){"loading"!==document.readyState?document.querySelectorAll(s.cssSelector).forEach(g):l=!0}function h(e){return e=(e||"").toLowerCase(),t[e]||t[A[e]]}function u(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{A[e.toLowerCase()]=t}))}function w(e){const t=h(e);return t&&!t.disableAutodetect}function M(e,t){const A=e;n.forEach((function(e){e[A]&&e[A](t)}))}"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(function(){l&&Q()}),!1),Object.assign(e,{highlight:B,highlightAuto:a,highlightAll:Q,highlightElement:g,highlightBlock:function(e){return gB("10.7.0","highlightBlock will be removed entirely in v12.0"),gB("10.7.0","Please use highlightElement now."),g(e)},configure:function(e){s=IB(s,e)},initHighlighting:()=>{Q(),gB("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){Q(),gB("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(A,n){let r=null;try{r=n(e)}catch(e){if(cB("Language definition for '{}' could not be registered.".replace("{}",A)),!i)throw e;cB(e),r=o}r.name||(r.name=A),t[A]=r,r.rawDefinition=n.bind(null,e),r.aliases&&u(r.aliases,{languageName:A})},unregisterLanguage:function(e){delete t[e];for(const t of Object.keys(A))A[t]===e&&delete A[t]},listLanguages:function(){return Object.keys(t)},getLanguage:h,registerAliases:u,autoDetection:w,inherit:IB,addPlugin:function(e){!function(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{e["before:highlightBlock"](Object.assign({block:t.el},t))}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{e["after:highlightBlock"](Object.assign({block:t.el},t))})}(e),n.push(e)},removePlugin:function(e){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString="11.8.0",e.regex={concat:yE,lookahead:SE,either:pE,optional:bE,anyNumberOfTimes:NE};for(const e in XE)"object"==typeof XE[e]&&dE(XE[e]);return Object.assign(e,XE),e},GB=kB({});GB.newInstance=()=>kB({});var CB=GB;GB.HighlightJS=GB,GB.default=GB;const fB=CB;var DB,FB={exports:{}};DB=FB,function(){var e;function t(e){for(var t,A,n,i,r=1,o=[].slice.call(arguments),s=0,E=e.length,B="",c=!1,a=!1,g=function(){return o[r++]},l=function(){for(var A="";/\d/.test(e[s]);)A+=e[s++],t=e[s];return A.length>0?parseInt(A):null};st?e+"_".repeat(t):this.options.classPrefix+e))},children:[]};this.stack[this.stack.length-1].children.push(t),this.stack.push(t)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const yB={highlight:NB,highlightAuto:function(e,t={}){const A=t.subset||fB.listLanguages();let n=-1,i={type:"root",data:{language:null,relevance:0},children:[]};if("string"!=typeof e)throw mB("Expected `string` for value, got `%s`",e);for(;++ni.data.relevance&&(i=o)}return i},registerLanguage:function(e,t){fB.registerLanguage(e,t)},registered:function(e){return Boolean(fB.getLanguage(e))},listLanguages:function(){return fB.listLanguages()},registerAlias:function(e,t){if("string"==typeof e)fB.registerAliases(t,{languageName:e});else{let t;for(t in e)SB.call(e,t)&&fB.registerAliases(e[t],{languageName:t})}}};yB.registerLanguage("arduino",Ho),yB.registerLanguage("bash",(function(e){const t={},A={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{className:"variable",variants:[{begin:e.regex.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},A]});const n={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},i={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},r={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t,n]};n.contains.push(r);const o={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]},s=e.SHEBANG({binary:`(${["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"].join("|")})`,relevance:10}),E={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"],literal:["true","false"],built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]},contains:[s,e.SHEBANG(),E,o,e.HASH_COMMENT_MODE,i,{match:/(\/[a-z._-]+)+/},r,{className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},t]}})),yB.registerLanguage("c",xo),yB.registerLanguage("cpp",zo),yB.registerLanguage("csharp",Jo),yB.registerLanguage("css",Vo),yB.registerLanguage("diff",Oo),yB.registerLanguage("go",_o),yB.registerLanguage("graphql",Ko),yB.registerLanguage("ini",Wo),yB.registerLanguage("java",As),yB.registerLanguage("javascript",as),yB.registerLanguage("json",gs),yB.registerLanguage("kotlin",ws),yB.registerLanguage("less",Cs),yB.registerLanguage("lua",(function(e){const t="\\[=*\\[",A="\\]=*\\]",n={begin:t,end:A,contains:["self"]},i=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,A,{contains:[n],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:i}].concat(i)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:A,contains:[n],relevance:5}])}})),yB.registerLanguage("makefile",(function(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+A.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:A,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}})),yB.registerLanguage("perl",Ds),yB.registerLanguage("php",Fs),yB.registerLanguage("php-template",(function(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}})),yB.registerLanguage("plaintext",(function(){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}})),yB.registerLanguage("python",Ys),yB.registerLanguage("python-repl",(function(){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}})),yB.registerLanguage("r",ms),yB.registerLanguage("ruby",Us),yB.registerLanguage("rust",Ss),yB.registerLanguage("scss",Hs),yB.registerLanguage("shell",(function(){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}})),yB.registerLanguage("sql",xs),yB.registerLanguage("swift",sE),yB.registerLanguage("typescript",wE),yB.registerLanguage("vbnet",ME),yB.registerLanguage("wasm",(function(e){const t=e.COMMENT(/\(;/,/;\)/);return t.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"]},contains:[e.COMMENT(/;;/,/$/),t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},{className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/},{className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/}]}})),yB.registerLanguage("xml",RE),yB.registerLanguage("yaml",IE);const pB=Object.freeze({__proto__:null,lowlight:yB}),TB="aaa1rp3barth4b0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0faromeo7ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4vianca6w0s2x0a2z0ure5ba0by2idu3namex3narepublic11d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2ntley5rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re2s2c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y0eats7k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0cast4mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking0channel11l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dabur3d1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t0isalat7u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0at2delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d0network8tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntdoor4ier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0ardian6cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5gtv3iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0eles2s3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6logistics9properties14fh2g1h1i0a1ds2m1nder2le4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3ncaster5ia3d0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4de2k2psy3ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0cys3drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7serati6ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic3tual5v1w1x1y1z2na0b1goya4me2tura4vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rthwesternmutual14on4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9dnavy5lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3ssagens7y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0america6xi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cher3ks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0a1b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp2w2ell3ia1ksha5oes2p0ping5uji3w0time7i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ffany5ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0channel7ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lkswagen7vo3te1ing3o2yage5u0elos6wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4finity6ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2",HB="ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5تصالات6رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2",xB=(e,t)=>{for(const A in t)e[A]=t[A];return e},zB="numeric",JB="ascii",jB="alpha",ZB="asciinumeric",vB="alphanumeric",PB="domain",LB="emoji",VB="scheme",OB="slashscheme",_B="whitespace";function KB(e,t){return e in t||(t[e]=[]),t[e]}function WB(e,t,A){t[zB]&&(t[ZB]=!0,t[vB]=!0),t[JB]&&(t[ZB]=!0,t[jB]=!0),t[ZB]&&(t[vB]=!0),t[jB]&&(t[vB]=!0),t[vB]&&(t[PB]=!0),t[LB]&&(t[PB]=!0);for(const n in t){const t=KB(n,A);t.indexOf(e)<0&&t.push(e)}}function XB(e){void 0===e&&(e=null),this.j={},this.jr=[],this.jd=null,this.t=e}XB.groups={},XB.prototype={accepts(){return!!this.t},go(e){const t=this,A=t.j[e];if(A)return A;for(let A=0;A=0&&(A[n]=!0);return A}(o.t,n),A);WB(r,e,n)}else A&&WB(r,A,n);o.t=r}return i.j[e]=o,o}};const qB=(e,t,A,n,i)=>e.ta(t,A,n,i),$B=(e,t,A,n,i)=>e.tr(t,A,n,i),ec=(e,t,A,n,i)=>e.ts(t,A,n,i),tc=(e,t,A,n,i)=>e.tt(t,A,n,i),Ac="WORD",nc="UWORD",ic="LOCALHOST",rc="TLD",oc="UTLD",sc="SCHEME",Ec="SLASH_SCHEME",Bc="NUM",cc="WS",ac="NL",gc="OPENBRACE",lc="OPENBRACKET",Qc="OPENANGLEBRACKET",hc="OPENPAREN",uc="CLOSEBRACE",wc="CLOSEBRACKET",Mc="CLOSEANGLEBRACKET",Rc="CLOSEPAREN",Ic="AMPERSAND",dc="APOSTROPHE",kc="ASTERISK",Gc="AT",Cc="BACKSLASH",fc="BACKTICK",Dc="CARET",Fc="COLON",Yc="COMMA",mc="DOLLAR",Uc="DOT",Sc="EQUALS",Nc="EXCLAMATION",bc="HYPHEN",yc="PERCENT",pc="PIPE",Tc="PLUS",Hc="POUND",xc="QUERY",zc="QUOTE",Jc="SEMI",jc="SLASH",Zc="TILDE",vc="UNDERSCORE",Pc="EMOJI",Lc="SYM";var Vc=Object.freeze({__proto__:null,WORD:Ac,UWORD:nc,LOCALHOST:ic,TLD:rc,UTLD:oc,SCHEME:sc,SLASH_SCHEME:Ec,NUM:Bc,WS:cc,NL:ac,OPENBRACE:gc,OPENBRACKET:lc,OPENANGLEBRACKET:Qc,OPENPAREN:hc,CLOSEBRACE:uc,CLOSEBRACKET:wc,CLOSEANGLEBRACKET:Mc,CLOSEPAREN:Rc,AMPERSAND:Ic,APOSTROPHE:dc,ASTERISK:kc,AT:Gc,BACKSLASH:Cc,BACKTICK:fc,CARET:Dc,COLON:Fc,COMMA:Yc,DOLLAR:mc,DOT:Uc,EQUALS:Sc,EXCLAMATION:Nc,HYPHEN:bc,PERCENT:yc,PIPE:pc,PLUS:Tc,POUND:Hc,QUERY:xc,QUOTE:zc,SEMI:Jc,SLASH:jc,TILDE:Zc,UNDERSCORE:vc,EMOJI:Pc,SYM:Lc});const Oc=/[a-z]/,_c=/\p{L}/u,Kc=/\p{Emoji}/u,Wc=/\d/,Xc=/\s/,qc="\n",$c="️",ea="‍";let ta=null,Aa=null;function na(e,t,A,n,i){let r;const o=t.length;for(let A=0;A=0;)i++;if(i>0){t.push(A.join(""));for(let t=parseInt(e.substring(n,n+i),10);t>0;t--)A.pop();n+=i}else A.push(e[n]),n++}return t}const ra={defaultProtocol:"http",events:null,format:sa,formatHref:sa,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function oa(e,t){void 0===t&&(t=null);let A=xB({},ra);e&&(A=xB(A,e instanceof oa?e.o:e));const n=A.ignoreTags,i=[];for(let e=0;ee,check(e){return this.get("validate",e.toString(),e)},get(e,t,A){const n=null!=t;let i=this.o[e];return i?("object"==typeof i?(i=A.t in i?i[A.t]:ra[e],"function"==typeof i&&n&&(i=i(t,A))):"function"==typeof i&&n&&(i=i(t,A.t,A)),i):i},getObj(e,t,A){let n=this.o[e];return"function"==typeof n&&null!=t&&(n=n(t,A.t,A)),n},render(e){const t=e.render(this);return(this.get("render",null,e)||this.defaultRender)(t,e.t,e)}},Ea.prototype={isLink:!1,toString(){return this.v},toHref(e){return this.toString()},toFormattedString(e){const t=this.toString(),A=e.get("truncate",t,this),n=e.get("format",t,this);return A&&n.length>A?n.substring(0,A)+"…":n},toFormattedHref(e){return e.get("formatHref",this.toHref(e.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(e){return void 0===e&&(e=ra.defaultProtocol),{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(e),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(e){return{type:this.t,value:this.toFormattedString(e),isLink:this.isLink,href:this.toFormattedHref(e),start:this.startIndex(),end:this.endIndex()}},validate(e){return e.get("validate",this.toString(),this)},render(e){const t=this,A=this.toHref(e.get("defaultProtocol")),n=e.get("formatHref",A,this),i=e.get("tagName",A,t),r=this.toFormattedString(e),o={},s=e.get("className",A,t),E=e.get("target",A,t),B=e.get("rel",A,t),c=e.getObj("attributes",A,t),a=e.getObj("events",A,t);return o.href=n,s&&(o.class=s),E&&(o.target=E),B&&(o.rel=B),c&&xB(o,c),{tagName:i,attributes:o,content:r,eventListeners:a}}};const ca=Ba("email",{isLink:!0,toHref(){return"mailto:"+this.toString()}}),aa=Ba("text"),ga=Ba("nl"),la=Ba("url",{isLink:!0,toHref(e){return void 0===e&&(e=ra.defaultProtocol),this.hasProtocol()?this.v:`${e}://${this.v}`},hasProtocol(){const e=this.tk;return e.length>=2&&e[0].t!==ic&&e[1].t===Fc}}),Qa=e=>new XB(e);function ha(e,t,A){return new e(t.slice(A[0].s,A[A.length-1].e),A)}const ua="undefined"!=typeof console&&console&&console.warn||(()=>{}),wa={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function Ma(e,t){if(void 0===t&&(t=!1),wa.initialized&&ua(`linkifyjs: already initialized - will not register custom scheme "${e}" until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.`),!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(e))throw new Error('linkifyjs: incorrect scheme format.\n 1. Must only contain digits, lowercase ASCII letters or "-"\n 2. Cannot start or end with "-"\n 3. "-" cannot repeat');wa.customSchemes.push([e,t])}function Ra(e){return wa.initialized||function(){wa.scanner=function(e){void 0===e&&(e=[]);const t={};XB.groups=t;const A=new XB;null==ta&&(ta=ia(TB)),null==Aa&&(Aa=ia(HB)),tc(A,"'",dc),tc(A,"{",gc),tc(A,"[",lc),tc(A,"<",Qc),tc(A,"(",hc),tc(A,"}",uc),tc(A,"]",wc),tc(A,">",Mc),tc(A,")",Rc),tc(A,"&",Ic),tc(A,"*",kc),tc(A,"@",Gc),tc(A,"`",fc),tc(A,"^",Dc),tc(A,":",Fc),tc(A,",",Yc),tc(A,"$",mc),tc(A,".",Uc),tc(A,"=",Sc),tc(A,"!",Nc),tc(A,"-",bc),tc(A,"%",yc),tc(A,"|",pc),tc(A,"+",Tc),tc(A,"#",Hc),tc(A,"?",xc),tc(A,'"',zc),tc(A,"/",jc),tc(A,";",Jc),tc(A,"~",Zc),tc(A,"_",vc),tc(A,"\\",Cc);const n=$B(A,Wc,Bc,{[zB]:!0});$B(n,Wc,n);const i=$B(A,Oc,Ac,{[JB]:!0});$B(i,Oc,i);const r=$B(A,_c,nc,{[jB]:!0});$B(r,Oc),$B(r,_c,r);const o=$B(A,Xc,cc,{[_B]:!0});tc(A,qc,ac,{[_B]:!0}),tc(o,qc),$B(o,Xc,o);const s=$B(A,Kc,Pc,{[LB]:!0});$B(s,Kc,s),tc(s,$c,s);const E=tc(s,ea);$B(E,Kc,s);const B=[[Oc,i]],c=[[Oc,null],[_c,r]];for(let e=0;ee[0]>t[0]?1:-1));for(let t=0;t=0?i[PB]=!0:Oc.test(n)?Wc.test(n)?i[ZB]=!0:i[JB]=!0:i[zB]=!0,ec(A,n,n,i)}return ec(A,"localhost",ic,{ascii:!0}),A.jd=new XB(Lc),{start:A,tokens:xB({groups:t},Vc)}}(wa.customSchemes);for(let e=0;e=0&&g++,i++,c++;if(g<0)i-=c,i0&&(r.push(ha(aa,t,o)),o=[]),i-=g,c-=g;const e=a.t,n=A.slice(i-c,i);r.push(ha(e,t,n))}}return o.length>0&&r.push(ha(aa,t,o)),r}(wa.parser.start,e,function(e,t){const A=function(e){const t=[],A=e.length;let n=0;for(;n56319||n+1===A||(i=e.charCodeAt(n+1))<56320||i>57343?e[n]:e.slice(n,n+2);t.push(o),n+=o.length}return t}(t.replace(/[A-Z]/g,(e=>e.toLowerCase()))),n=A.length,i=[];let r=0,o=0;for(;o=0&&(a+=A[o].length,g++),B+=A[o].length,r+=A[o].length,o++;r-=a,o-=g,B-=a,i.push({t:c.t,v:t.slice(r-B,r),s:r-B,e:r})}return i}(wa.scanner.start,e))}function Ia(e,t,A){if(void 0===t&&(t=null),void 0===A&&(A=null),t&&"object"==typeof t){if(A)throw Error(`linkifyjs: Invalid link type ${t}; must be a string`);A=t,t=null}const n=new oa(A),i=Ra(e),r=[];for(let e=0;e{"string"!=typeof e?Ma(e.scheme,e.optionalSlashes):Ma(e)}))},onDestroy(){XB.groups={},wa.scanner=null,wa.parser=null,wa.tokenQueue=[],wa.pluginQueue=[],wa.customSchemes=[],wa.initialized=!1},inclusive(){return this.options.autolink},addOptions:()=>({openOnClick:!0,linkOnPaste:!0,autolink:!0,protocols:[],HTMLAttributes:{target:"_blank",rel:"noopener noreferrer nofollow",class:null},validate:void 0}),addAttributes(){return{href:{default:null},target:{default:this.options.HTMLAttributes.target},rel:{default:this.options.HTMLAttributes.rel},class:{default:this.options.HTMLAttributes.class}}},parseHTML:()=>[{tag:'a[href]:not([href *= "javascript:" i])'}],renderHTML({HTMLAttributes:e}){var t;return(null===(t=e.href)||void 0===t?void 0:t.startsWith("javascript:"))?["a",l(this.options.HTMLAttributes,{...e,href:""}),0]:["a",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setLink:e=>({chain:t})=>t().setMark(this.name,e).setMeta("preventAutolink",!0).run(),toggleLink:e=>({chain:t})=>t().toggleMark(this.name,e,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run(),unsetLink:()=>({chain:e})=>e().unsetMark(this.name,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run()}},addPasteRules(){return[w({find:e=>{const t=[];if(e){const A=Ia(e).filter((e=>e.isLink));A.length&&A.forEach((e=>t.push({text:e.value,data:{href:e.href},index:e.start})))}return t},type:this.type,getAttributes:e=>{var t;return{href:null===(t=e.data)||void 0===t?void 0:t.href}}})]},addProseMirrorPlugins(){const e=[];return this.options.autolink&&e.push((t={type:this.type,validate:this.options.validate},new r({key:new o("autolink"),appendTransaction:(e,A,n)=>{const i=e.some((e=>e.docChanged))&&!A.doc.eq(n.doc),r=e.some((e=>e.getMeta("preventAutolink")));if(!i||r)return;const{tr:o}=n,s=F(A.doc,[...e]);return Y(s).forEach((({newRange:e})=>{const A=m(n.doc,e,(e=>e.isTextblock));let i,r;if(A.length>1?(i=A[0],r=n.doc.textBetween(i.pos,i.pos+i.node.nodeSize,void 0," ")):A.length&&n.doc.textBetween(e.from,e.to," "," ").endsWith(" ")&&(i=A[0],r=n.doc.textBetween(i.pos,e.to,void 0," ")),i&&r){const e=r.split(" ").filter((e=>""!==e));if(e.length<=0)return!1;const A=e[e.length-1],E=i.pos+r.lastIndexOf(A);if(!A)return!1;const B=Ra(A).map((e=>e.toObject()));if(!(1===(s=B).length?s[0].isLink:3===s.length&&s[1].isLink&&["()","[]"].includes(s[0].value+s[2].value)))return!1;B.filter((e=>e.isLink)).map((e=>({...e,from:E+e.start+1,to:E+e.end+1}))).filter((e=>!n.schema.marks.code||!n.doc.rangeHasMark(e.from,e.to,n.schema.marks.code))).filter((e=>!t.validate||t.validate(e.value))).forEach((e=>{U(e.from,e.to,n.doc).some((e=>e.mark.type===t.type))||o.addMark(e.from,e.to,t.type.create({href:e.href}))}))}var s})),o.steps.length?o:void 0}}))),this.options.openOnClick&&e.push(function(e){return new r({key:new o("handleClickLink"),props:{handleClick:(t,A,n)=>{var i,r;if(e.whenNotEditable&&t.editable)return!1;if(0!==n.button)return!1;let o=n.target;const s=[];for(;"DIV"!==o.nodeName;)s.push(o),o=o.parentNode;if(!s.find((e=>"A"===e.nodeName)))return!1;const E=S(t.state,e.type.name),B=n.target,c=null!==(i=null==B?void 0:B.href)&&void 0!==i?i:E.href,a=null!==(r=null==B?void 0:B.target)&&void 0!==r?r:E.target;return!(!B||!c||(window.open(c,a),0))}}})}({type:this.type,whenNotEditable:"whenNotEditable"===this.options.openOnClick})),this.options.linkOnPaste&&e.push(function(e){return new r({key:new o("handlePasteLink"),props:{handlePaste:(t,A,n)=>{const{state:i}=t,{selection:r}=i,{empty:o}=r;if(o)return!1;let s="";n.content.forEach((e=>{s+=e.textContent}));const E=Ia(s).find((e=>e.isLink&&e.value===s));return!(!s||!E||(e.editor.commands.setMark(e.type,{href:E.href}),0))}}})}({editor:this.editor,type:this.type})),e;var t}}),ka=g.create({name:"superscript",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"sup"},{style:"vertical-align",getAttrs:e=>"super"===e&&null}],renderHTML({HTMLAttributes:e}){return["sup",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setSuperscript:()=>({commands:e})=>e.setMark(this.name),toggleSuperscript:()=>({commands:e})=>e.toggleMark(this.name),unsetSuperscript:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-.":()=>this.editor.commands.toggleSuperscript()}}}),Ga=g.create({name:"subscript",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"sub"},{style:"vertical-align",getAttrs:e=>"sub"===e&&null}],renderHTML({HTMLAttributes:e}){return["sub",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setSubscript:()=>({commands:e})=>e.setMark(this.name),toggleSubscript:()=>({commands:e})=>e.toggleMark(this.name),unsetSubscript:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-,":()=>this.editor.commands.toggleSubscript()}}}),Ca=s.create({name:"textAlign",addOptions:()=>({types:[],alignments:["left","center","right","justify"],defaultAlignment:"left"}),addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:e=>e.style.textAlign||this.options.defaultAlignment,renderHTML:e=>e.textAlign===this.options.defaultAlignment?{}:{style:`text-align: ${e.textAlign}`}}}}]},addCommands(){return{setTextAlign:e=>({commands:t})=>!!this.options.alignments.includes(e)&&this.options.types.every((A=>t.updateAttributes(A,{textAlign:e}))),unsetTextAlign:()=>({commands:e})=>this.options.types.every((t=>e.resetAttributes(t,"textAlign")))}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign("left"),"Mod-Shift-e":()=>this.editor.commands.setTextAlign("center"),"Mod-Shift-r":()=>this.editor.commands.setTextAlign("right"),"Mod-Shift-j":()=>this.editor.commands.setTextAlign("justify")}}}),fa=s.create({name:"placeholder",addOptions:()=>({emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",placeholder:"Write something …",showOnlyWhenEditable:!0,considerAnyAsEmpty:!1,showOnlyCurrent:!0,includeChildren:!1}),addProseMirrorPlugins(){return[new r({key:new o("placeholder"),props:{decorations:({doc:e,selection:t})=>{var A;const n=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:i}=t,r=[];if(!n)return null;const{firstChild:o}=e.content,s=!!this.options.considerAnyAsEmpty||o&&o.type.name===(null===(A=e.type.contentMatch.defaultType)||void 0===A?void 0:A.name),E=e.content.childCount<=1&&o&&s&&o.nodeSize<=2&&(!(o&&o.type.isLeaf)||!(o&&o.isAtom));return e.descendants(((e,t)=>{const A=i>=t&&i<=t+e.nodeSize;if((A||!this.options.showOnlyCurrent)&&!e.isLeaf&&!e.childCount){const n=[this.options.emptyNodeClass];E&&n.push(this.options.emptyEditorClass);const i=D.node(t,t+e.nodeSize,{class:n.join(" "),"data-placeholder":"function"==typeof this.options.placeholder?this.options.placeholder({editor:this.editor,node:e,pos:t,hasAnchor:A}):this.options.placeholder});r.push(i)}return this.options.includeChildren})),C.create(e,r)}}})]}}),Da=g.create({name:"underline",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:e=>!!e.includes("underline")&&{}}],renderHTML({HTMLAttributes:e}){return["u",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setUnderline:()=>({commands:e})=>e.setMark(this.name),toggleUnderline:()=>({commands:e})=>e.toggleMark(this.name),unsetUnderline:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),Fa=s.create({name:"color",addOptions:()=>({types:["textStyle"]}),addGlobalAttributes(){return[{types:this.options.types,attributes:{color:{default:null,parseHTML:e=>{var t;return null===(t=e.style.color)||void 0===t?void 0:t.replace(/['"]+/g,"")},renderHTML:e=>e.color?{style:`color: ${e.color}`}:{}}}}]},addCommands:()=>({setColor:e=>({chain:t})=>t().setMark("textStyle",{color:e}).run(),unsetColor:()=>({chain:e})=>e().setMark("textStyle",{color:null}).removeEmptyTextStyle().run()})}),Ya=s.create({name:"fontFamily",addOptions:()=>({types:["textStyle"]}),addGlobalAttributes(){return[{types:this.options.types,attributes:{fontFamily:{default:null,parseHTML:e=>{var t;return null===(t=e.style.fontFamily)||void 0===t?void 0:t.replace(/['"]+/g,"")},renderHTML:e=>e.fontFamily?{style:`font-family: ${e.fontFamily.split(",").map((e=>CSS.escape(e.trim()))).join(", ")}`}:{}}}}]},addCommands:()=>({setFontFamily:e=>({chain:t})=>t().setMark("textStyle",{fontFamily:e}).run(),unsetFontFamily:()=>({chain:e})=>e().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run()})}),ma=/^\s*>\s$/,Ua=R.create({name:"blockquote",addOptions:()=>({HTMLAttributes:{}}),content:"block+",group:"block",defining:!0,parseHTML:()=>[{tag:"blockquote"}],renderHTML({HTMLAttributes:e}){return["blockquote",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setBlockquote:()=>({commands:e})=>e.wrapIn(this.name),toggleBlockquote:()=>({commands:e})=>e.toggleWrap(this.name),unsetBlockquote:()=>({commands:e})=>e.lift(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-b":()=>this.editor.commands.toggleBlockquote()}},addInputRules(){return[I({find:ma,type:this.type})]}}),Sa=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/,Na=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g,ba=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/,ya=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g,pa=g.create({name:"bold",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"strong"},{tag:"b",getAttrs:e=>"normal"!==e.style.fontWeight&&null},{style:"font-weight",getAttrs:e=>/^(bold(er)?|[5-9]\d{2,})$/.test(e)&&null}],renderHTML({HTMLAttributes:e}){return["strong",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setBold:()=>({commands:e})=>e.setMark(this.name),toggleBold:()=>({commands:e})=>e.toggleMark(this.name),unsetBold:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-b":()=>this.editor.commands.toggleBold(),"Mod-B":()=>this.editor.commands.toggleBold()}},addInputRules(){return[u({find:Sa,type:this.type}),u({find:ba,type:this.type})]},addPasteRules(){return[w({find:Na,type:this.type}),w({find:ya,type:this.type})]}}),Ta=R.create({name:"listItem",addOptions:()=>({HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}),content:"paragraph block*",defining:!0,parseHTML:()=>[{tag:"li"}],renderHTML({HTMLAttributes:e}){return["li",l(this.options.HTMLAttributes,e),0]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),Ha=g.create({name:"textStyle",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"span",getAttrs:e=>!!e.hasAttribute("style")&&{}}],renderHTML({HTMLAttributes:e}){return["span",l(this.options.HTMLAttributes,e),0]},addCommands(){return{removeEmptyTextStyle:()=>({state:e,commands:t})=>{const A=Q(e,this.type),n=Object.entries(A).some((([,e])=>!!e));return!!n||t.unsetMark(this.name)}}}}),xa=/^\s*([-+*])\s$/,za=R.create({name:"bulletList",addOptions:()=>({itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}),group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML:()=>[{tag:"ul"}],renderHTML({HTMLAttributes:e}){return["ul",l(this.options.HTMLAttributes,e),0]},addCommands(){return{toggleBulletList:()=>({commands:e,chain:t})=>this.options.keepAttributes?t().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(Ta.name,this.editor.getAttributes(Ha.name)).run():e.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-8":()=>this.editor.commands.toggleBulletList()}},addInputRules(){let e=I({find:xa,type:this.type});return(this.options.keepMarks||this.options.keepAttributes)&&(e=I({find:xa,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:()=>this.editor.getAttributes(Ha.name),editor:this.editor})),[e]}}),Ja=/(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))$/,ja=/(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))/g,Za=g.create({name:"code",addOptions:()=>({HTMLAttributes:{}}),excludes:"_",code:!0,exitable:!0,parseHTML:()=>[{tag:"code"}],renderHTML({HTMLAttributes:e}){return["code",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setCode:()=>({commands:e})=>e.setMark(this.name),toggleCode:()=>({commands:e})=>e.toggleMark(this.name),unsetCode:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-e":()=>this.editor.commands.toggleCode()}},addInputRules(){return[u({find:Ja,type:this.type})]},addPasteRules(){return[w({find:ja,type:this.type})]}}),va=R.create({name:"doc",topNode:!0,content:"block+"});function Pa(e={}){return new r({view:t=>new La(t,e)})}class La{constructor(e,t){var A;this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=null!==(A=t.width)&&void 0!==A?A:1,this.color=!1===t.color?void 0:t.color||"black",this.class=t.class,this.handlers=["dragover","dragend","drop","dragleave"].map((t=>{let A=e=>{this[t](e)};return e.dom.addEventListener(t,A),{name:t,handler:A}}))}destroy(){this.handlers.forEach((({name:e,handler:t})=>this.editorView.dom.removeEventListener(e,t)))}update(e,t){null!=this.cursorPos&&t.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,null==e?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e,t=this.editorView.state.doc.resolve(this.cursorPos),A=!t.parent.inlineContent;if(A){let A=t.nodeBefore,n=t.nodeAfter;if(A||n){let t=this.editorView.nodeDOM(this.cursorPos-(A?A.nodeSize:0));if(t){let i=t.getBoundingClientRect(),r=A?i.bottom:i.top;A&&n&&(r=(r+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2),e={left:i.left,right:i.right,top:r-this.width/2,bottom:r+this.width/2}}}}if(!e){let t=this.editorView.coordsAtPos(this.cursorPos);e={left:t.left-this.width/2,right:t.left+this.width/2,top:t.top,bottom:t.bottom}}let n,i,r=this.editorView.dom.offsetParent;if(this.element||(this.element=r.appendChild(document.createElement("div")),this.class&&(this.element.className=this.class),this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none;",this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle("prosemirror-dropcursor-block",A),this.element.classList.toggle("prosemirror-dropcursor-inline",!A),!r||r==document.body&&"static"==getComputedStyle(r).position)n=-pageXOffset,i=-pageYOffset;else{let e=r.getBoundingClientRect();n=e.left-r.scrollLeft,i=e.top-r.scrollTop}this.element.style.left=e.left-n+"px",this.element.style.top=e.top-i+"px",this.element.style.width=e.right-e.left+"px",this.element.style.height=e.bottom-e.top+"px"}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout((()=>this.setCursor(null)),e)}dragover(e){if(!this.editorView.editable)return;let t=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),A=t&&t.inside>=0&&this.editorView.state.doc.nodeAt(t.inside),n=A&&A.type.spec.disableDropCursor,i="function"==typeof n?n(this.editorView,t,e):n;if(t&&!i){let e=t.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let t=N(this.editorView.state.doc,e,this.editorView.dragging.slice);null!=t&&(e=t)}this.setCursor(e),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){e.target!=this.editorView.dom&&this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}}const Va=s.create({name:"dropCursor",addOptions:()=>({color:"currentColor",width:1,class:void 0}),addProseMirrorPlugins(){return[Pa(this.options)]}});class Oa extends b{constructor(e){super(e,e)}map(e,t){let A=e.resolve(t.map(this.head));return Oa.valid(A)?new Oa(A):b.near(A)}content(){return y.empty}eq(e){return e instanceof Oa&&e.head==this.head}toJSON(){return{type:"gapcursor",pos:this.head}}static fromJSON(e,t){if("number"!=typeof t.pos)throw new RangeError("Invalid input for GapCursor.fromJSON");return new Oa(e.resolve(t.pos))}getBookmark(){return new _a(this.anchor)}static valid(e){let t=e.parent;if(t.isTextblock||!function(e){for(let t=e.depth;t>=0;t--){let A=e.index(t),n=e.node(t);if(0!=A)for(let e=n.child(A-1);;e=e.lastChild){if(0==e.childCount&&!e.inlineContent||e.isAtom||e.type.spec.isolating)return!0;if(e.inlineContent)return!1}else if(n.type.spec.isolating)return!0}return!0}(e)||!function(e){for(let t=e.depth;t>=0;t--){let A=e.indexAfter(t),n=e.node(t);if(A!=n.childCount)for(let e=n.child(A);;e=e.firstChild){if(0==e.childCount&&!e.inlineContent||e.isAtom||e.type.spec.isolating)return!0;if(e.inlineContent)return!1}else if(n.type.spec.isolating)return!0}return!0}(e))return!1;let A=t.type.spec.allowGapCursor;if(null!=A)return A;let n=t.contentMatchAt(e.index()).defaultType;return n&&n.isTextblock}static findGapCursorFrom(e,t,A=!1){e:for(;;){if(!A&&Oa.valid(e))return e;let n=e.pos,i=null;for(let A=e.depth;;A--){let r=e.node(A);if(t>0?e.indexAfter(A)0){i=r.child(t>0?e.indexAfter(A):e.index(A)-1);break}if(0==A)return null;n+=t;let o=e.doc.resolve(n);if(Oa.valid(o))return o}for(;;){let r=t>0?i.firstChild:i.lastChild;if(!r){if(i.isAtom&&!i.isText&&!p.isSelectable(i)){e=e.doc.resolve(n+i.nodeSize*t),A=!1;continue e}break}i=r,n+=t;let o=e.doc.resolve(n);if(Oa.valid(o))return o}return null}}}Oa.prototype.visible=!1,Oa.findFrom=Oa.findGapCursorFrom,b.jsonID("gapcursor",Oa);class _a{constructor(e){this.pos=e}map(e){return new _a(e.map(this.pos))}resolve(e){let t=e.resolve(this.pos);return Oa.valid(t)?new Oa(t):b.near(t)}}const Ka=T({ArrowLeft:Wa("horiz",-1),ArrowRight:Wa("horiz",1),ArrowUp:Wa("vert",-1),ArrowDown:Wa("vert",1)});function Wa(e,t){const A="vert"==e?t>0?"down":"up":t>0?"right":"left";return function(e,n,i){let r=e.selection,o=t>0?r.$to:r.$from,s=r.empty;if(r instanceof G){if(!i.endOfTextblock(A)||0==o.depth)return!1;s=!1,o=e.doc.resolve(t>0?o.after():o.before())}let E=Oa.findGapCursorFrom(o,t,s);return!!E&&(n&&n(e.tr.setSelection(new Oa(E))),!0)}}function Xa(e,t,A){if(!e||!e.editable)return!1;let n=e.state.doc.resolve(t);if(!Oa.valid(n))return!1;let i=e.posAtCoords({left:A.clientX,top:A.clientY});return!(i&&i.inside>-1&&p.isSelectable(e.state.doc.nodeAt(i.inside))||(e.dispatch(e.state.tr.setSelection(new Oa(n))),0))}function qa(e,t){if("insertCompositionText"!=t.inputType||!(e.state.selection instanceof Oa))return!1;let{$from:A}=e.state.selection,n=A.parent.contentMatchAt(A.index()).findWrapping(e.state.schema.nodes.text);if(!n)return!1;let i=H.empty;for(let e=n.length-1;e>=0;e--)i=H.from(n[e].createAndFill(null,i));let r=e.state.tr.replace(A.pos,A.pos,new y(i,0,0));return r.setSelection(G.near(r.doc.resolve(A.pos+1))),e.dispatch(r),!1}function $a(e){if(!(e.selection instanceof Oa))return null;let t=document.createElement("div");return t.className="ProseMirror-gapcursor",C.create(e.doc,[D.widget(e.selection.head,t,{key:"gapcursor"})])}const eg=s.create({name:"gapCursor",addProseMirrorPlugins:()=>[new r({props:{decorations:$a,createSelectionBetween:(e,t,A)=>t.pos==A.pos&&Oa.valid(A)?new Oa(A):null,handleClick:Xa,handleKeyDown:Ka,handleDOMEvents:{beforeinput:qa}}})],extendNodeSchema(e){var t;return{allowGapCursor:null!==(t=x(z(e,"allowGapCursor",{name:e.name,options:e.options,storage:e.storage})))&&void 0!==t?t:null}}}),tg=R.create({name:"hardBreak",addOptions:()=>({keepMarks:!0,HTMLAttributes:{}}),inline:!0,group:"inline",selectable:!1,parseHTML:()=>[{tag:"br"}],renderHTML({HTMLAttributes:e}){return["br",l(this.options.HTMLAttributes,e)]},renderText:()=>"\n",addCommands(){return{setHardBreak:()=>({commands:e,chain:t,state:A,editor:n})=>e.first([()=>e.exitCode(),()=>e.command((()=>{const{selection:e,storedMarks:i}=A;if(e.$from.parent.type.spec.isolating)return!1;const{keepMarks:r}=this.options,{splittableMarks:o}=n.extensionManager,s=i||e.$to.parentOffset&&e.$from.marks();return t().insertContent({type:this.name}).command((({tr:e,dispatch:t})=>{if(t&&s&&r){const t=s.filter((e=>o.includes(e.type.name)));e.ensureMarks(t)}return!0})).run()}))])}},addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak()}}}),Ag=R.create({name:"heading",addOptions:()=>({levels:[1,2,3,4,5,6],HTMLAttributes:{}}),content:"inline*",group:"block",defining:!0,addAttributes:()=>({level:{default:1,rendered:!1}}),parseHTML(){return this.options.levels.map((e=>({tag:`h${e}`,attrs:{level:e}})))},renderHTML({node:e,HTMLAttributes:t}){return[`h${this.options.levels.includes(e.attrs.level)?e.attrs.level:this.options.levels[0]}`,l(this.options.HTMLAttributes,t),0]},addCommands(){return{setHeading:e=>({commands:t})=>!!this.options.levels.includes(e.level)&&t.setNode(this.name,e),toggleHeading:e=>({commands:t})=>!!this.options.levels.includes(e.level)&&t.toggleNode(this.name,"paragraph",e)}},addKeyboardShortcuts(){return this.options.levels.reduce(((e,t)=>({...e,[`Mod-Alt-${t}`]:()=>this.editor.commands.toggleHeading({level:t})})),{})},addInputRules(){return this.options.levels.map((e=>k({find:new RegExp(`^(#{1,${e}})\\s$`),type:this.type,getAttributes:{level:e}})))}});var ng=200,ig=function(){};ig.prototype.append=function(e){return e.length?(e=ig.from(e),!this.length&&e||e.length=t?ig.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))},ig.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)},ig.prototype.forEach=function(e,t,A){void 0===t&&(t=0),void 0===A&&(A=this.length),t<=A?this.forEachInner(e,t,A,0):this.forEachInvertedInner(e,t,A,0)},ig.prototype.map=function(e,t,A){void 0===t&&(t=0),void 0===A&&(A=this.length);var n=[];return this.forEach((function(t,A){return n.push(e(t,A))}),t,A),n},ig.from=function(e){return e instanceof ig?e:e&&e.length?new rg(e):ig.empty};var rg=function(e){function t(t){e.call(this),this.values=t}e&&(t.__proto__=e),(t.prototype=Object.create(e&&e.prototype)).constructor=t;var A={length:{configurable:!0},depth:{configurable:!0}};return t.prototype.flatten=function(){return this.values},t.prototype.sliceInner=function(e,A){return 0==e&&A==this.length?this:new t(this.values.slice(e,A))},t.prototype.getInner=function(e){return this.values[e]},t.prototype.forEachInner=function(e,t,A,n){for(var i=t;i=A;i--)if(!1===e(this.values[i],n+i))return!1},t.prototype.leafAppend=function(e){if(this.length+e.length<=ng)return new t(this.values.concat(e.flatten()))},t.prototype.leafPrepend=function(e){if(this.length+e.length<=ng)return new t(e.flatten().concat(this.values))},A.length.get=function(){return this.values.length},A.depth.get=function(){return 0},Object.defineProperties(t.prototype,A),t}(ig);ig.empty=new rg([]);var og=function(e){function t(t,A){e.call(this),this.left=t,this.right=A,this.length=t.length+A.length,this.depth=Math.max(t.depth,A.depth)+1}return e&&(t.__proto__=e),(t.prototype=Object.create(e&&e.prototype)).constructor=t,t.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},t.prototype.getInner=function(e){return ei&&!1===this.right.forEachInner(e,Math.max(t-i,0),Math.min(this.length,A)-i,n+i))&&void 0},t.prototype.forEachInvertedInner=function(e,t,A,n){var i=this.left.length;return!(t>i&&!1===this.right.forEachInvertedInner(e,t-i,Math.max(A,i)-i,n+i))&&!(A=A?this.right.slice(e-A,t-A):this.left.slice(e,A).append(this.right.slice(0,t-A))},t.prototype.leafAppend=function(e){var A=this.right.leafAppend(e);if(A)return new t(this.left,A)},t.prototype.leafPrepend=function(e){var A=this.left.leafPrepend(e);if(A)return new t(A,this.right)},t.prototype.appendInner=function(e){return this.left.depth>=Math.max(this.right.depth,e.depth)+1?new t(this.left,new t(this.right,e)):new t(this,e)},t}(ig);class sg{constructor(e,t){this.items=e,this.eventCount=t}popEvent(e,t){if(0==this.eventCount)return null;let A,n,i=this.items.length;for(;;i--)if(this.items.get(i-1).selection){--i;break}t&&(A=this.remapping(i,this.items.length),n=A.maps.length);let r,o,s=e.tr,E=[],B=[];return this.items.forEach(((e,t)=>{if(!e.step)return A||(A=this.remapping(i,t+1),n=A.maps.length),n--,void B.push(e);if(A){B.push(new Eg(e.map));let t,i=e.step.map(A.slice(n));i&&s.maybeStep(i).doc&&(t=s.mapping.maps[s.mapping.maps.length-1],E.push(new Eg(t,void 0,void 0,E.length+B.length))),n--,t&&A.appendMap(t,n)}else s.maybeStep(e.step);return e.selection?(r=A?e.selection.map(A.slice(n)):e.selection,o=new sg(this.items.slice(0,i).append(B.reverse().concat(E)),this.eventCount-1),!1):void 0}),this.items.length,0),{remaining:o,transform:s,selection:r}}addTransform(e,t,A,n){let i=[],r=this.eventCount,o=this.items,s=!n&&o.length?o.get(o.length-1):null;for(let A=0;Acg&&(o=function(e,t){let A;return e.forEach(((e,n)=>{if(e.selection&&0==t--)return A=n,!1})),e.slice(A)}(o,E),r-=E),new sg(o.append(i),r)}remapping(e,t){let A=new J;return this.items.forEach(((t,n)=>{A.appendMap(t.map,null!=t.mirrorOffset&&n-t.mirrorOffset>=e?A.maps.length-t.mirrorOffset:void 0)}),e,t),A}addMaps(e){return 0==this.eventCount?this:new sg(this.items.append(e.map((e=>new Eg(e)))),this.eventCount)}rebased(e,t){if(!this.eventCount)return this;let A=[],n=Math.max(0,this.items.length-t),i=e.mapping,r=e.steps.length,o=this.eventCount;this.items.forEach((e=>{e.selection&&o--}),n);let s=t;this.items.forEach((t=>{let n=i.getMirror(--s);if(null==n)return;r=Math.min(r,n);let E=i.maps[n];if(t.step){let r=e.steps[n].invert(e.docs[n]),B=t.selection&&t.selection.map(i.slice(s+1,n));B&&o++,A.push(new Eg(E,r,B))}else A.push(new Eg(E))}),n);let E=[];for(let e=t;e500&&(c=c.compress(this.items.length-A.length)),c}emptyItemCount(){let e=0;return this.items.forEach((t=>{t.step||e++})),e}compress(e=this.items.length){let t=this.remapping(0,e),A=t.maps.length,n=[],i=0;return this.items.forEach(((r,o)=>{if(o>=e)n.push(r),r.selection&&i++;else if(r.step){let e=r.step.map(t.slice(A)),o=e&&e.getMap();if(A--,o&&t.appendMap(o,A),e){let s=r.selection&&r.selection.map(t.slice(A));s&&i++;let E,B=new Eg(o.invert(),e,s),c=n.length-1;(E=n.length&&n[c].merge(B))?n[c]=E:n.push(B)}}else r.map&&A--}),this.items.length,0),new sg(ig.from(n.reverse()),i)}}sg.empty=new sg(ig.empty,0);class Eg{constructor(e,t,A,n){this.map=e,this.step=t,this.selection=A,this.mirrorOffset=n}merge(e){if(this.step&&e.step&&!e.selection){let t=e.step.merge(this.step);if(t)return new Eg(t.getMap().invert(),t,this.selection)}}}class Bg{constructor(e,t,A,n,i){this.done=e,this.undone=t,this.prevRanges=A,this.prevTime=n,this.prevComposition=i}}const cg=20;function ag(e){let t=[];return e.forEach(((e,A,n,i)=>t.push(n,i))),t}function gg(e,t){if(!e)return null;let A=[];for(let n=0;nnew Bg(sg.empty,sg.empty,null,0,-1),apply:(t,A,n)=>function(e,t,A,n){let i,r=A.getMeta(ug);if(r)return r.historyState;A.getMeta(wg)&&(e=new Bg(e.done,e.undone,null,0,-1));let o=A.getMeta("appendedTransaction");if(0==A.steps.length)return e;if(o&&o.getMeta(ug))return o.getMeta(ug).redo?new Bg(e.done.addTransform(A,void 0,n,hg(t)),e.undone,ag(A.mapping.maps[A.steps.length-1]),e.prevTime,e.prevComposition):new Bg(e.done,e.undone.addTransform(A,void 0,n,hg(t)),null,e.prevTime,e.prevComposition);if(!1===A.getMeta("addToHistory")||o&&!1===o.getMeta("addToHistory"))return(i=A.getMeta("rebased"))?new Bg(e.done.rebased(A,i),e.undone.rebased(A,i),gg(e.prevRanges,A.mapping),e.prevTime,e.prevComposition):new Bg(e.done.addMaps(A.mapping.maps),e.undone.addMaps(A.mapping.maps),gg(e.prevRanges,A.mapping),e.prevTime,e.prevComposition);{let i=A.getMeta("composition"),r=0==e.prevTime||!o&&e.prevComposition!=i&&(e.prevTime<(A.time||0)-n.newGroupDelay||!function(e,t){if(!t)return!1;if(!e.docChanged)return!0;let A=!1;return e.mapping.maps[0].forEach(((e,n)=>{for(let i=0;i=t[i]&&(A=!0)})),A}(A,e.prevRanges)),s=o?gg(e.prevRanges,A.mapping):ag(A.mapping.maps[A.steps.length-1]);return new Bg(e.done.addTransform(A,r?t.selection.getBookmark():void 0,n,hg(t)),sg.empty,s,A.time,null==i?e.prevComposition:i)}}(A,n,t,e)},config:e={depth:e.depth||100,newGroupDelay:e.newGroupDelay||500},props:{handleDOMEvents:{beforeinput(e,t){let A=t.inputType,n="historyUndo"==A?Ig:"historyRedo"==A?dg:null;return!!n&&(t.preventDefault(),n(e.state,e.dispatch))}}}})}function Rg(e,t){return(A,n)=>{let i=ug.getState(A);if(!i||0==(e?i.undone:i.done).eventCount)return!1;if(n){let r=function(e,t,A){let n=hg(t),i=ug.get(t).spec.config,r=(A?e.undone:e.done).popEvent(t,n);if(!r)return null;let o=r.selection.resolve(r.transform.doc),s=(A?e.done:e.undone).addTransform(r.transform,t.selection.getBookmark(),i,n),E=new Bg(A?s:r.remaining,A?r.remaining:s,null,0,-1);return r.transform.setSelection(o).setMeta(ug,{redo:A,historyState:E})}(i,A,e);r&&n(t?r.scrollIntoView():r)}return!0}}const Ig=Rg(!1,!0),dg=Rg(!0,!0),kg=s.create({name:"history",addOptions:()=>({depth:100,newGroupDelay:500}),addCommands:()=>({undo:()=>({state:e,dispatch:t})=>Ig(e,t),redo:()=>({state:e,dispatch:t})=>dg(e,t)}),addProseMirrorPlugins(){return[Mg(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),Gg=R.create({name:"horizontalRule",addOptions:()=>({HTMLAttributes:{}}),group:"block",parseHTML:()=>[{tag:"hr"}],renderHTML({HTMLAttributes:e}){return["hr",l(this.options.HTMLAttributes,e)]},addCommands(){return{setHorizontalRule:()=>({chain:e,state:t})=>{const{$to:A}=t.selection,n=e();return 0===A.parentOffset?n.insertContentAt(Math.max(A.pos-2,0),{type:this.name}):n.insertContent({type:this.name}),n.command((({tr:e,dispatch:t})=>{var A;if(t){const{$to:t}=e.selection,n=t.end();if(t.nodeAfter)e.setSelection(t.nodeAfter.isTextblock?G.create(e.doc,t.pos+1):t.nodeAfter.isBlock?p.create(e.doc,t.pos):G.create(e.doc,t.pos));else{const i=null===(A=t.parent.type.contentMatch.defaultType)||void 0===A?void 0:A.create();i&&(e.insert(n,i),e.setSelection(G.create(e.doc,n+1)))}e.scrollIntoView()}return!0})).run()}}},addInputRules(){return[j({find:/^(?:---|—-|___\s|\*\*\*\s)$/,type:this.type})]}}),Cg=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/,fg=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g,Dg=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/,Fg=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g,Yg=g.create({name:"italic",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"em"},{tag:"i",getAttrs:e=>"normal"!==e.style.fontStyle&&null},{style:"font-style=italic"}],renderHTML({HTMLAttributes:e}){return["em",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setItalic:()=>({commands:e})=>e.setMark(this.name),toggleItalic:()=>({commands:e})=>e.toggleMark(this.name),unsetItalic:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-i":()=>this.editor.commands.toggleItalic(),"Mod-I":()=>this.editor.commands.toggleItalic()}},addInputRules(){return[u({find:Cg,type:this.type}),u({find:Dg,type:this.type})]},addPasteRules(){return[w({find:fg,type:this.type}),w({find:Fg,type:this.type})]}}),mg=R.create({name:"listItem",addOptions:()=>({HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}),content:"paragraph block*",defining:!0,parseHTML:()=>[{tag:"li"}],renderHTML({HTMLAttributes:e}){return["li",l(this.options.HTMLAttributes,e),0]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),Ug=R.create({name:"listItem",addOptions:()=>({HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}),content:"paragraph block*",defining:!0,parseHTML:()=>[{tag:"li"}],renderHTML({HTMLAttributes:e}){return["li",l(this.options.HTMLAttributes,e),0]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),Sg=g.create({name:"textStyle",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"span",getAttrs:e=>!!e.hasAttribute("style")&&{}}],renderHTML({HTMLAttributes:e}){return["span",l(this.options.HTMLAttributes,e),0]},addCommands(){return{removeEmptyTextStyle:()=>({state:e,commands:t})=>{const A=Q(e,this.type),n=Object.entries(A).some((([,e])=>!!e));return!!n||t.unsetMark(this.name)}}}}),Ng=/^(\d+)\.\s$/,bg=R.create({name:"orderedList",addOptions:()=>({itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}),group:"block list",content(){return`${this.options.itemTypeName}+`},addAttributes:()=>({start:{default:1,parseHTML:e=>e.hasAttribute("start")?parseInt(e.getAttribute("start")||"",10):1}}),parseHTML:()=>[{tag:"ol"}],renderHTML({HTMLAttributes:e}){const{start:t,...A}=e;return 1===t?["ol",l(this.options.HTMLAttributes,A),0]:["ol",l(this.options.HTMLAttributes,e),0]},addCommands(){return{toggleOrderedList:()=>({commands:e,chain:t})=>this.options.keepAttributes?t().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(Ug.name,this.editor.getAttributes(Sg.name)).run():e.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addInputRules(){let e=I({find:Ng,type:this.type,getAttributes:e=>({start:+e[1]}),joinPredicate:(e,t)=>t.childCount+t.attrs.start===+e[1]});return(this.options.keepMarks||this.options.keepAttributes)&&(e=I({find:Ng,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:e=>({start:+e[1],...this.editor.getAttributes(Sg.name)}),joinPredicate:(e,t)=>t.childCount+t.attrs.start===+e[1],editor:this.editor})),[e]}}),yg=R.create({name:"paragraph",priority:1e3,addOptions:()=>({HTMLAttributes:{}}),group:"block",content:"inline*",parseHTML:()=>[{tag:"p"}],renderHTML({HTMLAttributes:e}){return["p",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setParagraph:()=>({commands:e})=>e.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),pg=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,Tg=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,Hg=g.create({name:"strike",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"s"},{tag:"del"},{tag:"strike"},{style:"text-decoration",consuming:!1,getAttrs:e=>!!e.includes("line-through")&&{}}],renderHTML({HTMLAttributes:e}){return["s",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setStrike:()=>({commands:e})=>e.setMark(this.name),toggleStrike:()=>({commands:e})=>e.toggleMark(this.name),unsetStrike:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){const e={};return v()?e["Mod-Shift-s"]=()=>this.editor.commands.toggleStrike():e["Ctrl-Shift-s"]=()=>this.editor.commands.toggleStrike(),e},addInputRules(){return[u({find:pg,type:this.type})]},addPasteRules(){return[w({find:Tg,type:this.type})]}}),xg=R.create({name:"text",group:"inline"}),zg=s.create({name:"starterKit",addExtensions(){var e,t,A,n,i,r,o,s,E,B,c,a,g,l,Q,h,u,w;const M=[];return!1!==this.options.blockquote&&M.push(Ua.configure(null===(e=this.options)||void 0===e?void 0:e.blockquote)),!1!==this.options.bold&&M.push(pa.configure(null===(t=this.options)||void 0===t?void 0:t.bold)),!1!==this.options.bulletList&&M.push(za.configure(null===(A=this.options)||void 0===A?void 0:A.bulletList)),!1!==this.options.code&&M.push(Za.configure(null===(n=this.options)||void 0===n?void 0:n.code)),!1!==this.options.codeBlock&&M.push(fr.configure(null===(i=this.options)||void 0===i?void 0:i.codeBlock)),!1!==this.options.document&&M.push(va.configure(null===(r=this.options)||void 0===r?void 0:r.document)),!1!==this.options.dropcursor&&M.push(Va.configure(null===(o=this.options)||void 0===o?void 0:o.dropcursor)),!1!==this.options.gapcursor&&M.push(eg.configure(null===(s=this.options)||void 0===s?void 0:s.gapcursor)),!1!==this.options.hardBreak&&M.push(tg.configure(null===(E=this.options)||void 0===E?void 0:E.hardBreak)),!1!==this.options.heading&&M.push(Ag.configure(null===(B=this.options)||void 0===B?void 0:B.heading)),!1!==this.options.history&&M.push(kg.configure(null===(c=this.options)||void 0===c?void 0:c.history)),!1!==this.options.horizontalRule&&M.push(Gg.configure(null===(a=this.options)||void 0===a?void 0:a.horizontalRule)),!1!==this.options.italic&&M.push(Yg.configure(null===(g=this.options)||void 0===g?void 0:g.italic)),!1!==this.options.listItem&&M.push(mg.configure(null===(l=this.options)||void 0===l?void 0:l.listItem)),!1!==this.options.orderedList&&M.push(bg.configure(null===(Q=this.options)||void 0===Q?void 0:Q.orderedList)),!1!==this.options.paragraph&&M.push(yg.configure(null===(h=this.options)||void 0===h?void 0:h.paragraph)),!1!==this.options.strike&&M.push(Hg.configure(null===(u=this.options)||void 0===u?void 0:u.strike)),!1!==this.options.text&&M.push(xg.configure(null===(w=this.options)||void 0===w?void 0:w.text)),M}}),Jg=/[\uD800-\uDBFF]/,jg=/[\uDC00-\uDFFF]/,Zg=new o("y-sync"),vg=new o("y-undo"),Pg=new o("yjs-cursor"),Lg=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&t.sv.get(e.id.client)>e.id.clock&&!MA(t.ds,e.id),Vg=[{light:"#ecd44433",dark:"#ecd444"}],Og=(e,t,A)=>{if(!e.has(A)){if(e.sizeA.add(e))),t=t.filter((e=>!A.has(e)))}e.set(A,(n=t)[Ce(Ft()*n.length)])}var n;return e.get(A)},_g=(e,t)=>({anchor:ll(t.selection.anchor,e.type,e.mapping),head:ll(t.selection.head,e.type,e.mapping)});class Kg{constructor(e,t){this.type=e,this.prosemirrorView=t,this.mux=(()=>{let e=!0;return(t,A)=>{if(e){e=!1;try{t()}finally{e=!0}}else void 0!==A&&A()}})(),this.isDestroyed=!1,this.mapping=new Map,this._observeFunction=this._typeChanged.bind(this),this.doc=e.doc,this.beforeTransactionSelection=null,this.beforeAllTransactions=()=>{null===this.beforeTransactionSelection&&(this.beforeTransactionSelection=_g(this,t.state))},this.afterAllTransactions=()=>{this.beforeTransactionSelection=null},this.doc.on("beforeAllTransactions",this.beforeAllTransactions),this.doc.on("afterAllTransactions",this.afterAllTransactions),e.observeDeep(this._observeFunction),this._domSelectionInView=null}get _tr(){return this.prosemirrorView.state.tr.setMeta("addToHistory",!1)}_isLocalCursorInView(){return!!this.prosemirrorView.hasFocus()&&(jt&&null===this._domSelectionInView&&($t(0,(()=>{this._domSelectionInView=null})),this._domSelectionInView=this._isDomSelectionInView()),this._domSelectionInView)}_isDomSelectionInView(){const e=this.prosemirrorView._root.getSelection(),t=this.prosemirrorView._root.createRange();t.setStart(e.anchorNode,e.anchorOffset),t.setEnd(e.focusNode,e.focusOffset),0===t.getClientRects().length&&t.startContainer&&t.collapsed&&t.selectNodeContents(t.startContainer);const A=t.getBoundingClientRect(),n=Wt.documentElement;return A.bottom>=0&&A.right>=0&&A.left<=(window.innerWidth||n.clientWidth||0)&&A.top<=(window.innerHeight||n.clientHeight||0)}renderSnapshot(e,t){t||(t=rn(kA(),new Map)),this.prosemirrorView.dispatch(this._tr.setMeta(Zg,{snapshot:e,prevSnapshot:t}))}unrenderSnapshot(){this.mapping=new Map,this.mux((()=>{const e=this.type.toArray().map((e=>Xg(e,this.prosemirrorView.state.schema,this.mapping))).filter((e=>null!==e)),t=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new y(H.from(e),0,0));t.setMeta(Zg,{snapshot:null,prevSnapshot:null}),this.prosemirrorView.dispatch(t)}))}_forceRerender(){this.mapping=new Map,this.mux((()=>{const e=this.type.toArray().map((e=>Xg(e,this.prosemirrorView.state.schema,this.mapping))).filter((e=>null!==e)),t=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new y(H.from(e),0,0));this.prosemirrorView.dispatch(t.setMeta(Zg,{isChangeOrigin:!0,binding:this}))}))}_renderSnapshot(e,t,A){e||(e=(e=>rn(GA(e.store),Bn(e.store)))(this.doc)),this.mapping=new Map,this.mux((()=>{this.doc.transact((n=>{const i=A.permanentUserData;i&&i.dss.forEach((e=>{wA(n,e,(()=>{}))}));const r=(e,t)=>{const n="added"===e?i.getUserByClientId(t.client):i.getUserByDeletedId(t);return{user:n,type:e,color:Og(A.colorMapping,A.colors,n)}},o=Wn(this.type,new nn(t.ds,e.sv)).map((A=>!A._item.deleted||Lg(A._item,e)||Lg(A._item,t)?Xg(A,this.prosemirrorView.state.schema,new Map,e,t,r):null)).filter((e=>null!==e)),s=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new y(H.from(o),0,0));this.prosemirrorView.dispatch(s.setMeta(Zg,{isChangeOrigin:!0}))}),Zg)}))}_typeChanged(e,t){const A=Zg.getState(this.prosemirrorView.state);0!==e.length&&null==A.snapshot&&null==A.prevSnapshot?this.mux((()=>{const e=(e,t)=>this.mapping.delete(t);wA(t,t.deleteSet,(e=>{if(e.constructor===Er){const t=e.content.type;t&&this.mapping.delete(t)}})),t.changed.forEach(e),t.changedParentTypes.forEach(e);const A=this.type.toArray().map((e=>Wg(e,this.prosemirrorView.state.schema,this.mapping))).filter((e=>null!==e));let n=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new y(H.from(A),0,0));((e,t,A)=>{if(null!==t&&null!==t.anchor&&null!==t.head){const n=hl(A.doc,A.type,t.anchor,A.mapping),i=hl(A.doc,A.type,t.head,A.mapping);null!==n&&null!==i&&(e=e.setSelection(G.create(e.doc,n,i)))}})(n,this.beforeTransactionSelection,this),n=n.setMeta(Zg,{isChangeOrigin:!0,isUndoRedoOperation:t.origin instanceof Fn}),null!==this.beforeTransactionSelection&&this._isLocalCursorInView()&&n.scrollIntoView(),this.prosemirrorView.dispatch(n)})):this.renderSnapshot(A.snapshot,A.prevSnapshot)}_prosemirrorChanged(e){this.doc.transact((()=>{Bl(this.doc,this.type,e,this.mapping),this.beforeTransactionSelection=_g(this,this.prosemirrorView.state)}),Zg)}destroy(){this.isDestroyed=!0,this.type.unobserveDeep(this._observeFunction),this.doc.off("beforeAllTransactions",this.beforeAllTransactions),this.doc.off("afterAllTransactions",this.afterAllTransactions)}}const Wg=(e,t,A,n,i,r)=>{const o=A.get(e);if(void 0===o){if(e instanceof bi)return Xg(e,t,A,n,i,r);throw Et()}return o},Xg=(e,t,A,n,i,r)=>{const o=[],s=e=>{if(e.constructor===bi){const s=Wg(e,t,A,n,i,r);null!==s&&o.push(s)}else{const s=qg(e,t,A,n,i,r);null!==s&&s.forEach((e=>{null!==e&&o.push(e)}))}};void 0===n||void 0===i?e.toArray().forEach(s):Wn(e,new nn(i.ds,n.sv)).forEach(s);try{const s=e.getAttributes(n);void 0!==n&&(Lg(e._item,n)?Lg(e._item,i)||(s.ychange=r?r("added",e._item.id):{type:"added"}):s.ychange=r?r("removed",e._item.id):{type:"removed"});const E=t.node(e.nodeName,s,o);return A.set(e,E),E}catch(t){return e.doc.transact((t=>{e._item.delete(t)}),Zg),A.delete(e),null}},qg=(e,t,A,n,i,r)=>{const o=[],s=e.toDelta(n,i,r);try{for(let e=0;e{e._item.delete(t)}),Zg),null}return o},$g=(e,t)=>e instanceof Array?((e,t)=>{const A=new Ti,n=e.map((e=>({insert:e.text,attributes:El(e.marks)})));return A.applyDelta(n),t.set(A,e),A})(e,t):((e,t)=>{const A=new bi(e.type.name);for(const t in e.attrs){const n=e.attrs[t];null!==n&&"ychange"!==t&&A.setAttribute(t,n)}return A.insert(0,Al(e).map((e=>$g(e,t)))),t.set(A,e),A})(e,t),el=e=>"object"==typeof e&&null!==e,tl=(e,t)=>{const A=Object.keys(e).filter((t=>null!==e[t]));let n=A.length===Object.keys(t).filter((e=>null!==t[e])).length;for(let i=0;i{const t=e.content.content,A=[];for(let e=0;e{const A=e.toDelta();return A.length===t.length&&A.every(((e,A)=>e.insert===t[A].text&&Tt(e.attributes||{}).length===t[A].marks.length&&t[A].marks.every((t=>tl(e.attributes[t.type.name]||{},t.attrs)))))},il=(e,t)=>{if(e instanceof bi&&!(t instanceof Array)&&cl(e,t)){const A=Al(t);return e._length===A.length&&tl(e.getAttributes(),t.attrs)&&e.toArray().every(((e,t)=>il(e,A[t])))}return e instanceof Ti&&t instanceof Array&&nl(e,t)},rl=(e,t)=>e===t||e instanceof Array&&t instanceof Array&&e.length===t.length&&e.every(((e,A)=>t[A]===e)),ol=(e,t,A)=>{const n=e.toArray(),i=Al(t),r=i.length,o=n.length,s=De(o,r);let E=0,B=0,c=!1;for(;E{A.set(e,t);const{nAttrs:n,str:i}=(e=>{let t="",A=e._start;const n={};for(;null!==A;)A.deleted||(A.countable&&A.content instanceof Oi?t+=A.content.str:A.content instanceof Pi&&(n[A.content.key]=null)),A=A.right;return{str:t,nAttrs:n}})(e),r=t.map((e=>({insert:e.text,attributes:Object.assign({},n,El(e.marks))}))),{insert:o,remove:s,index:E}=((e,t)=>{let A=0,n=0;for(;A0&&Jg.test(e[A-1])&&A--;n+A0&&jg.test(e[e.length-n])&&n--,{index:A,remove:e.length-A-n,insert:t.slice(A,t.length-n)}})(i,r.map((e=>e.insert)).join(""));e.delete(E,s),e.insert(E,o),e.applyDelta(r.map((e=>({retain:e.insert.length,attributes:e.attributes}))))},El=e=>{const t={};return e.forEach((e=>{"ychange"!==e.type.name&&(t[e.type.name]=e.attrs)})),t},Bl=(e,t,A,n)=>{if(t instanceof bi&&t.nodeName!==A.type.name)throw new Error("node name mismatch!");if(n.set(t,A),t instanceof bi){const e=t.getAttributes(),n=A.attrs;for(const A in n)null!==n[A]?e[A]!==n[A]&&"ychange"!==A&&t.setAttribute(A,n[A]):t.removeAttribute(A);for(const A in e)void 0===n[A]&&t.removeAttribute(A)}const i=Al(A),r=i.length,o=t.toArray(),s=o.length,E=De(r,s);let B=0,c=0;for(;B{for(;s-B-c>0&&r-B-c>0;){const A=o[B],E=i[B],a=o[s-c-1],g=i[r-c-1];if(A instanceof Ti&&E instanceof Array)nl(A,E)||sl(A,E,n),B+=1;else{let i=A instanceof bi&&cl(A,E),r=a instanceof bi&&cl(a,g);if(i&&r){const e=ol(A,E,n),t=ol(a,g,n);e.foundMappedChild&&!t.foundMappedChild?r=!1:!e.foundMappedChild&&t.foundMappedChild||e.equalityFactor0&&(t.slice(B,B+A).forEach((e=>n.delete(e))),t.delete(B,A)),B+c!(t instanceof Array)&&e.nodeName===t.type.name;let al=null;const gl=()=>{const e=al;al=null,e.forEach(((e,t)=>{const A=t.state.tr,n=Zg.getState(t.state);n&&n.binding&&!n.binding.isDestroyed&&(e.forEach(((e,t)=>{A.setMeta(t,e)})),t.dispatch(A))}))},ll=(e,t,A)=>{if(0===e)return tn(t,0);let n=null===t._first?null:t._first.content.type;for(;null!==n&&t!==n;){if(n instanceof Ti){if(n._length>=e)return tn(n,e);if(e-=n._length,null!==n._item&&null!==n._item.next)n=n._item.next.content.type;else{do{n=null===n._item?null:n._item.parent,e--}while(n!==t&&null!==n&&null!==n._item&&null===n._item.next);null!==n&&n!==t&&(n=null===n._item?null:n._item.next.content.type)}}else{const i=(A.get(n)||{nodeSize:0}).nodeSize;if(null!==n._first&&e1)return new XA(null===n._item?null:n._item.id,null===n._item?KA(n):null,null);if(e-=i,null!==n._item&&null!==n._item.next)n=n._item.next.content.type;else{if(0===e)return n=null===n._item?n:n._item.parent,new XA(null===n._item?null:n._item.id,null===n._item?KA(n):null,null);do{n=n._item.parent,e--}while(n!==t&&null===n._item.next);n!==t&&(n=n._item.next.content.type)}}}if(null===n)throw Bt();if(0===e&&n.constructor!==Ti&&n!==t)return Ql(n._item.parent,n._item)}return tn(t,t._length)},Ql=(e,t)=>{let A=null,n=null;return null===e._item?n=KA(e):A=_A(e._item.id.client,e._item.id.clock),new XA(A,n,t.id)},hl=(e,t,A,n)=>{const i=((e,t,A=!0)=>{const n=t.store,i=e.item,r=e.type,o=e.tname,s=e.assoc;let E=null,B=0;if(null!==i){if(cn(n,i.client)<=i.clock)return null;const e=A?nr(n,i):{item:ln(n,i),diff:0},t=e.item;if(!(t instanceof Er))return null;if(E=t.parent,null===E._item||!E._item.deleted){B=t.deleted||!t.countable?0:e.diff+(s>=0?0:1);let A=t.left;for(;null!==A;)!A.deleted&&A.countable&&(B+=A.length),A=A.left}}else{if(null!==o)E=t.get(o);else{if(null===r)throw Bt();{if(cn(n,r.client)<=r.clock)return null;const{item:e}=A?nr(n,r):{item:ln(n,r)};if(!(e instanceof Er&&e.content instanceof Ar))return null;E=e.content.type}}B=s>=0?E._length:0}return((e,t,A=0)=>new $A(e,t,A))(E,B,e.assoc)})(A,e);if(null===i||i.type!==t&&!WA(t,i.type._item))return null;let r=i.type,o=0;if(r.constructor===Ti)o=i.index;else if(null===r._item||!r._item.deleted){let e=r._first,t=0;for(;te!==t,wl=e=>{const t=document.createElement("span");t.classList.add("ProseMirror-yjs-cursor"),t.setAttribute("style",`border-color: ${e.color}`);const A=document.createElement("div");A.setAttribute("style",`background-color: ${e.color}`),A.insertBefore(document.createTextNode(e.name),null);const n=document.createTextNode("⁠"),i=document.createTextNode("⁠");return t.insertBefore(n,null),t.insertBefore(A,null),t.insertBefore(i,null),t},Ml=e=>({style:`background-color: ${e.color}70`,class:"ProseMirror-yjs-selection"}),Rl=/^#[0-9a-fA-F]{6}$/,Il=(e,t,A,n,i)=>{const r=Zg.getState(e),o=r.doc,s=[];return null!=r.snapshot||null!=r.prevSnapshot||null===r.binding?C.create(e.doc,[]):(t.getStates().forEach(((t,E)=>{if(A(o.clientID,E,t)&&null!=t.cursor){const A=t.user||{};null==A.color?A.color="#ffa500":Rl.test(A.color)||console.warn("A user uses an unsupported color format",A),null==A.name&&(A.name=`User: ${E}`);let B=hl(o,r.type,qA(t.cursor.anchor),r.binding.mapping),c=hl(o,r.type,qA(t.cursor.head),r.binding.mapping);if(null!==B&&null!==c){const t=Fe(e.doc.content.size-1,0);B=De(B,t),c=De(c,t),s.push(D.widget(c,(()=>n(A)),{key:E+"",side:10}));const r=De(B,c),o=Fe(B,c);s.push(D.inline(r,o,i(A),{inclusiveEnd:!0,inclusiveStart:!1}))}}})),C.create(e.doc,s))},dl=(e,{awarenessStateFilter:t=ul,cursorBuilder:A=wl,selectionBuilder:n=Ml,getSelection:i=(e=>e.selection)}={},o="cursor")=>new r({key:Pg,state:{init:(i,r)=>Il(r,e,t,A,n),apply(i,r,o,s){const E=Zg.getState(s),B=i.getMeta(Pg);return E&&E.isChangeOrigin||B&&B.awarenessUpdated?Il(s,e,t,A,n):r.map(i.mapping,i.doc)}},props:{decorations:e=>Pg.getState(e)},view:t=>{const A=()=>{t.docView&&((e,t)=>{al||(al=new Map,$t(0,gl)),we(al,e,he).set(t,{awarenessUpdated:!0})})(t,Pg)},n=()=>{const A=Zg.getState(t.state),n=e.getLocalState()||{};if(null!=A.binding)if(t.hasFocus()){const r=i(t.state),s=ll(r.anchor,A.type,A.binding.mapping),E=ll(r.head,A.type,A.binding.mapping);null!=n.cursor&&An(qA(n.cursor.anchor),s)&&An(qA(n.cursor.head),E)||e.setLocalStateField(o,{anchor:s,head:E})}else null!=n.cursor&&null!==hl(A.doc,A.type,qA(n.cursor.anchor),A.binding.mapping)&&e.setLocalStateField(o,null)};return e.on("change",A),t.dom.addEventListener("focusin",n),t.dom.addEventListener("focusout",n),{update:n,destroy:()=>{t.dom.removeEventListener("focusin",n),t.dom.removeEventListener("focusout",n),e.off("change",A),e.setLocalStateField(o,null)}}}}),kl=new Set(["paragraph"]),Gl=s.create({name:"collaboration",priority:1e3,addOptions:()=>({document:null,field:"default",fragment:null}),onCreate(){this.editor.extensionManager.extensions.find((e=>"history"===e.name))&&console.warn('[tiptap warn]: "@tiptap/extension-collaboration" comes with its own history support and is not compatible with "@tiptap/extension-history".')},addCommands:()=>({undo:()=>({tr:e,state:t,dispatch:A})=>(e.setMeta("preventDispatch",!0),0!==vg.getState(t).undoManager.undoStack.length&&(!A||(e=>{const t=vg.getState(e).undoManager;if(null!=t)return t.undo(),!0})(t))),redo:()=>({tr:e,state:t,dispatch:A})=>(e.setMeta("preventDispatch",!0),0!==vg.getState(t).undoManager.redoStack.length&&(!A||(e=>{const t=vg.getState(e).undoManager;if(null!=t)return t.redo(),!0})(t)))}),addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Mod-y":()=>this.editor.commands.redo(),"Shift-Mod-z":()=>this.editor.commands.redo()}},addProseMirrorPlugins(){const e=this.options.fragment?this.options.fragment:this.options.document.getXmlFragment(this.options.field),t=(({protectedNodes:e=kl,trackedOrigins:t=[],undoManager:A=null}={})=>new r({key:vg,state:{init:(n,i)=>{const r=Zg.getState(i),o=A||new Fn(r.type,{trackedOrigins:new Set([Zg].concat(t)),deleteFilter:t=>((e,t)=>!(e instanceof Er&&e.content instanceof Ar&&(e.content.type instanceof Ui||e.content.type instanceof bi&&t.has(e.content.type.nodeName))&&0!==e.content.type._length))(t,e),captureTransaction:e=>!1!==e.meta.get("addToHistory")});return{undoManager:o,prevSel:null,hasUndoOps:o.undoStack.length>0,hasRedoOps:o.redoStack.length>0}},apply:(e,t,A,n)=>{const i=Zg.getState(n).binding,r=t.undoManager,o=r.undoStack.length>0,s=r.redoStack.length>0;return i?{undoManager:r,prevSel:_g(i,A),hasUndoOps:o,hasRedoOps:s}:o!==t.hasUndoOps||s!==t.hasRedoOps?Object.assign({},t,{hasUndoOps:r.undoStack.length>0,hasRedoOps:r.redoStack.length>0}):t}},view:e=>{const t=Zg.getState(e.state),A=vg.getState(e.state).undoManager;return A.on("stack-item-added",(({stackItem:A})=>{const n=t.binding;n&&A.meta.set(n,vg.getState(e.state).prevSel)})),A.on("stack-item-popped",(({stackItem:e})=>{const A=t.binding;A&&(A.beforeTransactionSelection=e.meta.get(A)||A.beforeTransactionSelection)})),{destroy:()=>{A.destroy()}}}}))(),A=t.spec.view;t.spec.view=e=>{const{undoManager:t}=vg.getState(e.state);t.restore&&(t.restore(),t.restore=()=>{});const n=A?A(e):void 0;return{destroy:()=>{const e=t.trackedOrigins.has(t),A=t._observers;t.restore=()=>{e&&t.trackedOrigins.add(t),t.doc.on("afterTransaction",t.afterTransactionHandler),t._observers=A},(null==n?void 0:n.destroy)&&n.destroy()}}};const n=this.options.ySyncOptions,i=this.options.onFirstRender,o=((e,{colors:t=Vg,colorMapping:A=new Map,permanentUserData:n=null,onFirstRender:i=(()=>{})}={})=>{let o=!1;const s=new r({props:{editable:e=>{const t=Zg.getState(e);return null==t.snapshot&&null==t.prevSnapshot}},key:Zg,state:{init:()=>({type:e,doc:e.doc,binding:null,snapshot:null,prevSnapshot:null,isChangeOrigin:!1,isUndoRedoOperation:!1,addToHistory:!0,colors:t,colorMapping:A,permanentUserData:n}),apply:(e,t)=>{const A=e.getMeta(Zg);if(void 0!==A){t=Object.assign({},t);for(const e in A)t[e]=A[e]}return t.addToHistory=!1!==e.getMeta("addToHistory"),t.isChangeOrigin=void 0!==A&&!!A.isChangeOrigin,t.isUndoRedoOperation=void 0!==A&&!!A.isChangeOrigin&&!!A.isUndoRedoOperation,null!==t.binding&&(void 0===A||null==A.snapshot&&null==A.prevSnapshot||$t(0,(()=>{null==t.binding||t.binding.isDestroyed||(null==A.restore?t.binding._renderSnapshot(A.snapshot,A.prevSnapshot,t):(t.binding._renderSnapshot(A.snapshot,A.snapshot,t),delete t.restore,delete t.snapshot,delete t.prevSnapshot,t.binding.mux((()=>{t.binding._prosemirrorChanged(t.binding.prosemirrorView.state.doc)}))))}))),t}},view:t=>{const A=new Kg(e,t);return A._forceRerender(),i(),{update:()=>{const e=s.getState(t.state);if(null==e.snapshot&&null==e.prevSnapshot&&(o||null!==t.state.doc.content.findDiffStart(t.state.doc.type.createAndFill().content))){if(o=!0,!1===e.addToHistory&&!e.isChangeOrigin){const e=vg.getState(t.state),A=e&&e.undoManager;A&&A.stopCapturing()}A.mux((()=>{e.doc.transact((n=>{n.meta.set("addToHistory",e.addToHistory),A._prosemirrorChanged(t.state.doc)}),Zg)}))}},destroy:()=>{A.destroy()}}}});return s})(e,{...n?{...n}:{},...i?{onFirstRender:i}:{}});return[o,t]}}),Cl=e=>Array.from(e.entries()).map((([e,t])=>({clientId:e,...t.user}))),fl=()=>null,Dl=s.create({name:"collaborationCursor",addOptions:()=>({provider:null,user:{name:null,color:null},render:e=>{const t=document.createElement("span");t.classList.add("collaboration-cursor__caret"),t.setAttribute("style",`border-color: ${e.color}`);const A=document.createElement("div");return A.classList.add("collaboration-cursor__label"),A.setAttribute("style",`background-color: ${e.color}`),A.insertBefore(document.createTextNode(e.name),null),t.insertBefore(A,null),t},selectionRender:Ml,onUpdate:fl}),onCreate(){this.options.onUpdate!==fl&&console.warn('[tiptap warn]: DEPRECATED: The "onUpdate" option is deprecated. Please use `editor.storage.collaborationCursor.users` instead. Read more: https://tiptap.dev/api/extensions/collaboration-cursor')},addStorage:()=>({users:[]}),addCommands(){return{updateUser:e=>()=>(this.options.user=e,this.options.provider.awareness.setLocalStateField("user",this.options.user),!0),user:e=>({editor:t})=>(console.warn('[tiptap warn]: DEPRECATED: The "user" command is deprecated. Please use "updateUser" instead. Read more: https://tiptap.dev/api/extensions/collaboration-cursor'),t.commands.updateUser(e))}},addProseMirrorPlugins(){return[dl((()=>(this.options.provider.awareness.setLocalStateField("user",this.options.user),this.storage.users=Cl(this.options.provider.awareness.states),this.options.provider.awareness.on("update",(()=>{this.storage.users=Cl(this.options.provider.awareness.states)})),this.options.provider.awareness))(),{cursorBuilder:this.options.render,selectionBuilder:this.options.selectionRender})]}}),Fl=Math.floor,Yl=127,ml=Number.MAX_SAFE_INTEGER,Ul="undefined"!=typeof TextEncoder?new TextEncoder:null,Sl=Ul?e=>Ul.encode(e):e=>{const t=unescape(encodeURIComponent(e)),A=t.length,n=new Uint8Array(A);for(let e=0;e{const A=e.cbuf.length;e.cpos===A&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*A),e.cpos=0),e.cbuf[e.cpos++]=t},yl=(e,t)=>{for(;t>Yl;)bl(e,128|Yl&t),t=Fl(t/128);bl(e,Yl&t)},pl=new Uint8Array(3e4),Tl=pl.length/3,Hl=Ul&&Ul.encodeInto?(e,t)=>{if(t.length{const A=unescape(encodeURIComponent(t)),n=A.length;yl(e,n);for(let t=0;t{yl(e,t.byteLength),((e,t)=>{const A=e.cbuf.length,n=e.cpos,i=(r=A-n)<(o=t.length)?r:o;var r,o;const s=t.length-i;e.cbuf.set(t.subarray(0,i),n),e.cpos+=i,s>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(((e,t)=>e>t?e:t)(2*A,s)),e.cbuf.set(t.subarray(i)),e.cpos=s)})(e,t)},zl=e=>new Error(e),Jl=zl("Unexpected end of array"),jl=zl("Integer out of Range"),Zl=e=>e.arr[e.pos++],vl=e=>{let t=0,A=1;const n=e.arr.length;for(;e.posml)throw jl}throw Jl},Pl=Nl?e=>Nl.decode((e=>((e,t)=>{const A=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,A})(e,vl(e)))(e)):e=>{let t=vl(e);if(0===t)return"";{let A=String.fromCodePoint(Zl(e));if(--t<100)for(;t--;)A+=String.fromCodePoint(Zl(e));else for(;t>0;){const n=t<1e4?t:1e4,i=e.arr.subarray(e.pos,e.pos+n);e.pos+=n,A+=String.fromCodePoint.apply(null,i),t-=n}return decodeURIComponent(escape(A))}};var Ll;!function(e){e[e.Token=0]="Token",e[e.PermissionDenied=1]="PermissionDenied",e[e.Authenticated=2]="Authenticated"}(Ll||(Ll={}));const Vl=e=>Array.from(e.entries()).map((([e,t])=>({clientId:e,...t})));var Ol;async function _l(e){return new Promise((t=>{setTimeout(t,e)}))}function Kl(e,t){let A=t.delay;if(0===A)return 0;if(t.factor&&(A*=Math.pow(t.factor,e.attemptNum-1),0!==t.maxDelay&&(A=Math.min(A,t.maxDelay))),t.jitter){const e=Math.ceil(t.minDelay),n=Math.floor(A);A=Math.floor(Math.random()*(n-e+1))+e}return Math.round(A)}!function(e){e[e.Connecting=0]="Connecting",e[e.Open=1]="Open",e[e.Closing=2]="Closing",e[e.Closed=3]="Closed"}(Ol||(Ol={}));const Wl=()=>new Map,Xl=(e,t,A)=>{let n=e.get(t);return void 0===n&&e.set(t,n=A()),n},ql=()=>new Set,$l=Array.from,eQ=String.fromCharCode,tQ=/^\s*/g,AQ=/([A-Z])/g,nQ=(e,t)=>(e=>e.replace(tQ,""))(e.replace(AQ,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),iQ="undefined"!=typeof TextEncoder?new TextEncoder:null,rQ=iQ?e=>iQ.encode(e):e=>{const t=unescape(encodeURIComponent(e)),A=t.length,n=new Uint8Array(A);for(let e=0;ecQ(e).length,gQ=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),lQ=(e,t)=>{if(null==e||null==t)return((e,t)=>e===t)(e,t);if(e.constructor!==t.constructor)return!1;if(e===t)return!0;switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let A=0;A(()=>{if(void 0===uQ)if(QQ){uQ=Wl();const e=process.argv;let t=null;for(let A=0;A{if(0!==e.length){const[t,A]=e.split("=");uQ.set(`--${nQ(t,"-")}`,A),uQ.set(`-${nQ(t,"-")}`,A)}}))):uQ=Wl();return uQ})().has(e),MQ=e=>{return void 0===(t=QQ?process.env[e.toUpperCase()]:BQ.getItem(e))?null:t;var t};(e=>{wQ("--"+e)||MQ(e)})("production");const RQ=QQ&&(e=>["true","1","2"].includes(e))(process.env.FORCE_COLOR);!wQ("no-colors")&&(!QQ||process.stdout.isTTY||RQ)&&(!QQ||wQ("color")||RQ||null!==MQ("COLORTERM")||(MQ("TERM")||"").includes("color"));const IQ=Math.floor,dQ=128,kQ=127,GQ=Number.MAX_SAFE_INTEGER;class CQ{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const fQ=()=>new CQ,DQ=e=>{let t=e.cpos;for(let A=0;A{const t=new Uint8Array(DQ(e));let A=0;for(let n=0;n{const A=e.cbuf.length;e.cpos===A&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*A),e.cpos=0),e.cbuf[e.cpos++]=t},mQ=(e,t)=>{for(;t>kQ;)YQ(e,dQ|kQ&t),t=IQ(t/128);YQ(e,kQ&t)},UQ=new Uint8Array(3e4),SQ=UQ.length/3,NQ=iQ&&iQ.encodeInto?(e,t)=>{if(t.length{const A=unescape(encodeURIComponent(t)),n=A.length;mQ(e,n);for(let t=0;t{mQ(e,t.byteLength),((e,t)=>{const A=e.cbuf.length,n=e.cpos,i=(r=A-n)<(o=t.length)?r:o;var r,o;const s=t.length-i;e.cbuf.set(t.subarray(0,i),n),e.cpos+=i,s>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(((e,t)=>e>t?e:t)(2*A,s)),e.cbuf.set(t.subarray(i)),e.cpos=s)})(e,t)},yQ=e=>new Error(e),pQ=yQ("Unexpected end of array"),TQ=yQ("Integer out of Range");class HQ{constructor(e){this.arr=e,this.pos=0}}const xQ=e=>new HQ(e),zQ=e=>((e,t)=>{const A=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,A})(e,jQ(e)),JQ=e=>e.arr[e.pos++],jQ=e=>{let t=0,A=1;const n=e.arr.length;for(;e.posGQ)throw TQ}throw pQ},ZQ=oQ?e=>oQ.decode(zQ(e)):e=>{let t=jQ(e);if(0===t)return"";{let A=String.fromCodePoint(JQ(e));if(--t<100)for(;t--;)A+=String.fromCodePoint(JQ(e));else for(;t>0;){const n=t<1e4?t:1e4,i=e.arr.subarray(e.pos,e.pos+n);e.pos+=n,A+=String.fromCodePoint.apply(null,i),t-=n}return decodeURIComponent(escape(A))}},vQ=hQ?e=>{let t="";for(let A=0;ABuffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"),PQ=hQ?e=>{const t=atob(e),A=new Uint8Array(t.length);for(let e=0;e{const t=Buffer.from(e,"base64");return((e,t,A)=>new Uint8Array(e,t,A))(t.buffer,t.byteOffset,t.byteLength)},LQ=new Map,VQ="undefined"==typeof BroadcastChannel?class{constructor(e){this.room=e,this.onmessage=null,this._onChange=t=>t.key===e&&null!==this.onmessage&&this.onmessage({data:PQ(t.newValue||"")}),EQ||addEventListener("storage",this._onChange)}postMessage(e){BQ.setItem(this.room,vQ(new Uint8Array(e)))}close(){EQ||removeEventListener("storage",this._onChange)}}:BroadcastChannel,OQ=e=>Xl(LQ,e,(()=>{const t=ql(),A=new VQ(e);return A.onmessage=e=>t.forEach((t=>t(e.data,"broadcastchannel"))),{bc:A,subs:t}})),_Q=Date.now;class KQ{constructor(){this._observers=Wl()}on(e,t){Xl(this._observers,e,ql).add(t)}once(e,t){const A=(...n)=>{this.off(e,A),t(...n)};this.on(e,A)}off(e,t){const A=this._observers.get(e);void 0!==A&&(A.delete(t),0===A.size&&this._observers.delete(e))}emit(e,t){return $l((this._observers.get(e)||Wl()).values()).forEach((e=>e(...t)))}destroy(){this._observers=Wl()}}class WQ extends KQ{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const e=_Q();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const t=[];this.meta.forEach(((A,n)=>{n!==this.clientID&&3e4<=e-A.lastUpdated&&this.states.has(n)&&t.push(n)})),t.length>0&&XQ(this,t,"timeout")}),IQ(3e3)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const t=this.clientID,A=this.meta.get(t),n=void 0===A?0:A.clock+1,i=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:n,lastUpdated:_Q()});const r=[],o=[],s=[],E=[];null===e?E.push(t):null==i?null!=e&&r.push(t):(o.push(t),lQ(i,e)||s.push(t)),(r.length>0||s.length>0||E.length>0)&&this.emit("change",[{added:r,updated:s,removed:E},"local"]),this.emit("update",[{added:r,updated:o,removed:E},"local"])}setLocalStateField(e,t){const A=this.getLocalState();null!==A&&this.setLocalState({...A,[e]:t})}getStates(){return this.states}}const XQ=(e,t,A)=>{const n=[];for(let A=0;A0&&(e.emit("change",[{added:[],updated:[],removed:n},A]),e.emit("update",[{added:[],updated:[],removed:n},A]))},qQ=(e,t,A=e.states)=>{const n=t.length,i=fQ();mQ(i,n);for(let r=0;re.apply(this,t))),this}off(e,t){const A=this.callbacks[e];return A&&(t?this.callbacks[e]=A.filter((e=>e!==t)):delete this.callbacks[e]),this}removeAllListeners(){this.callbacks={}}}var eh,th;!function(e){e[e.Sync=0]="Sync",e[e.Awareness=1]="Awareness",e[e.Auth=2]="Auth",e[e.QueryAwareness=3]="QueryAwareness",e[e.Stateless=5]="Stateless",e[e.CLOSE=7]="CLOSE",e[e.SyncStatus=8]="SyncStatus"}(eh||(eh={})),function(e){e.Connecting="connecting",e.Connected="connected",e.Disconnected="disconnected"}(th||(th={}));class Ah{constructor(e){this.data=e,this.encoder=fQ(),this.decoder=xQ(new Uint8Array(this.data))}peekVarString(){return(e=>{const t=e.pos,A=ZQ(e);return e.pos=t,A})(this.decoder)}readVarUint(){return jQ(this.decoder)}readVarString(){return ZQ(this.decoder)}readVarUint8Array(){return zQ(this.decoder)}writeVarUint(e){return mQ(this.encoder,e)}writeVarString(e){return NQ(this.encoder,e)}writeVarUint8Array(e){return bQ(this.encoder,e)}length(){return DQ(this.encoder)}}class nh extends $Q{constructor(e){super(),this.messageQueue=[],this.configuration={url:"",document:void 0,WebSocketPolyfill:void 0,parameters:{},connect:!0,broadcast:!0,forceSyncInterval:!1,messageReconnectTimeout:3e4,delay:1e3,initialDelay:0,factor:2,maxAttempts:0,minDelay:1e3,maxDelay:3e4,jitter:!0,timeout:0,onOpen:()=>null,onConnect:()=>null,onMessage:()=>null,onOutgoingMessage:()=>null,onStatus:()=>null,onDisconnect:()=>null,onClose:()=>null,onDestroy:()=>null,onAwarenessUpdate:()=>null,onAwarenessChange:()=>null,quiet:!1,providerMap:new Map},this.webSocket=null,this.webSocketHandlers={},this.shouldConnect=!0,this.status=th.Disconnected,this.lastMessageReceived=0,this.identifier=0,this.intervals={forceSync:null,connectionChecker:null},this.connectionAttempt=null,this.receivedOnOpenPayload=void 0,this.receivedOnStatusPayload=void 0,this.closeTries=0,this.setConfiguration(e),this.configuration.WebSocketPolyfill=e.WebSocketPolyfill?e.WebSocketPolyfill:WebSocket,this.on("open",this.configuration.onOpen),this.on("open",this.onOpen.bind(this)),this.on("connect",this.configuration.onConnect),this.on("message",this.configuration.onMessage),this.on("outgoingMessage",this.configuration.onOutgoingMessage),this.on("status",this.configuration.onStatus),this.on("status",this.onStatus.bind(this)),this.on("disconnect",this.configuration.onDisconnect),this.on("close",this.configuration.onClose),this.on("destroy",this.configuration.onDestroy),this.on("awarenessUpdate",this.configuration.onAwarenessUpdate),this.on("awarenessChange",this.configuration.onAwarenessChange),this.on("close",this.onClose.bind(this)),this.on("message",this.onMessage.bind(this)),this.intervals.connectionChecker=setInterval(this.checkConnection.bind(this),this.configuration.messageReconnectTimeout/10),void 0!==e.connect&&(this.shouldConnect=e.connect),this.shouldConnect&&this.connect()}async onOpen(e){this.receivedOnOpenPayload=e}async onStatus(e){this.receivedOnStatusPayload=e}attach(e){let t;return this.configuration.providerMap.set(e.configuration.name,e),this.status===th.Disconnected&&this.shouldConnect&&(t=this.connect()),this.receivedOnOpenPayload&&e.onOpen(this.receivedOnOpenPayload),this.receivedOnStatusPayload&&e.onStatus(this.receivedOnStatusPayload),t}detach(e){this.configuration.providerMap.delete(e.configuration.name)}setConfiguration(e={}){this.configuration={...this.configuration,...e}}async connect(){if(this.status===th.Connected)return;this.cancelWebsocketRetry&&(this.cancelWebsocketRetry(),this.cancelWebsocketRetry=void 0),this.receivedOnOpenPayload=void 0,this.receivedOnStatusPayload=void 0,this.shouldConnect=!0;const{retryPromise:e,cancelFunc:t}=(()=>{let e=!1;const t=async function(e,t){const A=function(e){return e||(e={}),{delay:void 0===e.delay?200:e.delay,initialDelay:void 0===e.initialDelay?0:e.initialDelay,minDelay:void 0===e.minDelay?0:e.minDelay,maxDelay:void 0===e.maxDelay?0:e.maxDelay,factor:void 0===e.factor?0:e.factor,maxAttempts:void 0===e.maxAttempts?3:e.maxAttempts,timeout:void 0===e.timeout?0:e.timeout,jitter:!0===e.jitter,handleError:void 0===e.handleError?null:e.handleError,handleTimeout:void 0===e.handleTimeout?null:e.handleTimeout,beforeAttempt:void 0===e.beforeAttempt?null:e.beforeAttempt,calculateDelay:void 0===e.calculateDelay?null:e.calculateDelay}}(t);for(const e of["delay","initialDelay","minDelay","maxDelay","maxAttempts","timeout"]){const t=A[e];if(!Number.isInteger(t)||t<0)throw new Error(`Value for ${e} must be an integer greater than or equal to 0`)}if(A.factor.constructor!==Number||A.factor<0)throw new Error("Value for factor must be a number greater than or equal to 0");if(A.delay{if(A.handleError&&await A.handleError(e,n,A),n.aborted||0===n.attemptsRemaining)throw e;n.attemptNum++;const r=i(n,A);return r&&await _l(r),t()};return n.attemptsRemaining>0&&n.attemptsRemaining--,A.timeout?new Promise(((t,i)=>{const o=setTimeout((()=>{if(A.handleTimeout)try{t(A.handleTimeout(n,A))}catch(e){i(e)}else{const e=new Error(`Retry timeout (attemptNum: ${n.attemptNum}, timeout: ${A.timeout})`);e.code="ATTEMPT_TIMEOUT",i(e)}}),A.timeout);e(n,A).then((e=>{clearTimeout(o),t(e)})).catch((e=>{clearTimeout(o),r(e).then(t).catch(i)}))})):e(n,A).catch(r)}()}(this.createWebSocketConnection.bind(this),{delay:this.configuration.delay,initialDelay:this.configuration.initialDelay,factor:this.configuration.factor,maxAttempts:this.configuration.maxAttempts,minDelay:this.configuration.minDelay,maxDelay:this.configuration.maxDelay,jitter:this.configuration.jitter,timeout:this.configuration.timeout,beforeAttempt:t=>{this.shouldConnect&&!e||t.abort()}}).catch((e=>{if(e&&"ATTEMPT_ABORTED"!==e.code)throw e}));return{retryPromise:t,cancelFunc:()=>{e=!0}}})();return this.cancelWebsocketRetry=t,e}attachWebSocketListeners(e,t){const{identifier:A}=e;this.webSocketHandlers[A]={message:e=>this.emit("message",e),close:e=>this.emit("close",{event:e}),open:e=>this.emit("open",e),error:e=>{t(e)}};const n=this.webSocketHandlers[e.identifier];Object.keys(n).forEach((t=>{e.addEventListener(t,n[t])}))}cleanupWebSocket(){if(!this.webSocket)return;const{identifier:e}=this.webSocket,t=this.webSocketHandlers[e];Object.keys(t).forEach((A=>{var n;null===(n=this.webSocket)||void 0===n||n.removeEventListener(A,t[A]),delete this.webSocketHandlers[e]})),this.webSocket.close(),this.webSocket=null}createWebSocketConnection(){return new Promise(((e,t)=>{this.webSocket&&(this.messageQueue=[],this.cleanupWebSocket()),this.lastMessageReceived=0,this.identifier+=1;const A=new this.configuration.WebSocketPolyfill(this.url);A.binaryType="arraybuffer",A.identifier=this.identifier,this.attachWebSocketListeners(A,t),this.webSocket=A,this.status=th.Connecting,this.emit("status",{status:th.Connecting}),this.connectionAttempt={resolve:e,reject:t}}))}onMessage(e){var t;this.resolveConnectionAttempt(),this.lastMessageReceived=_Q();const A=new Ah(e.data).peekVarString();null===(t=this.configuration.providerMap.get(A))||void 0===t||t.onMessage(e)}resolveConnectionAttempt(){this.connectionAttempt&&(this.connectionAttempt.resolve(),this.connectionAttempt=null,this.status=th.Connected,this.emit("status",{status:th.Connected}),this.emit("connect"),this.messageQueue.forEach((e=>this.send(e))),this.messageQueue=[])}stopConnectionAttempt(){this.connectionAttempt=null}rejectConnectionAttempt(){var e;null===(e=this.connectionAttempt)||void 0===e||e.reject(),this.connectionAttempt=null}checkConnection(){var e;this.status===th.Connected&&this.lastMessageReceived&&(this.configuration.messageReconnectTimeout>=_Q()-this.lastMessageReceived||(this.closeTries+=1,this.closeTries>2?(this.onClose({event:{code:4408,reason:"forced"}}),this.closeTries=0):(null===(e=this.webSocket)||void 0===e||e.close(),this.messageQueue=[])))}get serverUrl(){for(;"/"===this.configuration.url[this.configuration.url.length-1];)return this.configuration.url.slice(0,this.configuration.url.length-1);return this.configuration.url}get url(){const e=(()=>((e,t)=>{const A=[];for(const n in e)A.push(t(e[n],n));return A})(this.configuration.parameters,((e,t)=>`${encodeURIComponent(t)}=${encodeURIComponent(e)}`)).join("&"))();return`${this.serverUrl}${0===e.length?"":`?${e}`}`}disconnect(){if(this.shouldConnect=!1,null!==this.webSocket)try{this.webSocket.close(),this.messageQueue=[]}catch{}}send(e){var t;(null===(t=this.webSocket)||void 0===t?void 0:t.readyState)===Ol.Open?this.webSocket.send(e):this.messageQueue.push(e)}onClose({event:e}){this.closeTries=0,this.cleanupWebSocket(),this.status===th.Connected&&(this.status=th.Disconnected,this.emit("status",{status:th.Disconnected}),this.emit("disconnect",{event:e})),4401===e.code&&("Unauthorized"===e.reason?console.warn("[HocuspocusProvider] An authentication token is required, but you didn’t send one. Try adding a `token` to your HocuspocusProvider configuration. Won’t try again."):console.warn(`[HocuspocusProvider] Connection closed with status Unauthorized: ${e.reason}`),this.shouldConnect=!1),4403!==e.code||this.configuration.quiet?(1009===e.code&&(console.warn(`[HocuspocusProvider] Connection closed with status MessageTooBig: ${e.reason}`),this.shouldConnect=!1),this.connectionAttempt?this.rejectConnectionAttempt():this.shouldConnect&&this.connect(),this.shouldConnect||this.status!==th.Disconnected&&(this.status=th.Disconnected,this.emit("status",{status:th.Disconnected}),this.emit("disconnect",{event:e}))):console.warn("[HocuspocusProvider] The provided authentication token isn’t allowed to connect to this server. Will try again.")}destroy(){this.emit("destroy"),this.intervals.forceSync&&clearInterval(this.intervals.forceSync),clearInterval(this.intervals.connectionChecker),this.stopConnectionAttempt(),this.disconnect(),this.removeAllListeners(),this.cleanupWebSocket()}}const ih=(e,t)=>{mQ(e,0);const A=(e=>((e,t=new pA)=>(e instanceof Map?JA(t,e):((e,t)=>{JA(e,Bn(t.store))})(t,e),t.toUint8Array()))(e,new bA))(t);bQ(e,A)},rh=(e,t,A)=>{mQ(e,1),bQ(e,((e,t)=>((e,t=new Uint8Array([0]),A=new TA)=>{((e,t,A=new Map)=>{HA(e,t.store,A),CA(e,GA(t.store))})(A,e,zA(t));const n=[A.toUint8Array()];if(e.store.pendingDs&&n.push(e.store.pendingDs),e.store.pendingStructs&&n.push(bn(e.store.pendingStructs.update,t)),n.length>1){if(A.constructor===yA)return Un(n.map(((e,t)=>0===t?e:Hn(e))));if(A.constructor===TA)return Nn(n)}return n[0]})(e,t,new yA))(t,A))},oh=(e,t,A)=>{try{((e,t,A)=>{xA(e,t,A,UA)})(t,zQ(e),A)}catch(e){console.error("Caught error while handling a Yjs update",e)}},sh=oh;class Eh{constructor(){this.encoder=fQ()}get(e){return e.encoder}toUint8Array(){return FQ(this.encoder)}}class Bh{constructor(e){this.broadcasted=!1,this.message=e}setBroadcasted(e){return this.broadcasted=e,this}apply(e,t){const{message:A}=this,n=A.readVarUint(),i=A.length();switch(n){case eh.Sync:this.applySyncMessage(e,t);break;case eh.Awareness:this.applyAwarenessMessage(e);break;case eh.Auth:this.applyAuthMessage(e);break;case eh.QueryAwareness:this.applyQueryAwarenessMessage(e);break;case eh.Stateless:e.receiveStateless(ZQ(A.decoder));break;case eh.SyncStatus:this.applySyncStatusMessage(e,1===(e=>{let t=e.arr[e.pos++],A=63&t,n=64;const i=(64&t)>0?-1:1;if(!(t&dQ))return i*A;const r=e.arr.length;for(;e.posGQ)throw TQ}throw pQ})(A.decoder));break;default:throw new Error(`Can’t apply message of unknown type: ${n}`)}A.length()>i+1&&(this.broadcasted?e.broadcast(Eh,{encoder:A.encoder}):e.send(Eh,{encoder:A.encoder}))}applySyncMessage(e,t){const{message:A}=this;A.writeVarUint(eh.Sync);const n=((e,t,A,n)=>{const i=jQ(e);switch(i){case 0:((e,t,A)=>{rh(t,A,zQ(e))})(e,t,A);break;case 1:oh(e,A,n);break;case 2:sh(e,A,n);break;default:throw new Error("Unknown message type")}return i})(A.decoder,A.encoder,e.document,e);t&&1===n&&(e.synced=!0)}applySyncStatusMessage(e,t){t&&e.decrementUnsyncedChanges()}applyAwarenessMessage(e){if(!e.awareness)return;const{message:t}=this;((e,t,A)=>{const n=xQ(t),i=_Q(),r=[],o=[],s=[],E=[],B=jQ(n);for(let t=0;t0||s.length>0||E.length>0)&&e.emit("change",[{added:r,updated:s,removed:E},A]),(r.length>0||o.length>0||E.length>0)&&e.emit("update",[{added:r,updated:o,removed:E},A])})(e.awareness,t.readVarUint8Array(),e)}applyAuthMessage(e){const{message:t}=this;((e,t,A)=>{switch(vl(e)){case Ll.PermissionDenied:t(Pl(e));break;case Ll.Authenticated:A(Pl(e))}})(t.decoder,e.permissionDeniedHandler.bind(e),e.authenticatedHandler.bind(e))}applyQueryAwarenessMessage(e){if(!e.awareness)return;const{message:t}=this;t.writeVarUint(eh.Awareness),t.writeVarUint8Array(qQ(e.awareness,Array.from(e.awareness.getStates().keys())))}}class ch{constructor(e,t={}){this.message=new e,this.encoder=this.message.get(t)}create(){return FQ(this.encoder)}send(e){null==e||e.send(this.create())}broadcast(e){((e,t,A=null)=>{const n=OQ(e);n.bc.postMessage(t),n.subs.forEach((e=>e(t,A)))})(e,this.create())}}class ah extends Eh{constructor(){super(...arguments),this.type=eh.Auth,this.description="Authentication"}get(e){if(void 0===e.token)throw new Error("The authentication message requires `token` as an argument.");var t,A;return NQ(this.encoder,e.documentName),mQ(this.encoder,this.type),A=e.token,yl(t=this.encoder,Ll.Token),Hl(t,A),this.encoder}}class gh extends Eh{constructor(){super(...arguments),this.type=eh.Awareness,this.description="Awareness states update"}get(e){if(void 0===e.awareness)throw new Error("The awareness message requires awareness as an argument");if(void 0===e.clients)throw new Error("The awareness message requires clients as an argument");let t;return NQ(this.encoder,e.documentName),mQ(this.encoder,this.type),t=void 0===e.states?qQ(e.awareness,e.clients):qQ(e.awareness,e.clients,e.states),bQ(this.encoder,t),this.encoder}}class lh extends Eh{constructor(){super(...arguments),this.type=eh.CLOSE,this.description="Ask the server to close the connection"}get(e){return NQ(this.encoder,e.documentName),mQ(this.encoder,this.type),this.encoder}}class Qh extends Eh{constructor(){super(...arguments),this.type=eh.QueryAwareness,this.description="Queries awareness states"}get(e){return NQ(this.encoder,e.documentName),mQ(this.encoder,this.type),this.encoder}}class hh extends Eh{constructor(){super(...arguments),this.type=eh.Stateless,this.description="A stateless message"}get(e){var t;return NQ(this.encoder,e.documentName),mQ(this.encoder,this.type),NQ(this.encoder,null!==(t=e.payload)&&void 0!==t?t:""),this.encoder}}class uh extends Eh{constructor(){super(...arguments),this.type=eh.Sync,this.description="First sync step"}get(e){if(void 0===e.document)throw new Error("The sync step one message requires document as an argument");return NQ(this.encoder,e.documentName),mQ(this.encoder,this.type),ih(this.encoder,e.document),this.encoder}}class wh extends Eh{constructor(){super(...arguments),this.type=eh.Sync,this.description="Second sync step"}get(e){if(void 0===e.document)throw new Error("The sync step two message requires document as an argument");return NQ(this.encoder,e.documentName),mQ(this.encoder,this.type),rh(this.encoder,e.document),this.encoder}}class Mh extends Eh{constructor(){super(...arguments),this.type=eh.Sync,this.description="A document update"}get(e){var t,A;return NQ(this.encoder,e.documentName),mQ(this.encoder,this.type),A=e.update,mQ(t=this.encoder,2),bQ(t,A),this.encoder}}class Rh extends Error{constructor(){super(...arguments),this.code=1001}}class Ih extends $Q{constructor(e){var t,A,n;super(),this.configuration={name:"",document:void 0,awareness:void 0,token:null,parameters:{},broadcast:!0,forceSyncInterval:!1,onAuthenticated:()=>null,onAuthenticationFailed:()=>null,onOpen:()=>null,onConnect:()=>null,onMessage:()=>null,onOutgoingMessage:()=>null,onStatus:()=>null,onSynced:()=>null,onDisconnect:()=>null,onClose:()=>null,onDestroy:()=>null,onAwarenessUpdate:()=>null,onAwarenessChange:()=>null,onStateless:()=>null,quiet:!1,connect:!0,preserveConnection:!0},this.subscribedToBroadcastChannel=!1,this.isSynced=!1,this.unsyncedChanges=0,this.status=th.Disconnected,this.isAuthenticated=!1,this.authorizedScope=void 0,this.mux=(()=>{let e=!0;return(t,A)=>{if(e){e=!1;try{t()}finally{e=!0}}else void 0!==A&&A()}})(),this.intervals={forceSync:null},this.isConnected=!0,this.boundBroadcastChannelSubscriber=this.broadcastChannelSubscriber.bind(this),this.boundPageUnload=this.pageUnload.bind(this),this.boundOnOpen=this.onOpen.bind(this),this.boundOnClose=this.onClose.bind(this),this.boundOnStatus=this.onStatus.bind(this),this.forwardConnect=e=>this.emit("connect",e),this.forwardOpen=e=>this.emit("open",e),this.forwardClose=e=>this.emit("close",e),this.forwardDisconnect=e=>this.emit("disconnect",e),this.forwardDestroy=e=>this.emit("destroy",e),this.setConfiguration(e),this.configuration.document=e.document?e.document:new YA,this.configuration.awareness=void 0!==e.awareness?e.awareness:new WQ(this.document),this.on("open",this.configuration.onOpen),this.on("message",this.configuration.onMessage),this.on("outgoingMessage",this.configuration.onOutgoingMessage),this.on("synced",this.configuration.onSynced),this.on("destroy",this.configuration.onDestroy),this.on("awarenessUpdate",this.configuration.onAwarenessUpdate),this.on("awarenessChange",this.configuration.onAwarenessChange),this.on("stateless",this.configuration.onStateless),this.on("authenticated",this.configuration.onAuthenticated),this.on("authenticationFailed",this.configuration.onAuthenticationFailed),this.configuration.websocketProvider.on("connect",this.configuration.onConnect),this.configuration.websocketProvider.on("connect",this.forwardConnect),this.configuration.websocketProvider.on("open",this.boundOnOpen),this.configuration.websocketProvider.on("open",this.forwardOpen),this.configuration.websocketProvider.on("close",this.boundOnClose),this.configuration.websocketProvider.on("close",this.configuration.onClose),this.configuration.websocketProvider.on("close",this.forwardClose),this.configuration.websocketProvider.on("status",this.boundOnStatus),this.configuration.websocketProvider.on("disconnect",this.configuration.onDisconnect),this.configuration.websocketProvider.on("disconnect",this.forwardDisconnect),this.configuration.websocketProvider.on("destroy",this.configuration.onDestroy),this.configuration.websocketProvider.on("destroy",this.forwardDestroy),null===(t=this.awareness)||void 0===t||t.on("update",(()=>{this.emit("awarenessUpdate",{states:Vl(this.awareness.getStates())})})),null===(A=this.awareness)||void 0===A||A.on("change",(()=>{this.emit("awarenessChange",{states:Vl(this.awareness.getStates())})})),this.document.on("update",this.documentUpdateHandler.bind(this)),null===(n=this.awareness)||void 0===n||n.on("update",this.awarenessUpdateHandler.bind(this)),this.registerEventListeners(),this.configuration.forceSyncInterval&&(this.intervals.forceSync=setInterval(this.forceSync.bind(this),this.configuration.forceSyncInterval)),this.configuration.websocketProvider.attach(this)}onStatus({status:e}){this.status=e,this.configuration.onStatus({status:e}),this.emit("status",{status:e})}setConfiguration(e={}){!e.websocketProvider&&e.url&&(this.configuration.websocketProvider=new nh({url:e.url,connect:e.connect,parameters:e.parameters})),this.configuration={...this.configuration,...e}}get document(){return this.configuration.document}get awareness(){return this.configuration.awareness}get hasUnsyncedChanges(){return this.unsyncedChanges>0}incrementUnsyncedChanges(){this.unsyncedChanges+=1,this.emit("unsyncedChanges",this.unsyncedChanges)}decrementUnsyncedChanges(){this.unsyncedChanges-=1,0===this.unsyncedChanges&&(this.synced=!0),this.emit("unsyncedChanges",this.unsyncedChanges)}forceSync(){this.send(uh,{document:this.document,documentName:this.configuration.name})}pageUnload(){this.awareness&&XQ(this.awareness,[this.document.clientID],"window unload")}registerEventListeners(){"undefined"!=typeof window&&window.addEventListener("unload",this.boundPageUnload)}sendStateless(e){this.send(hh,{documentName:this.configuration.name,payload:e})}documentUpdateHandler(e,t){t!==this&&(this.incrementUnsyncedChanges(),this.send(Mh,{update:e,documentName:this.configuration.name},!0))}awarenessUpdateHandler({added:e,updated:t,removed:A},n){const i=e.concat(t).concat(A);this.send(gh,{awareness:this.awareness,clients:i,documentName:this.configuration.name},!0)}get synced(){return this.isSynced}set synced(e){this.isSynced!==e&&(this.isSynced=e,this.emit("synced",{state:e}),this.emit("sync",{state:e}))}receiveStateless(e){this.emit("stateless",{payload:e})}get isAuthenticationRequired(){return!!this.configuration.token&&!this.isAuthenticated}async connect(){return this.configuration.broadcast&&this.subscribeToBroadcastChannel(),this.configuration.websocketProvider.shouldConnect=!0,this.configuration.websocketProvider.attach(this)}disconnect(){this.disconnectBroadcastChannel(),this.configuration.websocketProvider.detach(this),this.isConnected=!1,this.configuration.preserveConnection||this.configuration.websocketProvider.disconnect()}async onOpen(e){let t;this.isAuthenticated=!1,this.isConnected=!0,this.emit("open",{event:e});try{t=await this.getToken()}catch(e){return void this.permissionDeniedHandler(`Failed to get token: ${e}`)}this.isAuthenticationRequired&&this.send(ah,{token:t,documentName:this.configuration.name}),this.startSync()}async getToken(){return"function"==typeof this.configuration.token?await this.configuration.token():this.configuration.token}startSync(){this.incrementUnsyncedChanges(),this.send(uh,{document:this.document,documentName:this.configuration.name}),this.awareness&&null!==this.awareness.getLocalState()&&this.send(gh,{awareness:this.awareness,clients:[this.document.clientID],documentName:this.configuration.name})}send(e,t,A=!1){if(!this.isConnected)return;A&&this.mux((()=>{this.broadcast(e,t)}));const n=new ch(e,t);this.emit("outgoingMessage",{message:n.message}),n.send(this.configuration.websocketProvider)}onMessage(e){const t=new Ah(e.data),A=t.readVarString();t.writeVarString(A),this.emit("message",{event:e,message:new Ah(e.data)}),new Bh(t).apply(this,!0)}onClose(e){this.isAuthenticated=!1,this.synced=!1,this.awareness&&XQ(this.awareness,Array.from(this.awareness.getStates().keys()).filter((e=>e!==this.document.clientID)),this)}destroy(){this.emit("destroy"),this.intervals.forceSync&&clearInterval(this.intervals.forceSync),this.awareness&&(XQ(this.awareness,[this.document.clientID],"provider destroy"),this.awareness.off("update",this.awarenessUpdateHandler),this.awareness.destroy()),this.document.off("update",this.documentUpdateHandler),this.removeAllListeners(),this.configuration.websocketProvider.off("connect",this.configuration.onConnect),this.configuration.websocketProvider.off("connect",this.forwardConnect),this.configuration.websocketProvider.off("open",this.boundOnOpen),this.configuration.websocketProvider.off("open",this.forwardOpen),this.configuration.websocketProvider.off("close",this.boundOnClose),this.configuration.websocketProvider.off("close",this.configuration.onClose),this.configuration.websocketProvider.off("close",this.forwardClose),this.configuration.websocketProvider.off("status",this.boundOnStatus),this.configuration.websocketProvider.off("disconnect",this.configuration.onDisconnect),this.configuration.websocketProvider.off("disconnect",this.forwardDisconnect),this.configuration.websocketProvider.off("destroy",this.configuration.onDestroy),this.configuration.websocketProvider.off("destroy",this.forwardDestroy),this.send(lh,{documentName:this.configuration.name}),this.disconnect(),"undefined"!=typeof window&&window.removeEventListener("unload",this.boundPageUnload)}permissionDeniedHandler(e){this.emit("authenticationFailed",{reason:e}),this.isAuthenticated=!1,this.disconnect(),this.status=th.Disconnected}authenticatedHandler(e){this.isAuthenticated=!0,this.authorizedScope=e,this.emit("authenticated")}get broadcastChannel(){return`${this.configuration.name}`}broadcastChannelSubscriber(e){this.mux((()=>{const t=new Ah(e),A=t.readVarString();t.writeVarString(A),new Bh(t).setBroadcasted(!0).apply(this,!1)}))}subscribeToBroadcastChannel(){var e;this.subscribedToBroadcastChannel||(e=this.boundBroadcastChannelSubscriber,OQ(this.broadcastChannel).subs.add(e),this.subscribedToBroadcastChannel=!0),this.mux((()=>{this.broadcast(uh,{document:this.document,documentName:this.configuration.name}),this.broadcast(wh,{document:this.document,documentName:this.configuration.name}),this.broadcast(Qh,{document:this.document,documentName:this.configuration.name}),this.awareness&&this.broadcast(gh,{awareness:this.awareness,clients:[this.document.clientID],document:this.document,documentName:this.configuration.name})}))}disconnectBroadcastChannel(){this.awareness&&this.send(gh,{awareness:this.awareness,clients:[this.document.clientID],states:new Map,documentName:this.configuration.name},!0),this.subscribedToBroadcastChannel&&(((e,t)=>{const A=OQ(e);A.subs.delete(t)&&0===A.subs.size&&(A.bc.close(),LQ.delete(e))})(this.broadcastChannel,this.boundBroadcastChannelSubscriber),this.subscribedToBroadcastChannel=!1)}broadcast(e,t){this.configuration.broadcast&&this.subscribedToBroadcastChannel&&new ch(e,t).broadcast(this.broadcastChannel)}setAwarenessField(e,t){if(!this.awareness)throw new Rh(`Cannot set awareness field "${e}" to ${JSON.stringify(t)}. You have disabled Awareness for this provider by explicitly passing awareness: null in the provider configuration.`);this.awareness.setLocalStateField(e,t)}}crypto.getRandomValues.bind(crypto);const dh={};function kh(e,t){"string"!=typeof t&&(t=kh.defaultChars);const A=function(e){let t=dh[e];if(t)return t;t=dh[e]=[];for(let e=0;e<128;e++){const A=String.fromCharCode(e);t.push(A)}for(let A=0;A=55296&&e<=57343?"���":String.fromCharCode(e),n+=6;continue}}if(240==(248&r)&&n+91114111?t+="����":(e-=65536,t+=String.fromCharCode(55296+(e>>10),56320+(1023&e))),n+=9;continue}}t+="�"}}return t}))}kh.defaultChars=";/?:@&=+$,#",kh.componentChars="";const Gh={};function Ch(e,t,A){"string"!=typeof t&&(A=t,t=Ch.defaultChars),void 0===A&&(A=!0);const n=function(e){let t=Gh[e];if(t)return t;t=Gh[e]=[];for(let e=0;e<128;e++){const A=String.fromCharCode(e);/^[0-9a-z]$/i.test(A)?t.push(A):t.push("%"+("0"+e.toString(16).toUpperCase()).slice(-2))}for(let A=0;A=55296&&o<=57343){if(o>=55296&&o<=56319&&t+1=56320&&A<=57343){i+=encodeURIComponent(e[t]+e[t+1]),t++;continue}}i+="%EF%BF%BD"}else i+=encodeURIComponent(e[t])}return i}function fh(e){let t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||"",t}function Dh(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}Ch.defaultChars=";/?:@&=+$,-_.!~*'()#",Ch.componentChars="-_.!~*'()";const Fh=/^([a-z0-9.+-]+:)/i,Yh=/:[0-9]*$/,mh=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,Uh=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),Sh=["'"].concat(Uh),Nh=["%","/","?",";","#"].concat(Sh),bh=["/","?","#"],yh=/^[+a-z0-9A-Z_-]{0,63}$/,ph=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Th={javascript:!0,"javascript:":!0},Hh={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function xh(e,t){if(e&&e instanceof Dh)return e;const A=new Dh;return A.parse(e,t),A}Dh.prototype.parse=function(e,t){let A,n,i,r=e;if(r=r.trim(),!t&&1===e.split("#").length){const e=mh.exec(r);if(e)return this.pathname=e[1],e[2]&&(this.search=e[2]),this}let o=Fh.exec(r);if(o&&(o=o[0],A=o.toLowerCase(),this.protocol=o,r=r.substr(o.length)),(t||o||r.match(/^\/\/[^@\/]+@[^@\/]+/))&&(i="//"===r.substr(0,2),!i||o&&Th[o]||(r=r.substr(2),this.slashes=!0)),!Th[o]&&(i||o&&!Hh[o])){let e,t,A=-1;for(let e=0;e127?n+="x":n+=A[e];if(!n.match(yh)){const n=e.slice(0,t),i=e.slice(t+1),o=A.match(ph);o&&(n.push(o[1]),i.unshift(o[2])),i.length&&(r=i.join(".")+r),this.hostname=n.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),o&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const s=r.indexOf("#");-1!==s&&(this.hash=r.substr(s),r=r.slice(0,s));const E=r.indexOf("?");return-1!==E&&(this.search=r.substr(E),r=r.slice(0,E)),r&&(this.pathname=r),Hh[A]&&this.hostname&&!this.pathname&&(this.pathname=""),this},Dh.prototype.parseHost=function(e){let t=Yh.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};const zh=Object.freeze({__proto__:null,decode:kh,encode:Ch,format:fh,parse:xh}),Jh=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,jh=/[\0-\x1F\x7F-\x9F]/,Zh=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,vh=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/,Ph=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,Lh=Object.freeze({__proto__:null,Any:Jh,Cc:jh,Cf:/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,P:Zh,S:vh,Z:Ph}),Vh=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map((e=>e.charCodeAt(0)))),Oh=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map((e=>e.charCodeAt(0))));var _h;const Kh=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),Wh=null!==(_h=String.fromCodePoint)&&void 0!==_h?_h:function(e){let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e),t};var Xh,qh,$h,eu;function tu(e){return e>=Xh.ZERO&&e<=Xh.NINE}!function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"}(Xh||(Xh={})),function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"}(qh||(qh={})),function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"}($h||($h={})),function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"}(eu||(eu={}));class Au{constructor(e,t,A){this.decodeTree=e,this.emitCodePoint=t,this.errors=A,this.state=$h.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=eu.Strict}startEntity(e){this.decodeMode=e,this.state=$h.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(e,t){switch(this.state){case $h.EntityStart:return e.charCodeAt(t)===Xh.NUM?(this.state=$h.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=$h.NamedEntity,this.stateNamedEntity(e,t));case $h.NumericStart:return this.stateNumericStart(e,t);case $h.NumericDecimal:return this.stateNumericDecimal(e,t);case $h.NumericHex:return this.stateNumericHex(e,t);case $h.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===Xh.LOWER_X?(this.state=$h.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=$h.NumericDecimal,this.stateNumericDecimal(e,t))}addToNumericResult(e,t,A,n){if(t!==A){const i=A-t;this.result=this.result*Math.pow(n,i)+parseInt(e.substr(t,i),n),this.consumed+=i}}stateNumericHex(e,t){const A=t;for(;t=Xh.UPPER_A&&n<=Xh.UPPER_F||n>=Xh.LOWER_A&&n<=Xh.LOWER_F)))return this.addToNumericResult(e,A,t,16),this.emitNumericEntity(i,3);t+=1}var n;return this.addToNumericResult(e,A,t,16),-1}stateNumericDecimal(e,t){const A=t;for(;t=55296&&e<=57343||e>1114111?65533:null!==(t=Kh.get(e))&&void 0!==t?t:e}(this.result),this.consumed),this.errors&&(e!==Xh.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(e,t){const{decodeTree:A}=this;let n=A[this.treeIndex],i=(n&qh.VALUE_LENGTH)>>14;for(;t=Xh.UPPER_A&&e<=Xh.UPPER_Z||e>=Xh.LOWER_A&&e<=Xh.LOWER_Z||tu(e)}(r)))?0:this.emitNotTerminatedNamedEntity();if(n=A[this.treeIndex],i=(n&qh.VALUE_LENGTH)>>14,0!==i){if(o===Xh.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==eu.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}var r;return-1}emitNotTerminatedNamedEntity(){var e;const{result:t,decodeTree:A}=this;return this.emitNamedEntityData(t,(A[t]&qh.VALUE_LENGTH)>>14,this.consumed),null===(e=this.errors)||void 0===e||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,A){const{decodeTree:n}=this;return this.emitCodePoint(1===t?n[e]&~qh.VALUE_LENGTH:n[e+1],A),3===t&&this.emitCodePoint(n[e+2],A),A}end(){var e;switch(this.state){case $h.NamedEntity:return 0===this.result||this.decodeMode===eu.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case $h.NumericDecimal:return this.emitNumericEntity(0,2);case $h.NumericHex:return this.emitNumericEntity(0,3);case $h.NumericStart:return null===(e=this.errors)||void 0===e||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case $h.EntityStart:return 0}}}function nu(e){let t="";const A=new Au(e,(e=>t+=Wh(e)));return function(e,n){let i=0,r=0;for(;(r=e.indexOf("&",r))>=0;){t+=e.slice(i,r),A.startEntity(n);const o=A.write(e,r+1);if(o<0){i=r+A.end();break}i=r+o,r=0===o?i+1:i}const o=t+e.slice(i);return t="",o}}function iu(e,t,A,n){const i=(t&qh.BRANCH_LENGTH)>>7,r=t&qh.JUMP_TABLE;if(0===i)return 0!==r&&n===r?A:-1;if(r){const t=n-r;return t<0||t>=i?-1:e[A+t]-1}let o=A,s=o+i-1;for(;o<=s;){const t=o+s>>>1,A=e[t];if(An))return e[t+i];s=t-1}}return-1}const ru=nu(Vh);function ou(e,t=eu.Legacy){return ru(e,t)}function su(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)}nu(Oh);const Eu=Object.prototype.hasOwnProperty;function Bu(e){return Array.prototype.slice.call(arguments,1).forEach((function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(A){e[A]=t[A]}))}})),e}function cu(e,t,A){return[].concat(e.slice(0,t),A,e.slice(t+1))}function au(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||!(65535&~e&&65534!=(65535&e))||e>=0&&e<=8||11===e||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function gu(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e))):String.fromCharCode(e)}const lu=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,Qu=new RegExp(lu.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),hu=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function uu(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(Qu,(function(e,t,A){return t||function(e,t){if(35===t.charCodeAt(0)&&hu.test(t)){const A="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return au(A)?gu(A):e}const A=ou(e);return A!==e?A:e}(e,A)}))}const wu=/[&<>"]/,Mu=/[&<>"]/g,Ru={"&":"&","<":"<",">":">",'"':"""};function Iu(e){return Ru[e]}function du(e){return wu.test(e)?e.replace(Mu,Iu):e}const ku=/[.?*+^$[\]\\(){}|-]/g;function Gu(e){switch(e){case 9:case 32:return!0}return!1}function Cu(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function fu(e){return Zh.test(e)||vh.test(e)}function Du(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function Fu(e){return e=e.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}const Yu=Object.freeze({__proto__:null,lib:{mdurl:zh,ucmicro:Lh},assign:Bu,isString:su,has:function(e,t){return Eu.call(e,t)},unescapeMd:function(e){return e.indexOf("\\")<0?e:e.replace(lu,"$1")},unescapeAll:uu,isValidEntityCode:au,fromCodePoint:gu,escapeHtml:du,arrayReplaceAt:cu,isSpace:Gu,isWhiteSpace:Cu,isMdAsciiPunct:Du,isPunctChar:fu,escapeRE:function(e){return e.replace(ku,"\\$&")},normalizeReference:Fu}),mu=Object.freeze({__proto__:null,parseLinkLabel:function(e,t,A){let n,i,r,o;const s=e.posMax,E=e.pos;for(e.pos=t+1,n=1;e.pos32))return r;if(41===n){if(0===o)break;o--}i++}return t===i||0!==o||(r.str=uu(e.slice(t,i)),r.pos=i,r.ok=!0),r},parseLinkTitle:function(e,t,A,n){let i,r=t;const o={ok:!1,can_continue:!1,pos:0,str:"",marker:0};if(n)o.str=n.str,o.marker=n.marker;else{if(r>=A)return o;let n=e.charCodeAt(r);if(34!==n&&39!==n&&40!==n)return o;t++,r++,40===n&&(n=41),o.marker=n}for(;r"+du(r.content)+""},Uu.code_block=function(e,t,A,n,i){return""+du(e[t].content)+"\n"},Uu.fence=function(e,t,A,n,i){const r=e[t],o=r.info?uu(r.info).trim():"";let s,E="",B="";if(o){const e=o.split(/(\s+)/g);E=e[0],B=e.slice(2).join("")}if(s=A.highlight&&A.highlight(r.content,E,B)||du(r.content),0===s.indexOf("${s}\n`}return`
      ${s}
      \n`},Uu.image=function(e,t,A,n,i){const r=e[t];return r.attrs[r.attrIndex("alt")][1]=i.renderInlineAsText(r.children,A,n),i.renderToken(e,t,A)},Uu.hardbreak=function(e,t,A){return A.xhtmlOut?"
      \n":"
      \n"},Uu.softbreak=function(e,t,A){return A.breaks?A.xhtmlOut?"
      \n":"
      \n":"\n"},Uu.text=function(e,t){return du(e[t].content)},Uu.html_block=function(e,t){return e[t].content},Uu.html_inline=function(e,t){return e[t].content},Su.prototype.renderAttrs=function(e){let t,A,n;if(!e.attrs)return"";for(n="",t=0,A=e.attrs.length;t\n":">",i},Su.prototype.renderInline=function(e,t,A){let n="";const i=this.rules;for(let r=0,o=e.length;r=0&&(A=this.attrs[t][1]),A},bu.prototype.attrJoin=function(e,t){const A=this.attrIndex(e);A<0?this.attrPush([e,t]):this.attrs[A][1]=this.attrs[A][1]+" "+t},yu.prototype.Token=bu;const pu=/\r\n?|\n/g,Tu=/\0/g;const Hu=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,xu=/\((c|tm|r)\)/i,zu=/\((c|tm|r)\)/gi,Ju={c:"©",r:"®",tm:"™"};function ju(e,t){return Ju[t.toLowerCase()]}function Zu(e){let t=0;for(let A=e.length-1;A>=0;A--){const n=e[A];"text"!==n.type||t||(n.content=n.content.replace(zu,ju)),"link_open"===n.type&&"auto"===n.info&&t--,"link_close"===n.type&&"auto"===n.info&&t++}}function vu(e){let t=0;for(let A=e.length-1;A>=0;A--){const n=e[A];"text"!==n.type||t||Hu.test(n.content)&&(n.content=n.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1—").replace(/(^|\s)--(?=\s|$)/gm,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1–")),"link_open"===n.type&&"auto"===n.info&&t--,"link_close"===n.type&&"auto"===n.info&&t++}}const Pu=/['"]/,Lu=/['"]/g;function Vu(e,t,A){return e.slice(0,t)+A+e.slice(t+1)}function Ou(e,t){let A;const n=[];for(let i=0;i=0&&!(n[A].level<=o);A--);if(n.length=A+1,"text"!==r.type)continue;let s=r.content,E=0,B=s.length;e:for(;E=0)Q=s.charCodeAt(c.index-1);else for(A=i-1;A>=0&&"softbreak"!==e[A].type&&"hardbreak"!==e[A].type;A--)if(e[A].content){Q=e[A].content.charCodeAt(e[A].content.length-1);break}let h=32;if(E=48&&Q<=57&&(g=a=!1),a&&g&&(a=u,g=w),a||g){if(g)for(A=n.length-1;A>=0;A--){let a=n[A];if(n[A].level=0;r--){const o=n[r];if("link_close"!==o.type){if("html_inline"===o.type&&(/^\s]/i.test(o.content)&&i>0&&i--,/^<\/a\s*>/i.test(o.content)&&i++),!(i>0)&&"text"===o.type&&e.md.linkify.test(o.content)){const i=o.content;let s=e.md.linkify.match(i);const E=[];let B=o.level,c=0;s.length>0&&0===s[0].index&&r>0&&"text_special"===n[r-1].type&&(s=s.slice(1));for(let t=0;tc){const t=new e.Token("text","",0);t.content=i.slice(c,r),t.level=B,E.push(t)}const o=new e.Token("link_open","a",1);o.attrs=[["href",A]],o.level=B++,o.markup="linkify",o.info="auto",E.push(o);const a=new e.Token("text","",0);a.content=n,a.level=B,E.push(a);const g=new e.Token("link_close","a",-1);g.level=--B,g.markup="linkify",g.info="auto",E.push(g),c=s[t].lastIndex}if(c=0;t--)"inline"===e.tokens[t].type&&(xu.test(e.tokens[t].content)&&Zu(e.tokens[t].children),Hu.test(e.tokens[t].content)&&vu(e.tokens[t].children))}],["smartquotes",function(e){if(e.md.options.typographer)for(let t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&Pu.test(e.tokens[t].content)&&Ou(e.tokens[t].children,e)}],["text_join",function(e){let t,A;const n=e.tokens,i=n.length;for(let e=0;e=n)return-1;let r=e.src.charCodeAt(i++);if(r<48||r>57)return-1;for(;;){if(i>=n)return-1;if(r=e.src.charCodeAt(i++),!(r>=48&&r<=57)){if(41===r||46===r)break;return-1}if(i-A>=10)return-1}return i0&&this.level++,this.tokens.push(n),n},Wu.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},Wu.prototype.skipEmptyLines=function(e){for(let t=this.lineMax;et;)if(!Gu(this.src.charCodeAt(--e)))return e+1;return e},Wu.prototype.skipChars=function(e,t){for(let A=this.src.length;eA;)if(t!==this.src.charCodeAt(--e))return e+1;return e},Wu.prototype.getLines=function(e,t,A,n){if(e>=t)return"";const i=new Array(t-e);for(let r=0,o=e;oA?new Array(e-A+1).join(" ")+this.src.slice(B,E):this.src.slice(B,E)}return i.join("")},Wu.prototype.Token=bu;const tw="<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",Aw="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",nw=new RegExp("^(?:"+tw+"|"+Aw+"|\x3c!---?>|\x3c!--(?:[^-]|-[^-]|--[^>])*--\x3e|<[?][\\s\\S]*?[?]>|]*>|)"),iw=new RegExp("^(?:"+tw+"|"+Aw+")"),rw=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(iw.source+"\\s*$"),/^$/,!1]],ow=[["table",function(e,t,A,n){if(t+2>A)return!1;let i=t+1;if(e.sCount[i]=4)return!1;let r=e.bMarks[i]+e.tShift[i];if(r>=e.eMarks[i])return!1;const o=e.src.charCodeAt(r++);if(124!==o&&45!==o&&58!==o)return!1;if(r>=e.eMarks[i])return!1;const s=e.src.charCodeAt(r++);if(124!==s&&45!==s&&58!==s&&!Gu(s))return!1;if(45===o&&Gu(s))return!1;for(;r=4)return!1;B=qu(E),B.length&&""===B[0]&&B.shift(),B.length&&""===B[B.length-1]&&B.pop();const a=B.length;if(0===a||a!==c.length)return!1;if(n)return!0;const g=e.parentType;e.parentType="table";const l=e.md.block.ruler.getRules("blockquote"),Q=[t,0];e.push("table_open","table",1).map=Q,e.push("thead_open","thead",1).map=[t,t+1],e.push("tr_open","tr",1).map=[t,t+1];for(let t=0;t=4)break;if(B=qu(E),B.length&&""===B[0]&&B.shift(),B.length&&""===B[B.length-1]&&B.pop(),u+=a-B.length,u>65536)break;i===t+2&&(e.push("tbody_open","tbody",1).map=h=[t+2,0]),e.push("tr_open","tr",1).map=[i,i+1];for(let t=0;t=4))break;n++,i=n}e.line=i;const r=e.push("code_block","code",0);return r.content=e.getLines(t,i,4+e.blkIndent,!1)+"\n",r.map=[t,e.line],!0}],["fence",function(e,t,A,n){let i=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(i+3>r)return!1;const o=e.src.charCodeAt(i);if(126!==o&&96!==o)return!1;let s=i;i=e.skipChars(i,o);let E=i-s;if(E<3)return!1;const B=e.src.slice(s,i),c=e.src.slice(i,r);if(96===o&&c.indexOf(String.fromCharCode(o))>=0)return!1;if(n)return!0;let a=t,g=!1;for(;!(a++,a>=A||(i=s=e.bMarks[a]+e.tShift[a],r=e.eMarks[a],i=4||(i=e.skipChars(i,o),i-s=4)return!1;if(62!==e.src.charCodeAt(i))return!1;if(n)return!0;const s=[],E=[],B=[],c=[],a=e.md.block.ruler.getRules("blockquote"),g=e.parentType;e.parentType="blockquote";let l,Q=!1;for(l=t;l=r)break;if(62===e.src.charCodeAt(i++)&&!t){let t,A,n=e.sCount[l]+1;32===e.src.charCodeAt(i)?(i++,n++,A=!1,t=!0):9===e.src.charCodeAt(i)?(t=!0,(e.bsCount[l]+n)%4==3?(i++,n++,A=!1):A=!0):t=!1;let o=n;for(s.push(e.bMarks[l]),e.bMarks[l]=i;i=r,E.push(e.bsCount[l]),e.bsCount[l]=e.sCount[l]+1+(t?1:0),B.push(e.sCount[l]),e.sCount[l]=o-n,c.push(e.tShift[l]),e.tShift[l]=i-e.bMarks[l];continue}if(Q)break;let n=!1;for(let t=0,i=a.length;t";const w=[t,0];u.map=w,e.md.block.tokenize(e,t,l),e.push("blockquote_close","blockquote",-1).markup=">",e.lineMax=o,e.parentType=g,w[1]=e.line;for(let A=0;A=4)return!1;let r=e.bMarks[t]+e.tShift[t];const o=e.src.charCodeAt(r++);if(42!==o&&45!==o&&95!==o)return!1;let s=1;for(;r=4)return!1;if(e.listIndent>=0&&e.sCount[E]-e.listIndent>=4&&e.sCount[E]=e.blkIndent&&(l=!0),(g=ew(e,E))>=0){if(c=!0,o=e.bMarks[E]+e.tShift[E],a=Number(e.src.slice(o,g-1)),l&&1!==a)return!1}else{if(!((g=$u(e,E))>=0))return!1;c=!1}if(l&&e.skipSpaces(g)>=e.eMarks[E])return!1;if(n)return!0;const Q=e.src.charCodeAt(g-1),h=e.tokens.length;c?(s=e.push("ordered_list_open","ol",1),1!==a&&(s.attrs=[["start",a]])):s=e.push("bullet_list_open","ul",1);const u=[E,0];s.map=u,s.markup=String.fromCharCode(Q);let w=!1;const M=e.md.block.ruler.getRules("list"),R=e.parentType;for(e.parentType="list";E=i?1:n-t,l>4&&(l=1);const h=t+l;s=e.push("list_item_open","li",1),s.markup=String.fromCharCode(Q);const u=[E,0];s.map=u,c&&(s.info=e.src.slice(o,g-1));const R=e.tight,I=e.tShift[E],d=e.sCount[E],k=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=h,e.tight=!0,e.tShift[E]=a-e.bMarks[E],e.sCount[E]=n,a>=i&&e.isEmpty(E+1)?e.line=Math.min(e.line+2,A):e.md.block.tokenize(e,E,A,!0),e.tight&&!w||(B=!1),w=e.line-E>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=k,e.tShift[E]=I,e.sCount[E]=d,e.tight=R,s=e.push("list_item_close","li",-1),s.markup=String.fromCharCode(Q),E=e.line,u[1]=E,E>=A)break;if(e.sCount[E]=4)break;let G=!1;for(let t=0,n=M.length;t=4)return!1;if(91!==e.src.charCodeAt(i))return!1;function s(t){const A=e.lineMax;if(t>=A||e.isEmpty(t))return null;let n=!1;if(e.sCount[t]-e.blkIndent>3&&(n=!0),e.sCount[t]<0&&(n=!0),!n){const n=e.md.block.ruler.getRules("reference"),i=e.parentType;e.parentType="reference";let r=!1;for(let i=0,o=n.length;i=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(i))return!1;let o=e.src.slice(i,r),s=0;for(;s=4)return!1;let o=e.src.charCodeAt(i);if(35!==o||i>=r)return!1;let s=1;for(o=e.src.charCodeAt(++i);35===o&&i6||ii&&Gu(e.src.charCodeAt(E-1))&&(r=E),e.line=t+1;const B=e.push("heading_open","h"+String(s),1);B.markup="########".slice(0,s),B.map=[t,e.line];const c=e.push("inline","",0);return c.content=e.src.slice(i,r).trim(),c.map=[t,e.line],c.children=[],e.push("heading_close","h"+String(s),-1).markup="########".slice(0,s),!0},["paragraph","reference","blockquote"]],["lheading",function(e,t,A){const n=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;const i=e.parentType;e.parentType="paragraph";let r,o=0,s=t+1;for(;s3)continue;if(e.sCount[s]>=e.blkIndent){let t=e.bMarks[s]+e.tShift[s];const A=e.eMarks[s];if(t=A))){o=61===r?1:2;break}}if(e.sCount[s]<0)continue;let t=!1;for(let i=0,r=n.length;i3)continue;if(e.sCount[r]<0)continue;let t=!1;for(let i=0,o=n.length;i=A))&&!(e.sCount[o]=r){e.line=A;break}const t=e.line;let E=!1;for(let r=0;r=e.line)throw new Error("block rule didn't increment state.line");break}if(!E)throw new Error("none of the block rules matched");e.tight=!s,e.isEmpty(e.line-1)&&(s=!0),o=e.line,o0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],i={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(n),this.tokens_meta.push(i),n},Ew.prototype.scanDelims=function(e,t){const A=this.posMax,n=this.src.charCodeAt(e),i=e>0?this.src.charCodeAt(e-1):32;let r=e;for(;r?@[]^_`{|}~-".split("").forEach((function(e){aw[e.charCodeAt(0)]=1}));const lw={tokenize:function(e,t){const A=e.src.charCodeAt(e.pos);if(t)return!1;if(126!==A)return!1;const n=e.scanDelims(e.pos,!0);let i=n.length;const r=String.fromCharCode(A);if(i<2)return!1;let o;i%2&&(o=e.push("text","",0),o.content=r,i--);for(let t=0;t=0;A--){const n=t[A];if(95!==n.marker&&42!==n.marker)continue;if(-1===n.end)continue;const i=t[n.end],r=A>0&&t[A-1].end===n.end+1&&t[A-1].marker===n.marker&&t[A-1].token===n.token-1&&t[n.end+1].token===i.token+1,o=String.fromCharCode(n.marker),s=e.tokens[n.token];s.type=r?"strong_open":"em_open",s.tag=r?"strong":"em",s.nesting=1,s.markup=r?o+o:o,s.content="";const E=e.tokens[i.token];E.type=r?"strong_close":"em_close",E.tag=r?"strong":"em",E.nesting=-1,E.markup=r?o+o:o,E.content="",r&&(e.tokens[t[A-1].token].content="",e.tokens[t[n.end+1].token].content="",A--)}}const hw={tokenize:function(e,t){const A=e.src.charCodeAt(e.pos);if(t)return!1;if(95!==A&&42!==A)return!1;const n=e.scanDelims(e.pos,42===A);for(let t=0;t\x00-\x20]*)$/,Mw=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,Rw=/^&([a-z][a-z0-9]{1,31});/i;function Iw(e){const t={},A=e.length;if(!A)return;let n=0,i=-2;const r=[];for(let o=0;os;E-=r[E]+1){const t=e[E];if(t.marker===A.marker&&t.open&&t.end<0){let n=!1;if((t.close||A.open)&&(t.length+A.length)%3==0&&(t.length%3==0&&A.length%3==0||(n=!0)),!n){const n=E>0&&!e[E-1].open?r[E-1]+1:0;r[o]=o-E+n,r[E]=n,A.open=!1,t.end=o,t.close=!1,B=-1,i=-2;break}}}-1!==B&&(t[A.marker][(A.open?3:0)+(A.length||0)%3]=B)}}const dw=[["text",function(e,t){let A=e.pos;for(;A0)return!1;const A=e.pos;if(A+3>e.posMax)return!1;if(58!==e.src.charCodeAt(A))return!1;if(47!==e.src.charCodeAt(A+1))return!1;if(47!==e.src.charCodeAt(A+2))return!1;const n=e.pending.match(cw);if(!n)return!1;const i=n[1],r=e.md.linkify.matchAtStart(e.src.slice(A-i.length));if(!r)return!1;let o=r.url;if(o.length<=i.length)return!1;o=o.replace(/\*+$/,"");const s=e.md.normalizeLink(o);if(!e.md.validateLink(s))return!1;if(!t){e.pending=e.pending.slice(0,-i.length);const t=e.push("link_open","a",1);t.attrs=[["href",s]],t.markup="linkify",t.info="auto",e.push("text","",0).content=e.md.normalizeLinkText(o);const A=e.push("link_close","a",-1);A.markup="linkify",A.info="auto"}return e.pos+=o.length-i.length,!0}],["newline",function(e,t){let A=e.pos;if(10!==e.src.charCodeAt(A))return!1;const n=e.pending.length-1,i=e.posMax;if(!t)if(n>=0&&32===e.pending.charCodeAt(n))if(n>=1&&32===e.pending.charCodeAt(n-1)){let t=n-1;for(;t>=1&&32===e.pending.charCodeAt(t-1);)t--;e.pending=e.pending.slice(0,t),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(A++;A=n)return!1;let i=e.src.charCodeAt(A);if(10===i){for(t||e.push("hardbreak","br",0),A++;A=55296&&i<=56319&&A+1=56320&&t<=57343&&(r+=e.src[A+1],A++)}const o="\\"+r;if(!t){const t=e.push("text_special","",0);t.content=i<256&&0!==aw[i]?r:o,t.markup=o,t.info="escape"}return e.pos=A+1,!0}],["backticks",function(e,t){let A=e.pos;if(96!==e.src.charCodeAt(A))return!1;const n=A;A++;const i=e.posMax;for(;A=a)return!1;if(E=Q,i=e.md.helpers.parseLinkDestination(e.src,Q,e.posMax),i.ok){for(o=e.md.normalizeLink(i.str),e.md.validateLink(o)?Q=i.pos:o="",E=Q;Q=a||41!==e.src.charCodeAt(Q))&&(B=!0),Q++}if(B){if(void 0===e.env.references)return!1;if(Q=0?n=e.src.slice(E,Q++):Q=l+1):Q=l+1,n||(n=e.src.slice(g,l)),r=e.env.references[Fu(n)],!r)return e.pos=c,!1;o=r.href,s=r.title}if(!t){e.pos=g,e.posMax=l;const t=[["href",o]];e.push("link_open","a",1).attrs=t,s&&t.push(["title",s]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)}return e.pos=Q,e.posMax=a,!0}],["image",function(e,t){let A,n,i,r,o,s,E,B,c="";const a=e.pos,g=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;const l=e.pos+2,Q=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(Q<0)return!1;if(r=Q+1,r=g)return!1;for(B=r,s=e.md.helpers.parseLinkDestination(e.src,r,e.posMax),s.ok&&(c=e.md.normalizeLink(s.str),e.md.validateLink(c)?r=s.pos:c=""),B=r;r=g||41!==e.src.charCodeAt(r))return e.pos=a,!1;r++}else{if(void 0===e.env.references)return!1;if(r=0?i=e.src.slice(B,r++):r=Q+1):r=Q+1,i||(i=e.src.slice(l,Q)),o=e.env.references[Fu(i)],!o)return e.pos=a,!1;c=o.href,E=o.title}if(!t){n=e.src.slice(l,Q);const t=[];e.md.inline.parse(n,e.md,e.env,t);const A=e.push("image","img",0),i=[["src",c],["alt",""]];A.attrs=i,A.children=t,A.content=n,E&&i.push(["title",E])}return e.pos=r,e.posMax=g,!0}],["autolink",function(e,t){let A=e.pos;if(60!==e.src.charCodeAt(A))return!1;const n=e.pos,i=e.posMax;for(;;){if(++A>=i)return!1;const t=e.src.charCodeAt(A);if(60===t)return!1;if(62===t)break}const r=e.src.slice(n+1,A);if(ww.test(r)){const A=e.md.normalizeLink(r);if(!e.md.validateLink(A))return!1;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",A]],t.markup="autolink",t.info="auto",e.push("text","",0).content=e.md.normalizeLinkText(r);const n=e.push("link_close","a",-1);n.markup="autolink",n.info="auto"}return e.pos+=r.length+2,!0}if(uw.test(r)){const A=e.md.normalizeLink("mailto:"+r);if(!e.md.validateLink(A))return!1;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",A]],t.markup="autolink",t.info="auto",e.push("text","",0).content=e.md.normalizeLinkText(r);const n=e.push("link_close","a",-1);n.markup="autolink",n.info="auto"}return e.pos+=r.length+2,!0}return!1}],["html_inline",function(e,t){if(!e.md.options.html)return!1;const A=e.posMax,n=e.pos;if(60!==e.src.charCodeAt(n)||n+2>=A)return!1;const i=e.src.charCodeAt(n+1);if(33!==i&&63!==i&&47!==i&&!function(e){const t=32|e;return t>=97&&t<=122}(i))return!1;const r=e.src.slice(n).match(nw);if(!r)return!1;if(!t){const t=e.push("html_inline","",0);t.content=r[0],/^\s]/i.test(t.content)&&e.linkLevel++,/^<\/a\s*>/i.test(t.content)&&e.linkLevel--}return e.pos+=r[0].length,!0}],["entity",function(e,t){const A=e.pos,n=e.posMax;if(38!==e.src.charCodeAt(A))return!1;if(A+1>=n)return!1;if(35===e.src.charCodeAt(A+1)){const n=e.src.slice(A).match(Mw);if(n){if(!t){const t="x"===n[1][0].toLowerCase()?parseInt(n[1].slice(1),16):parseInt(n[1],10),A=e.push("text_special","",0);A.content=au(t)?gu(t):gu(65533),A.markup=n[0],A.info="entity"}return e.pos+=n[0].length,!0}}else{const n=e.src.slice(A).match(Rw);if(n){const A=ou(n[0]);if(A!==n[0]){if(!t){const t=e.push("text_special","",0);t.content=A,t.markup=n[0],t.info="entity"}return e.pos+=n[0].length,!0}}}return!1}]],kw=[["balance_pairs",function(e){const t=e.tokens_meta,A=e.tokens_meta.length;Iw(e.delimiters);for(let e=0;e0&&n++,"text"===i[t].type&&t+1=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;o||e.pos++,r[t]=e.pos},Gw.prototype.tokenize=function(e){const t=this.ruler.getRules(""),A=t.length,n=e.posMax,i=e.md.options.maxNesting;for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}if(o){if(e.pos>=n)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},Gw.prototype.parse=function(e,t,A,n){const i=new this.State(e,t,A,n);this.tokenize(i);const r=this.ruler2.getRules(""),o=r.length;for(let e=0;e=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:n.match(A.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,A){const n=e.slice(t);return A.re.mailto||(A.re.mailto=new RegExp("^"+A.re.src_email_name+"@"+A.re.src_host_strict,"i")),A.re.mailto.test(n)?n.match(A.re.mailto)[0].length:0}}},Uw="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",Sw="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function Nw(e){const t=e.re=function(e){const t={};e=e||{},t.src_Any=Jh.source,t.src_Cc=jh.source,t.src_Z=Ph.source,t.src_P=Zh.source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!"+(e["---"]?"-(?!--)|":"-|")+"_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|[><|]|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]|$)|"+(e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+"|$)|;(?!"+t.src_ZCc+"|$)|\\!+(?!"+t.src_ZCc+"|[!]|$)|\\?(?!"+t.src_ZCc+"|[?]|$))+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}(e.__opts__),A=e.__tlds__.slice();function n(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||A.push(Uw),A.push(t.src_xn),t.src_tlds=A.join("|"),t.email_fuzzy=RegExp(n(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(n(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(n(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(n(t.tpl_host_fuzzy_test),"i");const i=[];function r(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){const A=e.__schemas__[t];if(null===A)return;const n={validate:null,link:null};if(e.__compiled__[t]=n,"[object Object]"===fw(A))return"[object RegExp]"!==fw(A.validate)?Dw(A.validate)?n.validate=A.validate:r(t,A):n.validate=function(e){return function(t,A){const n=t.slice(A);return e.test(n)?n.match(e)[0].length:0}}(A.validate),void(Dw(A.normalize)?n.normalize=A.normalize:A.normalize?r(t,A):n.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===fw(e)}(A)?r(t,A):i.push(t)})),i.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};const o=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(Fw).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+o+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+o+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function bw(e,t){const A=e.__index__,n=e.__last_index__,i=e.__text_cache__.slice(A,n);this.schema=e.__schema__.toLowerCase(),this.index=A+t,this.lastIndex=n+t,this.raw=i,this.text=i,this.url=i}function yw(e,t){const A=new bw(e,t);return e.__compiled__[A.schema].normalize(A,e),A}function pw(e,t){if(!(this instanceof pw))return new pw(e,t);t||Object.keys(e||{}).reduce((function(e,t){return e||Yw.hasOwnProperty(t)}),!1)&&(t=e,e={}),this.__opts__=Cw({},Yw,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=Cw({},mw,e),this.__compiled__={},this.__tlds__=Sw,this.__tlds_replaced__=!1,this.re={},Nw(this)}pw.prototype.add=function(e,t){return this.__schemas__[e]=t,Nw(this),this},pw.prototype.set=function(e){return this.__opts__=Cw(this.__opts__,e),this},pw.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;let t,A,n,i,r,o,s,E,B;if(this.re.schema_test.test(e))for(s=this.re.schema_search,s.lastIndex=0;null!==(t=s.exec(e));)if(i=this.testSchemaAt(e,t[2],s.lastIndex),i){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+i;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(E=e.search(this.re.host_fuzzy_test),E>=0&&(this.__index__<0||E=0&&null!==(n=e.match(this.re.email_fuzzy))&&(r=n.index+n[1].length,o=n.index+n[0].length,(this.__index__<0||rthis.__last_index__)&&(this.__schema__="mailto:",this.__index__=r,this.__last_index__=o))),this.__index__>=0},pw.prototype.pretest=function(e){return this.re.pretest.test(e)},pw.prototype.testSchemaAt=function(e,t,A){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,A,this):0},pw.prototype.match=function(e){const t=[];let A=0;this.__index__>=0&&this.__text_cache__===e&&(t.push(yw(this,A)),A=this.__last_index__);let n=A?e.slice(A):e;for(;this.test(n);)t.push(yw(this,A)),n=n.slice(this.__last_index__),A+=this.__last_index__;return t.length?t:null},pw.prototype.matchAtStart=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return null;const t=this.re.schema_at_start.exec(e);if(!t)return null;const A=this.testSchemaAt(e,t[2],t[0].length);return A?(this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+A,yw(this,0)):null},pw.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,A){return e!==A[t-1]})).reverse(),Nw(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,Nw(this),this)},pw.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},pw.prototype.onCompile=function(){};const Tw=2147483647,Hw=36,xw=/^xn--/,zw=/[^\0-\x7F]/,Jw=/[\x2E\u3002\uFF0E\uFF61]/g,jw={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Zw=Math.floor,vw=String.fromCharCode;function Pw(e){throw new RangeError(jw[e])}function Lw(e,t){const A=e.split("@");let n="";A.length>1&&(n=A[0]+"@",e=A[1]);const i=function(e,t){const A=[];let n=e.length;for(;n--;)A[n]=t(e[n]);return A}((e=e.replace(Jw,".")).split("."),t).join(".");return n+i}function Vw(e){const t=[];let A=0;const n=e.length;for(;A=55296&&i<=56319&&A>1,e+=Zw(e/t);e>455;n+=Hw)e=Zw(e/35);return Zw(n+36*e/(e+38))},Kw=function(e){const t=[],A=e.length;let n=0,i=128,r=72,o=e.lastIndexOf("-");o<0&&(o=0);for(let A=0;A=128&&Pw("not-basic"),t.push(e.charCodeAt(A));for(let E=o>0?o+1:0;E=A&&Pw("invalid-input");const o=(s=e.charCodeAt(E++))>=48&&s<58?s-48+26:s>=65&&s<91?s-65:s>=97&&s<123?s-97:Hw;o>=Hw&&Pw("invalid-input"),o>Zw((Tw-n)/t)&&Pw("overflow"),n+=o*t;const B=i<=r?1:i>=r+26?26:i-r;if(oZw(Tw/c)&&Pw("overflow"),t*=c}const B=t.length+1;r=_w(n-o,B,0==o),Zw(n/B)>Tw-i&&Pw("overflow"),i+=Zw(n/B),n%=B,t.splice(n++,0,i)}var s;return String.fromCodePoint(...t)},Ww=function(e){const t=[],A=(e=Vw(e)).length;let n=128,i=0,r=72;for(const A of e)A<128&&t.push(vw(A));const o=t.length;let s=o;for(o&&t.push("-");s=n&&tZw((Tw-i)/E)&&Pw("overflow"),i+=(A-n)*E,n=A;for(const A of e)if(ATw&&Pw("overflow"),A===n){let e=i;for(let A=Hw;;A+=Hw){const n=A<=r?1:A>=r+26?26:A-r;if(eString.fromCodePoint(...e)},decode:Kw,encode:Ww,toASCII:function(e){return Lw(e,(function(e){return zw.test(e)?"xn--"+Ww(e):e}))},toUnicode:function(e){return Lw(e,(function(e){return xw.test(e)?Kw(e.slice(4).toLowerCase()):e}))}},qw={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},zero:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","fragments_join"]}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","fragments_join"]}}}},$w=/^(vbscript|javascript|file|data):/,eM=/^data:image\/(gif|png|jpeg|webp);/;function tM(e){const t=e.trim().toLowerCase();return!$w.test(t)||eM.test(t)}const AM=["http:","https:","mailto:"];function nM(e){const t=xh(e,!0);if(t.hostname&&(!t.protocol||AM.indexOf(t.protocol)>=0))try{t.hostname=Xw.toASCII(t.hostname)}catch(e){}return Ch(fh(t))}function iM(e){const t=xh(e,!0);if(t.hostname&&(!t.protocol||AM.indexOf(t.protocol)>=0))try{t.hostname=Xw.toUnicode(t.hostname)}catch(e){}return kh(fh(t),kh.defaultChars+"%")}function rM(e,t){if(!(this instanceof rM))return new rM(e,t);t||su(e)||(t=e||{},e="default"),this.inline=new Gw,this.block=new sw,this.core=new Ku,this.renderer=new Su,this.linkify=new pw,this.validateLink=tM,this.normalizeLink=nM,this.normalizeLinkText=iM,this.utils=Yu,this.helpers=Bu({},mu),this.options={},this.configure(e),t&&this.set(t)}rM.prototype.set=function(e){return Bu(this.options,e),this},rM.prototype.configure=function(e){const t=this;if(su(e)){const t=e;if(!(e=qw[t]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name')}if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach((function(A){e.components[A].rules&&t[A].ruler.enableOnly(e.components[A].rules),e.components[A].rules2&&t[A].ruler2.enableOnly(e.components[A].rules2)})),this},rM.prototype.enable=function(e,t){let A=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){A=A.concat(this[t].ruler.enable(e,!0))}),this),A=A.concat(this.inline.ruler2.enable(e,!0));const n=e.filter((function(e){return A.indexOf(e)<0}));if(n.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+n);return this},rM.prototype.disable=function(e,t){let A=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){A=A.concat(this[t].ruler.disable(e,!0))}),this),A=A.concat(this.inline.ruler2.disable(e,!0));const n=e.filter((function(e){return A.indexOf(e)<0}));if(n.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+n);return this},rM.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},rM.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");const A=new this.core.State(e,this,t);return this.core.process(A),A.tokens},rM.prototype.render=function(e,t){return this.renderer.render(this.parse(e,t=t||{}),this.options,t)},rM.prototype.parseInline=function(e,t){const A=new this.core.State(e,this,t);return A.inlineMode=!0,this.core.process(A),A.tokens},rM.prototype.renderInline=function(e,t){return this.renderer.render(this.parseInline(e,t=t||{}),this.options,t)};const oM=new P({nodes:{doc:{content:"block+"},paragraph:{content:"inline*",group:"block",parseDOM:[{tag:"p"}],toDOM:()=>["p",0]},blockquote:{content:"block+",group:"block",parseDOM:[{tag:"blockquote"}],toDOM:()=>["blockquote",0]},horizontal_rule:{group:"block",parseDOM:[{tag:"hr"}],toDOM:()=>["div",["hr"]]},heading:{attrs:{level:{default:1}},content:"(text | image)*",group:"block",defining:!0,parseDOM:[{tag:"h1",attrs:{level:1}},{tag:"h2",attrs:{level:2}},{tag:"h3",attrs:{level:3}},{tag:"h4",attrs:{level:4}},{tag:"h5",attrs:{level:5}},{tag:"h6",attrs:{level:6}}],toDOM:e=>["h"+e.attrs.level,0]},code_block:{content:"text*",group:"block",code:!0,defining:!0,marks:"",attrs:{params:{default:""}},parseDOM:[{tag:"pre",preserveWhitespace:"full",getAttrs:e=>({params:e.getAttribute("data-params")||""})}],toDOM:e=>["pre",e.attrs.params?{"data-params":e.attrs.params}:{},["code",0]]},ordered_list:{content:"list_item+",group:"block",attrs:{order:{default:1},tight:{default:!1}},parseDOM:[{tag:"ol",getAttrs:e=>({order:e.hasAttribute("start")?+e.getAttribute("start"):1,tight:e.hasAttribute("data-tight")})}],toDOM:e=>["ol",{start:1==e.attrs.order?null:e.attrs.order,"data-tight":e.attrs.tight?"true":null},0]},bullet_list:{content:"list_item+",group:"block",attrs:{tight:{default:!1}},parseDOM:[{tag:"ul",getAttrs:e=>({tight:e.hasAttribute("data-tight")})}],toDOM:e=>["ul",{"data-tight":e.attrs.tight?"true":null},0]},list_item:{content:"block+",defining:!0,parseDOM:[{tag:"li"}],toDOM:()=>["li",0]},text:{group:"inline"},image:{inline:!0,attrs:{src:{},alt:{default:null},title:{default:null}},group:"inline",draggable:!0,parseDOM:[{tag:"img[src]",getAttrs:e=>({src:e.getAttribute("src"),title:e.getAttribute("title"),alt:e.getAttribute("alt")})}],toDOM:e=>["img",e.attrs]},hard_break:{inline:!0,group:"inline",selectable:!1,parseDOM:[{tag:"br"}],toDOM:()=>["br"]}},marks:{em:{parseDOM:[{tag:"i"},{tag:"em"},{style:"font-style=italic"},{style:"font-style=normal",clearMark:e=>"em"==e.type.name}],toDOM:()=>["em"]},strong:{parseDOM:[{tag:"strong"},{tag:"b",getAttrs:e=>"normal"!=e.style.fontWeight&&null},{style:"font-weight=400",clearMark:e=>"strong"==e.type.name},{style:"font-weight",getAttrs:e=>/^(bold(er)?|[5-9]\d{2,})$/.test(e)&&null}],toDOM:()=>["strong"]},link:{attrs:{href:{},title:{default:null}},inclusive:!1,parseDOM:[{tag:"a[href]",getAttrs:e=>({href:e.getAttribute("href"),title:e.getAttribute("title")})}],toDOM:e=>["a",e.attrs]},code:{parseDOM:[{tag:"code"}],toDOM:()=>["code"]}}});class sM{constructor(e,t){this.schema=e,this.tokenHandlers=t,this.stack=[{type:e.topNodeType,attrs:null,content:[],marks:L.none}]}top(){return this.stack[this.stack.length-1]}push(e){this.stack.length&&this.top().content.push(e)}addText(e){if(!e)return;let t,A=this.top(),n=A.content,i=n[n.length-1],r=this.schema.text(e,A.marks);i&&(t=function(e,t){if(e.isText&&t.isText&&L.sameSet(e.marks,t.marks))return e.withText(e.text+t.text)}(i,r))?n[n.length-1]=t:n.push(r)}openMark(e){let t=this.top();t.marks=e.addToSet(t.marks)}closeMark(e){let t=this.top();t.marks=e.removeFromSet(t.marks)}parseTokens(e){for(let t=0;t{e.openNode(t,EM(i,A,n,r)),e.addText(cM(A.content)),e.closeNode()}:(A[n+"_open"]=(e,A,n,r)=>e.openNode(t,EM(i,A,n,r)),A[n+"_close"]=e=>e.closeNode())}else if(i.node){let t=e.nodeType(i.node);A[n]=(e,A,n,r)=>e.addNode(t,EM(i,A,n,r))}else if(i.mark){let t=e.marks[i.mark];BM(i,n)?A[n]=(e,A,n,r)=>{e.openMark(t.create(EM(i,A,n,r))),e.addText(cM(A.content)),e.closeMark(t)}:(A[n+"_open"]=(e,A,n,r)=>e.openMark(t.create(EM(i,A,n,r))),A[n+"_close"]=e=>e.closeMark(t))}else{if(!i.ignore)throw new RangeError("Unrecognized parsing spec "+JSON.stringify(i));BM(i,n)?A[n]=aM:(A[n+"_open"]=aM,A[n+"_close"]=aM)}}return A.text=(e,t)=>e.addText(t.content),A.inline=(e,t)=>e.parseTokens(t.children),A.softbreak=A.softbreak||(e=>e.addText(" ")),A}(e,A)}parse(e,t={}){let A,n=new sM(this.schema,this.tokenHandlers);n.parseTokens(this.tokenizer.parse(e,t));do{A=n.closeNode()}while(n.stack.length);return A||this.schema.topNodeType.createAndFill()}}(oM,rM("commonmark",{html:!1}),{blockquote:{block:"blockquote"},paragraph:{block:"paragraph"},list_item:{block:"list_item"},bullet_list:{block:"bullet_list",getAttrs:(e,t,A)=>({tight:gM(t,A)})},ordered_list:{block:"ordered_list",getAttrs:(e,t,A)=>({order:+e.attrGet("start")||1,tight:gM(t,A)})},heading:{block:"heading",getAttrs:e=>({level:+e.tag.slice(1)})},code_block:{block:"code_block",noCloseToken:!0},fence:{block:"code_block",getAttrs:e=>({params:e.info||""}),noCloseToken:!0},hr:{node:"horizontal_rule"},image:{node:"image",getAttrs:e=>({src:e.attrGet("src"),title:e.attrGet("title")||null,alt:e.children[0]&&e.children[0].content||null})},hardbreak:{node:"hard_break"},em:{mark:"em"},strong:{mark:"strong"},link:{mark:"link",getAttrs:e=>({href:e.attrGet("href"),title:e.attrGet("title")||null})},code_inline:{mark:"code",noCloseToken:!0}});const lM=new class{constructor(e,t,A={}){this.nodes=e,this.marks=t,this.options=A}serialize(e,t={}){t=Object.assign({},this.options,t);let A=new hM(this.nodes,this.marks,t);return A.renderContent(e),A.out}}({blockquote(e,t){e.wrapBlock("> ",null,t,(()=>e.renderContent(t)))},code_block(e,t){const A=t.textContent.match(/`{3,}/gm),n=A?A.sort().slice(-1)[0]+"`":"```";e.write(n+(t.attrs.params||"")+"\n"),e.text(t.textContent,!1),e.write("\n"),e.write(n),e.closeBlock(t)},heading(e,t){e.write(e.repeat("#",t.attrs.level)+" "),e.renderInline(t,!1),e.closeBlock(t)},horizontal_rule(e,t){e.write(t.attrs.markup||"---"),e.closeBlock(t)},bullet_list(e,t){e.renderList(t," ",(()=>(t.attrs.bullet||"*")+" "))},ordered_list(e,t){let A=t.attrs.order||1,n=String(A+t.childCount-1).length,i=e.repeat(" ",n+2);e.renderList(t,i,(t=>{let i=String(A+t);return e.repeat(" ",n-i.length)+i+". "}))},list_item(e,t){e.renderContent(t)},paragraph(e,t){e.renderInline(t),e.closeBlock(t)},image(e,t){e.write("!["+e.esc(t.attrs.alt||"")+"]("+t.attrs.src.replace(/[\(\)]/g,"\\$&")+(t.attrs.title?' "'+t.attrs.title.replace(/"/g,'\\"')+'"':"")+")")},hard_break(e,t,A,n){for(let i=n+1;i(e.inAutolink=function(e,t,A){if(e.attrs.title||!/^\w+:/.test(e.attrs.href))return!1;let n=t.child(A);return!(!n.isText||n.text!=e.attrs.href||n.marks[n.marks.length-1]!=e||A!=t.childCount-1&&e.isInSet(t.child(A+1).marks))}(t,A,n),e.inAutolink?"<":"["),close(e,t,A,n){let{inAutolink:i}=e;return e.inAutolink=void 0,i?">":"]("+t.attrs.href.replace(/[\(\)"]/g,"\\$&")+(t.attrs.title?` "${t.attrs.title.replace(/"/g,'\\"')}"`:"")+")"},mixable:!0},code:{open:(e,t,A,n)=>QM(A.child(n),-1),close:(e,t,A,n)=>QM(A.child(n-1),1),escape:!1}});function QM(e,t){let A,n=/`+/g,i=0;if(e.isText)for(;A=n.exec(e.text);)i=Math.max(i,A[0].length);let r=i>0&&t>0?" `":"`";for(let e=0;e0&&t<0&&(r+=" "),r}class hM{constructor(e,t,A){this.nodes=e,this.marks=t,this.options=A,this.delim="",this.out="",this.closed=null,this.inAutolink=void 0,this.atBlockStart=!1,this.inTightList=!1,void 0===this.options.tightLists&&(this.options.tightLists=!1),void 0===this.options.hardBreakNodeName&&(this.options.hardBreakNodeName="hard_break")}flushClose(e=2){if(this.closed){if(this.atBlank()||(this.out+="\n"),e>1){let t=this.delim,A=/\s+$/.exec(t);A&&(t=t.slice(0,t.length-A[0].length));for(let A=1;Athis.render(t,e,n)))}renderInline(e,t=!0){this.atBlockStart=t;let A=[],n="",i=(t,i,r)=>{let o=t?t.marks:[];t&&t.type.name===this.options.hardBreakNodeName&&(o=o.filter((t=>{if(r+1==e.childCount)return!1;let A=e.child(r+1);return t.isInSet(A.marks)&&(!A.isText||/\S/.test(A.text))})));let s=n;if(n="",t&&t.isText&&o.some((e=>{let t=this.marks[e.type.name];return t&&t.expelEnclosingWhitespace&&!e.isInSet(A)}))){let[e,n,i]=/^(\s*)(.*)$/m.exec(t.text);n&&(s+=n,(t=i?t.withText(i):null)||(o=A))}if(t&&t.isText&&o.some((t=>{let A=this.marks[t.type.name];return A&&A.expelEnclosingWhitespace&&(r==e.childCount-1||!t.isInSet(e.child(r+1).marks))}))){let[e,i,r]=/^(.*?)(\s*)$/m.exec(t.text);r&&(n=r,(t=i?t.withText(i):null)||(o=A))}let E=o.length?o[o.length-1]:null,B=E&&!1===this.marks[E.type.name].escape,c=o.length-(B?1:0);e:for(let e=0;en?o=o.slice(0,n).concat(t).concat(o.slice(n,e)).concat(o.slice(e+1,c)):n>e&&(o=o.slice(0,e).concat(o.slice(e+1,n)).concat(t).concat(o.slice(n,c)));continue e}}}let a=0;for(;a0&&(this.atBlockStart=!1)};e.forEach(i),i(null,0,e.childCount),this.atBlockStart=!1}renderList(e,t,A){this.closed&&this.closed.type==e.type?this.flushClose(3):this.inTightList&&this.flushClose(1);let n=void 0!==e.attrs.tight?e.attrs.tight:this.options.tightLists,i=this.inTightList;this.inTightList=n,e.forEach(((i,r,o)=>{o&&n&&this.flushClose(1),this.wrapBlock(t,A(o),e,(()=>this.render(i,e,o)))})),this.inTightList=i}esc(e,t=!1){return e=e.replace(/[`*\\~\[\]_]/g,((t,A)=>"_"==t&&A>0&&A+1])/,"\\$&").replace(/^(\s*)(#{1,6})(\s|$)/,"$1\\$2$3").replace(/^(\s*\d+)\.\s/,"$1\\. ")),this.options.escapeExtraCharacters&&(e=e.replace(this.options.escapeExtraCharacters,"\\$&")),e}quote(e){let t=-1==e.indexOf('"')?'""':-1==e.indexOf("'")?"''":"()";return t[0]+e+t[1]}repeat(e,t){let A="";for(let n=0;n=0;n--)if(e[n].level===A)return n;return-1}function kM(e,t){return"inline"===e[t].type&&"paragraph_open"===e[t-1].type&&function(e){return"list_item_open"===e.type}(e[t-2])&&function(e){return 0===e.content.indexOf("[ ] ")||0===e.content.indexOf("[x] ")||0===e.content.indexOf("[X] ")}(e[t])}function GM(e,t){if(e.children.unshift(function(e,t){var A=new t("html_inline","",0),n=uM?' disabled="" ':"";return 0===e.content.indexOf("[ ] ")?A.content='':0!==e.content.indexOf("[x] ")&&0!==e.content.indexOf("[X] ")||(A.content=''),A}(e,t)),e.children[1].content=e.children[1].content.slice(3),e.content=e.content.slice(3),wM)if(MM){e.children.pop();var A="task-item-"+Math.ceil(1e7*Math.random()-1e3);e.children[0].content=e.children[0].content.slice(0,-1)+' id="'+A+'">',e.children.push(function(e,t,A){var n=new A("html_inline","",0);return n.content='",n.attrs=[{for:t}],n}(e.content,A,t))}else e.children.unshift(function(e){var t=new e("html_inline","",0);return t.content="",t}(t))}var CM=Object.defineProperty,fM=(e,t,A)=>(((e,t,A)=>{t in e?CM(e,t,{enumerable:!0,configurable:!0,writable:!0,value:A}):e[t]=A})(e,"symbol"!=typeof t?t+"":t,A),A);const DM=s.create({name:"markdownTightLists",addOptions:()=>({tight:!0,tightClass:"tight",listTypes:["bulletList","orderedList"]}),addGlobalAttributes(){return[{types:this.options.listTypes,attributes:{tight:{default:this.options.tight,parseHTML:e=>"true"===e.getAttribute("data-tight")||!e.querySelector("p"),renderHTML:e=>({class:e.tight?this.options.tightClass:null,"data-tight":e.tight?"true":null})}}}]},addCommands(){var e=this;return{toggleTight:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return A=>{let{editor:n,commands:i}=A;return e.options.listTypes.some((e=>function(e){if(!n.isActive(e))return!1;const A=n.getAttributes(e);return i.updateAttributes(e,{tight:null!=t?t:!(null!=A&&A.tight)})}(e)))}}}}}),FM=rM();function YM(e,t){return FM.inline.State.prototype.scanDelims.call({src:e,posMax:e.length}),new FM.inline.State(e,null,null,[]).scanDelims(t,!0)}function mM(e,t,A,n){let i=e.substring(0,A)+e.substring(A+t.length);return i=i.substring(0,A+n)+t+i.substring(A+n),i}class UM extends hM{constructor(e,t,A){super(e,t,null!=A?A:{}),fM(this,"inTable",!1),this.inlines=[]}render(e,t,A){super.render(e,t,A);const n=this.inlines[this.inlines.length-1];if(null!=n&&n.start&&null!=n&&n.end){const{delimiter:e,start:t,end:A}=this.normalizeInline(n);this.out=function(e,t,A,n){let i={text:e,from:A,to:n};return i=function(e,t,A,n){let i=A,r=e;for(;iA&&!YM(r,i).can_close;)r=mM(r,t,i,-1),i--;return{text:r,from:A,to:i}}(i.text,t,i.from,i.to),i.to-i.from({markdown:{serialize:{open(e,t){var A,n;return this.editor.storage.markdown.options.html?null!==(A=null===(n=NM(t))||void 0===n?void 0:n[0])&&void 0!==A?A:"":(console.warn(`Tiptap Markdown: "${t.type.name}" mark is only available in html mode`),"")},close(e,t){var A,n;return this.editor.storage.markdown.options.html&&null!==(A=null===(n=NM(t))||void 0===n?void 0:n[1])&&void 0!==A?A:""}},parse:{}}})});function NM(e){const t=e.type.schema,A=t.text(" ",[e]),n=V(H.from(A),t).match(/^(<.*?>) (<\/.*?>)$/);return n?[n[1],n[2]]:null}function bM(e){const t=`${e}`;return(new window.DOMParser).parseFromString(t,"text/html").body}const yM=R.create({name:"markdownHTMLNode",addStorage:()=>({markdown:{serialize(e,t,A){this.editor.storage.markdown.options.html?e.write(function(e,t){const A=e.type.schema,n=V(H.from(e),A);return e.isBlock&&(t instanceof H||t.type.name===A.topNodeType.name)?function(e){const t=bM(e).firstElementChild;return t.innerHTML=t.innerHTML.trim()?`\n${t.innerHTML}\n`:"\n",t.outerHTML}(n):n}(t,A)):(console.warn(`Tiptap Markdown: "${t.type.name}" node is only available in html mode`),e.write(`[${t.type.name}]`)),t.isBlock&&e.closeBlock(t)},parse:{}}})}),pM=R.create({name:"blockquote"}).extend({addStorage:()=>({markdown:{serialize:lM.nodes.blockquote,parse:{}}})}),TM=R.create({name:"bulletList"}).extend({addStorage:()=>({markdown:{serialize(e,t){return e.renderList(t," ",(()=>(this.editor.storage.markdown.options.bulletListMarker||"-")+" "))},parse:{}}})}),HM=R.create({name:"codeBlock"}).extend({addStorage:()=>({markdown:{serialize(e,t){e.write("```"+(t.attrs.language||"")+"\n"),e.text(t.textContent,!1),e.ensureNewLine(),e.write("```"),e.closeBlock(t)},parse:{setup(e){var t;e.set({langPrefix:null!==(t=this.options.languageClassPrefix)&&void 0!==t?t:"language-"})},updateDOM(e){e.innerHTML=e.innerHTML.replace(/\n<\/code><\/pre>/g,"")}}}})}),xM=R.create({name:"hardBreak"}).extend({addStorage:()=>({markdown:{serialize(e,t,A,n){for(let i=n+1;i({markdown:{serialize:lM.nodes.heading,parse:{}}})}),JM=R.create({name:"horizontalRule"}).extend({addStorage:()=>({markdown:{serialize:lM.nodes.horizontal_rule,parse:{}}})}),jM=R.create({name:"image"}).extend({addStorage:()=>({markdown:{serialize:lM.nodes.image,parse:{}}})}),ZM=R.create({name:"listItem"}).extend({addStorage:()=>({markdown:{serialize:lM.nodes.list_item,parse:{}}})}),vM=R.create({name:"orderedList"}).extend({addStorage:()=>({markdown:{serialize(e,t,A,n){const i=t.attrs.start||1,r=String(i+t.childCount-1).length,o=e.repeat(" ",r+2),s=function(e,t,A){let n=0;for(;A-n>0&&t.child(A-n-1).type.name===e.type.name;n++);return n}(t,A,n),E=s%2?") ":". ";e.renderList(t,o,(t=>{const A=String(i+t);return e.repeat(" ",r-A.length)+A+E}))},parse:{}}})}),PM=R.create({name:"paragraph"}).extend({addStorage:()=>({markdown:{serialize:lM.nodes.paragraph,parse:{}}})});function LM(e){var t,A;return null!==(t=null==e||null===(A=e.content)||void 0===A?void 0:A.content)&&void 0!==t?t:[]}const VM=R.create({name:"table"}).extend({addStorage:()=>({markdown:{serialize(e,t,A){!function(e){const t=LM(e),A=t[0],n=t.slice(1);return!LM(A).some((e=>"tableHeader"!==e.type.name||OM(e)||e.childCount>1))&&!n.some((e=>LM(e).some((e=>"tableHeader"===e.type.name||OM(e)||e.childCount>1))))}(t)?yM.storage.markdown.serialize.call(this,e,t,A):(e.inTable=!0,t.forEach(((t,A,n)=>{if(e.write("| "),t.forEach(((t,A,n)=>{n&&e.write(" | ");const i=t.firstChild;i.textContent.trim()&&e.renderInline(i)})),e.write(" |"),e.ensureNewLine(),!n){const A=Array.from({length:t.childCount}).map((()=>"---")).join(" | ");e.write(`| ${A} |`),e.ensureNewLine()}})),e.closeBlock(t),e.inTable=!1)},parse:{}}})});function OM(e){return e.attrs.colspan>1||e.attrs.rowspan>1}const _M=R.create({name:"taskItem"}).extend({addStorage:()=>({markdown:{serialize(e,t){e.write((t.attrs.checked?"[x]":"[ ]")+" "),e.renderContent(t)},parse:{updateDOM(e){[...e.querySelectorAll(".task-list-item")].forEach((e=>{const t=e.querySelector("input");e.setAttribute("data-type","taskItem"),t&&(e.setAttribute("data-checked",t.checked),t.remove())}))}}}})}),KM=R.create({name:"taskList"}).extend({addStorage:()=>({markdown:{serialize:TM.storage.markdown.serialize,parse:{setup(e){e.use(RM)},updateDOM(e){[...e.querySelectorAll(".contains-task-list")].forEach((e=>{e.setAttribute("data-type","taskList")}))}}}})}),WM=R.create({name:"text"}).extend({addStorage:()=>({markdown:{serialize(e,t){e.text(function(e){return null==e?void 0:e.replace(//g,">")}(t.text))},parse:{}}})}),XM=g.create({name:"bold"}).extend({addStorage:()=>({markdown:{serialize:lM.marks.strong,parse:{}}})}),qM=g.create({name:"code"}).extend({addStorage:()=>({markdown:{serialize:lM.marks.code,parse:{}}})}),$M=g.create({name:"italic"}).extend({addStorage:()=>({markdown:{serialize:lM.marks.em,parse:{}}})}),eR=g.create({name:"link"}).extend({addStorage:()=>({markdown:{serialize:lM.marks.link,parse:{}}})}),tR=g.create({name:"strike"}).extend({addStorage:()=>({markdown:{serialize:{open:"~~",close:"~~",expelEnclosingWhitespace:!0},parse:{}}})}),AR=[pM,TM,HM,xM,zM,JM,yM,jM,ZM,vM,PM,VM,_M,KM,WM,XM,qM,SM,$M,eR,tR];function nR(e){var t,A;const n=null===(t=e.storage)||void 0===t?void 0:t.markdown,i=null===(A=AR.find((t=>t.name===e.name)))||void 0===A?void 0:A.storage.markdown;return n||i?{...i,...n}:null}class iR{constructor(e){fM(this,"editor",null),this.editor=e}serialize(e){const t=new UM(this.nodes,this.marks,{hardBreakNodeName:xM.name});return t.renderContent(e),t.out}get nodes(){var e;return{...Object.fromEntries(Object.keys(this.editor.schema.nodes).map((e=>[e,this.serializeNode(yM)]))),...Object.fromEntries(null!==(e=this.editor.extensionManager.extensions.filter((e=>"node"===e.type&&this.serializeNode(e))).map((e=>[e.name,this.serializeNode(e)])))&&void 0!==e?e:[])}}get marks(){var e;return{...Object.fromEntries(Object.keys(this.editor.schema.marks).map((e=>[e,this.serializeMark(SM)]))),...Object.fromEntries(null!==(e=this.editor.extensionManager.extensions.filter((e=>"mark"===e.type&&this.serializeMark(e))).map((e=>[e.name,this.serializeMark(e)])))&&void 0!==e?e:[])}}serializeNode(e){var t;return null===(t=nR(e))||void 0===t||null===(t=t.serialize)||void 0===t?void 0:t.bind({editor:this.editor,options:e.options})}serializeMark(e){var t;const A=null===(t=nR(e))||void 0===t?void 0:t.serialize;return A?{...A,open:"function"==typeof A.open?A.open.bind({editor:this.editor,options:e.options}):A.open,close:"function"==typeof A.close?A.close.bind({editor:this.editor,options:e.options}):A.close}:null}}class rR{constructor(e,t){fM(this,"editor",null),fM(this,"md",null);let{html:A,linkify:n,breaks:i}=t;this.editor=e,this.md=this.withPatchedRenderer(rM({html:A,linkify:n,breaks:i}))}parse(e){let{inline:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof e){this.editor.extensionManager.extensions.forEach((e=>{var t;return null===(t=nR(e))||void 0===t||null===(t=t.parse)||void 0===t||null===(t=t.setup)||void 0===t?void 0:t.call({editor:this.editor,options:e.options},this.md)}));const A=bM(this.md.render(e));return this.editor.extensionManager.extensions.forEach((e=>{var t;return null===(t=nR(e))||void 0===t||null===(t=t.parse)||void 0===t||null===(t=t.updateDOM)||void 0===t?void 0:t.call({editor:this.editor,options:e.options},A)})),this.normalizeDOM(A,{inline:t,content:e}),A.innerHTML}return e}normalizeDOM(e,t){let{inline:A,content:n}=t;return this.normalizeBlocks(e),e.querySelectorAll("*").forEach((e=>{var t;(null===(t=e.nextSibling)||void 0===t?void 0:t.nodeType)!==Node.TEXT_NODE||e.closest("pre")||(e.nextSibling.textContent=e.nextSibling.textContent.replace(/^\n/,""))})),A&&this.normalizeInline(e,n),e}normalizeBlocks(e){const t=Object.values(this.editor.schema.nodes).filter((e=>e.isBlock)).map((e=>{var t;return null===(t=e.spec.parseDOM)||void 0===t?void 0:t.map((e=>e.tag))})).flat().filter(Boolean).join(",");t&&[...e.querySelectorAll(t)].forEach((e=>{e.parentElement.matches("p")&&function(e){const t=e.parentElement,A=t.cloneNode();for(;t.firstChild&&t.firstChild!==e;)A.appendChild(t.firstChild);A.childNodes.length>0&&t.parentElement.insertBefore(A,t),t.parentElement.insertBefore(e,t),0===t.childNodes.length&&t.remove()}(e)}))}normalizeInline(e,t){var A;if(null!==(A=e.firstElementChild)&&void 0!==A&&A.matches("p")){var n,i,r,o;const A=e.firstElementChild,{nextElementSibling:s}=A,E=null!==(n=null===(i=t.match(/^\s+/))||void 0===i?void 0:i[0])&&void 0!==n?n:"",B=s?"":null!==(r=null===(o=t.match(/\s+$/))||void 0===o?void 0:o[0])&&void 0!==r?r:"";if(t.match(/^\n\n/))return void(A.innerHTML=`${A.innerHTML}${B}`);!function(e){const t=e.parentNode;for(;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e)}(A),e.innerHTML=`${E}${e.innerHTML}${B}`}}withPatchedRenderer(e){const t=e=>function(){const t=e(...arguments);return"\n"===t?t:"\n"===t[t.length-1]?t.slice(0,-1):t};return e.renderer.rules.hardbreak=t(e.renderer.rules.hardbreak),e.renderer.rules.softbreak=t(e.renderer.rules.softbreak),e.renderer.rules.fence=t(e.renderer.rules.fence),e.renderer.rules.code_block=t(e.renderer.rules.code_block),e.renderer.renderToken=t(e.renderer.renderToken.bind(e.renderer)),e}}const oR=s.create({name:"markdownClipboard",addOptions:()=>({transformPastedText:!1,transformCopiedText:!1}),addProseMirrorPlugins(){return[new r({key:new o("markdownClipboard"),props:{clipboardTextParser:(e,t,A)=>{if(A||!this.options.transformPastedText)return null;const n=this.editor.storage.markdown.parser.parse(e,{inline:!0});return O.fromSchema(this.editor.schema).parseSlice(bM(n),{preserveWhitespace:!0,context:t})},clipboardTextSerializer:e=>this.options.transformCopiedText?this.editor.storage.markdown.serializer.serialize(e.content):null}})]}}),sR=s.create({name:"markdown",priority:50,addOptions:()=>({html:!0,tightLists:!0,tightListClass:"tight",bulletListMarker:"-",linkify:!1,breaks:!1,transformPastedText:!1,transformCopiedText:!1}),addCommands(){const e=_.Commands.config.addCommands();return{setContent:(t,A,n)=>i=>e.setContent(i.editor.storage.markdown.parser.parse(t),A,n)(i),insertContentAt:(t,A,n)=>i=>e.insertContentAt(t,i.editor.storage.markdown.parser.parse(A,{inline:!0}),n)(i)}},onBeforeCreate(){this.editor.storage.markdown={options:{...this.options},parser:new rR(this.editor,this.options),serializer:new iR(this.editor),getMarkdown:()=>this.editor.storage.markdown.serializer.serialize(this.editor.state.doc)},this.editor.options.initialContent=this.editor.options.content,this.editor.options.content=this.editor.storage.markdown.parser.parse(this.editor.options.content)},onCreate(){this.editor.options.content=this.editor.options.initialContent,delete this.editor.options.initialContent},addStorage:()=>({}),addExtensions(){return[DM.configure({tight:this.options.tightLists,tightClass:this.options.tightListClass}),oR.configure({transformPastedText:this.options.transformPastedText,transformCopiedText:this.options.transformCopiedText})]}});function ER({types:e,node:t}){return Array.isArray(e)&&e.includes(t.type)||t.type===e}const BR=s.create({name:"trailingNode",addOptions:()=>({node:"paragraph",notAfter:["paragraph"]}),addProseMirrorPlugins(){const e=new o(this.name),t=Object.entries(this.editor.schema.nodes).map((([,e])=>e)).filter((e=>this.options.notAfter.includes(e.name)));return[new r({key:e,appendTransaction:(t,A,n)=>{const{doc:i,tr:r,schema:o}=n;if(e.getState(n))return r.insert(i.content.size,o.nodes[this.options.node].create())},state:{init:(e,A)=>!ER({node:A.tr.doc.lastChild,types:t}),apply:(e,A)=>e.docChanged?!ER({node:e.doc.lastChild,types:t}):A}})]}});function cR(e,t){return function(){return e.apply(t,arguments)}}const{toString:aR}=Object.prototype,{getPrototypeOf:gR}=Object,lR=(QR=Object.create(null),e=>{const t=aR.call(e);return QR[t]||(QR[t]=t.slice(8,-1).toLowerCase())});var QR;const hR=e=>(e=e.toLowerCase(),t=>lR(t)===e),uR=e=>t=>typeof t===e,{isArray:wR}=Array,MR=uR("undefined"),RR=hR("ArrayBuffer"),IR=uR("string"),dR=uR("function"),kR=uR("number"),GR=e=>null!==e&&"object"==typeof e,CR=e=>{if("object"!==lR(e))return!1;const t=gR(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},fR=hR("Date"),DR=hR("File"),FR=hR("Blob"),YR=hR("FileList"),mR=hR("URLSearchParams");function UR(e,t,{allOwnKeys:A=!1}={}){if(null==e)return;let n,i;if("object"!=typeof e&&(e=[e]),wR(e))for(n=0,i=e.length;n0;)if(n=A[i],t===n.toLowerCase())return n;return null}const NR="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,bR=e=>!MR(e)&&e!==NR,yR=(pR="undefined"!=typeof Uint8Array&&gR(Uint8Array),e=>pR&&e instanceof pR);var pR;const TR=hR("HTMLFormElement"),HR=(({hasOwnProperty:e})=>(t,A)=>e.call(t,A))(Object.prototype),xR=hR("RegExp"),zR=(e,t)=>{const A=Object.getOwnPropertyDescriptors(e),n={};UR(A,((A,i)=>{let r;!1!==(r=t(A,i,e))&&(n[i]=r||A)})),Object.defineProperties(e,n)},JR="abcdefghijklmnopqrstuvwxyz",jR="0123456789",ZR={DIGIT:jR,ALPHA:JR,ALPHA_DIGIT:JR+JR.toUpperCase()+jR},vR=hR("AsyncFunction"),PR={isArray:wR,isArrayBuffer:RR,isBuffer:function(e){return null!==e&&!MR(e)&&null!==e.constructor&&!MR(e.constructor)&&dR(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||dR(e.append)&&("formdata"===(t=lR(e))||"object"===t&&dR(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&RR(e.buffer),t},isString:IR,isNumber:kR,isBoolean:e=>!0===e||!1===e,isObject:GR,isPlainObject:CR,isUndefined:MR,isDate:fR,isFile:DR,isBlob:FR,isRegExp:xR,isFunction:dR,isStream:e=>GR(e)&&dR(e.pipe),isURLSearchParams:mR,isTypedArray:yR,isFileList:YR,forEach:UR,merge:function e(){const{caseless:t}=bR(this)&&this||{},A={},n=(n,i)=>{const r=t&&SR(A,i)||i;A[r]=CR(A[r])&&CR(n)?e(A[r],n):CR(n)?e({},n):wR(n)?n.slice():n};for(let e=0,t=arguments.length;e(UR(t,((t,n)=>{e[n]=A&&dR(t)?cR(t,A):t}),{allOwnKeys:n}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,A,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),A&&Object.assign(e.prototype,A)},toFlatObject:(e,t,A,n)=>{let i,r,o;const s={};if(t=t||{},null==e)return t;do{for(i=Object.getOwnPropertyNames(e),r=i.length;r-- >0;)o=i[r],n&&!n(o,e,t)||s[o]||(t[o]=e[o],s[o]=!0);e=!1!==A&&gR(e)}while(e&&(!A||A(e,t))&&e!==Object.prototype);return t},kindOf:lR,kindOfTest:hR,endsWith:(e,t,A)=>{e=String(e),(void 0===A||A>e.length)&&(A=e.length);const n=e.indexOf(t,A-=t.length);return-1!==n&&n===A},toArray:e=>{if(!e)return null;if(wR(e))return e;let t=e.length;if(!kR(t))return null;const A=new Array(t);for(;t-- >0;)A[t]=e[t];return A},forEachEntry:(e,t)=>{const A=(e&&e[Symbol.iterator]).call(e);let n;for(;(n=A.next())&&!n.done;){const A=n.value;t.call(e,A[0],A[1])}},matchAll:(e,t)=>{let A;const n=[];for(;null!==(A=e.exec(t));)n.push(A);return n},isHTMLForm:TR,hasOwnProperty:HR,hasOwnProp:HR,reduceDescriptors:zR,freezeMethods:e=>{zR(e,((t,A)=>{if(dR(e)&&-1!==["arguments","caller","callee"].indexOf(A))return!1;dR(e[A])&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+A+"'")}))}))},toObjectSet:(e,t)=>{const A={},n=e=>{e.forEach((e=>{A[e]=!0}))};return wR(e)?n(e):n(String(e).split(t)),A},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,A){return t.toUpperCase()+A})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:SR,global:NR,isContextDefined:bR,ALPHABET:ZR,generateString:(e=16,t=ZR.ALPHA_DIGIT)=>{let A="";const{length:n}=t;for(;e--;)A+=t[Math.random()*n|0];return A},isSpecCompliantForm:function(e){return!!(e&&dR(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),A=(e,n)=>{if(GR(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[n]=e;const i=wR(e)?[]:{};return UR(e,((e,t)=>{const r=A(e,n+1);!MR(r)&&(i[t]=r)})),t[n]=void 0,i}}return e};return A(e,0)},isAsyncFn:vR,isThenable:e=>e&&(GR(e)||dR(e))&&dR(e.then)&&dR(e.catch)};function LR(e,t,A,n,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),A&&(this.config=A),n&&(this.request=n),i&&(this.response=i)}PR.inherits(LR,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:PR.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const VR=LR.prototype,OR={};function _R(e){return PR.isPlainObject(e)||PR.isArray(e)}function KR(e){return PR.endsWith(e,"[]")?e.slice(0,-2):e}function WR(e,t,A){return e?e.concat(t).map((function(e,t){return e=KR(e),!A&&t?"["+e+"]":e})).join(A?".":""):t}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{OR[e]={value:e}})),Object.defineProperties(LR,OR),Object.defineProperty(VR,"isAxiosError",{value:!0}),LR.from=(e,t,A,n,i,r)=>{const o=Object.create(VR);return PR.toFlatObject(e,o,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),LR.call(o,e.message,t,A,n,i),o.cause=e,o.name=e.name,r&&Object.assign(o,r),o};const XR=PR.toFlatObject(PR,{},null,(function(e){return/^is[A-Z]/.test(e)}));function qR(e,t,A){if(!PR.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,A=PR.toFlatObject(A,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!PR.isUndefined(t[e])}));const n=A.metaTokens,i=A.visitor||B,r=A.dots,o=A.indexes,s=(A.Blob||"undefined"!=typeof Blob&&Blob)&&PR.isSpecCompliantForm(t);if(!PR.isFunction(i))throw new TypeError("visitor must be a function");function E(e){if(null===e)return"";if(PR.isDate(e))return e.toISOString();if(!s&&PR.isBlob(e))throw new LR("Blob is not supported. Use a Buffer instead.");return PR.isArrayBuffer(e)||PR.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function B(e,A,i){let s=e;if(e&&!i&&"object"==typeof e)if(PR.endsWith(A,"{}"))A=n?A:A.slice(0,-2),e=JSON.stringify(e);else if(PR.isArray(e)&&function(e){return PR.isArray(e)&&!e.some(_R)}(e)||(PR.isFileList(e)||PR.endsWith(A,"[]"))&&(s=PR.toArray(e)))return A=KR(A),s.forEach((function(e,n){!PR.isUndefined(e)&&null!==e&&t.append(!0===o?WR([A],n,r):null===o?A:A+"[]",E(e))})),!1;return!!_R(e)||(t.append(WR(i,A,r),E(e)),!1)}const c=[],a=Object.assign(XR,{defaultVisitor:B,convertValue:E,isVisitable:_R});if(!PR.isObject(e))throw new TypeError("data must be an object");return function e(A,n){if(!PR.isUndefined(A)){if(-1!==c.indexOf(A))throw Error("Circular reference detected in "+n.join("."));c.push(A),PR.forEach(A,(function(A,r){!0===(!(PR.isUndefined(A)||null===A)&&i.call(t,A,PR.isString(r)?r.trim():r,n,a))&&e(A,n?n.concat(r):[r])})),c.pop()}}(e),t}function $R(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function eI(e,t){this._pairs=[],e&&qR(e,this,t)}const tI=eI.prototype;function AI(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function nI(e,t,A){if(!t)return e;const n=A&&A.encode||AI,i=A&&A.serialize;let r;if(r=i?i(t,A):PR.isURLSearchParams(t)?t.toString():new eI(t,A).toString(n),r){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+r}return e}tI.append=function(e,t){this._pairs.push([e,t])},tI.toString=function(e){const t=e?function(t){return e.call(this,t,$R)}:$R;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};const iI=class{constructor(){this.handlers=[]}use(e,t,A){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!A&&A.synchronous,runWhen:A?A.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){PR.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},rI={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},oI={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:eI,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},sI="undefined"!=typeof window&&"undefined"!=typeof document,EI=(BI="undefined"!=typeof navigator&&navigator.product,sI&&["ReactNative","NativeScript","NS"].indexOf(BI)<0);var BI;const cI="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,aI={...Object.freeze({__proto__:null,hasBrowserEnv:sI,hasStandardBrowserWebWorkerEnv:cI,hasStandardBrowserEnv:EI}),...oI};function gI(e){function t(e,A,n,i){let r=e[i++];if("__proto__"===r)return!0;const o=Number.isFinite(+r),s=i>=e.length;return r=!r&&PR.isArray(n)?n.length:r,s?(n[r]=PR.hasOwnProp(n,r)?[n[r],A]:A,!o):(n[r]&&PR.isObject(n[r])||(n[r]=[]),t(e,A,n[r],i)&&PR.isArray(n[r])&&(n[r]=function(e){const t={},A=Object.keys(e);let n;const i=A.length;let r;for(n=0;n{t(function(e){return PR.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),n,A,0)})),A}return null}const lI={transitional:rI,adapter:["xhr","http"],transformRequest:[function(e,t){const A=t.getContentType()||"",n=A.indexOf("application/json")>-1,i=PR.isObject(e);if(i&&PR.isHTMLForm(e)&&(e=new FormData(e)),PR.isFormData(e))return n?JSON.stringify(gI(e)):e;if(PR.isArrayBuffer(e)||PR.isBuffer(e)||PR.isStream(e)||PR.isFile(e)||PR.isBlob(e))return e;if(PR.isArrayBufferView(e))return e.buffer;if(PR.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let r;if(i){if(A.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return qR(e,new aI.classes.URLSearchParams,Object.assign({visitor:function(e,t,A,n){return aI.isNode&&PR.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((r=PR.isFileList(e))||A.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return qR(r?{"files[]":e}:e,t&&new t,this.formSerializer)}}return i||n?(t.setContentType("application/json",!1),function(e){if(PR.isString(e))try{return(0,JSON.parse)(e),PR.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||lI.transitional,A=t&&t.forcedJSONParsing,n="json"===this.responseType;if(e&&PR.isString(e)&&(A&&!this.responseType||n)){const A=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(A){if("SyntaxError"===e.name)throw LR.from(e,LR.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:aI.classes.FormData,Blob:aI.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};PR.forEach(["delete","get","head","post","put","patch"],(e=>{lI.headers[e]={}}));const QI=lI,hI=PR.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),uI=Symbol("internals");function wI(e){return e&&String(e).trim().toLowerCase()}function MI(e){return!1===e||null==e?e:PR.isArray(e)?e.map(MI):String(e)}function RI(e,t,A,n,i){return PR.isFunction(n)?n.call(this,t,A):(i&&(t=A),PR.isString(t)?PR.isString(n)?-1!==t.indexOf(n):PR.isRegExp(n)?n.test(t):void 0:void 0)}class II{constructor(e){e&&this.set(e)}set(e,t,A){const n=this;function i(e,t,A){const i=wI(t);if(!i)throw new Error("header name must be a non-empty string");const r=PR.findKey(n,i);(!r||void 0===n[r]||!0===A||void 0===A&&!1!==n[r])&&(n[r||t]=MI(e))}const r=(e,t)=>PR.forEach(e,((e,A)=>i(e,A,t)));return PR.isPlainObject(e)||e instanceof this.constructor?r(e,t):PR.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?r((e=>{const t={};let A,n,i;return e&&e.split("\n").forEach((function(e){i=e.indexOf(":"),A=e.substring(0,i).trim().toLowerCase(),n=e.substring(i+1).trim(),!A||t[A]&&hI[A]||("set-cookie"===A?t[A]?t[A].push(n):t[A]=[n]:t[A]=t[A]?t[A]+", "+n:n)})),t})(e),t):null!=e&&i(t,e,A),this}get(e,t){if(e=wI(e)){const A=PR.findKey(this,e);if(A){const e=this[A];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),A=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=A.exec(e);)t[n[1]]=n[2];return t}(e);if(PR.isFunction(t))return t.call(this,e,A);if(PR.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=wI(e)){const A=PR.findKey(this,e);return!(!A||void 0===this[A]||t&&!RI(0,this[A],A,t))}return!1}delete(e,t){const A=this;let n=!1;function i(e){if(e=wI(e)){const i=PR.findKey(A,e);!i||t&&!RI(0,A[i],i,t)||(delete A[i],n=!0)}}return PR.isArray(e)?e.forEach(i):i(e),n}clear(e){const t=Object.keys(this);let A=t.length,n=!1;for(;A--;){const i=t[A];e&&!RI(0,this[i],i,e,!0)||(delete this[i],n=!0)}return n}normalize(e){const t=this,A={};return PR.forEach(this,((n,i)=>{const r=PR.findKey(A,i);if(r)return t[r]=MI(n),void delete t[i];const o=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,A)=>t.toUpperCase()+A))}(i):String(i).trim();o!==i&&delete t[i],t[o]=MI(n),A[o]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return PR.forEach(this,((A,n)=>{null!=A&&!1!==A&&(t[n]=e&&PR.isArray(A)?A.join(", "):A)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const A=new this(e);return t.forEach((e=>A.set(e))),A}static accessor(e){const t=(this[uI]=this[uI]={accessors:{}}).accessors,A=this.prototype;function n(e){const n=wI(e);t[n]||(function(e,t){const A=PR.toCamelCase(" "+t);["get","set","has"].forEach((n=>{Object.defineProperty(e,n+A,{value:function(e,A,i){return this[n].call(this,t,e,A,i)},configurable:!0})}))}(A,e),t[n]=!0)}return PR.isArray(e)?e.forEach(n):n(e),this}}II.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),PR.reduceDescriptors(II.prototype,(({value:e},t)=>{let A=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[A]=e}}})),PR.freezeMethods(II);const dI=II;function kI(e,t){const A=this||QI,n=t||A,i=dI.from(n.headers);let r=n.data;return PR.forEach(e,(function(e){r=e.call(A,r,i.normalize(),t?t.status:void 0)})),i.normalize(),r}function GI(e){return!(!e||!e.__CANCEL__)}function CI(e,t,A){LR.call(this,null==e?"canceled":e,LR.ERR_CANCELED,t,A),this.name="CanceledError"}PR.inherits(CI,LR,{__CANCEL__:!0});const fI=aI.hasStandardBrowserEnv?{write(e,t,A,n,i,r){const o=[e+"="+encodeURIComponent(t)];PR.isNumber(A)&&o.push("expires="+new Date(A).toGMTString()),PR.isString(n)&&o.push("path="+n),PR.isString(i)&&o.push("domain="+i),!0===r&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function DI(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const FI=aI.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let A;function n(A){let n=A;return e&&(t.setAttribute("href",n),n=t.href),t.setAttribute("href",n),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return A=n(window.location.href),function(e){const t=PR.isString(e)?n(e):e;return t.protocol===A.protocol&&t.host===A.host}}():function(){return!0};function YI(e,t){let A=0;const n=function(e,t){e=e||10;const A=new Array(e),n=new Array(e);let i,r=0,o=0;return t=void 0!==t?t:1e3,function(s){const E=Date.now(),B=n[o];i||(i=E),A[r]=s,n[r]=E;let c=o,a=0;for(;c!==r;)a+=A[c++],c%=e;if(r=(r+1)%e,r===o&&(o=(o+1)%e),E-i{const r=i.loaded,o=i.lengthComputable?i.total:void 0,s=r-A,E=n(s);A=r;const B={loaded:r,total:o,progress:o?r/o:void 0,bytes:s,rate:E||void 0,estimated:E&&o&&r<=o?(o-r)/E:void 0,event:i};B[t?"download":"upload"]=!0,e(B)}}const mI="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,A){let n=e.data;const i=dI.from(e.headers).normalize();let r,o,{responseType:s,withXSRFToken:E}=e;function B(){e.cancelToken&&e.cancelToken.unsubscribe(r),e.signal&&e.signal.removeEventListener("abort",r)}if(PR.isFormData(n))if(aI.hasStandardBrowserEnv||aI.hasStandardBrowserWebWorkerEnv)i.setContentType(!1);else if(!1!==(o=i.getContentType())){const[e,...t]=o?o.split(";").map((e=>e.trim())).filter(Boolean):[];i.setContentType([e||"multipart/form-data",...t].join("; "))}let c=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",A=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";i.set("Authorization","Basic "+btoa(t+":"+A))}const a=DI(e.baseURL,e.url);function g(){if(!c)return;const n=dI.from("getAllResponseHeaders"in c&&c.getAllResponseHeaders());!function(e,t,A){const n=A.config.validateStatus;A.status&&n&&!n(A.status)?t(new LR("Request failed with status code "+A.status,[LR.ERR_BAD_REQUEST,LR.ERR_BAD_RESPONSE][Math.floor(A.status/100)-4],A.config,A.request,A)):e(A)}((function(e){t(e),B()}),(function(e){A(e),B()}),{data:s&&"text"!==s&&"json"!==s?c.response:c.responseText,status:c.status,statusText:c.statusText,headers:n,config:e,request:c}),c=null}if(c.open(e.method.toUpperCase(),nI(a,e.params,e.paramsSerializer),!0),c.timeout=e.timeout,"onloadend"in c?c.onloadend=g:c.onreadystatechange=function(){c&&4===c.readyState&&(0!==c.status||c.responseURL&&0===c.responseURL.indexOf("file:"))&&setTimeout(g)},c.onabort=function(){c&&(A(new LR("Request aborted",LR.ECONNABORTED,e,c)),c=null)},c.onerror=function(){A(new LR("Network Error",LR.ERR_NETWORK,e,c)),c=null},c.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),A(new LR(t,(e.transitional||rI).clarifyTimeoutError?LR.ETIMEDOUT:LR.ECONNABORTED,e,c)),c=null},aI.hasStandardBrowserEnv&&(E&&PR.isFunction(E)&&(E=E(e)),E||!1!==E&&FI(a))){const t=e.xsrfHeaderName&&e.xsrfCookieName&&fI.read(e.xsrfCookieName);t&&i.set(e.xsrfHeaderName,t)}void 0===n&&i.setContentType(null),"setRequestHeader"in c&&PR.forEach(i.toJSON(),(function(e,t){c.setRequestHeader(t,e)})),PR.isUndefined(e.withCredentials)||(c.withCredentials=!!e.withCredentials),s&&"json"!==s&&(c.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&c.addEventListener("progress",YI(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&c.upload&&c.upload.addEventListener("progress",YI(e.onUploadProgress)),(e.cancelToken||e.signal)&&(r=t=>{c&&(A(!t||t.type?new CI(null,e,c):t),c.abort(),c=null)},e.cancelToken&&e.cancelToken.subscribe(r),e.signal&&(e.signal.aborted?r():e.signal.addEventListener("abort",r)));const l=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(a);l&&-1===aI.protocols.indexOf(l)?A(new LR("Unsupported protocol "+l+":",LR.ERR_BAD_REQUEST,e)):c.send(n||null)}))},UI={http:null,xhr:mI};PR.forEach(UI,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const SI=e=>`- ${e}`,NI=e=>PR.isFunction(e)||null===e||!1===e,bI=e=>{e=PR.isArray(e)?e:[e];const{length:t}=e;let A,n;const i={};for(let r=0;r`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new LR("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(SI).join("\n"):" "+SI(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function yI(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new CI(null,e)}function pI(e){return yI(e),e.headers=dI.from(e.headers),e.data=kI.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),bI(e.adapter||QI.adapter)(e).then((function(t){return yI(e),t.data=kI.call(e,e.transformResponse,t),t.headers=dI.from(t.headers),t}),(function(t){return GI(t)||(yI(e),t&&t.response&&(t.response.data=kI.call(e,e.transformResponse,t.response),t.response.headers=dI.from(t.response.headers))),Promise.reject(t)}))}const TI=e=>e instanceof dI?{...e}:e;function HI(e,t){t=t||{};const A={};function n(e,t,A){return PR.isPlainObject(e)&&PR.isPlainObject(t)?PR.merge.call({caseless:A},e,t):PR.isPlainObject(t)?PR.merge({},t):PR.isArray(t)?t.slice():t}function i(e,t,A){return PR.isUndefined(t)?PR.isUndefined(e)?void 0:n(void 0,e,A):n(e,t,A)}function r(e,t){if(!PR.isUndefined(t))return n(void 0,t)}function o(e,t){return PR.isUndefined(t)?PR.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function s(A,i,r){return r in t?n(A,i):r in e?n(void 0,A):void 0}const E={url:r,method:r,data:r,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:s,headers:(e,t)=>i(TI(e),TI(t),!0)};return PR.forEach(Object.keys(Object.assign({},e,t)),(function(n){const r=E[n]||i,o=r(e[n],t[n],n);PR.isUndefined(o)&&r!==s||(A[n]=o)})),A}const xI={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{xI[e]=function(A){return typeof A===e||"a"+(t<1?"n ":" ")+e}}));const zI={};xI.transitional=function(e,t,A){function n(e,t){return"[Axios v1.6.8] Transitional option '"+e+"'"+t+(A?". "+A:"")}return(A,i,r)=>{if(!1===e)throw new LR(n(i," has been removed"+(t?" in "+t:"")),LR.ERR_DEPRECATED);return t&&!zI[i]&&(zI[i]=!0,console.warn(n(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(A,i,r)}};const JI={assertOptions:function(e,t,A){if("object"!=typeof e)throw new LR("options must be an object",LR.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let i=n.length;for(;i-- >0;){const r=n[i],o=t[r];if(o){const t=e[r],A=void 0===t||o(t,r,e);if(!0!==A)throw new LR("option "+r+" must be "+A,LR.ERR_BAD_OPTION_VALUE)}else if(!0!==A)throw new LR("Unknown option "+r,LR.ERR_BAD_OPTION)}},validators:xI},jI=JI.validators;class ZI{constructor(e){this.defaults=e,this.interceptors={request:new iI,response:new iI}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t;Error.captureStackTrace?Error.captureStackTrace(t={}):t=new Error;const A=t.stack?t.stack.replace(/^.+\n/,""):"";e.stack?A&&!String(e.stack).endsWith(A.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+A):e.stack=A}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=HI(this.defaults,t);const{transitional:A,paramsSerializer:n,headers:i}=t;void 0!==A&&JI.assertOptions(A,{silentJSONParsing:jI.transitional(jI.boolean),forcedJSONParsing:jI.transitional(jI.boolean),clarifyTimeoutError:jI.transitional(jI.boolean)},!1),null!=n&&(PR.isFunction(n)?t.paramsSerializer={serialize:n}:JI.assertOptions(n,{encode:jI.function,serialize:jI.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let r=i&&PR.merge(i.common,i[t.method]);i&&PR.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete i[e]})),t.headers=dI.concat(r,i);const o=[];let s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,o.unshift(e.fulfilled,e.rejected))}));const E=[];let B;this.interceptors.response.forEach((function(e){E.push(e.fulfilled,e.rejected)}));let c,a=0;if(!s){const e=[pI.bind(this),void 0];for(e.unshift.apply(e,o),e.push.apply(e,E),c=e.length,B=Promise.resolve(t);a{if(!A._listeners)return;let t=A._listeners.length;for(;t-- >0;)A._listeners[t](e);A._listeners=null})),this.promise.then=e=>{let t;const n=new Promise((e=>{A.subscribe(e),t=e})).then(e);return n.cancel=function(){A.unsubscribe(t)},n},e((function(e,n,i){A.reason||(A.reason=new CI(e,n,i),t(A.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new PI((function(t){e=t})),cancel:e}}}const LI=PI,VI={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(VI).forEach((([e,t])=>{VI[t]=e}));const OI=VI,_I=function e(t){const A=new vI(t),n=cR(vI.prototype.request,A);return PR.extend(n,vI.prototype,A,{allOwnKeys:!0}),PR.extend(n,A,null,{allOwnKeys:!0}),n.create=function(A){return e(HI(t,A))},n}(QI);_I.Axios=vI,_I.CanceledError=CI,_I.CancelToken=LI,_I.isCancel=GI,_I.VERSION="1.6.8",_I.toFormData=qR,_I.AxiosError=LR,_I.Cancel=_I.CanceledError,_I.all=function(e){return Promise.all(e)},_I.spread=function(e){return function(t){return e.apply(null,t)}},_I.isAxiosError=function(e){return PR.isObject(e)&&!0===e.isAxiosError},_I.mergeConfig=HI,_I.AxiosHeaders=dI,_I.formToJSON=e=>gI(PR.isHTMLForm(e)?new FormData(e):e),_I.getAdapter=bI,_I.HttpStatusCode=OI,_I.default=_I;const KI=_I,WI=["image/jpeg","image/gif","image/png","image/jpg"];async function XI(e,t){const A=e instanceof DataTransferItem?e.getAsFile():e;return(null==t?void 0:t.options.uploadFunc)?t.options.uploadFunc(A):(null==t?void 0:t.options.uploadUrl)?async function(e,t){return(await KI.postForm(t,{imgFile:e})).data.url||""}(A,t.options.uploadUrl):new Promise((e=>{const t=new FileReader;t.onloadend=()=>e(t.result),t.readAsDataURL(A)}))}const qI=s.create({name:"imageUploader",addCommands(){return{uploadImage:e=>()=>(XI(e,this).then((e=>{Boolean(e)&&this.editor.chain().focus().setImage({src:e}).run()})),!0)}},addOptions:()=>({uploadUrl:"",uploadFunc:null}),addProseMirrorPlugins(){return[new r({key:new o("imageUploader"),props:{handlePaste:(e,t)=>{var A;const n=Array.from((null===(A=t.clipboardData)||void 0===A?void 0:A.items)||[]);if(n.some((e=>"text/html"===e.type)))return!1;const i=n.find((e=>WI.includes(e.type)));return!!Boolean(i)&&(XI(i,this).then((e=>{Boolean(e)&&this.editor.chain().focus().setImage({src:e}).run()})),!0)},handleDrop:(e,t)=>{var A;return!!Boolean(null===(A=t.dataTransfer)||void 0===A?void 0:A.files.length)&&(XI(t.dataTransfer.files.item(0),this).then((e=>{Boolean(e)&&this.editor.chain().focus().setImage({src:e}).run()})),!0)}}})]}}),$I=s.create({name:"defaultTextStyle",addProseMirrorPlugins:()=>[new r({appendTransaction(e,t,A){if(1!==e.length||1!==e[0].steps.length)return;const n=e[0].doc.type.schema,i=n.marks.textStyle.create({fontFamily:Be["Sans-serif"]}),r=n.marks.textStyle.create({fontFamily:Be["Sans-serif"],fontSize:13});let o=A.tr;return e.forEach((e=>{e.steps.forEach((e=>{e.getMap().forEach(((e,t,n,s)=>{A.doc.nodesBetween(n,s,((e,t)=>{"heading"===e.type.name&&e.forEach(((e,A)=>{e.isText&&!Boolean(e.marks.find((e=>"textStyle"===e.type.name)))&&(o=o.addMark(t+A,t+A+e.nodeSize+1,i))})),"paragraph"===e.type.name&&e.forEach(((e,A)=>{e.isText&&!Boolean(e.marks.find((e=>"textStyle"===e.type.name)))&&(o=o.addMark(t+A,t+A+e.nodeSize+1,r))}))}))}))}))})),o}})]});var ed,td;if("undefined"!=typeof WeakMap){let e=new WeakMap;ed=t=>e.get(t),td=(t,A)=>(e.set(t,A),A)}else{const e=[],t=10;let A=0;ed=t=>{for(let A=0;A(A==t&&(A=0),e[A++]=n,e[A++]=i)}var Ad=class{constructor(e,t,A,n){this.width=e,this.height=t,this.map=A,this.problems=n}findCell(e){for(let t=0;tn&&(r+=i.attrs.colspan)}}for(let e=0;e1&&(A=!0)}-1==t?t=r:t!=r&&(t=Math.max(t,r))}return t}(e),A=e.childCount,n=[];let i=0,r=null;const o=[];for(let e=0,i=t*A;e=A){(r||(r=[])).push({type:"overlong_rowspan",pos:E,n:g-e});break}const B=i+e*t;for(let e=0;e0;t--)if("row"==e.node(t).type.spec.tableRole)return e.node(0).resolve(e.before(t+1));return null}function sd(e){const t=e.selection.$head;for(let e=t.depth;e>0;e--)if("row"==t.node(e).type.spec.tableRole)return!0;return!1}function Ed(e){const t=e.selection;if("$anchorCell"in t&&t.$anchorCell)return t.$anchorCell.pos>t.$headCell.pos?t.$anchorCell:t.$headCell;if("node"in t&&t.node&&"cell"==t.node.type.spec.tableRole)return t.$anchor;const A=od(t.$head)||function(e){for(let t=e.nodeAfter,A=e.pos;t;t=t.firstChild,A++){const n=t.type.spec.tableRole;if("cell"==n||"header_cell"==n)return e.doc.resolve(A)}for(let t=e.nodeBefore,A=e.pos;t;t=t.lastChild,A--){const n=t.type.spec.tableRole;if("cell"==n||"header_cell"==n)return e.doc.resolve(A-t.nodeSize)}}(t.$head);if(A)return A;throw new RangeError(`No cell found around position ${t.head}`)}function Bd(e){return"row"==e.parent.type.spec.tableRole&&!!e.nodeAfter}function cd(e,t){return e.depth==t.depth&&e.pos>=t.start(-1)&&e.pos<=t.end(-1)}function ad(e,t,A){const n=e.node(-1),i=Ad.get(n),r=e.start(-1),o=i.nextCell(e.pos-r,t,A);return null==o?null:e.node(0).resolve(r+o)}function gd(e,t,A=1){const n={...e,colspan:e.colspan-A};return n.colwidth&&(n.colwidth=n.colwidth.slice(),n.colwidth.splice(t,A),n.colwidth.some((e=>e>0))||(n.colwidth=null)),n}function ld(e,t,A=1){const n={...e,colspan:e.colspan+A};if(n.colwidth){n.colwidth=n.colwidth.slice();for(let e=0;ee!=t.pos-i));s.unshift(t.pos-i);const E=s.map((e=>{const t=A.nodeAt(e);if(!t)throw RangeError(`No cell with offset ${e} found`);const n=i+e+1;return new K(o.resolve(n),o.resolve(n+t.content.size))}));super(E[0].$from,E[0].$to,E),this.$anchorCell=e,this.$headCell=t}map(t,A){const n=t.resolve(A.map(this.$anchorCell.pos)),i=t.resolve(A.map(this.$headCell.pos));if(Bd(n)&&Bd(i)&&cd(n,i)){const t=this.$anchorCell.node(-1)!=n.node(-1);return t&&this.isRowSelection()?e.rowSelection(n,i):t&&this.isColSelection()?e.colSelection(n,i):new e(n,i)}return G.between(n,i)}content(){const e=this.$anchorCell.node(-1),t=Ad.get(e),A=this.$anchorCell.start(-1),n=t.rectBetween(this.$anchorCell.pos-A,this.$headCell.pos-A),i={},r=[];for(let A=n.top;A0||c>0){let e=E.attrs;if(B>0&&(e=gd(e,0,B)),c>0&&(e=gd(e,e.colspan-c,c)),s.leftn.bottom){const e={...E.attrs,rowspan:Math.min(s.bottom,n.bottom)-Math.max(s.top,n.top)};E=s.top0)&&Math.max(e+this.$anchorCell.nodeAfter.attrs.rowspan,t+this.$headCell.nodeAfter.attrs.rowspan)==this.$headCell.node(-1).childCount}static colSelection(t,A=t){const n=t.node(-1),i=Ad.get(n),r=t.start(-1),o=i.findCell(t.pos-r),s=i.findCell(A.pos-r),E=t.node(0);return o.top<=s.top?(o.top>0&&(t=E.resolve(r+i.map[o.left])),s.bottom0&&(A=E.resolve(r+i.map[s.left])),o.bottom0)&&Math.max(n+this.$anchorCell.nodeAfter.attrs.colspan,i+this.$headCell.nodeAfter.attrs.colspan)==t.width}eq(t){return t instanceof e&&t.$anchorCell.pos==this.$anchorCell.pos&&t.$headCell.pos==this.$headCell.pos}static rowSelection(t,A=t){const n=t.node(-1),i=Ad.get(n),r=t.start(-1),o=i.findCell(t.pos-r),s=i.findCell(A.pos-r),E=t.node(0);return o.left<=s.left?(o.left>0&&(t=E.resolve(r+i.map[o.top*i.width])),s.right0&&(A=E.resolve(r+i.map[s.top*i.width])),o.right{t.push(D.node(A,A+e.nodeSize,{class:"selectedCell"}))})),C.create(e.doc,t)}var wd=new o("fix-tables");function Md(e,t,A,n){const i=e.childCount,r=t.childCount;e:for(let o=0,s=0;o{"table"==t.type.spec.tableRole&&(A=function(e,t,A,n){const i=Ad.get(t);if(!i.problems)return n;n||(n=e.tr);const r=[];for(let e=0;e0){let t="cell";A.firstChild&&(t=A.firstChild.type.spec.tableRole);const r=[];for(let A=0;At.width)for(let r=0,c=0;rt.height){const c=[];for(let e=0,n=(t.height-1)*t.width;e=t.width)&&A.nodeAt(t.map[n+e]).type==s.header_cell;c.push(i?B||(B=s.header_cell.createAndFill()):E||(E=s.cell.createAndFill()))}const a=s.row.create(null,H.from(c)),g=[];for(let e=t.height;e{if(!i)return!1;const r=A.selection;if(r instanceof Qd)return fd(A,n,b.near(r.$headCell,t));if("horiz"!=e&&!r.empty)return!1;const o=Nd(i,e,t);if(null==o)return!1;if("horiz"==e)return fd(A,n,b.near(A.doc.resolve(r.head+t),t));{const i=A.doc.resolve(o),r=ad(i,e,t);let s;return s=r?b.near(r,1):t<0?b.near(A.doc.resolve(i.before(-1)),-1):b.near(A.doc.resolve(i.after(-1)),1),fd(A,n,s)}}}function Fd(e,t){return(A,n,i)=>{if(!i)return!1;const r=A.selection;let o;if(r instanceof Qd)o=r;else{const n=Nd(i,e,t);if(null==n)return!1;o=new Qd(A.doc.resolve(n))}const s=ad(o.$headCell,e,t);return!!s&&fd(A,n,new Qd(o.$anchorCell,s))}}function Yd(e,t){const A=e.selection;if(!(A instanceof Qd))return!1;if(t){const n=e.tr,i=id(e.schema).cell.createAndFill().content;A.forEachCell(((e,t)=>{e.content.eq(i)||n.replace(n.mapping.map(t+1),n.mapping.map(t+e.nodeSize-1),new y(i,0,0))})),n.docChanged&&t(n)}return!0}function md(e,t){const A=od(e.state.doc.resolve(t));return!!A&&(e.dispatch(e.state.tr.setSelection(new Qd(A))),!0)}function Ud(e,t,A){if(!sd(e.state))return!1;let n=function(e){if(!e.size)return null;let{content:t,openStart:A,openEnd:n}=e;for(;1==t.childCount&&(A>0&&n>0||"table"==t.child(0).type.spec.tableRole);)A--,n--,t=t.child(0).content;const i=t.child(0),r=i.type.spec.tableRole,o=i.type.schema,s=[];if("row"==r)for(let e=0;e=0;t--){const{rowspan:i,colspan:r}=n.child(t).attrs;for(let t=e;t=t.length&&t.push(H.empty),A[i]n&&(s=s.type.createChecked(gd(s.attrs,s.attrs.colspan,A+s.attrs.colspan-n),s.content)),o.push(s),A+=s.attrs.colspan;for(let A=1;Ai&&(t=t.type.create({...t.attrs,rowspan:Math.max(1,i-t.attrs.rowspan)},t.content)),o.push(t)}e.push(H.from(o))}A=e,t=i}return{width:e,height:t,rows:A}}(n,o.right-o.left,o.bottom-o.top),Gd(e.state,e.dispatch,r,o,n),!0}if(n){const t=Ed(e.state),A=t.start(-1);return Gd(e.state,e.dispatch,A,Ad.get(t.node(-1)).findCell(t.pos-A),n),!0}return!1}function Sd(e,t){var A;if(t.ctrlKey||t.metaKey)return;const n=bd(e,t.target);let i;if(t.shiftKey&&e.state.selection instanceof Qd)r(e.state.selection.$anchorCell,t),t.preventDefault();else if(t.shiftKey&&n&&null!=(i=od(e.state.selection.$anchor))&&(null==(A=yd(e,t))?void 0:A.pos)!=i.pos)r(i,t),t.preventDefault();else if(!n)return;function r(t,A){let n=yd(e,A);const i=null==rd.getState(e.state);if(!n||!cd(t,n)){if(!i)return;n=t}const r=new Qd(t,n);if(i||!e.state.selection.eq(r)){const A=e.state.tr.setSelection(r);i&&A.setMeta(rd,t.pos),e.dispatch(A)}}function o(){e.root.removeEventListener("mouseup",o),e.root.removeEventListener("dragstart",o),e.root.removeEventListener("mousemove",s),null!=rd.getState(e.state)&&e.dispatch(e.state.tr.setMeta(rd,-1))}function s(A){const i=A,s=rd.getState(e.state);let E;if(null!=s)E=e.state.doc.resolve(s);else if(bd(e,i.target)!=n&&(E=yd(e,t),!E))return o();E&&r(E,i)}e.root.addEventListener("mouseup",o),e.root.addEventListener("dragstart",o),e.root.addEventListener("mousemove",s)}function Nd(e,t,A){if(!(e.state.selection instanceof G))return null;const{$head:n}=e.state.selection;for(let i=n.depth-1;i>=0;i--){const r=n.node(i);if((A<0?n.index(i):n.indexAfter(i))!=(A<0?0:r.childCount))return null;if("cell"==r.type.spec.tableRole||"header_cell"==r.type.spec.tableRole){const r=n.before(i);return e.endOfTextblock("vert"==t?A>0?"down":"up":A>0?"right":"left")?r:null}}return null}function bd(e,t){for(;t&&t!=e.dom;t=t.parentNode)if("TD"==t.nodeName||"TH"==t.nodeName)return t;return null}function yd(e,t){const A=e.posAtCoords({left:t.clientX,top:t.clientY});return A&&A?od(e.state.doc.resolve(A.pos)):null}var pd=class{constructor(e,t){this.node=e,this.cellMinWidth=t,this.dom=document.createElement("div"),this.dom.className="tableWrapper",this.table=this.dom.appendChild(document.createElement("table")),this.colgroup=this.table.appendChild(document.createElement("colgroup")),Td(e,this.colgroup,this.table,t),this.contentDOM=this.table.appendChild(document.createElement("tbody"))}update(e){return e.type==this.node.type&&(this.node=e,Td(e,this.colgroup,this.table,this.cellMinWidth),!0)}ignoreMutation(e){return"attributes"==e.type&&(e.target==this.table||this.colgroup.contains(e.target))}};function Td(e,t,A,n,i,r){var o;let s=0,E=!0,B=t.firstChild;const c=e.firstChild;if(c){for(let e=0,A=0;e(i.spec.props.nodeViews[id(n.schema).table.name]=(e,n)=>new A(e,t,n),new zd(-1,!1)),apply:(e,t)=>t.apply(e)},props:{attributes:e=>{const t=Hd.getState(e);return t&&t.activeHandle>-1?{class:"resize-cursor"}:{}},handleDOMEvents:{mousemove:(t,A)=>{!function(e,t,A,n,i){const r=Hd.getState(e.state);if(r&&!r.dragging){const n=function(e){for(;e&&"TD"!=e.nodeName&&"TH"!=e.nodeName;)e=e.classList&&e.classList.contains("ProseMirror")?null:e.parentNode;return e}(t.target);let o=-1;if(n){const{left:i,right:r}=n.getBoundingClientRect();t.clientX-i<=A?o=Jd(e,t,"left",A):r-t.clientX<=A&&(o=Jd(e,t,"right",A))}if(o!=r.activeHandle){if(!i&&-1!==o){const t=e.state.doc.resolve(o),A=t.node(-1),n=Ad.get(A),i=t.start(-1);if(n.colCount(t.pos-i)+t.nodeAfter.attrs.colspan-1==n.width-1)return}Zd(e,o)}}}(t,A,e,0,n)},mouseleave:e=>{!function(e){const t=Hd.getState(e.state);t&&t.activeHandle>-1&&!t.dragging&&Zd(e,-1)}(e)},mousedown:(e,A)=>{!function(e,t,A){var n;const i=null!=(n=e.dom.ownerDocument.defaultView)?n:window,r=Hd.getState(e.state);if(!r||-1==r.activeHandle||r.dragging)return!1;const o=e.state.doc.nodeAt(r.activeHandle),s=function(e,t,{colspan:A,colwidth:n}){const i=n&&n[n.length-1];if(i)return i;const r=e.domAtPos(t);let o=r.node.childNodes[r.offset].offsetWidth,s=A;if(n)for(let e=0;e{const t=Hd.getState(e);if(t&&t.activeHandle>-1)return function(e,t){const A=[],n=e.doc.resolve(t),i=n.node(-1);if(!i)return C.empty;const r=Ad.get(i),o=n.start(-1),s=r.colCount(n.pos-o)+n.nodeAfter.attrs.colspan;for(let e=0;e-1&&t.docChanged){let n=t.mapping.map(A.activeHandle,-1);return Bd(t.doc.resolve(n))||(n=-1),new e(n,A.dragging)}return A}};function Jd(e,t,A,n){const i=e.posAtCoords({left:t.clientX+("right"==A?-n:n),top:t.clientY});if(!i)return-1;const{pos:r}=i,o=od(e.state.doc.resolve(r));if(!o)return-1;if("right"==A)return o.pos;const s=Ad.get(o.node(-1)),E=o.start(-1),B=s.map.indexOf(o.pos-E);return B%s.width==0?-1:E+s.map[B-1]}function jd(e,t,A){return Math.max(A,e.startWidth+(t.clientX-e.startX))}function Zd(e,t){e.dispatch(e.state.tr.setMeta(Hd,{setHandle:t}))}function vd(e){const t=e.selection,A=Ed(e),n=A.node(-1),i=A.start(-1),r=Ad.get(n);return{...t instanceof Qd?r.rectBetween(t.$anchorCell.pos-i,t.$headCell.pos-i):r.findCell(A.pos-i),tableStart:i,map:r,table:n}}function Pd(e,{map:t,tableStart:A,table:n},i){let r=i>0?-1:0;(function(e,t,A){const n=id(t.type.schema).header_cell;for(let i=0;i0&&i0&&t.map[s-1]==E||i0?-1:0;(function(e,t,A){var n;const i=id(t.type.schema).header_cell;for(let r=0;r0&&i0&&B==t.map[o-t.width]){const t=A.nodeAt(B).attrs;e.setNodeMarkup(e.mapping.slice(s).map(B+n),null,{...t,rowspan:t.rowspan-1}),r+=t.colspan-1}else if(i0&&A[r]==A[r-1]||n.right0&&A[i]==A[i-e]||n.bottomA[e.type.spec.tableRole],(e,t)=>{var A;const i=e.selection;let r,o;if(i instanceof Qd){if(i.$anchorCell.pos!=i.$headCell.pos)return!1;r=i.$anchorCell.nodeAfter,o=i.$anchorCell.pos}else{if(r=function(e){for(let t=e.depth;t>0;t--){const A=e.node(t).type.spec.tableRole;if("cell"===A||"header_cell"===A)return e.node(t)}return null}(i.$from),!r)return!1;o=null==(A=od(i.$from))?void 0:A.pos}if(null==r||null==o)return!1;if(1==r.attrs.colspan&&1==r.attrs.rowspan)return!1;if(t){let A=r.attrs;const s=[],E=A.colwidth;A.rowspan>1&&(A={...A,rowspan:1}),A.colspan>1&&(A={...A,colspan:1});const B=vd(e),c=e.tr;for(let e=0;ei.table.nodeAt(e)));for(let e=0;e{const t=e+i.tableStart,A=r.doc.nodeAt(t);A&&r.setNodeMarkup(t,B,A.attrs)})),A(r)}return!0}}qd("row",{useDeprecatedLogic:!0}),qd("column",{useDeprecatedLogic:!0});var $d=qd("cell",{useDeprecatedLogic:!0});function ek(e){return function(t,A){if(!sd(t))return!1;const n=function(e,t){if(t<0){const t=e.nodeBefore;if(t)return e.pos-t.nodeSize;for(let t=e.index(-1)-1,A=e.before();t>=0;t--){const n=e.node(-1).child(t),i=n.lastChild;if(i)return A-1-i.nodeSize;A-=n.nodeSize}}else{if(e.index()null,apply(e,t){const A=e.getMeta(rd);if(null!=A)return-1==A?null:A;if(null==t||!e.docChanged)return t;const{deleted:n,pos:i}=e.mapping.mapResult(t);return n?null:i}},props:{decorations:ud,handleDOMEvents:{mousedown:Sd},createSelectionBetween:e=>null!=rd.getState(e.state)?e.state.selection:null,handleTripleClick:md,handleKeyDown:Cd,handlePaste:Ud},appendTransaction:(t,A,n)=>function(e,t,A){const n=(t||e).selection,i=(t||e).doc;let r,o;if(n instanceof p&&(o=n.node.type.spec.tableRole)){if("cell"==o||"header_cell"==o)r=Qd.create(i,n.from);else if("row"==o){const e=i.resolve(n.from+1);r=Qd.rowSelection(e,e)}else if(!A){const e=Ad.get(n.node),t=n.from+1;r=Qd.create(i,t+1,t+e.map[e.width*e.height-1])}}else n instanceof G&&function({$from:e,$to:t}){if(e.pos==t.pos||e.pos=0&&!(e.after(i+1)=0&&!(t.before(e+1)>t.start(e));e--,n--);return A==n&&/row|table/.test(e.node(i).type.spec.tableRole)}(n)?r=G.create(i,n.from):n instanceof G&&function({$from:e,$to:t}){let A,n;for(let t=e.depth;t>0;t--){const n=e.node(t);if("cell"===n.type.spec.tableRole||"header_cell"===n.type.spec.tableRole){A=n;break}}for(let e=t.depth;e>0;e--){const A=t.node(e);if("cell"===A.type.spec.tableRole||"header_cell"===A.type.spec.tableRole){n=A;break}}return A!==n&&0===t.parentOffset}(n)&&(r=G.create(i,n.$from.start(),n.$from.end()));return r&&(t||(t=e.tr)).setSelection(r),t}(n,Rd(n,A),e)})}function Ak(e,t,A,n,i,r){let o=0,s=!0,E=t.firstChild;const B=e.firstChild;for(let e=0,A=0;e{const{selection:t}=e.state;if(!function(e){return e instanceof Qd}(t))return!1;let A=0;const n=X(t.ranges[0].$from,(e=>"table"===e.type.name));return null==n||n.node.descendants((e=>{if("table"===e.type.name)return!1;["tableCell","tableHeader"].includes(e.type.name)&&(A+=1)})),A===t.ranges.length&&(e.commands.deleteTable(),!0)},ok=R.create({name:"table",addOptions:()=>({HTMLAttributes:{},resizable:!1,handleWidth:5,cellMinWidth:25,View:nk,lastColumnResizable:!0,allowTableNodeSelection:!1}),content:"tableRow+",tableRole:"table",isolating:!0,group:"block",parseHTML:()=>[{tag:"table"}],renderHTML({node:e,HTMLAttributes:t}){const{colgroup:A,tableWidth:n,tableMinWidth:i}=function(e,t){let A=0,n=!0;const i=[],r=e.firstChild;if(!r)return{};for(let e=0,o=0;e({insertTable:({rows:e=3,cols:t=3,withHeaderRow:A=!0}={})=>({tr:n,dispatch:i,editor:r})=>{const o=function(e,t,A,n,i){const r=function(e){if(e.cached.tableNodeTypes)return e.cached.tableNodeTypes;const t={};return Object.keys(e.nodes).forEach((A=>{const n=e.nodes[A];n.spec.tableRole&&(t[n.spec.tableRole]=n)})),e.cached.tableNodeTypes=t,t}(e),o=[],s=[];for(let e=0;e({state:e,dispatch:t})=>function(e,t){if(!sd(e))return!1;if(t){const A=vd(e);t(Pd(e.tr,A,A.left))}return!0}(e,t),addColumnAfter:()=>({state:e,dispatch:t})=>function(e,t){if(!sd(e))return!1;if(t){const A=vd(e);t(Pd(e.tr,A,A.right))}return!0}(e,t),deleteColumn:()=>({state:e,dispatch:t})=>function(e,t){if(!sd(e))return!1;if(t){const A=vd(e),n=e.tr;if(0==A.left&&A.right==A.map.width)return!1;for(let e=A.right-1;Ld(n,A,e),e!=A.left;e--){const e=A.tableStart?n.doc.nodeAt(A.tableStart-1):n.doc;if(!e)throw RangeError("No table found");A.table=e,A.map=Ad.get(e)}t(n)}return!0}(e,t),addRowBefore:()=>({state:e,dispatch:t})=>function(e,t){if(!sd(e))return!1;if(t){const A=vd(e);t(Vd(e.tr,A,A.top))}return!0}(e,t),addRowAfter:()=>({state:e,dispatch:t})=>function(e,t){if(!sd(e))return!1;if(t){const A=vd(e);t(Vd(e.tr,A,A.bottom))}return!0}(e,t),deleteRow:()=>({state:e,dispatch:t})=>function(e,t){if(!sd(e))return!1;if(t){const A=vd(e),n=e.tr;if(0==A.top&&A.bottom==A.map.height)return!1;for(let e=A.bottom-1;Od(n,A,e),e!=A.top;e--){const e=A.tableStart?n.doc.nodeAt(A.tableStart-1):n.doc;if(!e)throw RangeError("No table found");A.table=e,A.map=Ad.get(A.table)}t(n)}return!0}(e,t),deleteTable:()=>({state:e,dispatch:t})=>function(e,t){const A=e.selection.$anchor;for(let n=A.depth;n>0;n--)if("table"==A.node(n).type.spec.tableRole)return t&&t(e.tr.delete(A.before(n),A.after(n)).scrollIntoView()),!0;return!1}(e,t),mergeCells:()=>({state:e,dispatch:t})=>Kd(e,t),splitCell:()=>({state:e,dispatch:t})=>Wd(e,t),toggleHeaderColumn:()=>({state:e,dispatch:t})=>qd("column")(e,t),toggleHeaderRow:()=>({state:e,dispatch:t})=>qd("row")(e,t),toggleHeaderCell:()=>({state:e,dispatch:t})=>$d(e,t),mergeOrSplit:()=>({state:e,dispatch:t})=>!!Kd(e,t)||Wd(e,t),setCellAttribute:(e,t)=>({state:A,dispatch:n})=>function(e,t){return function(A,n){if(!sd(A))return!1;const i=Ed(A);if(i.nodeAfter.attrs[e]===t)return!1;if(n){const r=A.tr;A.selection instanceof Qd?A.selection.forEachCell(((A,n)=>{A.attrs[e]!==t&&r.setNodeMarkup(n,null,{...A.attrs,[e]:t})})):r.setNodeMarkup(i.pos,null,{...i.nodeAfter.attrs,[e]:t}),n(r)}return!0}}(e,t)(A,n),goToNextCell:()=>({state:e,dispatch:t})=>ek(1)(e,t),goToPreviousCell:()=>({state:e,dispatch:t})=>ek(-1)(e,t),fixTables:()=>({state:e,dispatch:t})=>(t&&Rd(e),!0),setCellSelection:e=>({tr:t,dispatch:A})=>{if(A){const A=Qd.create(t.doc,e.anchorCell,e.headCell);t.setSelection(A)}return!0}}),addKeyboardShortcuts(){return{Tab:()=>!!this.editor.commands.goToNextCell()||!!this.editor.can().addRowAfter()&&this.editor.chain().addRowAfter().goToNextCell().run(),"Shift-Tab":()=>this.editor.commands.goToPreviousCell(),Backspace:rk,"Mod-Backspace":rk,Delete:rk,"Mod-Delete":rk}},addProseMirrorPlugins(){return[...this.options.resizable&&this.editor.isEditable?[xd({handleWidth:this.options.handleWidth,cellMinWidth:this.options.cellMinWidth,View:this.options.View,lastColumnResizable:this.options.lastColumnResizable})]:[],tk({allowTableNodeSelection:this.options.allowTableNodeSelection})]},extendNodeSchema:e=>({tableRole:x(z(e,"tableRole",{name:e.name,options:e.options,storage:e.storage}))})}),sk=R.create({name:"tableCell",addOptions:()=>({HTMLAttributes:{}}),content:"block+",addAttributes:()=>({colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:e=>{const t=e.getAttribute("colwidth");return t?[parseInt(t,10)]:null}}}),tableRole:"cell",isolating:!0,parseHTML:()=>[{tag:"td"}],renderHTML({HTMLAttributes:e}){return["td",l(this.options.HTMLAttributes,e),0]}}),Ek=R.create({name:"tableHeader",addOptions:()=>({HTMLAttributes:{}}),content:"block+",addAttributes:()=>({colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:e=>{const t=e.getAttribute("colwidth");return t?[parseInt(t,10)]:null}}}),tableRole:"header_cell",isolating:!0,parseHTML:()=>[{tag:"th"}],renderHTML({HTMLAttributes:e}){return["th",l(this.options.HTMLAttributes,e),0]}}),Bk=R.create({name:"tableRow",addOptions:()=>({HTMLAttributes:{}}),content:"(tableCell | tableHeader)*",tableRole:"row",parseHTML:()=>[{tag:"tr"}],renderHTML({HTMLAttributes:e}){return["tr",l(this.options.HTMLAttributes,e),0]}}),ck=sk.extend({addAttributes:()=>({colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:e=>{const t=e.getAttribute("colwidth");return Boolean(t)?[parseInt(t,10)]:null},renderHTML:e=>e.colwidth?{style:`width: ${e.colwidth[0]}px;`}:{}}}),renderHTML({HTMLAttributes:e}){return["td",l(this.options.HTMLAttributes,e,{style:"border: 1px solid black; padding: 5px;"}),0]}}),ak=Ek.extend({addAttributes:()=>({colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:e=>{const t=e.getAttribute("colwidth");return Boolean(t)?[parseInt(t,10)]:null},renderHTML:e=>e.colwidth?{style:`width: ${e.colwidth[0]}px;`}:{}}}),renderHTML({HTMLAttributes:e}){return["th",l(this.options.HTMLAttributes,e,{style:"border: 1px solid black; padding: 5px;"}),0]}}),gk=ok.extend({renderHTML({HTMLAttributes:e}){return["table",l(this.options.HTMLAttributes,e,{style:"border-collapse: collapse; border: 1px solid black;"}),["tbody",0]]}}),lk=R.create({name:"iframe",group:"block",atom:!0,addOptions:()=>({HTMLAttributes:{class:"iframe-wrapper"}}),addAttributes:()=>({src:{default:null},frameborder:{default:0},width:{default:null},height:{default:null}}),parseHTML:()=>[{tag:"iframe"}],renderHTML({HTMLAttributes:e}){return["div",this.options.HTMLAttributes,["iframe",e]]},addCommands(){return{setIframe:e=>({tr:t,dispatch:A})=>{const{selection:n}=t,i=this.type.create(e);return Boolean(A)&&t.replaceRangeWith(n.from,n.to,i),!0}}}}),Qk=R.create({name:"embed",group:"block",atom:!0,addOptions:()=>({HTMLAttributes:{class:"embed-wrapper"}}),addAttributes:()=>({src:{default:null},type:{default:"text/html"},width:{default:null},height:{default:null}}),parseHTML:()=>[{tag:"embed"}],renderHTML({HTMLAttributes:e}){return["div",this.options.HTMLAttributes,["embed",e]]},addCommands(){return{setEmbed:e=>({tr:t,dispatch:A})=>{const{selection:n}=t,i=this.type.create(e);return Boolean(A)&&t.replaceRangeWith(n.from,n.to,i),!0}}}}),hk=tg.extend({addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak(),Enter:()=>{const{state:e}=this.editor,{selection:t}=e,{$from:A}=t;if("paragraph"===A.parent.type.name){const{nodeBefore:e}=A;return e&&"hardBreak"===e.type.name?(this.editor.commands.deleteRange({from:A.pos-1,to:A.pos}),!1):this.editor.commands.setHardBreak()}}}}});function uk(e){var t;const{char:A,allowSpaces:n,allowedPrefixes:i,startOfLine:r,$position:o}=e,s=q(A),E=new RegExp(`\\s${s}$`),B=r?"^":"",c=n?new RegExp(`${B}${s}.*?(?=\\s${s}|$)`,"gm"):new RegExp(`${B}(?:^)?${s}[^\\s${s}]*`,"gm"),a=(null===(t=o.nodeBefore)||void 0===t?void 0:t.isText)&&o.nodeBefore.text;if(!a)return null;const g=o.pos-a.length,l=Array.from(a.matchAll(c)).pop();if(!l||void 0===l.input||void 0===l.index)return null;const Q=l.input.slice(Math.max(0,l.index-1),l.index),h=new RegExp(`^[${null==i?void 0:i.join("")}\0]?$`).test(Q);if(null!==i&&!h)return null;const u=g+l.index;let w=u+l[0].length;return n&&E.test(a.slice(w-1,w+1))&&(l[0]+=" ",w+=1),u=o.pos?{range:{from:u,to:w},query:l[0].slice(A.length),text:l[0]}:null}const wk=new o("suggestion");function Mk({pluginKey:e=wk,editor:t,char:A="@",allowSpaces:n=!1,allowedPrefixes:i=[" "],startOfLine:o=!1,decorationTag:s="span",decorationClass:E="suggestion",command:B=(()=>null),items:c=(()=>[]),render:a=(()=>({})),allow:g=(()=>!0),findSuggestionMatch:l=uk}){let Q;const h=null==a?void 0:a(),u=new r({key:e,view(){return{update:async(e,A)=>{var n,i,r,o,s,E,a;const g=null===(n=this.key)||void 0===n?void 0:n.getState(A),l=null===(i=this.key)||void 0===i?void 0:i.getState(e.state),u=g.active&&l.active&&g.range.from!==l.range.from,w=!g.active&&l.active,M=g.active&&!l.active,R=w||u,I=!w&&!M&&g.query!==l.query&&!u,d=M||u;if(!R&&!I&&!d)return;const k=d&&!R?g:l,G=e.dom.querySelector(`[data-decoration-id="${k.decorationId}"]`);Q={editor:t,range:k.range,query:k.query,text:k.text,items:[],command:e=>B({editor:t,range:k.range,props:e}),decorationNode:G,clientRect:G?()=>{var A;const{decorationId:n}=null===(A=this.key)||void 0===A?void 0:A.getState(t.state),i=e.dom.querySelector(`[data-decoration-id="${n}"]`);return(null==i?void 0:i.getBoundingClientRect())||null}:null},R&&(null===(r=null==h?void 0:h.onBeforeStart)||void 0===r||r.call(h,Q)),I&&(null===(o=null==h?void 0:h.onBeforeUpdate)||void 0===o||o.call(h,Q)),(I||R)&&(Q.items=await c({editor:t,query:k.query})),d&&(null===(s=null==h?void 0:h.onExit)||void 0===s||s.call(h,Q)),I&&(null===(E=null==h?void 0:h.onUpdate)||void 0===E||E.call(h,Q)),R&&(null===(a=null==h?void 0:h.onStart)||void 0===a||a.call(h,Q))},destroy:()=>{var e;Q&&(null===(e=null==h?void 0:h.onExit)||void 0===e||e.call(h,Q))}}},state:{init:()=>({active:!1,range:{from:0,to:0},query:null,text:null,composing:!1}),apply(e,r,s,E){const{isEditable:B}=t,{composing:c}=t.view,{selection:a}=e,{empty:Q,from:h}=a,u={...r};if(u.composing=c,B&&(Q||t.view.composing)){!(hr.range.to)||c||r.composing||(u.active=!1);const e=l({char:A,allowSpaces:n,allowedPrefixes:i,startOfLine:o,$position:a.$from}),s=`id_${Math.floor(4294967295*Math.random())}`;e&&g({editor:t,state:E,range:e.range})?(u.active=!0,u.decorationId=r.decorationId?r.decorationId:s,u.range=e.range,u.query=e.query,u.text=e.text):u.active=!1}else u.active=!1;return u.active||(u.decorationId=null,u.range={from:0,to:0},u.query=null,u.text=null),u}},props:{handleKeyDown(e,t){var A;const{active:n,range:i}=u.getState(e.state);return n&&(null===(A=null==h?void 0:h.onKeyDown)||void 0===A?void 0:A.call(h,{view:e,event:t,range:i}))||!1},decorations(e){const{active:t,range:A,decorationId:n}=u.getState(e);return t?C.create(e.doc,[D.inline(A.from,A.to,{nodeName:s,class:E,"data-decoration-id":n})]):null}}});return u}const Rk="shash-menu",Ik=e=>{const{clientRect:t}=e;if(null===t)return e.editor.storage[Rk].rect;const A=t();return Boolean(A)?A:e.editor.storage[Rk].rect},dk=(e,t)=>""===t?e:e.filter((({title:e,label:A,alias:n})=>[e,A,...n].some((e=>e.toLowerCase().includes(t.toLowerCase()))))),kk=s.create({name:Rk,addProseMirrorPlugins(){return[Mk({pluginKey:new o(Rk),char:"/",allowSpaces:!0,startOfLine:!0,allow:({state:e,range:t})=>{var A;const n=e.doc.resolve(t.from),i=1===n.depth,r="paragraph"===n.parent.type.name,o="/"===(null===(A=n.parent.textContent)||void 0===A?void 0:A.charAt(0));return i&&r&&o},command:({editor:e,props:t})=>{var A,n,i;const{view:r,state:o}=e,{$head:s,$from:E}=o.selection,B=E.pos,c=Boolean(null==s?void 0:s.nodeBefore)?B-(null!==(i=null===(A=s.nodeBefore.text)||void 0===A?void 0:A.substring(null===(n=s.nodeBefore.text)||void 0===n?void 0:n.indexOf("/")).length)&&void 0!==i?i:0):E.start(),a=o.tr.deleteRange(c,B);r.dispatch(a),t.action(e),r.focus()},editor:this.editor,items:({query:e})=>{const t=(e=>{const t=Boolean(e.storage.markdown);return[{group:"format",items:[...ae.map((A=>({icon:`ci-heading_h${A}`,title:$.getString(`menu.heading.${A}`),label:$.getString(`menu.heading.${A}`),alias:$.getPronunciation(`menu.heading.${A}`).split(","),action:()=>{let n=e.chain().focus().toggleHeading({level:A});return t||(n=n.unsetFontSize()),n.run()}}))),{icon:"ci-list_unordered",title:$.getString("menu.list.bullet"),label:$.getString("menu.list.bullet"),alias:$.getPronunciation("menu.list.bullet").split(","),action:()=>e.chain().focus().toggleBulletList().run()},{icon:"ci-list_ordered",title:$.getString("menu.list.ordered"),label:$.getString("menu.list.ordered"),alias:$.getPronunciation("menu.list.ordered").split(","),action:()=>e.chain().focus().toggleOrderedList().run()},...t?[]:[{icon:"ci-list_checklist",title:$.getString("menu.list.task"),label:$.getString("menu.list.task"),alias:$.getPronunciation("menu.list.task").split(","),action:()=>e.chain().focus().toggleTaskList().run()}],{icon:"ci-double_quotes_l",title:$.getString("menu.quote"),label:$.getString("menu.quote"),alias:$.getPronunciation("menu.quote").split(","),action:()=>e.chain().focus().toggleBlockquote().run(),isActive:()=>e.isActive("blockquote")}]},{group:"insert",items:[{icon:"ci-image_02",title:$.getString("menu.image"),label:$.getString("menu.image"),alias:$.getPronunciation("menu.image").split(","),action:()=>{const t=document.createElement("input");t.setAttribute("type","file"),t.setAttribute("accept","image/jpeg,image/gif,image/png,image/jpg"),t.onchange=t=>{const{files:A}=t.target;Boolean(A.length)&&e.chain().focus().uploadImage(A.item(0)).run()},t.click()}},{icon:"ci-table",title:$.getString("menu.table"),label:$.getString("menu.table"),alias:$.getPronunciation("menu.table").split(","),action:()=>e.chain().focus().insertTable({rows:3,cols:4,withHeaderRow:Boolean(e.storage.markdown)}).run()},{icon:"ci-remove_minus",title:$.getString("menu.hr"),label:$.getString("menu.hr"),alias:$.getPronunciation("menu.hr").split(","),action:()=>e.chain().focus().setHorizontalRule().run()}]}]})(this.editor);return"group"in t[0]?t.map((t=>{const A=dk(t.items,e);return 0===A.length?null:{group:t.group,items:A}})).filter((e=>Boolean(e))):dk(t,e)},render:()=>{let e,t;return{onStart:A=>{e=document.createElement("zen-editor-slash-menu"),e.editor=this.editor,e.items=A.items,e.props=A,t=a("body",{getReferenceClientRect:()=>Ik(A),appendTo:()=>{var e,t,A,n;return null===document.fullscreenElement?document.body:null===(n=null===(A=null===(t=null===(e=document.fullscreenElement)||void 0===e?void 0:e.shadowRoot)||void 0===t?void 0:t.querySelector("zen-editor-core"))||void 0===A?void 0:A.shadowRoot)||void 0===n?void 0:n.querySelector(".editor")},content:e,showOnCreate:!0,interactive:!0,trigger:"manual",placement:"bottom-start"})},onUpdate:A=>{e.items=A.items,t[0].setProps({getReferenceClientRect:()=>Ik(A)})},onKeyDown:A=>{var n;return"Escape"===A.event.key?(t[0].hide(),!0):(null==t?void 0:t[0].state.isShown)?null===(n=e.onkeydown)||void 0===n?void 0:n.call(e,A.event):void(null==t||t[0].show())},onExit:()=>{t[0].destroy(),e.remove()}}}})]},addStorage:()=>({rect:{width:0,height:0,left:0,top:0,right:0,bottom:0}})}),Gk=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,Ck=R.create({name:"image",addOptions:()=>({inline:!1,allowBase64:!1,HTMLAttributes:{}}),inline(){return this.options.inline},group(){return this.options.inline?"inline":"block"},draggable:!0,addAttributes:()=>({src:{default:null},alt:{default:null},title:{default:null}}),parseHTML(){return[{tag:this.options.allowBase64?"img[src]":'img[src]:not([src^="data:"])'}]},renderHTML({HTMLAttributes:e}){return["img",l(this.options.HTMLAttributes,e)]},addCommands(){return{setImage:e=>({commands:t})=>t.insertContent({type:this.name,attrs:e})}},addInputRules(){return[j({find:Gk,type:this.type,getAttributes:e=>{const[,,t,A,n]=e;return{src:A,alt:t,title:n}}})]}}).extend({name:"resizableImage",addOptions:()=>({inline:!1,allowBase64:!1,HTMLAttributes:{}}),addAttributes(){var e;return Object.assign(Object.assign({},null===(e=this.parent)||void 0===e?void 0:e.call(this)),{width:{default:"100%",renderHTML:e=>({width:e.width})},height:{default:"auto",renderHTML:e=>({height:e.height})}})},addNodeView:()=>({editor:e,node:t,getPos:A})=>{const n=document.createElement("div");n.classList.add("resizable-image-holder");const i=document.createElement("img"),{src:r,width:o,height:s}=t.attrs;i.src=r,i.style.width=Number.isInteger(o)?`${o}px`:o,i.style.height=Number.isInteger(s)?`${s}px`:s,n.append(i);const E=document.createElement("div");E.classList.add("resizable-image-handle"),n.append(E);const B=document.createElement("div");return B.classList.add("resizable-image-size"),B.textContent=`${Number.isInteger(o)?o:"auto"} × ${Number.isInteger(s)?s:"auto"}`,n.append(B),new ResizeObserver((()=>{B.style.transform=B.offsetWidth>B.parentElement.offsetWidth?`translateX(${B.clientWidth}px)`:"none"})).observe(B),E.onmousedown=r=>{r.preventDefault(),n.classList.add("is-dragging");const o=i.width,s=i.height,E=r.clientX,c=e=>{const t=o+(e.clientX-E),A=t/(o/s);t<10||A<10||(i.width=t,i.height=A,i.style.width=`${t}px`,i.style.height=`${A}px`,B.textContent=`${t} × ${Math.round(A)}`)},a=()=>{document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",a),n.classList.remove("is-dragging");const{width:r,height:o}=i;if(B.textContent=`${r} × ${o}`,"function"==typeof A){const{view:n}=e,i=n.state.tr.setNodeMarkup(A(),null,Object.assign(Object.assign({},t.attrs),{width:r,height:o}));n.dispatch(i),e.commands.focus()}};document.addEventListener("mousemove",c),document.addEventListener("mouseup",a,{once:!0})},{dom:n}},addInputRules(){return[j({find:/(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,type:this.type,getAttributes:e=>{const[,,t,A,n,i,r,o]=e;return{src:A,alt:t,title:n,height:i,width:r,isDraggable:o}}})]},addStorage:()=>({markdown:{serialize(e,t){if(!t.attrs.src||t.attrs.src.startsWith("data:"))return"";e.write(`![${e.esc(t.attrs.alt||"")}](${e.esc(t.attrs.src)})`)}}})}),fk=e=>{const{preferHardBreak:t,markdown:A,neglectDefaultTextStyle:n,uploadUrl:i,placeholder:r,slashMenu:o}=e,{lowlight:s}=pB,E=[];E.push(zg.configure(Object.assign({history:!1,codeBlock:!1},t?{}:{hardBreak:!1})),Mr,kr,To.configure({lowlight:s}),gk.configure({resizable:!0,cellMinWidth:48}),Bk,ak,ck,Ck.configure({inline:!0}),qI.configure({uploadUrl:i}),da,BR,fa.configure({placeholder:r}),Ae,...o?[kk]:[],hr);const B=(({collaborative:e,ydoc:t,hocuspocus:A,docName:n,username:i,userColor:r})=>e?null===t||[A,n,i,r].some((e=>""===e))?(console.warn("Some options required for collaborative editing are missing. Disabling collaboration."),[]):[Gl.configure({document:t}),Dl.configure({provider:new Ih({url:A,name:n,document:t}),user:{name:i,color:r}})]:[])(e);return B.length>0?E.push(...B):E.push(kg.configure({depth:50,newGroupDelay:500})),A?(E.push(sR.configure({html:!1,transformPastedText:!0,transformCopiedText:!0})),E):(E.push(ne.extend({priority:1e3}),Fa,re,Ya,ka,Ga,...t?[hk]:[],...n?[]:[$I],dr,Ir,Ca.configure({types:["heading","paragraph"]}),se,Da,lk,Qk),E)},Dk=class{constructor(t){e(this,t),this.editorDidLoad=n(this,"editorDidLoad",7),this.lastRAF=0,this.lastUpdateTimer=0,this.isComposition=!1,this.toggleMonaco=async()=>{if(this.isMonaco){const e=await this.monacoEditor.getValue();this.editor.chain().setContent(e).run()}this.isMonaco=!this.isMonaco},this.name="",this.readonly=!1,this.uploadUrl="",this.placeholder="",this.initialContent="",this.resizable=!1,this.exposeEditor=!1,this.size="sm",this.hideUI=!1,this.hideMenubar=!1,this.menubarMode="full",this.extraMenubarItems="",this.slashMenu=!1,this.bubbleMenu=!1,this.preferHardBreak=!1,this.neglectDefaultTextStyle=!1,this.markdown=!1,this.locale=void 0,this.styles=void 0,this.collaborative=!1,this.hocuspocus="",this.docName="",this.username="",this.userColor="#ffcc00",this.updateInputValue=void 0,this.fullscreenable=!1,this.toggleFullscreen=void 0,this.isFullscreen=!1,this.value=void 0,this.editor=null,this.forceUpdateCounter=0,this.isMonaco=!1}forceUpdate(){this.forceUpdateCounter>1e3?this.forceUpdateCounter=0:this.forceUpdateCounter++}tryForceUpdate(){Boolean(this.lastUpdateTimer)&&cancelAnimationFrame(this.lastUpdateTimer),this.lastUpdateTimer=requestAnimationFrame((()=>{this.forceUpdate(),this.lastUpdateTimer=0}))}handleInput(){Boolean(this.lastRAF)&&cancelAnimationFrame(this.lastRAF),this.lastRAF=requestAnimationFrame((()=>{this.tryForceUpdate(),this.updateInputValue(),this.lastRAF=0}))}onLocaleChanage(){void 0!==this.locale&&($.setLocale(this.locale),this.forceUpdate())}connectedCallback(){void 0!==this.locale&&$.setLocale(this.locale),setTimeout((()=>{this.ydoc=this.collaborative?new YA:null,this.editor=new Qr({extensions:fk({collaborative:this.collaborative,preferHardBreak:this.preferHardBreak,markdown:this.markdown,neglectDefaultTextStyle:this.neglectDefaultTextStyle,uploadUrl:this.uploadUrl,placeholder:this.placeholder,slashMenu:this.slashMenu,hocuspocus:this.hocuspocus,docName:this.docName,username:this.username,userColor:this.userColor,ydoc:this.ydoc}),editorProps:{attributes:{spellcheck:"false"},handleDOMEvents:{compositionstart:()=>{this.isComposition=!0},compositionend:()=>{this.isComposition=!1,this.handleInput()},mouseup:e=>{requestAnimationFrame((()=>{const t=e.pluginViews.find((e=>{var t;return"BubbleMenuView"===(null===(t=e.constructor)||void 0===t?void 0:t.name)}));null==t||t.update(e)}))}},editable:()=>!this.readonly},content:this.value||this.initialContent}),this.editorDidLoad.emit(this.editor),this.editor.on("transaction",(()=>{this.isComposition||this.handleInput()})),this.editor.on("blur",(()=>{Boolean(this.lastRAF)&&cancelAnimationFrame(this.lastRAF),this.lastRAF=requestAnimationFrame((()=>{this.updateInputValue(),this.lastRAF=0}))})),this.updateInputValue(),this.exposeEditor&&(window.$zenEditors||(window.$zenEditors={}),window.$zenEditors[this.name||"ze"]=this.editor)}),0)}componentDidLoad(){Boolean(this.styles&&this.element.shadowRoot)&&(this.element.shadowRoot.adoptedStyleSheets=[...this.element.shadowRoot.adoptedStyleSheets,this.styles])}disconnectedCallback(){Boolean(this.lastUpdateTimer)&&cancelAnimationFrame(this.lastUpdateTimer),Boolean(this.lastRAF)&&cancelAnimationFrame(this.lastRAF),this.editor.destroy()}render(){return Boolean(this.editor)?t("div",{class:`editor${this.isFullscreen?" is-fullscreen":""}${this.resizable?" resizable":""}${"full"===this.size?" full":"auto"===this.size?" size-auto":""}${this.hideUI?" hide-ui":""}`},!this.hideUI&&t(i,null,this.hideMenubar?null:t("zen-editor-menubar",{editor:this.editor,menubarMode:ce[this.markdown?"basic":this.menubarMode],toggleMonaco:this.toggleMonaco,toggleFullscreen:this.fullscreenable&&this.toggleFullscreen,states:{isMonaco:this.isMonaco,isCollaborative:this.collaborative,isFullscreen:this.isFullscreen},forceUpdateCounter:this.forceUpdateCounter,styles:this.styles,extraMenubarItems:this.extraMenubarItems}),this.isMonaco&&t("monaco-editor",{class:`monaco-editor ${this.size}`,ref:e=>this.monacoEditor=e,options:{language:"html",ariaContainerElement:null,value:this.editor.getHTML()},tiptapEditor:this.editor,updateInputValue:this.updateInputValue})),t("zen-editor-content",{class:`editor__content ${this.size}`,editor:this.editor,bubbleMenu:this.bubbleMenu,styles:this.styles,style:{display:this.isMonaco?"none":""}})):null}get element(){return A(this)}static get watchers(){return{locale:["onLocaleChanage"]}}};Dk.style='button,input,select{font-size:inherit;font-family:inherit;color:#333333;margin:0.1em;border:1px solid #333333;border-radius:0.25em;padding:0.1em 0.4em;background:white;accent-color:black}button[disabled],input[disabled],select[disabled]{opacity:0.3}.editor{font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;background-color:#fff;border:1px solid #a6a39e;border-radius:0.25em;color:#0d0d0d;display:flex;flex-direction:column;min-height:10em;max-height:96vh}.editor.resizable{resize:vertical;overflow:hidden}.editor.is-fullscreen{height:100% !important;max-height:unset;resize:none}.editor.size-auto{max-height:unset}.editor.full{min-height:100%}.editor.hide-ui{border:none}.hide-ui .editor__content{cursor:unset}.editor__content{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;padding:0.25em 0.75em 1.25em 1em;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;cursor:text}.editor__content.sm{min-height:3.5em}.editor__content.lg{min-height:14em}.editor__content.full{min-height:100%}.editor__content.narrow{padding:0 0 0 0.5em}.editor__content .collaboration-cursor__caret{border-left:1px solid #0d0d0d;border-right:1px solid #0d0d0d;margin-left:-1px;margin-right:-1px;pointer-events:none;position:relative;word-break:normal}.editor__content .collaboration-cursor__label{border-radius:3px 3px 3px 0;color:#0d0d0d;font-size:12px;font-style:normal;font-weight:600;left:-1px;line-height:normal;padding:0.1em 0.3em;position:absolute;top:-1.4em;user-select:none;white-space:nowrap}.editor__footer{align-items:center;border-top:1px solid #a6a39e;color:#6e6e6e;display:flex;flex:0 0 auto;font-size:12px;flex-wrap:wrap;font-weight:600;justify-content:space-between;padding:0.25em 0.75em;white-space:nowrap}.editor ::-webkit-scrollbar{width:14px;height:14px}.editor ::-webkit-scrollbar-track{border:4px solid transparent;background-clip:padding-box;border-radius:8px;background-color:transparent}.editor ::-webkit-scrollbar-thumb{border:4px solid rgba(0, 0, 0, 0);background-clip:padding-box;border-radius:8px;background-color:rgba(0, 0, 0, 0)}.editor :hover::-webkit-scrollbar-thumb{background-color:rgba(0, 0, 0, 0.1)}.editor ::-webkit-scrollbar-thumb:hover{background-color:rgba(0, 0, 0, 0.15)}.editor ::-webkit-scrollbar-button{display:none;width:0;height:0}.editor ::-webkit-scrollbar-corner{background-color:transparent}.editor .monaco-editor{height:100%;min-height:10em}.editor .monaco-editor.sm{min-height:3.5em}.editor .monaco-editor.lg{min-height:14em}.editor .monaco-editor.full{min-height:100%}';const Fk=class{constructor(t){e(this,t),this.itemProps=void 0,this.menubarMode=void 0,this.styles=void 0}updateMenu(){if(this.menuTippy){const{subMenu:e}=this.itemProps;this.menuContent=document.createElement("div"),this.menuContent.style.padding="0.1em",this.menuContent.style.borderRadius="0.3em",this.menuContent.style.backgroundColor="#fff",this.menuContent.style.border="1px solid #a6a39e",e.forEach((e=>{const t=document.createElement("zen-editor-menu-item"),{menuModeLevel:A}=e;A&&A>this.menubarMode||(t.itemProps=Object.assign(Object.assign({},e),{action:e.action?()=>{e.action(),this.menuTippy.hide()}:null}),this.menuContent.append(t))})),this.menuTippy.setContent(this.menuContent)}}componentDidLoad(){var e;const{subMenu:t}=this.itemProps;t&&(this.menuTippy=a(null!==(e=this.menuTippyTarget)&&void 0!==e?e:this.el,{placement:"bottom-start",trigger:"click",interactive:!0,animation:!1,appendTo:()=>{var e,t,A,n;return null===document.fullscreenElement?document.body:null===(n=null===(A=null===(t=null===(e=document.fullscreenElement)||void 0===e?void 0:e.shadowRoot)||void 0===t?void 0:t.querySelector("zen-editor-core"))||void 0===A?void 0:A.shadowRoot)||void 0===n?void 0:n.querySelector(".editor")}}),this.updateMenu())}componentDidUpdate(){this.menuTippy&&this.updateMenu()}render(){const{icon:e,label:A,title:n,action:r,subMenu:o,isDisabled:s=null,isActive:E=null,flip:B="none"}=this.itemProps;return t(i,{key:"c96b2f3d5aabd000099a64d5c5047e4dc5c10453"},t("button",{key:"a905940caaedc710512eadb20234dd7a2950877e",class:`menu-item${s&&s()?" is-disabled":""}${E&&E()?" is-active":""}${"none"!==B?` flip-${B}`:""}${(null==e?void 0:e.flip)?` flip-${e.flip}`:""}${o&&r?" has-submenu":""}`,onClick:s&&s()?null:r,title:n},e&&("string"==typeof e&&e.startsWith("ci")?t("i",{class:`coolicons ${e}`}):t("i",{class:`coolicons ${e.icon}`})),A&&t("span",{key:"d81dcdb9b201856a2838c7ffac5fffc0f12eb66c",class:"label"},A),o&&!r?t("i",{class:"coolicons ci-caret_down_sm"}):null),o&&r&&t("button",{key:"c6b2574f91e30afe6ad488b1f3f364c601ac9695",class:"menu-item",ref:e=>this.menuTippyTarget=e},t("i",{key:"29b0364de10a5d367b044898cf6f305b5a1e19ee",class:"coolicons ci-caret_down_sm"})))}get el(){return A(this)}};Fk.style='@font-face{font-family:\'coolicons\';src:url(data:application/font-woff;base64,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BAAAgAQAAIAEAACABAAAgAQAAKsEAACrBAAA1QQAAKsEAACrBAAAqwQAAKsEAACrBAAAqwQAAKsEAACABAAAqwQAAKsEAACrBAAAVQQAAIAEAACABAAAVQQAAIAEAABVBAAAVQQAAFUEAABVBAAAVQQAAFUEAABVBAAAVQQAAFUEAABVBAAAVQQAAFUEAABVBAAAVQQAAFUEAABVBAAAVQQAAFUEAACrBAAAZwQAAFUEAABVBAAAVQQAAFUEAABVBAAAVQQAAQAEAABVBAAAVQQAAG0EAAEzBAAARgQAAIAEAACABAAAKwQAAIAEAACABAAAgAQAAIAEAABVBAAAVQQAAFUEAAA0BAABKwQAACsEAACABAAAKwQAAFUEAABVBAAAqwQAAdUEAAHVBAAB1QQAAdUEAACABAAAVQQAAFUEAAErBAAAlAQAAFUEAACABAAAgAQAAH8EAABVBAAAqwQAAKsEAACABAAAgAQAAIAEAABVBAAAVQQAAFUEAABVBAAANAQAAKsEAABVBAAAqQQAAKsEAACrBAAAqwQAAKsEAACrBAAAVQQAAKsEAAEABAABAAQAAIAEAACABAAAVQQAAKsEAAErBAAAqwQAAasEAADVBAAAVQQAAVUEAABVBAAAVQQAAG8EAACABAAAgAQAAIAEAACABAAAVQQAAFUEAABVBAAAVQQAAFUEAABIBAAAKwQAAJcEAAEABAAAVQQAAFUEAACABAAAVQQAADAEAABVBAAAqwQAAFUEAABVBAAAgAQAAIAEAACABAAAVQQAAIAEAABVBAAA1QQAAFUEAACABAAAcAQAAFUEAABVBAAAVQQAAGQEAAArBAAAVQQAAIAEAACABAAAgAQAAIAEAABVBAAAZwQAAFUEAABVBAAARgQAAKsEAABVBAABgAQAAYAEAAEABAAA1QQAAFUEAABVBAAAVQQAAIAEAACABAAAVQQAAFUEAABVBAAAVQQAAEcEAABVBAAAVQQAAKsEAACABAAAVQQAACsEAABVBAAAKwQAACsEAABVBAAAVQQAAIAEAABVBAAAgAQAAJEEAABVBAAAgAQAAIAEAACABAAAgAQAANUEAABVBAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAABZBAAAWQQAAFkEAADVBAAAqwQAASsEAAErBAAAqwQAAIAEAADV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)\n format(\'woff\');font-weight:normal;font-style:normal;font-display:block}i.coolicons{font-family:\'coolicons\' !important;speak:never;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ci-add_column:before{content:"\\e900"}.ci-add_minus_square:before{content:"\\e901"}.ci-add_plus_circle:before{content:"\\e902"}.ci-add_plus_square:before{content:"\\e903"}.ci-add_plus:before{content:"\\e904"}.ci-add_row:before{content:"\\e905"}.ci-add_to_queue:before{content:"\\e906"}.ci-airplay:before{content:"\\e907"}.ci-alarm:before{content:"\\e908"}.ci-archive:before{content:"\\e909"}.ci-arrow_circle_down_left:before{content:"\\e90a"}.ci-arrow_circle_down_right:before{content:"\\e90b"}.ci-arrow_circle_down:before{content:"\\e90c"}.ci-arrow_circle_left:before{content:"\\e90d"}.ci-arrow_circle_right:before{content:"\\e90e"}.ci-arrow_circle_up_left:before{content:"\\e90f"}.ci-arrow_circle_up_right:before{content:"\\e910"}.ci-arrow_circle_up:before{content:"\\e911"}.ci-arrow_down_left_lg:before{content:"\\e912"}.ci-arrow_down_left_md:before{content:"\\e913"}.ci-arrow_down_left_sm:before{content:"\\e914"}.ci-arrow_down_lg:before{content:"\\e915"}.ci-arrow_down_md:before{content:"\\e916"}.ci-arrow_down_right_lg:before{content:"\\e917"}.ci-arrow_down_right_md:before{content:"\\e918"}.ci-arrow_down_right_sm:before{content:"\\e919"}.ci-arrow_down_sm:before{content:"\\e91a"}.ci-arrow_down_up:before{content:"\\e91b"}.ci-arrow_left_lg:before{content:"\\e91c"}.ci-arrow_left_md:before{content:"\\e91d"}.ci-arrow_left_right:before{content:"\\e91e"}.ci-arrow_left_sm:before{content:"\\e91f"}.ci-arrow_reload_02:before{content:"\\e920"}.ci-arrow_right_lg:before{content:"\\e921"}.ci-arrow_right_md:before{content:"\\e922"}.ci-arrow_right_sm:before{content:"\\e923"}.ci-arrow_sub_down_left:before{content:"\\e924"}.ci-arrow_sub_down_right:before{content:"\\e925"}.ci-arrow_sub_left_down:before{content:"\\e926"}.ci-arrow_sub_left_up:before{content:"\\e927"}.ci-arrow_sub_right_down:before{content:"\\e928"}.ci-arrow_sub_right_up:before{content:"\\e929"}.ci-arrow_sub_up_left:before{content:"\\e92a"}.ci-arrow_sub_up_right:before{content:"\\e92b"}.ci-arrow_undo_down_left:before{content:"\\e92c"}.ci-arrow_undo_down_right:before{content:"\\e92d"}.ci-arrow_undo_up_left:before{content:"\\e92e"}.ci-arrow_undo_up_right:before{content:"\\e92f"}.ci-arrow_up_left_lg:before{content:"\\e930"}.ci-arrow_up_left_md:before{content:"\\e931"}.ci-arrow_up_left_sm:before{content:"\\e932"}.ci-arrow_up_lg:before{content:"\\e933"}.ci-arrow_up_md:before{content:"\\e934"}.ci-arrow_up_right_lg:before{content:"\\e935"}.ci-arrow_up_right_md:before{content:"\\e936"}.ci-arrow_up_right_sm:before{content:"\\e937"}.ci-arrow_up_sm:before{content:"\\e938"}.ci-arrows_reload_01:before{content:"\\e939"}.ci-bar_bottom:before{content:"\\e93a"}.ci-bar_left:before{content:"\\e93b"}.ci-bar_right:before{content:"\\e93c"}.ci-bar_top:before{content:"\\e93d"}.ci-bell_add:before{content:"\\e93e"}.ci-bell_close:before{content:"\\e93f"}.ci-bell_notification:before{content:"\\e940"}.ci-bell_off:before{content:"\\e941"}.ci-bell_remove:before{content:"\\e942"}.ci-bell_ring:before{content:"\\e943"}.ci-bell:before{content:"\\e944"}.ci-bold:before{content:"\\e945"}.ci-book_open:before{content:"\\e946"}.ci-book:before{content:"\\e947"}.ci-bookmark:before{content:"\\e948"}.ci-building_01:before{content:"\\e949"}.ci-building_02:before{content:"\\e94a"}.ci-building_03:before{content:"\\e94b"}.ci-building_04:before{content:"\\e94c"}.ci-bulb:before{content:"\\e94d"}.ci-calendar_add:before{content:"\\e94e"}.ci-calendar_check:before{content:"\\e94f"}.ci-calendar_close:before{content:"\\e950"}.ci-calendar_days:before{content:"\\e951"}.ci-calendar_event:before{content:"\\e952"}.ci-calendar_remove:before{content:"\\e953"}.ci-calendar_week:before{content:"\\e954"}.ci-calendar:before{content:"\\e955"}.ci-camera:before{content:"\\e956"}.ci-car_auto:before{content:"\\e957"}.ci-caret_circle_down:before{content:"\\e958"}.ci-caret_circle_left:before{content:"\\e959"}.ci-caret_circle_right:before{content:"\\e95a"}.ci-caret_circle_up:before{content:"\\e95b"}.ci-caret_down_md:before{content:"\\e95c"}.ci-caret_down_sm:before{content:"\\e95d"}.ci-caret_left_sm:before{content:"\\e95e"}.ci-caret_right_sm:before{content:"\\e95f"}.ci-caret_up_md:before{content:"\\e960"}.ci-caret_up_sm:before{content:"\\e961"}.ci-chart_bar_horizontal_01:before{content:"\\e962"}.ci-chart_bar_vertical_01:before{content:"\\e963"}.ci-chart_line:before{content:"\\e964"}.ci-chart_pie:before{content:"\\e965"}.ci-chat_add:before{content:"\\e966"}.ci-chat_check:before{content:"\\e967"}.ci-chat_circle_add:before{content:"\\e968"}.ci-chat_circle_check:before{content:"\\e969"}.ci-chat_circle_close:before{content:"\\e96a"}.ci-chat_circle_dots:before{content:"\\e96b"}.ci-chat_circle_remove:before{content:"\\e96c"}.ci-chat_circle:before{content:"\\e96d"}.ci-chat_close:before{content:"\\e96e"}.ci-chat_conversation_circle:before{content:"\\e96f"}.ci-chat_conversation:before{content:"\\e970"}.ci-chat_dots:before{content:"\\e971"}.ci-chat_remove:before{content:"\\e972"}.ci-chat:before{content:"\\e973"}.ci-check_all_big:before{content:"\\e974"}.ci-check_all:before{content:"\\e975"}.ci-check_big:before{content:"\\e976"}.ci-check:before{content:"\\e977"}.ci-checkbox_check:before{content:"\\e978"}.ci-checkbox_fill:before{content:"\\e979"}.ci-checkbox_unchecked:before{content:"\\e97a"}.ci-chevron_down_duo:before{content:"\\e97b"}.ci-chevron_down:before{content:"\\e97c"}.ci-chevron_left_duo:before{content:"\\e97d"}.ci-chevron_left_md:before{content:"\\e97e"}.ci-chevron_left:before{content:"\\e97f"}.ci-chevron_right_duo:before{content:"\\e980"}.ci-chevron_right_md:before{content:"\\e981"}.ci-chevron_right:before{content:"\\e982"}.ci-chevron_up_duo:before{content:"\\e983"}.ci-chevron_up:before{content:"\\e984"}.ci-chromecast:before{content:"\\e985"}.ci-circle_check:before{content:"\\e986"}.ci-circle_help:before{content:"\\e987"}.ci-circle_warning:before{content:"\\e988"}.ci-circle:before{content:"\\e989"}.ci-clock:before{content:"\\e98a"}.ci-close_circle:before{content:"\\e98b"}.ci-close_lg:before{content:"\\e98c"}.ci-close_md:before{content:"\\e98d"}.ci-close_sm:before{content:"\\e98e"}.ci-close_square:before{content:"\\e98f"}.ci-cloud_add:before{content:"\\e990"}.ci-cloud_check:before{content:"\\e991"}.ci-cloud_close:before{content:"\\e992"}.ci-cloud_download:before{content:"\\e993"}.ci-cloud_off:before{content:"\\e994"}.ci-cloud_remove:before{content:"\\e995"}.ci-cloud_upload:before{content:"\\e996"}.ci-cloud:before{content:"\\e997"}.ci-code:before{content:"\\e998"}.ci-coffe_to_go:before{content:"\\e999"}.ci-coffee:before{content:"\\e99a"}.ci-columns:before{content:"\\e99b"}.ci-combine_cells:before{content:"\\e99c"}.ci-command:before{content:"\\e99d"}.ci-compass:before{content:"\\e99e"}.ci-cookie:before{content:"\\e99f"}.ci-copy:before{content:"\\e9a0"}.ci-credit_card_01:before{content:"\\e9a1"}.ci-credit_card_02:before{content:"\\e9a2"}.ci-crop:before{content:"\\e9a3"}.ci-cupcake:before{content:"\\e9a4"}.ci-cylinder:before{content:"\\e9a5"}.ci-data:before{content:"\\e9a6"}.ci-delete_column:before{content:"\\e9a7"}.ci-delete_row:before{content:"\\e9a8"}.ci-desktop_tower:before{content:"\\e9a9"}.ci-desktop:before{content:"\\e9aa"}.ci-devices:before{content:"\\e9ab"}.ci-double_quotes_l:before{content:"\\e9ac"}.ci-double_quotes_r:before{content:"\\e9ad"}.ci-download_package:before{content:"\\e9ae"}.ci-download:before{content:"\\e9af"}.ci-drag_horizontal:before{content:"\\e9b0"}.ci-drag_vertical:before{content:"\\e9b1"}.ci-dummy_circle_small:before{content:"\\e9b2"}.ci-dummy_circle:before{content:"\\e9b3"}.ci-dummy_square_small:before{content:"\\e9b4"}.ci-dummy_square:before{content:"\\e9b5"}.ci-edit_pencil_01:before{content:"\\e9b6"}.ci-edit_pencil_02:before{content:"\\e9b7"}.ci-edit_pencil_line_01:before{content:"\\e9b8"}.ci-edit_pencil_line_02:before{content:"\\e9b9"}.ci-exit:before{content:"\\e9ba"}.ci-expand:before{content:"\\e9bb"}.ci-external_link:before{content:"\\e9bc"}.ci-figma:before{content:"\\e9bd"}.ci-file_add:before{content:"\\e9be"}.ci-file_blank:before{content:"\\e9bf"}.ci-file_check:before{content:"\\e9c0"}.ci-file_close:before{content:"\\e9c1"}.ci-file_code:before{content:"\\e9c2"}.ci-file_document:before{content:"\\e9c3"}.ci-file_download:before{content:"\\e9c4"}.ci-file_edit:before{content:"\\e9c5"}.ci-file_remove:before{content:"\\e9c6"}.ci-file_search:before{content:"\\e9c7"}.ci-file_upload:before{content:"\\e9c8"}.ci-files:before{content:"\\e9c9"}.ci-filter_off:before{content:"\\e9ca"}.ci-filter:before{content:"\\e9cb"}.ci-first_aid:before{content:"\\e9cc"}.ci-flag:before{content:"\\e9cd"}.ci-folder_add:before{content:"\\e9ce"}.ci-folder_check:before{content:"\\e9cf"}.ci-folder_close:before{content:"\\e9d0"}.ci-folder_code:before{content:"\\e9d1"}.ci-folder_document:before{content:"\\e9d2"}.ci-folder_download:before{content:"\\e9d3"}.ci-folder_edit:before{content:"\\e9d4"}.ci-folder_open:before{content:"\\e9d5"}.ci-folder_remove:before{content:"\\e9d6"}.ci-folder_search:before{content:"\\e9d7"}.ci-folder_upload:before{content:"\\e9d8"}.ci-folder:before{content:"\\e9d9"}.ci-folders:before{content:"\\e9da"}.ci-font:before{content:"\\e9db"}.ci-forward:before{content:"\\e9dc"}.ci-gift:before{content:"\\e9dd"}.ci-globe:before{content:"\\e9de"}.ci-hamburger_lg:before{content:"\\e9df"}.ci-hamburger_md:before{content:"\\e9e0"}.ci-handbag:before{content:"\\e9e1"}.ci-heading_h1:before{content:"\\e9e2"}.ci-heading_h2:before{content:"\\e9e3"}.ci-heading_h3:before{content:"\\e9e4"}.ci-heading_h4:before{content:"\\e9e5"}.ci-heading_h5:before{content:"\\e9e6"}.ci-heading_h6:before{content:"\\e9e7"}.ci-heading:before{content:"\\e9e8"}.ci-headphones:before{content:"\\e9e9"}.ci-heart_01:before{content:"\\e9ea"}.ci-heart_02:before{content:"\\e9eb"}.ci-help:before{content:"\\e9ec"}.ci-hide:before{content:"\\e9ed"}.ci-house_01:before{content:"\\e9ee"}.ci-house_02:before{content:"\\e9ef"}.ci-house_03:before{content:"\\e9f0"}.ci-house_add:before{content:"\\e9f1"}.ci-house_check:before{content:"\\e9f2"}.ci-house_close:before{content:"\\e9f3"}.ci-house_remove:before{content:"\\e9f4"}.ci-image_01:before{content:"\\e9f5"}.ci-image_02:before{content:"\\e9f6"}.ci-info:before{content:"\\e9f7"}.ci-instance:before{content:"\\e9f8"}.ci-italic:before{content:"\\e9f9"}.ci-keyboard:before{content:"\\e9fa"}.ci-label:before{content:"\\e9fb"}.ci-laptop:before{content:"\\e9fc"}.ci-layer:before{content:"\\e9fd"}.ci-layers:before{content:"\\e9fe"}.ci-leaf:before{content:"\\e9ff"}.ci-line_l:before{content:"\\ea00"}.ci-line_m:before{content:"\\ea01"}.ci-line_s:before{content:"\\ea02"}.ci-line_xl:before{content:"\\ea03"}.ci-link_break:before{content:"\\ea04"}.ci-link_horizontal_off:before{content:"\\ea05"}.ci-link_horizontal:before{content:"\\ea06"}.ci-link_vertical:before{content:"\\ea07"}.ci-link:before{content:"\\ea08"}.ci-list_add:before{content:"\\ea09"}.ci-list_check:before{content:"\\ea0a"}.ci-list_checklist:before{content:"\\ea0b"}.ci-list_ordered:before{content:"\\ea0c"}.ci-list_remove:before{content:"\\ea0d"}.ci-list_unordered:before{content:"\\ea0e"}.ci-loading:before{content:"\\ea0f"}.ci-lock_open:before{content:"\\ea10"}.ci-lock:before{content:"\\ea11"}.ci-log_out:before{content:"\\ea12"}.ci-magnifying_glass_minus:before{content:"\\ea13"}.ci-magnifying_glass_plus:before{content:"\\ea14"}.ci-mail_open:before{content:"\\ea15"}.ci-mail:before{content:"\\ea16"}.ci-main_component:before{content:"\\ea17"}.ci-map_pin:before{content:"\\ea18"}.ci-map:before{content:"\\ea19"}.ci-mention:before{content:"\\ea1a"}.ci-menu_alt_01:before{content:"\\ea1b"}.ci-menu_alt_02:before{content:"\\ea1c"}.ci-menu_alt_03:before{content:"\\ea1d"}.ci-menu_alt_04:before{content:"\\ea1e"}.ci-menu_alt_05:before{content:"\\ea1f"}.ci-menu_duo_lg:before{content:"\\ea20"}.ci-menu_duo_md:before{content:"\\ea21"}.ci-mobile_button:before{content:"\\ea22"}.ci-mobile:before{content:"\\ea23"}.ci-monitor_play:before{content:"\\ea24"}.ci-monitor:before{content:"\\ea25"}.ci-moon:before{content:"\\ea26"}.ci-more_grid_big:before{content:"\\ea27"}.ci-more_grid_small:before{content:"\\ea28"}.ci-more_horizontal:before{content:"\\ea29"}.ci-more_vertical:before{content:"\\ea2a"}.ci-mouse:before{content:"\\ea2b"}.ci-move_horizontal:before{content:"\\ea2c"}.ci-move_vertical:before{content:"\\ea2d"}.ci-move:before{content:"\\ea2e"}.ci-moving_desk:before{content:"\\ea2f"}.ci-navigation:before{content:"\\ea30"}.ci-note_edit:before{content:"\\ea31"}.ci-note_search:before{content:"\\ea32"}.ci-note:before{content:"\\ea33"}.ci-notebook:before{content:"\\ea34"}.ci-octagon_check:before{content:"\\ea35"}.ci-octagon_help:before{content:"\\ea36"}.ci-octagon_warning:before{content:"\\ea37"}.ci-octagon:before{content:"\\ea38"}.ci-option:before{content:"\\ea39"}.ci-paper_plane:before{content:"\\ea3a"}.ci-paperclip_attechment_horizontal:before{content:"\\ea3b"}.ci-paperclip_attechment_tilt:before{content:"\\ea3c"}.ci-paragraph:before{content:"\\ea3d"}.ci-path:before{content:"\\ea3e"}.ci-pause_circle:before{content:"\\ea3f"}.ci-pause:before{content:"\\ea40"}.ci-phone:before{content:"\\ea41"}.ci-planet:before{content:"\\ea42"}.ci-play_circle:before{content:"\\ea43"}.ci-play:before{content:"\\ea44"}.ci-printer:before{content:"\\ea45"}.ci-puzzle:before{content:"\\ea46"}.ci-qr_code:before{content:"\\ea47"}.ci-radio_fill:before{content:"\\ea48"}.ci-radio_unchecked:before{content:"\\ea49"}.ci-rainbow:before{content:"\\ea4a"}.ci-redo:before{content:"\\ea4b"}.ci-remove_minus_circle:before{content:"\\ea4c"}.ci-remove_minus:before{content:"\\ea4d"}.ci-rewind:before{content:"\\ea4e"}.ci-rows:before{content:"\\ea4f"}.ci-ruler:before{content:"\\ea50"}.ci-save:before{content:"\\ea51"}.ci-search_magnifying_glass:before{content:"\\ea52"}.ci-select_multiple:before{content:"\\ea53"}.ci-settings_future:before{content:"\\ea54"}.ci-settings:before{content:"\\ea55"}.ci-share_android:before{content:"\\ea56"}.ci-share_ios_export:before{content:"\\ea57"}.ci-shield_check:before{content:"\\ea58"}.ci-shield_warning:before{content:"\\ea59"}.ci-shield:before{content:"\\ea5a"}.ci-shopping_bag_01:before{content:"\\ea5b"}.ci-shopping_bag_02:before{content:"\\ea5c"}.ci-shopping_cart_01:before{content:"\\ea5d"}.ci-shopping_cart_02:before{content:"\\ea5e"}.ci-show:before{content:"\\ea5f"}.ci-shrink:before{content:"\\ea60"}.ci-shuffle:before{content:"\\ea61"}.ci-single_quotes_l:before{content:"\\ea62"}.ci-single_quotes_r:before{content:"\\ea63"}.ci-skip_back:before{content:"\\ea64"}.ci-skip_forward:before{content:"\\ea65"}.ci-slider_01:before{content:"\\ea66"}.ci-slider_02:before{content:"\\ea67"}.ci-slider_03:before{content:"\\ea68"}.ci-sort_ascending:before{content:"\\ea69"}.ci-sort_descending:before{content:"\\ea6a"}.ci-square_check:before{content:"\\ea6b"}.ci-square_help:before{content:"\\ea6c"}.ci-square_warning:before{content:"\\ea6d"}.ci-square:before{content:"\\ea6e"}.ci-star:before{content:"\\ea6f"}.ci-stop_circle:before{content:"\\ea70"}.ci-stop_sign:before{content:"\\ea71"}.ci-stop:before{content:"\\ea72"}.ci-strikethrough:before{content:"\\ea73"}.ci-suitcase:before{content:"\\ea74"}.ci-sun:before{content:"\\ea75"}.ci-swatches_palette:before{content:"\\ea76"}.ci-swicht_left:before{content:"\\ea77"}.ci-swicht_right:before{content:"\\ea78"}.ci-table_add:before{content:"\\ea79"}.ci-table_remove:before{content:"\\ea7a"}.ci-table:before{content:"\\ea7b"}.ci-tablet_button:before{content:"\\ea7c"}.ci-tablet:before{content:"\\ea7d"}.ci-tag:before{content:"\\ea7e"}.ci-terminal:before{content:"\\ea7f"}.ci-text_align_center:before{content:"\\ea80"}.ci-text_align_justify:before{content:"\\ea81"}.ci-text_align_left:before{content:"\\ea82"}.ci-text_align_right:before{content:"\\ea83"}.ci-text:before{content:"\\ea84"}.ci-ticket_voucher:before{content:"\\ea85"}.ci-timer_add:before{content:"\\ea86"}.ci-timer_close:before{content:"\\ea87"}.ci-timer_remove:before{content:"\\ea88"}.ci-timer:before{content:"\\ea89"}.ci-trash_empty:before{content:"\\ea8a"}.ci-trash_full:before{content:"\\ea8b"}.ci-trending_down:before{content:"\\ea8c"}.ci-trending_up:before{content:"\\ea8d"}.ci-triangle_check:before{content:"\\ea8e"}.ci-triangle_warning:before{content:"\\ea8f"}.ci-triangle:before{content:"\\ea90"}.ci-underline:before{content:"\\ea91"}.ci-undo:before{content:"\\ea92"}.ci-unfold_less:before{content:"\\ea93"}.ci-unfold_more:before{content:"\\ea94"}.ci-user_01:before{content:"\\ea95"}.ci-user_02:before{content:"\\ea96"}.ci-user_03:before{content:"\\ea97"}.ci-user_add:before{content:"\\ea98"}.ci-user_card_id:before{content:"\\ea99"}.ci-user_check:before{content:"\\ea9a"}.ci-user_circle:before{content:"\\ea9b"}.ci-user_close:before{content:"\\ea9c"}.ci-user_remove:before{content:"\\ea9d"}.ci-user_square:before{content:"\\ea9e"}.ci-user_voice:before{content:"\\ea9f"}.ci-users_group:before{content:"\\eaa0"}.ci-users:before{content:"\\eaa1"}.ci-volume_max:before{content:"\\eaa2"}.ci-volume_min:before{content:"\\eaa3"}.ci-volume_minus:before{content:"\\eaa4"}.ci-volume_off_02:before{content:"\\eaa5"}.ci-volume_off:before{content:"\\eaa6"}.ci-volume_plus:before{content:"\\eaa7"}.ci-warning:before{content:"\\eaa8"}.ci-water_drop:before{content:"\\eaa9"}.ci-wavy_check:before{content:"\\eaaa"}.ci-wavy_help:before{content:"\\eaab"}.ci-wavy_warning:before{content:"\\eaac"}.ci-wavy:before{content:"\\eaad"}.ci-wifi_high:before{content:"\\eaae"}.ci-wifi_low:before{content:"\\eaaf"}.ci-wifi_medium:before{content:"\\eab0"}.ci-wifi_none:before{content:"\\eab1"}.ci-wifi_off:before{content:"\\eab2"}.ci-wifi_problem:before{content:"\\eab3"}.ci-window_check:before{content:"\\eab4"}.ci-window_close:before{content:"\\eab5"}.ci-window_code_block:before{content:"\\eab6"}.ci-window_sidebar:before{content:"\\eab7"}.ci-window_terminal:before{content:"\\eab8"}.ci-window:before{content:"\\eab9"}zen-editor-menu-item .menu-item{background-color:transparent;border:none;border-radius:0.4em;color:#525252;height:1.75em;margin-right:0.25em;padding:0.25em;min-width:1.75em;cursor:pointer}zen-editor-menu-item .menu-item i{font-size:1.25em}zen-editor-menu-item .menu-item.flip-h{transform:scaleX(-1)}zen-editor-menu-item .menu-item.flip-v{transform:scaleY(-1)}zen-editor-menu-item .menu-item.is-disabled{opacity:0.5;cursor:unset}zen-editor-menu-item .menu-item.is-disabled:hover{background-color:transparent;color:#525252}zen-editor-menu-item .menu-item:hover,zen-editor-menu-item .menu-item.is-active{background-color:#525252;color:#fff}zen-editor-menu-item .menu-item.has-submenu+.menu-item>i.ci-caret_down_sm{margin:0 -0.25em}zen-editor-menu-item .menu-item.has-submenu{margin-right:0}zen-editor-menu-item .menu-item.has-submenu:hover{border-radius:0.4em 0 0 0.4em}zen-editor-menu-item .menu-item.has-submenu+.menu-item{border-radius:0 0.4em 0.4em 0;margin-left:0;padding:0.25em 0;min-width:0.75em}zen-editor-menu-item .menu-item i.color-crimson{color:crimson}zen-editor-menu-item .menu-item i.color-deeppink{color:deeppink}zen-editor-menu-item .menu-item i.color-darkorange{color:darkorange}zen-editor-menu-item .menu-item i.color-darkviolet{color:darkviolet}zen-editor-menu-item .menu-item i.color-forestgreen{color:forestgreen}zen-editor-menu-item .menu-item i.color-royalblue{color:royalblue}zen-editor-menu-item .menu-item i.color-saddlebrown{color:saddlebrown}zen-editor-menu-item .menu-item i.color-dimgray{color:dimgray}zen-editor-menu-item .menu-item:has(.color):hover,zen-editor-menu-item .menu-item:has(.color).is-active{background-color:transparent;box-shadow:inset 0 0 0 1px #525252}zen-editor-menu-item:hover .menu-item.has-submenu{border-radius:0.4em 0 0 0.4em}zen-editor-menu-item:last-of-type .menu-item{margin-right:0}';const Yk=class{constructor(t){e(this,t),this.editor=void 0,this.menubarMode=void 0,this.extraMenubarItems="",this.forceUpdateCounter=void 0,this.states=void 0,this.toggleMonaco=void 0,this.toggleFullscreen=void 0,this.styles=void 0}componentDidLoad(){Boolean(this.styles&&this.element.shadowRoot)&&(this.element.shadowRoot.adoptedStyleSheets=[...this.element.shadowRoot.adoptedStyleSheets,this.styles])}getMonacoToggler(){return[[{icon:"ci-edit_pencil_line_01",title:$.getString("menu.source"),action:()=>{var e;return null===(e=this.toggleMonaco)||void 0===e?void 0:e.call(this)},isActive:()=>{var e;return null===(e=this.states)||void 0===e?void 0:e.isMonaco},isHidden:()=>{var e;return null===(e=this.states)||void 0===e?void 0:e.isCollaborative},menuModeLevel:ce.full}]]}getMenubarItems(e){return[...ge(e),[{icon:"ci-bar_top",title:$.getString("menu.fullscreen"),action:()=>{var e;return null===(e=this.toggleFullscreen)||void 0===e?void 0:e.call(this)},isActive:()=>{var e;return null===(e=this.states)||void 0===e?void 0:e.isFullscreen},isHidden:()=>!Boolean(this.toggleFullscreen)}],...this.getMonacoToggler()]}render(){const{editor:e,states:A}=this,{isMonaco:n}=A,i=(n?this.getMonacoToggler():this.getMenubarItems(e)).map((e=>{const A=e.map((e=>{const{isHidden:A,menuModeLevel:n}=e,i=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);ithis.menubarMode?null:t("zen-editor-menu-item",{itemProps:Object.assign({},i),menubarMode:this.menubarMode})}));return Boolean(A.filter((e=>Boolean(e))).length)?t("div",{class:"menu-item-group"},A):null}));return t("div",{class:"menubar"},i,this.extraMenubarItems&&t("div",{className:"menu-item-group extra-menubar-items",innerHTML:this.extraMenubarItems}))}get element(){return A(this)}};Yk.style='.menubar{align-items:center;border-bottom:1px solid #a6a39e;display:flex;flex:0 0 auto;flex-wrap:wrap;padding:0.25em}.menu-item-group{margin-right:0.5em}.menu-item-group:not(:last-child):not(:has(+.extra-menubar-items))::after{content:"";display:inline-block;background-color:rgba(0, 0, 0, 0.1);height:1.25em;margin:0 -0.1em -0.1em 0.4em;width:1px}.menu-item-group:empty{display:none}';export{le as zen_editor_bubble_menu,Qe as zen_editor_content,Dk as zen_editor_core,Fk as zen_editor_menu_item,Yk as zen_editor_menubar} \ No newline at end of file +export{M as monaco_editor,Z as zen_editor}from"./p-aa688caf.js";import{r as e,h as t,g as A,c as n,F as i}from"./p-7900c24a.js";import{P as r,a as o,E as s,i as E,b as B,p as c,t as a,M as g,m as l,g as Q,c as h,d as u,e as w,N as R,w as I,f as d,h as k,T as G,D as C,j as f,k as D,l as F,n as Y,o as m,q as U,r as S,s as N,S as b,u as y,v as p,x as T,F as H,y as x,z,A as J,B as j,C as v,G as P,H as L,I as V,J as O,K as _,L as K,O as W,Q as X,R as q}from"./p-fda4ec51.js";import{L as $}from"./p-986e5fe7.js";class ee{constructor({editor:e,element:t,view:A,tippyOptions:n={},updateDelay:i=250,shouldShow:r}){this.preventHide=!1,this.shouldShow=({view:e,state:t,from:A,to:n})=>{const{doc:i,selection:r}=t,{empty:o}=r,s=!i.textBetween(A,n).length&&E(t.selection),B=this.element.contains(document.activeElement);return!(!e.hasFocus()&&!B||o||s||!this.editor.isEditable)},this.mousedownHandler=()=>{this.preventHide=!0},this.dragstartHandler=()=>{this.hide()},this.focusHandler=()=>{setTimeout((()=>this.update(this.editor.view)))},this.blurHandler=({event:e})=>{var t;this.preventHide?this.preventHide=!1:(null==e?void 0:e.relatedTarget)&&(null===(t=this.element.parentNode)||void 0===t?void 0:t.contains(e.relatedTarget))||this.hide()},this.tippyBlurHandler=e=>{this.blurHandler({event:e})},this.handleDebouncedUpdate=(e,t)=>{const A=!(null==t?void 0:t.selection.eq(e.state.selection)),n=!(null==t?void 0:t.doc.eq(e.state.doc));(A||n)&&(this.updateDebounceTimer&&clearTimeout(this.updateDebounceTimer),this.updateDebounceTimer=window.setTimeout((()=>{this.updateHandler(e,A,n,t)}),this.updateDelay))},this.updateHandler=(e,t,A,n)=>{var i,r,o;const{state:s,composing:E}=e,{selection:a}=s;if(E||!t&&!A)return;this.createTooltip();const{ranges:g}=a,l=Math.min(...g.map((e=>e.$from.pos))),Q=Math.max(...g.map((e=>e.$to.pos)));(null===(i=this.shouldShow)||void 0===i?void 0:i.call(this,{editor:this.editor,view:e,state:s,oldState:n,from:l,to:Q}))?(null===(r=this.tippy)||void 0===r||r.setProps({getReferenceClientRect:(null===(o=this.tippyOptions)||void 0===o?void 0:o.getReferenceClientRect)||(()=>{if(B(s.selection)){let t=e.nodeDOM(l);const A=t.dataset.nodeViewWrapper?t:t.querySelector("[data-node-view-wrapper]");if(A&&(t=A.firstChild),t)return t.getBoundingClientRect()}return c(e,l,Q)})}),this.show()):this.hide()},this.editor=e,this.element=t,this.view=A,this.updateDelay=i,r&&(this.shouldShow=r),this.element.addEventListener("mousedown",this.mousedownHandler,{capture:!0}),this.view.dom.addEventListener("dragstart",this.dragstartHandler),this.editor.on("focus",this.focusHandler),this.editor.on("blur",this.blurHandler),this.tippyOptions=n,this.element.remove(),this.element.style.visibility="visible"}createTooltip(){const{element:e}=this.editor.options;!this.tippy&&e.parentElement&&(this.tippy=a(e,{duration:0,getReferenceClientRect:null,content:this.element,interactive:!0,trigger:"manual",placement:"top",hideOnClick:"toggle",...this.tippyOptions}),this.tippy.popper.firstChild&&this.tippy.popper.firstChild.addEventListener("blur",this.tippyBlurHandler))}update(e,t){const{state:A}=e;if(this.updateDelay>0&&A.selection.$from.pos!==A.selection.$to.pos)return void this.handleDebouncedUpdate(e,t);const n=!(null==t?void 0:t.selection.eq(e.state.selection)),i=!(null==t?void 0:t.doc.eq(e.state.doc));this.updateHandler(e,n,i,t)}show(){var e;null===(e=this.tippy)||void 0===e||e.show()}hide(){var e;null===(e=this.tippy)||void 0===e||e.hide()}destroy(){var e,t;(null===(e=this.tippy)||void 0===e?void 0:e.popper.firstChild)&&this.tippy.popper.firstChild.removeEventListener("blur",this.tippyBlurHandler),null===(t=this.tippy)||void 0===t||t.destroy(),this.element.removeEventListener("mousedown",this.mousedownHandler,{capture:!0}),this.view.dom.removeEventListener("dragstart",this.dragstartHandler),this.editor.off("focus",this.focusHandler),this.editor.off("blur",this.blurHandler)}}const te=e=>new r({key:"string"==typeof e.pluginKey?new o(e.pluginKey):e.pluginKey,view:t=>new ee({view:t,...e})}),Ae=s.create({name:"bubbleMenu",addOptions:()=>({element:null,tippyOptions:{},pluginKey:"bubbleMenu",updateDelay:void 0,shouldShow:null}),addProseMirrorPlugins(){return this.options.element?[te({pluginKey:this.options.pluginKey,editor:this.editor,element:this.options.element,tippyOptions:this.options.tippyOptions,updateDelay:this.options.updateDelay,shouldShow:this.options.shouldShow})]:[]}}),ne=g.create({name:"textStyle",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"span",getAttrs:e=>!!e.hasAttribute("style")&&{}}],renderHTML({HTMLAttributes:e}){return["span",l(this.options.HTMLAttributes,e),0]},addCommands(){return{removeEmptyTextStyle:()=>({state:e,commands:t})=>{const A=Q(e,this.type);return!!Object.entries(A).some((([,e])=>!!e))||t.unsetMark(this.name)}}}}),ie=[9,13,16,20,24,36,48],re=s.create({name:"fontSize",addOptions:()=>({types:["textStyle"]}),addGlobalAttributes(){return[{types:this.options.types,attributes:{fontSize:{default:null,parseHTML:e=>{var t;return parseInt(null===(t=e.style.fontSize)||void 0===t?void 0:t.replace(/px$/,""))},renderHTML:e=>e.fontSize?{style:`font-size: ${e.fontSize}px`}:{}}}}]},addCommands:()=>({setFontSize:e=>({chain:t})=>t().setMark("textStyle",{fontSize:e}).run(),unsetFontSize:()=>({chain:e})=>e().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run(),scaleFontSize:(e="upscale")=>({state:t})=>{const{doc:A,selection:n}=t,{from:i,to:r}=n;return A.slice(i,r).content.descendants(((A,n)=>{var r;if(A.isText){const o=(null===(r=A.marks.find((e=>"textStyle"===e.type.name)))||void 0===r?void 0:r.attrs.fontSize)||13,s=ie.reduce(((e,t)=>Math.abs(t-o)({types:["textStyle"]}),addGlobalAttributes(){return[{types:this.options.types,attributes:{lineHeight:{default:null,parseHTML:e=>e.style.lineHeight,renderHTML:e=>e.lineHeight?{style:`line-height: ${e.lineHeight}`}:{}}}}]},addCommands:()=>({setLineHeight:e=>({chain:t})=>t().selectParentNode().setMark("textStyle",{lineHeight:e}).run(),unsetLineHeight:()=>({chain:e})=>e().selectParentNode().setMark("textStyle",{lineHeight:null}).removeEmptyTextStyle().run()})}),Ee=["Crimson","DeepPink","DarkOrange","DarkViolet","ForestGreen","RoyalBlue","SaddleBrown","DimGray"],Be={"Sans-serif":'"Source Han Sans CN", PingFangSC, "Microsoft YaHei", HiraginoSansGB, Roboto, Helvetica, Tahoma, sans-serif',Serif:'SimSun, STSong, Georgia, "Times New Roman", Times, serif',Cursive:"FangSong, KaiTi, cursive",Monospace:'"Source Code Pro", Menlo, Monaco, Consolas, "Courier New", monospace'};var ce;!function(e){e[e.basic=0]="basic",e[e.compact=1]="compact",e[e.full=2]="full"}(ce||(ce={}));const ae=[1,2,3,4],ge=e=>{const t=Boolean(e.storage.markdown);return[[{icon:"ci-text_align_left",title:$.getString("menu.align.left"),action:()=>e.chain().focus().setTextAlign("left").run(),isActive:()=>e.isActive({textAlign:"left"}),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.full},{icon:"ci-text_align_center",title:$.getString("menu.align.center"),action:()=>e.chain().focus().setTextAlign("center").run(),isActive:()=>e.isActive({textAlign:"center"}),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.full},{icon:"ci-text_align_right",title:$.getString("menu.align.right"),action:()=>e.chain().focus().setTextAlign("right").run(),isActive:()=>e.isActive({textAlign:"right"}),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.full},{icon:"ci-text_align_justify",title:$.getString("menu.align.justify"),action:()=>e.chain().focus().setTextAlign("justify").run(),isActive:()=>e.isActive({textAlign:"justify"}),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.full}],[{icon:"ci-text",title:$.getString("menu.font.family"),subMenu:Object.keys(Be).map((t=>({label:$.getString(`menu.font.family.${t.toLowerCase().replace(/[^\w]/g,"")}`),action:()=>e.chain().focus().setFontFamily(Be[t]).run(),isActive:()=>e.isActive("textStyle",{fontFamily:Be[t]})}))),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.full},{icon:"ci-font",title:$.getString("menu.font.size"),subMenu:ie.map((t=>({label:$.format("menu.font.size.format.px",t.toString()),action:()=>e.chain().focus().setFontSize(t).run(),isActive:()=>e.isActive({fontSize:t})}))),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.compact},{icon:"ci-swatches_palette",title:$.getString("menu.font.color"),subMenu:[...Ee.map((t=>({icon:`ci-text color color-${t.toLowerCase()}`,title:$.getString(`menu.font.color.${t.toLowerCase()}`),action:()=>e.chain().focus().setColor(t).run(),isActive:()=>e.isActive("textStyle",{color:t})}))),{icon:"ci-close_md",title:$.getString("menu.font.color.none"),action:()=>e.chain().focus().unsetColor().run()}],isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.compact},{icon:"ci-bold",title:$.getString("menu.font.weight.bold"),action:()=>e.chain().focus().toggleBold().run(),isActive:()=>e.isActive("bold"),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading"))},{icon:"ci-italic",title:$.getString("menu.font.italic"),action:()=>e.chain().focus().toggleItalic().run(),isActive:()=>e.isActive("italic"),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading"))},{icon:"ci-underline",title:$.getString("menu.font.decoration.underline"),action:()=>{e.isActive("strike")?e.chain().focus().toggleStrike().run():e.chain().focus().toggleUnderline().run()},isActive:()=>e.isActive("underline")||e.isActive("strike"),subMenu:[{icon:"ci-underline",title:$.getString("menu.font.decoration.underline"),action:()=>e.chain().focus().toggleUnderline().run(),isActive:()=>e.isActive("underline")},{icon:"ci-strikethrough",title:$.getString("menu.font.decoration.strike"),action:()=>e.chain().focus().toggleStrike().run(),isActive:()=>e.isActive("strike")}],isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.compact},{icon:"ci-bulb",title:$.getString("menu.font.highlight"),action:()=>e.chain().focus().toggleHighlight().run(),isActive:()=>e.isActive("highlight"),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.full},{icon:"ci-link",title:$.getString("menu.link"),action:()=>{const t=e.isActive("link")?e.getAttributes("link").href:"",A=prompt("Enter URL",t);null!==A&&(""!==A?e.chain().focus().setLink({href:A}).run():e.chain().focus().unsetLink().run())},isActive:()=>e.isActive("link"),subMenu:[{icon:"ci-bar_top",title:$.getString("menu.iframe"),action:()=>{const t=prompt("Enter URL");Boolean(t)&&e.chain().focus().setIframe({src:t}).run()},menuModeLevel:ce.full},{icon:"ci-link",title:$.getString("menu.link"),action:()=>{const t=e.isActive("link")?e.getAttributes("link").href:"",A=prompt("Enter URL",t);null!==A&&(""!==A?e.chain().focus().setLink({href:A}).run():e.chain().focus().unsetLink().run())}},{icon:"ci-link_break",title:$.getString("menu.link.remove"),action:()=>e.chain().focus().unsetLink().run(),isDisabled:()=>!e.isActive("link")}],isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading"))},{icon:"ci-menu_duo_md",title:$.getString("menu.line.spacing"),subMenu:oe.map((t=>({label:$.format("menu.line.spacing.format",t.toString()),action:()=>e.chain().focus().setLineHeight(t).run(),isActive:()=>e.isActive({lineHeight:t})}))),isDisabled:()=>!(e.isActive("paragraph")||e.isActive("heading")),menuModeLevel:ce.full}],[{icon:"ci-heading",title:$.getString("menu.heading"),isActive:()=>e.isActive("heading"),subMenu:ae.map((A=>({icon:`ci-heading_h${A}`,title:$.getString(`menu.heading.${A}`),action:()=>{let n=e.chain().focus().toggleHeading({level:A});return t||(n=n.unsetFontSize()),n.run()},isActive:()=>e.isActive("heading",{level:A})})))},{icon:"ci-paragraph",title:$.getString("menu.paragraph"),action:()=>e.chain().focus().setParagraph().run(),isActive:()=>e.isActive("paragraph")},{icon:"ci-code",title:$.getString("menu.code"),action:()=>{e.isActive("code")?e.chain().focus().toggleCode().run():e.chain().focus().toggleCodeBlock().run()},isActive:()=>e.isActive("code")||e.isActive("codeBlock"),subMenu:[{icon:"ci-window_code_block",title:$.getString("menu.code.block"),action:()=>e.chain().focus().toggleCodeBlock().run(),isActive:()=>e.isActive("codeBlock")},{icon:"ci-code",title:$.getString("menu.code"),action:()=>e.chain().focus().toggleCode().run(),isActive:()=>e.isActive("code")}]}],[{icon:"ci-list_unordered",title:$.getString("menu.list.bullet"),action:()=>{e.isActive("bulletList")?e.chain().focus().toggleBulletList().run():e.isActive("orderedList")?e.chain().focus().toggleOrderedList().run():e.isActive("taskList")?e.chain().focus().toggleTaskList().run():e.chain().focus().toggleBulletList().run()},subMenu:[{icon:"ci-list_unordered",title:$.getString("menu.list.bullet"),action:()=>e.chain().focus().toggleBulletList().run(),isActive:()=>e.isActive("bulletList")},{icon:"ci-list_ordered",title:$.getString("menu.list.ordered"),action:()=>e.chain().focus().toggleOrderedList().run(),isActive:()=>e.isActive("orderedList")},{icon:"ci-list_checklist",title:$.getString("menu.list.task"),action:()=>e.chain().focus().toggleTaskList().run(),isActive:()=>e.isActive("taskList"),menuModeLevel:ce.full}],isActive:()=>e.isActive("bulletList")||e.isActive("orderedList")||e.isActive("taskList")},{icon:"ci-image_02",title:$.getString("menu.image"),action:()=>{const t=document.createElement("input");t.setAttribute("type","file"),t.setAttribute("accept","image/jpeg,image/gif,image/png,image/jpg"),t.onchange=t=>{const{files:A}=t.target;Boolean(A.length)&&e.chain().focus().uploadImage(A.item(0)).run()},t.click()}}],[{icon:"ci-double_quotes_l",title:$.getString("menu.quote"),action:()=>e.chain().focus().toggleBlockquote().run(),isActive:()=>e.isActive("blockquote"),menuModeLevel:ce.full},{icon:"ci-remove_minus",title:$.getString("menu.hr"),action:()=>e.chain().focus().setHorizontalRule().run(),menuModeLevel:ce.full}],[{icon:"ci-table",title:$.getString("menu.table"),subMenu:[{icon:"ci-table",title:$.getString("menu.table"),action:()=>e.chain().focus().insertTable({rows:3,cols:4,withHeaderRow:Boolean(e.storage.markdown)}).run(),isDisabled:()=>e.isActive("table")},{icon:"ci-combine_cells",title:$.getString("menu.table.cell.merge"),action:()=>e.chain().focus().mergeOrSplit().run(),isActive:()=>e.can().splitCell(),isDisabled:()=>!e.can().mergeOrSplit()},{icon:{icon:"ci-add_row",flip:"v"},title:$.getString("menu.table.row.insert.before"),action:()=>e.chain().focus().addRowBefore().run(),isDisabled:()=>!e.can().addRowBefore()},{icon:"ci-add_row",title:$.getString("menu.table.row.insert.after"),action:()=>e.chain().focus().addRowAfter().run(),isDisabled:()=>!e.can().addRowAfter()},{icon:{icon:"ci-add_column",flip:"h"},title:$.getString("menu.table.column.insert.before"),action:()=>e.chain().focus().addColumnBefore().run(),isDisabled:()=>!e.can().addColumnBefore()},{icon:"ci-add_column",title:$.getString("menu.table.column.insert.after"),action:()=>e.chain().focus().addColumnAfter().run(),isDisabled:()=>!e.can().addColumnAfter()},{icon:"ci-delete_row",title:$.getString("menu.table.row.remove"),action:()=>e.chain().focus().deleteRow().run(),isDisabled:()=>!e.can().deleteRow()},{icon:"ci-delete_column",title:$.getString("menu.table.column.remove"),action:()=>e.chain().focus().deleteColumn().run(),isDisabled:()=>!e.can().deleteColumn()},{icon:"ci-table_remove",title:$.getString("menu.table.remove"),action:()=>e.chain().focus().deleteTable().run(),isDisabled:()=>!e.can().deleteTable()}]}],[{icon:"ci-close_circle",title:$.getString("menu.format.clear"),action:()=>e.chain().focus().clearNodes().unsetAllMarks().run(),menuModeLevel:ce.full}],[{icon:"ci-undo",title:$.getString("menu.undo"),action:()=>e.chain().focus().undo().run(),isDisabled:()=>!e.can().undo(),menuModeLevel:ce.full},{icon:"ci-redo",title:$.getString("menu.redo"),action:()=>e.chain().focus().redo().run(),isDisabled:()=>!e.can().redo(),menuModeLevel:ce.full}]]};const le=class{constructor(t){e(this,t),this.menuProps=void 0,this.editor=void 0,this.disabled=!1,this.element=void 0}componentDidLoad(){if(!Boolean(this.element)||this.editor.isDestroyed)return;const{pluginKey:e="bubbleMenu",tippyOptions:t={},shouldShow:A=(this.disabled?()=>!1:({view:e,state:t,from:A,to:n})=>{var i;if(null===(i=e.input)||void 0===i?void 0:i.mouseDown)return!1;const{doc:r,selection:o}=t,s=!Boolean(r.textBetween(A,n).length)&&E(o);return!(!e.hasFocus()||o.empty||s)})}=this.menuProps,n=te({pluginKey:e,editor:this.editor,element:this.element,tippyOptions:t,shouldShow:A});this.editor.registerPlugin(n)}render(){const e=(A=this.editor,[{icon:"ci-bold",title:"Bold",action:()=>A.chain().focus().toggleBold().run(),isActive:()=>A.isActive("bold")},{icon:"ci-italic",title:"Italic",action:()=>A.chain().focus().toggleItalic().run(),isActive:()=>A.isActive("italic")},{icon:"ci-strikethrough",title:"Strike",action:()=>A.chain().focus().toggleStrike().run(),isActive:()=>A.isActive("strike")},{icon:"ci-code",title:"Code",action:()=>A.chain().focus().toggleCode().run(),isActive:()=>A.isActive("code")},{icon:"ci-bulb",title:"Highlight",action:()=>A.chain().focus().toggleHighlight().run(),isActive:()=>A.isActive("highlight")}]);var A;return t("div",{key:"4b08d3930e8d99e4fece5edcc57c37578557c8b0",ref:e=>this.element=e,class:"bubble-menu",style:{visibility:"hidden"}},e.map(((e,A)=>{const n=e,{isHidden:i,type:r}=n,o=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);ithis.editorContentRef=e},e)),t("zen-editor-bubble-menu",{key:"3cc21915d1e89c7b6cb86bd1cc238ba6be12cf5b",editor:this.editor,menuProps:{tippyOptions:{duration:100}},disabled:!this.bubbleMenu}))}get element(){return A(this)}};Qe.style='.ProseMirror{white-space:pre-wrap}.ProseMirror>*+*{margin-top:0.75em}.ProseMirror ul,.ProseMirror ol{padding:0 1em}.ProseMirror h1,.ProseMirror h2,.ProseMirror h3,.ProseMirror h4,.ProseMirror h5,.ProseMirror h6{line-height:1.1}.ProseMirror code{background-color:rgba(97, 97, 97, 0.1);color:#616161}.ProseMirror pre{background:#0d0d0d;border-radius:0.5em;color:#fff;font-family:"JetBrainsMono", monospace;padding:0.75em 1em}.ProseMirror pre code{background:none;color:inherit;font-size:0.8em;padding:0}.ProseMirror pre .hljs-comment,.ProseMirror pre .hljs-quote{color:#616161}.ProseMirror pre .hljs-variable,.ProseMirror pre .hljs-template-variable,.ProseMirror pre .hljs-attribute,.ProseMirror pre .hljs-tag,.ProseMirror pre .hljs-name,.ProseMirror pre .hljs-regexp,.ProseMirror pre .hljs-link,.ProseMirror pre .hljs-selector-id,.ProseMirror pre .hljs-selector-class{color:#f98181}.ProseMirror pre .hljs-number,.ProseMirror pre .hljs-meta,.ProseMirror pre .hljs-built_in,.ProseMirror pre .hljs-builtin-name,.ProseMirror pre .hljs-literal,.ProseMirror pre .hljs-type,.ProseMirror pre .hljs-params{color:#fbbc88}.ProseMirror pre .hljs-string,.ProseMirror pre .hljs-symbol,.ProseMirror pre .hljs-bullet{color:#b9f18d}.ProseMirror pre .hljs-title,.ProseMirror pre .hljs-section{color:#faf594}.ProseMirror pre .hljs-keyword,.ProseMirror pre .hljs-selector-tag{color:#70cff8}.ProseMirror pre .hljs-emphasis{font-style:italic}.ProseMirror pre .hljs-strong{font-weight:700}.ProseMirror mark{background-color:#faf594}.ProseMirror blockquote{border-left:2px solid rgba(13, 13, 13, 0.1);padding-left:1em}.ProseMirror hr{border:none;border-top:2px solid rgba(13, 13, 13, 0.1);margin:2em 0}.ProseMirror ul[data-type=taskList]{list-style:none;padding:0}.ProseMirror ul[data-type=taskList] li{align-items:center;display:flex}.ProseMirror ul[data-type=taskList] li>label{flex:0 0 auto;margin-right:0.5em;user-select:none}.ProseMirror ul[data-type=taskList] li>div{flex:1 1 auto}.ProseMirror ul[data-type=taskList] li>div>p{margin:0.1em 0}.ProseMirror table{border-collapse:collapse;table-layout:fixed;margin:8px 0;overflow:hidden}.ProseMirror table td,.ProseMirror table th{min-width:1em;border:1px solid #616161;padding:3px 5px;vertical-align:top;box-sizing:border-box;position:relative}.ProseMirror table td>*,.ProseMirror table th>*{margin-bottom:0}.ProseMirror table th{font-weight:bold;text-align:left;background-color:#f1f3f5}.ProseMirror table .selectedCell:after{z-index:2;position:absolute;content:"";left:0;right:0;top:0;bottom:0;background:rgba(200, 200, 255, 0.4);pointer-events:none}.ProseMirror table .column-resize-handle{position:absolute;right:-2px;top:0;bottom:-2px;width:3px;background-color:#ace;pointer-events:none}.ProseMirror .resizable-image-holder{position:relative;width:fit-content;height:fit-content;display:inline-block;padding:1px;margin-right:1px}.ProseMirror .resizable-image-holder:hover,.ProseMirror .resizable-image-holder.is-dragging,.ProseMirror .resizable-image-holder.ProseMirror-selectednode{outline:1px solid #aaa}.ProseMirror .resizable-image-holder:hover .resizable-image-size,.ProseMirror .resizable-image-holder:hover .resizable-image-handle,.ProseMirror .resizable-image-holder.is-dragging .resizable-image-size,.ProseMirror .resizable-image-holder.is-dragging .resizable-image-handle,.ProseMirror .resizable-image-holder.ProseMirror-selectednode .resizable-image-size,.ProseMirror .resizable-image-holder.ProseMirror-selectednode .resizable-image-handle{display:block}.ProseMirror .resizable-image-holder>img{display:block}.ProseMirror .resizable-image-holder>.resizable-image-size{display:none;position:absolute;top:0;right:0;background:rgba(97, 97, 97, 0.6666666667);color:#fff;outline:1px solid rgba(170, 170, 170, 0.6666666667);padding:0.1em 0.3em;font-size:0.8em;white-space:nowrap;user-select:none}.ProseMirror .resizable-image-holder>.resizable-image-handle{display:none;position:absolute;bottom:-1px;right:-1px;width:10px;height:10px;background:repeating-linear-gradient(135deg, rgba(0, 0, 0, 0.5333333333), rgba(255, 255, 255, 0.8666666667) 1px, 0, transparent 3px);clip-path:polygon(0 75%, 0 100%, 100% 100%, 100% 0, 75% 0);cursor:nwse-resize;user-select:none}.ProseMirror p.is-editor-empty:first-child::before{color:#adb5bd;content:attr(data-placeholder);float:left;height:0;pointer-events:none}.ProseMirror.resize-cursor{cursor:ew-resize;cursor:col-resize}.ProseMirror:focus{outline:none}';const he=()=>new Map,ue=e=>{const t=he();return e.forEach(((e,A)=>{t.set(A,e)})),t},we=(e,t,A)=>{let n=e.get(t);return void 0===n&&e.set(t,n=A()),n},Me=()=>new Set,Re=e=>e[e.length-1],Ie=(e,t)=>{for(let A=0;A{this.off(e,A),t(...n)};this.on(e,A)}off(e,t){const A=this._observers.get(e);void 0!==A&&(A.delete(t),0===A.size&&this._observers.delete(e))}emit(e,t){return de((this._observers.get(e)||he()).values()).forEach((e=>e(...t)))}destroy(){this._observers=he()}}const Ce=Math.floor,fe=Math.abs,De=(e,t)=>ee>t?e:t,Ye=e=>0!==e?e<0:1/e<0,me=64,Ue=128,Se=127,Ne=Number.MAX_SAFE_INTEGER,be=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&Ce(e)===e),ye=/^\s*/g,pe=/([A-Z])/g,Te=(e,t)=>(e=>e.replace(ye,""))(e.replace(pe,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),He="undefined"!=typeof TextEncoder?new TextEncoder:null,xe=He?e=>He.encode(e):e=>{const t=unescape(encodeURIComponent(e)),A=t.length,n=new Uint8Array(A);for(let e=0;enew Je,Ze=e=>{const t=new Uint8Array((e=>{let t=e.cpos;for(let A=0;A{const A=e.cbuf.length;e.cpos===A&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*A),e.cpos=0),e.cbuf[e.cpos++]=t},Pe=ve,Le=(e,t)=>{for(;t>Se;)ve(e,Ue|Se&t),t=Ce(t/128);ve(e,Se&t)},Ve=(e,t)=>{const A=Ye(t);for(A&&(t=-t),ve(e,(t>63?Ue:0)|(A?me:0)|63&t),t=Ce(t/64);t>0;)ve(e,(t>Se?Ue:0)|Se&t),t=Ce(t/128)},Oe=new Uint8Array(3e4),_e=Oe.length/3,Ke=He&&He.encodeInto?(e,t)=>{if(t.length<_e){const A=He.encodeInto(t,Oe).written||0;Le(e,A);for(let t=0;t{const A=unescape(encodeURIComponent(t)),n=A.length;Le(e,n);for(let t=0;t{const A=e.cbuf.length,n=e.cpos,i=De(A-n,t.length),r=t.length-i;e.cbuf.set(t.subarray(0,i),n),e.cpos+=i,r>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(Fe(2*A,r)),e.cbuf.set(t.subarray(i)),e.cpos=r)},Xe=(e,t)=>{Le(e,t.byteLength),We(e,t)},qe=(e,t)=>{((e,t)=>{const A=e.cbuf.length;A-e.cpos{switch(typeof t){case"string":ve(e,119),Ke(e,t);break;case"number":be(t)&&fe(t)<=2147483647?(ve(e,125),Ve(e,t)):($e.setFloat32(0,A=t),$e.getFloat32(0)===A?(ve(e,124),((e,t)=>{qe(e,4).setFloat32(0,t,!1)})(e,t)):(ve(e,123),((e,t)=>{qe(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":ve(e,122),((e,t)=>{qe(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)ve(e,126);else if(ke(t)){ve(e,117),Le(e,t.length);for(let A=0;A0&&Le(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const At=e=>{e.count>0&&(Ve(e.encoder,1===e.count?e.s:-e.s),e.count>1&&Le(e.encoder,e.count-2))};class nt{constructor(){this.encoder=new Je,this.s=0,this.count=0}write(e){this.s===e?this.count++:(At(this),this.count=1,this.s=e)}toUint8Array(){return At(this),Ze(this.encoder)}}const it=e=>{e.count>0&&(Ve(e.encoder,2*e.diff+(1===e.count?0:1)),e.count>1&&Le(e.encoder,e.count-2))};class rt{constructor(){this.encoder=new Je,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(it(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return it(this),Ze(this.encoder)}}class ot{constructor(){this.sarr=[],this.s="",this.lensE=new nt}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){const e=new Je;return this.sarr.push(this.s),this.s="",Ke(e,this.sarr.join("")),We(e,this.lensE.toUint8Array()),Ze(e)}}const st=e=>new Error(e),Et=()=>{throw st("Method unimplemented")},Bt=()=>{throw st("Unexpected case")},ct=st("Unexpected end of array"),at=st("Integer out of Range");class gt{constructor(e){this.arr=e,this.pos=0}}const lt=e=>new gt(e),Qt=e=>((e,t)=>{const A=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,A})(e,ut(e)),ht=e=>e.arr[e.pos++],ut=e=>{let t=0,A=1;const n=e.arr.length;for(;e.posNe)throw at}throw ct},wt=e=>{let t=e.arr[e.pos++],A=63&t,n=64;const i=(t&me)>0?-1:1;if(!(t&Ue))return i*A;const r=e.arr.length;for(;e.posNe)throw at}throw ct},Mt=ze?e=>ze.decode(Qt(e)):e=>{let t=ut(e);if(0===t)return"";{let A=String.fromCodePoint(ht(e));if(--t<100)for(;t--;)A+=String.fromCodePoint(ht(e));else for(;t>0;){const n=t<1e4?t:1e4,i=e.arr.subarray(e.pos,e.pos+n);e.pos+=n,A+=String.fromCodePoint.apply(null,i),t-=n}return decodeURIComponent(escape(A))}},Rt=(e,t)=>{const A=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,A},It=[()=>{},()=>null,wt,e=>Rt(e,4).getFloat32(0,!1),e=>Rt(e,8).getFloat64(0,!1),e=>Rt(e,8).getBigInt64(0,!1),()=>!1,()=>!0,Mt,e=>{const t=ut(e),A={};for(let n=0;n{const t=ut(e),A=[];for(let n=0;nIt[127-ht(e)](e);class kt extends gt{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){return 0===this.count&&(this.s=this.reader(this),this.count=this.pos!==this.arr.length?ut(this)+1:-1),this.count--,this.s}}class Gt extends gt{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=wt(this);const e=Ye(this.s);this.count=1,e&&(this.s=-this.s,this.count=ut(this)+2)}return this.count--,this.s}}class Ct extends gt{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=wt(this),t=1&e;this.diff=Ce(e/2),this.count=1,t&&(this.count=ut(this)+2)}return this.s+=this.diff,this.count--,this.s}}class ft{constructor(e){this.decoder=new Gt(e),this.str=Mt(this.decoder),this.spos=0}read(){const e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}}const Dt=crypto.getRandomValues.bind(crypto),Ft=Math.random,Yt=()=>Dt(new Uint32Array(1))[0],mt=[1e7]+-1e3+-4e3+-8e3+-1e11,Ut=()=>mt.replace(/[018]/g,(e=>(e^Yt()&15>>e/4).toString(16))),St=Date.now,Nt=e=>new Promise(e);Promise.all.bind(Promise);let bt=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}};try{"undefined"!=typeof localStorage&&localStorage&&(bt=localStorage)}catch(e){}const yt=bt,pt=Object.assign,Tt=Object.keys,Ht=e=>Tt(e).length,xt=(e,t,A=0)=>{try{for(;Ae,Jt="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0),jt="undefined"!=typeof window&&"undefined"!=typeof document&&!Jt;let Zt;"undefined"!=typeof navigator&&/Mac/.test(navigator.platform);const vt=e=>(()=>{if(void 0===Zt)if(Jt){Zt=he();const e=process.argv;let t=null;for(let A=0;A{if(0!==e.length){const[t,A]=e.split("=");Zt.set(`--${Te(t,"-")}`,A),Zt.set(`-${Te(t,"-")}`,A)}}))):Zt=he();return Zt})().has(e),Pt=e=>{return void 0===(t=Jt?process.env[e.toUpperCase()]:yt.getItem(e))?null:t;var t};vt("--"+"production")||Pt("production");const Lt=Jt&&(Vt=process.env.FORCE_COLOR,["true","1","2"].includes(Vt));var Vt;const Ot=!vt("no-colors")&&(!Jt||process.stdout.isTTY||Lt)&&(!Jt||vt("color")||Lt||null!==Pt("COLORTERM")||(Pt("TERM")||"").includes("color"));class _t{constructor(e,t){this.left=e,this.right=t}}const Kt=(e,t)=>new _t(e,t),Wt="undefined"!=typeof document?document:{};"undefined"!=typeof DOMParser&&new DOMParser;const Xt=(qt=clearTimeout,class{constructor(e){this._=e}destroy(){qt(this._)}});var qt;const $t=(e,t)=>new Xt(setTimeout(t,e)),eA=Symbol,tA=eA(),AA=eA(),nA=eA(),iA=eA(),rA=eA(),oA=eA(),sA=eA(),EA=eA(),BA=eA(),cA={[tA]:Kt("font-weight","bold"),[AA]:Kt("font-weight","normal"),[nA]:Kt("color","blue"),[rA]:Kt("color","green"),[iA]:Kt("color","grey"),[oA]:Kt("color","red"),[sA]:Kt("color","purple"),[EA]:Kt("color","orange"),[BA]:Kt("color","black")},aA=Ot?e=>{const t=[],A=[],n=he();let i=[],r=0;for(;r{const A=[];for(const[n,i]of e)A.push(t(i,n));return A})(n,((e,t)=>`${t}:${e};`)).join("");r>0||e.length>0?(t.push("%c"+i),A.push(e)):t.push(i)}}}for(r>0&&(i=A,i.unshift(t.join("")));r{const t=[];let A=0;for(;A({[Symbol.iterator](){return this},next:e}),QA=(e,t)=>lA((()=>{const{done:A,value:n}=e.next();return{done:A,value:A?void 0:t(n)}}));class hA{constructor(e,t){this.clock=e,this.len=t}}class uA{constructor(){this.clients=new Map}}const wA=(e,t,A)=>t.clients.forEach(((t,n)=>{const i=e.doc.store.clients.get(n);for(let n=0;n{const A=e.clients.get(t.client);return void 0!==A&&null!==((e,t)=>{let A=0,n=e.length-1;for(;A<=n;){const i=Ce((A+n)/2),r=e[i],o=r.clock;if(o<=t){if(t{e.clients.forEach((e=>{let t,A;for(e.sort(((e,t)=>e.clock-t.clock)),t=1,A=1;t=i.clock?n.len=Fe(n.len,i.clock+i.len-n.clock):(A{const t=new uA;for(let A=0;A{if(!t.clients.has(i)){const r=n.slice();for(let t=A+1;t{we(e.clients,t,(()=>[])).push(new hA(A,n))},kA=()=>new uA,GA=e=>{const t=kA();return e.clients.forEach(((e,A)=>{const n=[];for(let t=0;t0&&t.clients.set(A,n)})),t},CA=(e,t)=>{Le(e.restEncoder,t.clients.size),de(t.clients.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,A])=>{e.resetDsCurVal(),Le(e.restEncoder,t);const n=A.length;Le(e.restEncoder,n);for(let t=0;t{const t=new uA,A=ut(e.restDecoder);for(let n=0;n0){const i=we(t.clients,A,(()=>[]));for(let t=0;t{const n=new uA,i=ut(e.restDecoder);for(let r=0;r0){const e=new TA;return Le(e.restEncoder,0),CA(e,n),e.toUint8Array()}return null},FA=Yt;class YA extends Ge{constructor({guid:e=Ut(),collectionid:t=null,gc:A=!0,gcFilter:n=(()=>!0),meta:i=null,autoLoad:r=!1,shouldLoad:o=!0}={}){super(),this.gc=A,this.gcFilter=n,this.clientID=FA(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new En,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=o,this.autoLoad=r,this.meta=i,this.isLoaded=!1,this.isSynced=!1,this.whenLoaded=Nt((e=>{this.on("load",(()=>{this.isLoaded=!0,e(this)}))}));const s=()=>Nt((e=>{const t=A=>{void 0!==A&&!0!==A||(this.off("sync",t),e())};this.on("sync",t)}));this.on("sync",(e=>{!1===e&&this.isSynced&&(this.whenSynced=s()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])})),this.whenSynced=s()}load(){const e=this._item;null===e||this.shouldLoad||Gn(e.parent.doc,(e=>{e.subdocsLoaded.add(this)}),null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(de(this.subdocs).map((e=>e.guid)))}transact(e,t=null){return Gn(this,e,t)}get(e,t=On){const A=we(this.share,e,(()=>{const e=new t;return e._integrate(this,null),e})),n=A.constructor;if(t!==On&&n!==t){if(n===On){const n=new t;n._map=A._map,A._map.forEach((e=>{for(;null!==e;e=e.left)e.parent=n})),n._start=A._start;for(let e=n._start;null!==e;e=e.right)e.parent=n;return n._length=A._length,this.share.set(e,n),n._integrate(this,null),n}throw new Error(`Type with the name ${e} has already been defined with a different constructor`)}return A}getArray(e=""){return this.get(e,gi)}getText(e=""){return this.get(e,Ui)}getMap(e=""){return this.get(e,Qi)}getXmlElement(e=""){return this.get(e,bi)}getXmlFragment(e=""){return this.get(e,Ni)}toJSON(){const e={};return this.share.forEach(((t,A)=>{e[A]=t.toJSON()})),e}destroy(){de(this.subdocs).forEach((e=>e.destroy()));const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new YA({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,Gn(e.parent.doc,(A=>{e.deleted||A.subdocsAdded.add(t.doc),A.subdocsRemoved.add(this)}),null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class mA{constructor(e){this.restDecoder=e}resetDsCurVal(){}readDsClock(){return ut(this.restDecoder)}readDsLen(){return ut(this.restDecoder)}}class UA extends mA{readLeftID(){return _A(ut(this.restDecoder),ut(this.restDecoder))}readRightID(){return _A(ut(this.restDecoder),ut(this.restDecoder))}readClient(){return ut(this.restDecoder)}readInfo(){return ht(this.restDecoder)}readString(){return Mt(this.restDecoder)}readParentInfo(){return 1===ut(this.restDecoder)}readTypeRef(){return ut(this.restDecoder)}readLen(){return ut(this.restDecoder)}readAny(){return dt(this.restDecoder)}readBuf(){return(e=>{const t=new Uint8Array(e.byteLength);return t.set(e),t})(Qt(this.restDecoder))}readJSON(){return JSON.parse(Mt(this.restDecoder))}readKey(){return Mt(this.restDecoder)}}class SA{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=ut(this.restDecoder),this.dsCurrVal}readDsLen(){const e=ut(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class NA extends SA{constructor(e){super(e),this.keys=[],ut(e),this.keyClockDecoder=new Ct(Qt(e)),this.clientDecoder=new Gt(Qt(e)),this.leftClockDecoder=new Ct(Qt(e)),this.rightClockDecoder=new Ct(Qt(e)),this.infoDecoder=new kt(Qt(e),ht),this.stringDecoder=new ft(Qt(e)),this.parentInfoDecoder=new kt(Qt(e),ht),this.typeRefDecoder=new Gt(Qt(e)),this.lenDecoder=new Gt(Qt(e))}readLeftID(){return new VA(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new VA(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return 1===this.parentInfoDecoder.read()}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return dt(this.restDecoder)}readBuf(){return Qt(this.restDecoder)}readJSON(){return dt(this.restDecoder)}readKey(){const e=this.keyClockDecoder.read();if(e{const n=new Map;A.forEach(((e,A)=>{cn(t,A)>e&&n.set(A,e)})),Bn(t).forEach(((e,t)=>{A.has(t)||n.set(t,0)})),Le(e.restEncoder,n.size),de(n.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([A,n])=>{((e,t,A,n)=>{n=Fe(n,t[0].id.clock);const i=gn(t,n);Le(e.restEncoder,t.length-i),e.writeClient(A),Le(e.restEncoder,n);const r=t[i];r.write(e,n-r.id.clock);for(let A=i+1;A{const i=lt(t);((e,t,A,n=new NA(e))=>{Gn(t,(e=>{e.local=!1;let t=!1;const A=e.doc,i=A.store,r=((e,t)=>{const A=he(),n=ut(e.restDecoder);for(let i=0;i{const n=[];let i=de(A.keys()).sort(((e,t)=>e-t));if(0===i.length)return null;const r=()=>{if(0===i.length)return null;let e=A.get(i[i.length-1]);for(;e.refs.length===e.i;){if(i.pop(),!(i.length>0))return null;e=A.get(i[i.length-1])}return e};let o=r();if(null===o)return null;const s=new En,E=new Map,B=(e,t)=>{const A=E.get(e);(null==A||A>t)&&E.set(e,t)};let c=o.refs[o.i++];const a=new Map,g=()=>{for(const e of n){const t=e.id.client,n=A.get(t);n?(n.i--,s.clients.set(t,n.refs.slice(n.i)),A.delete(t),n.i=0,n.refs=[]):s.clients.set(t,[e]),i=i.filter((e=>e!==t))}n.length=0};for(;;){if(c.constructor!==ar){const i=we(a,c.id.client,(()=>cn(t,c.id.client)))-c.id.clock;if(i<0)n.push(c),B(c.id.client,c.id.clock-1),g();else{const r=c.getMissing(e,t);if(null!==r){n.push(c);const e=A.get(r)||{refs:[],i:0};if(e.refs.length!==e.i){c=e.refs[e.i++];continue}B(r,cn(t,r)),g()}else(0===i||i0)c=n.pop();else if(null!==o&&o.i0){const e=new TA;return HA(e,s,new Map),Le(e.restEncoder,0),{missing:E,update:e.toUint8Array()}}return null})(e,i,r),s=i.pendingStructs;if(s){for(const[e,A]of s.missing)if(At)&&s.missing.set(e,t)}s.update=Nn([s.update,o.update])}}else i.pendingStructs=o;const E=DA(n,e,i);if(i.pendingDs){const t=new NA(lt(i.pendingDs));ut(t.restDecoder);const A=DA(t,e,i);i.pendingDs=E&&A?Nn([E,A]):E||A}else i.pendingDs=E;if(t){const t=i.pendingStructs.update;i.pendingStructs=null,xA(e.doc,t)}}),A,!1)})(i,e,A,new n(i))},zA=e=>(e=>{const t=new Map,A=ut(e.restDecoder);for(let n=0;n(Le(e.restEncoder,t.size),de(t.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,A])=>{Le(e.restEncoder,t),Le(e.restEncoder,A)})),e);class jA{constructor(){this.l=[]}}const ZA=()=>new jA,vA=(e,t)=>e.l.push(t),PA=(e,t)=>{const A=e.l,n=A.length;e.l=A.filter((e=>t!==e)),n===e.l.length&&console.error("[yjs] Tried to remove event handler that doesn't exist.")},LA=(e,t,A)=>xt(e.l,[t,A]);class VA{constructor(e,t){this.client=e,this.clock=t}}const OA=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,_A=(e,t)=>new VA(e,t),KA=e=>{for(const[t,A]of e.doc.share.entries())if(A===e)return t;throw Bt()},WA=(e,t)=>{for(;null!==t;){if(t.parent===e)return!0;t=t.parent._item}return!1};class XA{constructor(e,t,A,n=0){this.type=e,this.tname=t,this.item=A,this.assoc=n}}const qA=e=>new XA(null==e.type?null:_A(e.type.client,e.type.clock),e.tname||null,null==e.item?null:_A(e.item.client,e.item.clock),null==e.assoc?0:e.assoc);class $A{constructor(e,t,A=0){this.type=e,this.index=t,this.assoc=A}}const en=(e,t,A)=>{let n=null,i=null;return null===e._item?i=KA(e):n=_A(e._item.id.client,e._item.id.clock),new XA(n,i,t,A)},tn=(e,t,A=0)=>{let n=e._start;if(A<0){if(0===t)return en(e,null,A);t--}for(;null!==n;){if(!n.deleted&&n.countable){if(n.length>t)return en(e,_A(n.id.client,n.id.clock+t),A);t-=n.length}if(null===n.right&&A<0)return en(e,n.lastId,A);n=n.right}return en(e,null,A)},An=(e,t)=>e===t||null!==e&&null!==t&&e.tname===t.tname&&OA(e.item,t.item)&&OA(e.type,t.type)&&e.assoc===t.assoc;class nn{constructor(e,t){this.ds=e,this.sv=t}}const rn=(e,t)=>new nn(e,t);rn(kA(),new Map);const on=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!MA(t.ds,e.id),sn=(e,t)=>{const A=we(e.meta,sn,Me),n=e.doc.store;A.has(t)||(t.sv.forEach(((t,A)=>{t{})),A.add(t))};class En{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Bn=e=>{const t=new Map;return e.clients.forEach(((e,A)=>{const n=e[e.length-1];t.set(A,n.id.clock+n.length)})),t},cn=(e,t)=>{const A=e.clients.get(t);if(void 0===A)return 0;const n=A[A.length-1];return n.id.clock+n.length},an=(e,t)=>{let A=e.clients.get(t.id.client);if(void 0===A)A=[],e.clients.set(t.id.client,A);else{const e=A[A.length-1];if(e.id.clock+e.length!==t.id.clock)throw Bt()}A.push(t)},gn=(e,t)=>{let A=0,n=e.length-1,i=e[n],r=i.id.clock;if(r===t)return n;let o=Ce(t/(r+i.length-1)*n);for(;A<=n;){if(i=e[o],r=i.id.clock,r<=t){if(t{const A=e.clients.get(t.client);return A[gn(A,t.clock)]},Qn=(e,t,A)=>{const n=gn(t,A),i=t[n];return i.id.clock{const A=e.doc.store.clients.get(t.client);return A[Qn(e,A,t.clock)]},un=(e,t,A)=>{const n=t.clients.get(A.client),i=gn(n,A.clock),r=n[i];return A.clock!==r.id.clock+r.length-1&&r.constructor!==xi&&n.splice(i+1,0,rr(e,r,A.clock-r.id.clock+1)),r},wn=(e,t,A,n,i)=>{if(0===n)return;const r=A+n;let o,s=Qn(e,t,A);do{o=t[s++],r!(0===t.deleteSet.clients.size&&!(e=>{for(const[n,i]of e)if(A=i,t.beforeState.get(n)!==A)return!0;var A;return!1})(t.afterState)||(RA(t.deleteSet),((e,t)=>{HA(e,t.doc.store,t.beforeState)})(e,t),CA(e,t.deleteSet),0)),In=(e,t,A)=>{const n=t._item;(null===n||n.id.clock<(e.beforeState.get(n.id.client)||0)&&!n.deleted)&&we(e.changed,t,Me).add(A)},dn=(e,t)=>{let A=e[t],n=e[t-1],i=t;for(;i>0&&n.deleted===A.deleted&&n.constructor===A.constructor&&n.mergeWith(A);A=n,n=e[--i-1])A instanceof Er&&null!==A.parentSub&&A.parent._map.get(A.parentSub)===A&&A.parent._map.set(A.parentSub,n);const r=t-i;return r&&e.splice(t+1-r,r),r},kn=(e,t)=>{if(te.push((()=>{null!==n._item&&n._item.deleted||n._callObserver(A,t)})))),e.push((()=>{A.changedParentTypes.forEach(((e,t)=>{t._dEH.l.length>0&&(null===t._item||!t._item.deleted)&&((e=e.filter((e=>null===e.target._item||!e.target._item.deleted))).forEach((e=>{e.currentTarget=t,e._path=null})),e.sort(((e,t)=>e.path.length-t.path.length)),LA(t._dEH,e,A))}))})),e.push((()=>n.emit("afterTransaction",[A,n]))),xt(e,[]),A._needFormattingCleanup&&Fi(A)}finally{n.gc&&((e,t,A)=>{for(const[n,i]of e.clients.entries()){const e=t.clients.get(n);for(let n=i.length-1;n>=0;n--){const r=i[n],o=r.clock+r.len;for(let n=gn(e,r.clock),i=e[n];n{e.clients.forEach(((e,A)=>{const n=t.clients.get(A);for(let t=e.length-1;t>=0;t--){const A=e[t];for(let e=De(n.length-1,1+gn(n,A.clock+A.len-1)),t=n[e];e>0&&t.id.clock>=A.clock;t=n[e])e-=1+dn(n,e)}}))})(r,i),A.afterState.forEach(((e,t)=>{const n=A.beforeState.get(t)||0;if(n!==e){const e=i.clients.get(t),A=Fe(gn(e,n),1);for(let t=e.length-1;t>=A;)t-=1+dn(e,t)}}));for(let e=o.length-1;e>=0;e--){const{client:t,clock:A}=o[e].id,n=i.clients.get(t),r=gn(n,A);r+11||r>0&&dn(n,r)}if(A.local||A.afterState.get(n.clientID)===A.beforeState.get(n.clientID)||(((...e)=>{console.log(...aA(e)),gA.forEach((t=>t.print(e)))})(EA,tA,"[yjs] ",AA,oA,"Changed the client-id because another client seems to be using it."),n.clientID=FA()),n.emit("afterTransactionCleanup",[A,n]),n._observers.has("update")){const e=new yA;Rn(e,A)&&n.emit("update",[e.toUint8Array(),A.origin,n,A])}if(n._observers.has("updateV2")){const e=new TA;Rn(e,A)&&n.emit("updateV2",[e.toUint8Array(),A.origin,n,A])}const{subdocsAdded:s,subdocsLoaded:E,subdocsRemoved:B}=A;(s.size>0||B.size>0||E.size>0)&&(s.forEach((e=>{e.clientID=n.clientID,null==e.collectionid&&(e.collectionid=n.collectionid),n.subdocs.add(e)})),B.forEach((e=>n.subdocs.delete(e))),n.emit("subdocs",[{loaded:E,added:s,removed:B},n,A]),B.forEach((e=>e.destroy()))),e.length<=t+1?(n._transactionCleanups=[],n.emit("afterAllTransactions",[n,e])):kn(e,t+1)}}},Gn=(e,t,A=null,n=!0)=>{const i=e._transactionCleanups;let r=!1,o=null;null===e._transaction&&(r=!0,e._transaction=new Mn(e,A,n),i.push(e._transaction),1===i.length&&e.emit("beforeAllTransactions",[e]),e.emit("beforeTransaction",[e._transaction,e]));try{o=t(e._transaction)}finally{if(r){const t=e._transaction===i[0];e._transaction=null,t&&kn(i,0)}}return o};class Cn{constructor(e,t){this.insertions=t,this.deletions=e,this.meta=new Map}}const fn=(e,t,A)=>{wA(e,A.deletions,(e=>{e instanceof Er&&t.scope.some((t=>WA(t,e)))&&ir(e,!1)}))},Dn=(e,t,A)=>{let n=null;const i=e.doc,r=e.scope;return Gn(i,(A=>{for(;t.length>0&&null===e.currStackItem;){const n=i.store,o=t.pop(),s=new Set,E=[];let B=!1;wA(A,o.insertions,(e=>{if(e instanceof Er){if(null!==e.redone){let{item:t,diff:i}=nr(n,e.id);i>0&&(t=hn(A,_A(t.id.client,t.id.clock+i))),e=t}!e.deleted&&r.some((t=>WA(t,e)))&&E.push(e)}})),wA(A,o.deletions,(e=>{e instanceof Er&&r.some((t=>WA(t,e)))&&!MA(o.insertions,e.id)&&s.add(e)})),s.forEach((t=>{B=null!==sr(A,t,s,o.insertions,e.ignoreRemoteMapChanges,e)||B}));for(let t=E.length-1;t>=0;t--){const n=E[t];e.deleteFilter(n)&&(n.delete(A),B=!0)}e.currStackItem=B?o:null}A.changed.forEach(((e,t)=>{e.has(null)&&t._searchMarker&&(t._searchMarker.length=0)})),n=A}),e),null!=e.currStackItem&&(e.emit("stack-item-popped",[{stackItem:e.currStackItem,type:A,changedParentTypes:n.changedParentTypes,origin:e},e]),e.currStackItem=null),e.currStackItem};class Fn extends Ge{constructor(e,{captureTimeout:t=500,captureTransaction:A=(()=>!0),deleteFilter:n=(()=>!0),trackedOrigins:i=new Set([null]),ignoreRemoteMapChanges:r=!1,doc:o=(ke(e)?e[0].doc:e.doc)}={}){super(),this.scope=[],this.doc=o,this.addToScope(e),this.deleteFilter=n,i.add(this),this.trackedOrigins=i,this.captureTransaction=A,this.undoStack=[],this.redoStack=[],this.undoing=!1,this.redoing=!1,this.currStackItem=null,this.lastChange=0,this.ignoreRemoteMapChanges=r,this.captureTimeout=t,this.afterTransactionHandler=e=>{if(!(this.captureTransaction(e)&&this.scope.some((t=>e.changedParentTypes.has(t)))&&(this.trackedOrigins.has(e.origin)||e.origin&&this.trackedOrigins.has(e.origin.constructor))))return;const t=this.undoing,A=this.redoing,n=t?this.redoStack:this.undoStack;t?this.stopCapturing():A||this.clear(!1,!0);const i=new uA;e.afterState.forEach(((t,A)=>{const n=e.beforeState.get(A)||0,r=t-n;r>0&&dA(i,A,n,r)}));const r=St();let o=!1;if(this.lastChange>0&&r-this.lastChange0&&!t&&!A){const t=n[n.length-1];t.deletions=IA([t.deletions,e.deleteSet]),t.insertions=IA([t.insertions,i])}else n.push(new Cn(e.deleteSet,i)),o=!0;t||A||(this.lastChange=r),wA(e,e.deleteSet,(e=>{e instanceof Er&&this.scope.some((t=>WA(t,e)))&&ir(e,!0)}));this.emit(o?"stack-item-added":"stack-item-updated",[{stackItem:n[n.length-1],origin:e.origin,type:t?"redo":"undo",changedParentTypes:e.changedParentTypes},this])},this.doc.on("afterTransaction",this.afterTransactionHandler),this.doc.on("destroy",(()=>{this.destroy()}))}addToScope(e){(e=ke(e)?e:[e]).forEach((e=>{this.scope.every((t=>t!==e))&&(e.doc!==this.doc&&((...e)=>{console.warn(...aA(e)),e.unshift(EA),gA.forEach((t=>t.print(e)))})("[yjs#509] Not same Y.Doc"),this.scope.push(e))}))}addTrackedOrigin(e){this.trackedOrigins.add(e)}removeTrackedOrigin(e){this.trackedOrigins.delete(e)}clear(e=!0,t=!0){(e&&this.canUndo()||t&&this.canRedo())&&this.doc.transact((A=>{e&&(this.undoStack.forEach((e=>fn(A,this,e))),this.undoStack=[]),t&&(this.redoStack.forEach((e=>fn(A,this,e))),this.redoStack=[]),this.emit("stack-cleared",[{undoStackCleared:e,redoStackCleared:t}])}))}stopCapturing(){this.lastChange=0}undo(){let e;this.undoing=!0;try{e=Dn(this,this.undoStack,"undo")}finally{this.undoing=!1}return e}redo(){let e;this.redoing=!0;try{e=Dn(this,this.redoStack,"redo")}finally{this.redoing=!1}return e}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}destroy(){this.trackedOrigins.delete(this),this.doc.off("afterTransaction",this.afterTransactionHandler),super.destroy()}}class Yn{constructor(e,t){this.gen=function*(e){const t=ut(e.restDecoder);for(let A=0;ANn(e,UA,yA),Sn=(e,t)=>{if(e.constructor===xi){const{client:A,clock:n}=e.id;return new xi(_A(A,n+t),e.length-t)}if(e.constructor===ar){const{client:A,clock:n}=e.id;return new ar(_A(A,n+t),e.length-t)}{const A=e,{client:n,clock:i}=A.id;return new Er(_A(n,i+t),null,_A(n,i+t-1),null,A.rightOrigin,A.parent,A.parentSub,A.content.splice(t))}},Nn=(e,t=NA,A=TA)=>{if(1===e.length)return e[0];const n=e.map((e=>new t(lt(e))));let i=n.map((e=>new Yn(e,!0))),r=null;const o=new A,s=new mn(o);for(;i=i.filter((e=>null!==e.curr)),i.sort(((e,t)=>{if(e.curr.id.client===t.curr.id.client){const A=e.curr.id.clock-t.curr.id.clock;return 0===A?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===ar?1:-1:A}return t.curr.id.client-e.curr.id.client})),0!==i.length;){const e=i[0],t=e.curr.id.client;if(null!==r){let A=e.curr,n=!1;for(;null!==A&&A.id.clock+A.length<=r.struct.id.clock+r.struct.length&&A.id.client>=r.struct.id.client;)A=e.next(),n=!0;if(null===A||A.id.client!==t||n&&A.id.clock>r.struct.id.clock+r.struct.length)continue;if(t!==r.struct.id.client)pn(s,r.struct,r.offset),r={struct:A,offset:0},e.next();else if(r.struct.id.clock+r.struct.length0&&(r.struct.constructor===ar?r.struct.length-=t:A=Sn(A,t)),r.struct.mergeWith(A)||(pn(s,r.struct,r.offset),r={struct:A,offset:0},e.next())}}else r={struct:e.curr,offset:0},e.next();for(let A=e.curr;null!==A&&A.id.client===t&&A.id.clock===r.struct.id.clock+r.struct.length&&A.constructor!==ar;A=e.next())pn(s,r.struct,r.offset),r={struct:A,offset:0}}null!==r&&(pn(s,r.struct,r.offset),r=null),Tn(s);const E=n.map((e=>fA(e))),B=IA(E);return CA(o,B),o.toUint8Array()},bn=(e,t,A=NA,n=TA)=>{const i=zA(t),r=new n,o=new mn(r),s=new A(lt(e)),E=new Yn(s,!1);for(;E.curr;){const e=E.curr,t=e.id.client,A=i.get(t)||0;if(E.curr.constructor!==ar)if(e.id.clock+e.length>A)for(pn(o,e,Fe(A-e.id.clock,0)),E.next();E.curr&&E.curr.id.client===t;)pn(o,E.curr,0),E.next();else for(;E.curr&&E.curr.id.client===t&&E.curr.id.clock+E.curr.length<=A;)E.next();else E.next()}Tn(o);const B=fA(s);return CA(r,B),r.toUint8Array()},yn=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:Ze(e.encoder.restEncoder)}),e.encoder.restEncoder=je(),e.written=0)},pn=(e,t,A)=>{e.written>0&&e.currClient!==t.id.client&&yn(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),Le(e.encoder.restEncoder,t.id.clock+A)),t.write(e.encoder,A),e.written++},Tn=e=>{yn(e);const t=e.encoder.restEncoder;Le(t,e.clientStructs.length);for(let A=0;A((e,t,A,n)=>{const i=new NA(lt(e)),r=new Yn(i,!1),o=new n,s=new mn(o);for(let e=r.curr;null!==e;e=r.next())pn(s,t(e),0);Tn(s);const E=fA(i);return CA(o,E),o.toUint8Array()})(e,zt,0,yA),xn="You must not compute changes after the event-handler fired.";class zn{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=Jn(this.currentTarget,this.target))}deletes(e){return MA(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw st(xn);const e=new Map,t=this.target;this.transaction.changed.get(t).forEach((A=>{if(null!==A){const n=t._map.get(A);let i,r;if(this.adds(n)){let e=n.left;for(;null!==e&&this.adds(e);)e=e.left;if(this.deletes(n)){if(null===e||!this.deletes(e))return;i="delete",r=Re(e.content.getContent())}else null!==e&&this.deletes(e)?(i="update",r=Re(e.content.getContent())):(i="add",r=void 0)}else{if(!this.deletes(n))return;i="delete",r=Re(n.content.getContent())}e.set(A,{action:i,oldValue:r})}})),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(null===e){if(0===this.transaction.doc._transactionCleanups.length)throw st(xn);const t=this.target,A=Me(),n=Me(),i=[];if(e={added:A,deleted:n,delta:i,keys:this.keys},this.transaction.changed.get(t).has(null)){let e=null;const r=()=>{e&&i.push(e)};for(let i=t._start;null!==i;i=i.right)i.deleted?this.deletes(i)&&!this.adds(i)&&(null!==e&&void 0!==e.delete||(r(),e={delete:0}),e.delete+=i.length,n.add(i)):this.adds(i)?(null!==e&&void 0!==e.insert||(r(),e={insert:[]}),e.insert=e.insert.concat(i.content.getContent()),A.add(i)):(null!==e&&void 0!==e.retain||(r(),e={retain:0}),e.retain+=i.length);null!==e&&void 0===e.retain&&r()}this._changes=e}return e}}const Jn=(e,t)=>{const A=[];for(;null!==t._item&&t!==e;){if(null!==t._item.parentSub)A.unshift(t._item.parentSub);else{let e=0,n=t._item.parent._start;for(;n!==t._item&&null!==n;)n.deleted||e++,n=n.right;A.unshift(e)}t=t._item.parent}return A};let jn=0;class Zn{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=jn++}}const vn=(e,t,A)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=A,e.timestamp=jn++},Pn=(e,t)=>{if(null===e._start||0===t||null===e._searchMarker)return null;const A=0===e._searchMarker.length?null:e._searchMarker.reduce(((e,A)=>fe(t-e.index){e.timestamp=jn++})(A));null!==n.right&&it;)n=n.left,!n.deleted&&n.countable&&(i-=n.length);for(;null!==n.left&&n.left.id.client===n.id.client&&n.left.id.clock+n.left.length===n.id.clock;)n=n.left,!n.deleted&&n.countable&&(i-=n.length);return null!==A&&fe(A.index-i){if(e.length>=80){const n=e.reduce(((e,t)=>e.timestamp{for(let n=e.length-1;n>=0;n--){const i=e[n];if(A>0){let t=i.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(i.index-=t.length);if(null===t||!0===t.marker){e.splice(n,1);continue}i.p=t,t.marker=!0}(t0&&t===i.index)&&(i.index=Fe(t,i.index+A))}},Vn=(e,t,A)=>{const n=e,i=t.changedParentTypes;for(;we(i,e,(()=>[])).push(A),null!==e._item;)e=e._item.parent;LA(n._eH,A,t)};class On{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=ZA(),this._dEH=ZA(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw Et()}clone(){throw Et()}_write(e){}get _first(){let e=this._start;for(;null!==e&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){vA(this._eH,e)}observeDeep(e){vA(this._dEH,e)}unobserve(e){PA(this._eH,e)}unobserveDeep(e){PA(this._dEH,e)}toJSON(){}}const _n=(e,t,A)=>{t<0&&(t=e._length+t),A<0&&(A=e._length+A);let n=A-t;const i=[];let r=e._start;for(;null!==r&&n>0;){if(r.countable&&!r.deleted){const e=r.content.getContent();if(e.length<=t)t-=e.length;else{for(let A=t;A0;A++)i.push(e[A]),n--;t=0}}r=r.right}return i},Kn=e=>{const t=[];let A=e._start;for(;null!==A;){if(A.countable&&!A.deleted){const e=A.content.getContent();for(let A=0;A{const A=[];let n=e._start;for(;null!==n;){if(n.countable&&on(n,t)){const e=n.content.getContent();for(let t=0;t{let A=0,n=e._start;for(;null!==n;){if(n.countable&&!n.deleted){const i=n.content.getContent();for(let n=0;n{const A=[];return Xn(e,((n,i)=>{A.push(t(n,i,e))})),A},$n=e=>{let t=e._start,A=null,n=0;return{[Symbol.iterator](){return this},next:()=>{if(null===A){for(;null!==t&&t.deleted;)t=t.right;if(null===t)return{done:!0,value:void 0};A=t.content.getContent(),n=0,t=t.right}const e=A[n++];return A.length<=n&&(A=null),{done:!1,value:e}}}},ei=(e,t)=>{const A=Pn(e,t);let n=e._start;for(null!==A&&(n=A.p,t-=A.index);null!==n;n=n.right)if(!n.deleted&&n.countable){if(t{let i=A;const r=e.doc,o=r.clientID,s=r.store,E=null===A?t._start:A.right;let B=[];const c=()=>{B.length>0&&(i=new Er(_A(o,cn(s,o)),i,i&&i.lastId,E,E&&E.id,t,null,new Vi(B)),i.integrate(e,0),B=[])};n.forEach((A=>{if(null===A)B.push(A);else switch(A.constructor){case Number:case Object:case Boolean:case Array:case String:B.push(A);break;default:switch(c(),A.constructor){case Uint8Array:case ArrayBuffer:i=new Er(_A(o,cn(s,o)),i,i&&i.lastId,E,E&&E.id,t,null,new zi(new Uint8Array(A))),i.integrate(e,0);break;case YA:i=new Er(_A(o,cn(s,o)),i,i&&i.lastId,E,E&&E.id,t,null,new Zi(A)),i.integrate(e,0);break;default:if(!(A instanceof On))throw new Error("Unexpected content type in insert operation");i=new Er(_A(o,cn(s,o)),i,i&&i.lastId,E,E&&E.id,t,null,new Ar(A)),i.integrate(e,0)}}})),c()},Ai=()=>st("Length exceeded!"),ni=(e,t,A,n)=>{if(A>t._length)throw Ai();if(0===A)return t._searchMarker&&Ln(t._searchMarker,A,n.length),ti(e,t,null,n);const i=A,r=Pn(t,A);let o=t._start;for(null!==r&&(o=r.p,0==(A-=r.index)&&(o=o.prev,A+=o&&o.countable&&!o.deleted?o.length:0));null!==o;o=o.right)if(!o.deleted&&o.countable){if(A<=o.length){A{if(0===n)return;const i=A,r=n,o=Pn(t,A);let s=t._start;for(null!==o&&(s=o.p,A-=o.index);null!==s&&A>0;s=s.right)!s.deleted&&s.countable&&(A0&&null!==s;)s.deleted||(n0)throw Ai();t._searchMarker&&Ln(t._searchMarker,i,-r+n)},ri=(e,t,A)=>{const n=t._map.get(A);void 0!==n&&n.delete(e)},oi=(e,t,A,n)=>{const i=t._map.get(A)||null,r=e.doc,o=r.clientID;let s;if(null==n)s=new Vi([n]);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:s=new Vi([n]);break;case Uint8Array:s=new zi(n);break;case YA:s=new Zi(n);break;default:if(!(n instanceof On))throw new Error("Unexpected content type");s=new Ar(n)}new Er(_A(o,cn(r.store,o)),i,i&&i.lastId,null,null,t,A,s).integrate(e,0)},si=(e,t)=>{const A=e._map.get(t);return void 0===A||A.deleted?void 0:A.content.getContent()[A.length-1]},Ei=e=>{const t={};return e._map.forEach(((e,A)=>{e.deleted||(t[A]=e.content.getContent()[e.length-1])})),t},Bi=(e,t)=>{const A=e._map.get(t);return void 0!==A&&!A.deleted},ci=e=>{return t=e.entries(),A=e=>!e[1].deleted,lA((()=>{let e;do{e=t.next()}while(!e.done&&!A(e.value));return e}));var t,A};class ai extends zn{constructor(e,t){super(e,t),this._transaction=t}}class gi extends On{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new gi;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new gi}clone(){const e=new gi;return e.insert(0,this.toArray().map((e=>e instanceof On?e.clone():e))),e}get length(){return null===this._prelimContent?this._length:this._prelimContent.length}_callObserver(e,t){super._callObserver(e,t),Vn(this,e,new ai(this,e))}insert(e,t){null!==this.doc?Gn(this.doc,(A=>{ni(A,this,e,t)})):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?Gn(this.doc,(t=>{((e,t,A)=>{let n=(t._searchMarker||[]).reduce(((e,t)=>t.index>e.index?t:e),{index:0,p:t._start}).p;if(n)for(;n.right;)n=n.right;ti(e,t,n,A)})(t,this,e)})):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?Gn(this.doc,(A=>{ii(A,this,e,t)})):this._prelimContent.splice(e,t)}get(e){return ei(this,e)}toArray(){return Kn(this)}slice(e=0,t=this.length){return _n(this,e,t)}toJSON(){return this.map((e=>e instanceof On?e.toJSON():e))}map(e){return qn(this,e)}forEach(e){Xn(this,e)}[Symbol.iterator](){return $n(this)}_write(e){e.writeTypeRef(Ki)}}class li extends zn{constructor(e,t,A){super(e,t),this.keysChanged=A}}class Qi extends On{constructor(e){super(),this._prelimContent=null,this._prelimContent=void 0===e?new Map:new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach(((e,t)=>{this.set(t,e)})),this._prelimContent=null}_copy(){return new Qi}clone(){const e=new Qi;return this.forEach(((t,A)=>{e.set(A,t instanceof On?t.clone():t)})),e}_callObserver(e,t){Vn(this,e,new li(this,e,t))}toJSON(){const e={};return this._map.forEach(((t,A)=>{if(!t.deleted){const n=t.content.getContent()[t.length-1];e[A]=n instanceof On?n.toJSON():n}})),e}get size(){return[...ci(this._map)].length}keys(){return QA(ci(this._map),(e=>e[0]))}values(){return QA(ci(this._map),(e=>e[1].content.getContent()[e[1].length-1]))}entries(){return QA(ci(this._map),(e=>[e[0],e[1].content.getContent()[e[1].length-1]]))}forEach(e){this._map.forEach(((t,A)=>{t.deleted||e(t.content.getContent()[t.length-1],A,this)}))}[Symbol.iterator](){return this.entries()}delete(e){null!==this.doc?Gn(this.doc,(t=>{ri(t,this,e)})):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?Gn(this.doc,(A=>{oi(A,this,e,t)})):this._prelimContent.set(e,t),t}get(e){return si(this,e)}has(e){return Bi(this,e)}clear(){null!==this.doc?Gn(this.doc,(e=>{this.forEach((function(t,A,n){ri(e,n,A)}))})):this._prelimContent.clear()}_write(e){e.writeTypeRef(Wi)}}const hi=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||Ht(e)===Ht(t)&&((e,t)=>{for(const A in e)if(!t(e[A],A))return!1;return!0})(e,((e,A)=>(void 0!==e||((e,t)=>Object.prototype.hasOwnProperty.call(e,t))(t,A))&&t[A]===e)))(e,t);class ui{constructor(e,t,A,n){this.left=e,this.right=t,this.index=A,this.currentAttributes=n}forward(){null===this.right&&Bt(),this.right.content.constructor===Pi?this.right.deleted||Ii(this.currentAttributes,this.right.content):this.right.deleted||(this.index+=this.right.length),this.left=this.right,this.right=this.right.right}}const wi=(e,t,A)=>{for(;null!==t.right&&A>0;)t.right.content.constructor===Pi?t.right.deleted||Ii(t.currentAttributes,t.right.content):t.right.deleted||(A{const i=new Map,r=n?Pn(t,A):null;if(r){const t=new ui(r.p.left,r.p,r.index,i);return wi(e,t,A-r.index)}{const n=new ui(null,t._start,0,i);return wi(e,n,A)}},Ri=(e,t,A,n)=>{for(;null!==A.right&&(!0===A.right.deleted||A.right.content.constructor===Pi&&hi(n.get(A.right.content.key),A.right.content.value));)A.right.deleted||n.delete(A.right.content.key),A.forward();const i=e.doc,r=i.clientID;n.forEach(((n,o)=>{const s=A.left,E=A.right,B=new Er(_A(r,cn(i.store,r)),s,s&&s.lastId,E,E&&E.id,t,null,new Pi(o,n));B.integrate(e,0),A.right=B,A.forward()}))},Ii=(e,t)=>{const{key:A,value:n}=t;null===n?e.delete(A):e.set(A,n)},di=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===Pi&&hi(t[e.right.content.key]??null,e.right.content.value));)e.forward()},ki=(e,t,A,n)=>{const i=e.doc,r=i.clientID,o=new Map;for(const s in n){const E=n[s],B=A.currentAttributes.get(s)??null;if(!hi(B,E)){o.set(s,B);const{left:n,right:c}=A;A.right=new Er(_A(r,cn(i.store,r)),n,n&&n.lastId,c,c&&c.id,t,null,new Pi(s,E)),A.right.integrate(e,0),A.forward()}}return o},Gi=(e,t,A,n,i)=>{A.currentAttributes.forEach(((e,t)=>{void 0===i[t]&&(i[t]=null)}));const r=e.doc,o=r.clientID;di(A,i);const s=ki(e,t,A,i),E=n.constructor===String?new Oi(n):n instanceof On?new Ar(n):new vi(n);let{left:B,right:c,index:a}=A;t._searchMarker&&Ln(t._searchMarker,A.index,E.getLength()),c=new Er(_A(o,cn(r.store,o)),B,B&&B.lastId,c,c&&c.id,t,null,E),c.integrate(e,0),A.right=c,A.index=a,A.forward(),Ri(e,t,A,s)},Ci=(e,t,A,n,i)=>{const r=e.doc,o=r.clientID;di(A,i);const s=ki(e,t,A,i);e:for(;null!==A.right&&(n>0||s.size>0&&(A.right.deleted||A.right.content.constructor===Pi));){if(!A.right.deleted)switch(A.right.content.constructor){case Pi:{const{key:t,value:r}=A.right.content,o=i[t];if(void 0!==o){if(hi(o,r))s.delete(t);else{if(0===n)break e;s.set(t,r)}A.right.delete(e)}else A.currentAttributes.set(t,r);break}default:n0){let i="";for(;n>0;n--)i+="\n";A.right=new Er(_A(o,cn(r.store,o)),A.left,A.left&&A.left.lastId,A.right,A.right&&A.right.id,t,null,new Oi(i)),A.right.integrate(e,0),A.forward()}Ri(e,t,A,s)},fi=(e,t,A,n,i)=>{let r=t;const o=he();for(;r&&(!r.countable||r.deleted);){if(!r.deleted&&r.content.constructor===Pi){const e=r.content;o.set(e.key,e)}r=r.right}let s=0,E=!1;for(;t!==r;){if(A===t&&(E=!0),!t.deleted){const A=t.content;switch(A.constructor){case Pi:{const{key:r,value:B}=A,c=n.get(r)??null;o.get(r)===A&&c!==B||(t.delete(e),s++,E||(i.get(r)??null)!==B||c===B||(null===c?i.delete(r):i.set(r,c))),E||t.deleted||Ii(i,A);break}}}t=t.right}return s},Di=e=>{let t=0;return Gn(e.doc,(A=>{let n=e._start,i=e._start,r=he();const o=ue(r);for(;i;)!1===i.deleted&&(i.content.constructor===Pi?Ii(o,i.content):(t+=fi(A,n,i,r,o),r=ue(o),n=i)),i=i.right})),t},Fi=e=>{const t=new Set,A=e.doc;for(const[n,i]of e.afterState.entries()){const r=e.beforeState.get(n)||0;i!==r&&wn(e,A.store.clients.get(n),r,i,(e=>{e.deleted||e.content.constructor!==Pi||e.constructor===xi||t.add(e.parent)}))}Gn(A,(A=>{wA(e,e.deleteSet,(e=>{e instanceof xi||!e.parent._hasFormatting||t.has(e.parent)||(e.content.constructor===Pi?t.add(e.parent):((e,t)=>{for(;t&&t.right&&(t.right.deleted||!t.right.countable);)t=t.right;const A=new Set;for(;t&&(t.deleted||!t.countable);){if(!t.deleted&&t.content.constructor===Pi){const n=t.content.key;A.has(n)?t.delete(e):A.add(n)}t=t.left}})(A,e))}));for(const e of t)Di(e)}))},Yi=(e,t,A)=>{const n=A,i=ue(t.currentAttributes),r=t.right;for(;A>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case Ar:case vi:case Oi:A{null===e?this.childListChanged=!0:this.keysChanged.add(e)}))}get changes(){if(null===this._changes){const e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(null===this._delta){const e=[];Gn(this.target.doc,(t=>{const A=new Map,n=new Map;let i=this.target._start,r=null;const o={};let s="",E=0,B=0;const c=()=>{if(null!==r){let t=null;switch(r){case"delete":B>0&&(t={delete:B}),B=0;break;case"insert":("object"==typeof s||s.length>0)&&(t={insert:s},A.size>0&&(t.attributes={},A.forEach(((e,A)=>{null!==e&&(t.attributes[A]=e)})))),s="";break;case"retain":E>0&&(t={retain:E},(e=>{for(const t in e)return!1;return!0})(o)||(t.attributes=pt({},o))),E=0}t&&e.push(t),r=null}};for(;null!==i;){switch(i.content.constructor){case Ar:case vi:this.adds(i)?this.deletes(i)||(c(),r="insert",s=i.content.getContent()[0],c()):this.deletes(i)?("delete"!==r&&(c(),r="delete"),B+=1):i.deleted||("retain"!==r&&(c(),r="retain"),E+=1);break;case Oi:this.adds(i)?this.deletes(i)||("insert"!==r&&(c(),r="insert"),s+=i.content.str):this.deletes(i)?("delete"!==r&&(c(),r="delete"),B+=i.length):i.deleted||("retain"!==r&&(c(),r="retain"),E+=i.length);break;case Pi:{const{key:e,value:s}=i.content;if(this.adds(i)){if(!this.deletes(i)){const E=A.get(e)??null;hi(E,s)?null!==s&&i.delete(t):("retain"===r&&c(),hi(s,n.get(e)??null)?delete o[e]:o[e]=s)}}else if(this.deletes(i)){n.set(e,s);const t=A.get(e)??null;hi(t,s)||("retain"===r&&c(),o[e]=t)}else if(!i.deleted){n.set(e,s);const A=o[e];void 0!==A&&(hi(A,s)?null!==A&&i.delete(t):("retain"===r&&c(),null===s?delete o[e]:o[e]=s))}i.deleted||("insert"===r&&c(),Ii(A,i.content));break}}i=i.right}for(c();e.length>0;){const t=e[e.length-1];if(void 0===t.retain||void 0!==t.attributes)break;e.pop()}})),this._delta=e}return this._delta}}class Ui extends On{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach((e=>e()))}catch(e){console.error(e)}this._pending=null}_copy(){return new Ui}clone(){const e=new Ui;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);const A=new mi(this,e,t);Vn(this,e,A),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===Oi&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?Gn(this.doc,(A=>{const n=new ui(null,this._start,0,new Map);for(let i=0;i0)&&Gi(A,this,n,o,r.attributes||{})}else void 0!==r.retain?Ci(A,this,n,r.retain,r.attributes||{}):void 0!==r.delete&&Yi(A,n,r.delete)}})):this._pending.push((()=>this.applyDelta(e)))}toDelta(e,t,A){const n=[],i=new Map;let r="",o=this._start;function s(){if(r.length>0){const e={};let t=!1;i.forEach(((A,n)=>{t=!0,e[n]=A}));const A={insert:r};t&&(A.attributes=e),n.push(A),r=""}}const E=()=>{for(;null!==o;){if(on(o,e)||void 0!==t&&on(o,t))switch(o.content.constructor){case Oi:{const n=i.get("ychange");void 0===e||on(o,e)?void 0===t||on(o,t)?void 0!==n&&(s(),i.delete("ychange")):void 0!==n&&n.user===o.id.client&&"added"===n.type||(s(),i.set("ychange",A?A("added",o.id):{type:"added"})):void 0!==n&&n.user===o.id.client&&"removed"===n.type||(s(),i.set("ychange",A?A("removed",o.id):{type:"removed"})),r+=o.content.str;break}case Ar:case vi:{s();const e={insert:o.content.getContent()[0]};if(i.size>0){const t={};e.attributes=t,i.forEach(((e,A)=>{t[A]=e}))}n.push(e);break}case Pi:on(o,e)&&(s(),Ii(i,o.content))}o=o.right}s()};return e||t?Gn(this.doc,(A=>{e&&sn(A,e),t&&sn(A,t),E()}),"cleanup"):E(),n}insert(e,t,A){if(t.length<=0)return;const n=this.doc;null!==n?Gn(n,(n=>{const i=Mi(n,this,e,!A);A||(A={},i.currentAttributes.forEach(((e,t)=>{A[t]=e}))),Gi(n,this,i,t,A)})):this._pending.push((()=>this.insert(e,t,A)))}insertEmbed(e,t,A){const n=this.doc;null!==n?Gn(n,(n=>{const i=Mi(n,this,e,!A);Gi(n,this,i,t,A||{})})):this._pending.push((()=>this.insertEmbed(e,t,A||{})))}delete(e,t){if(0===t)return;const A=this.doc;null!==A?Gn(A,(A=>{Yi(A,Mi(A,this,e,!0),t)})):this._pending.push((()=>this.delete(e,t)))}format(e,t,A){if(0===t)return;const n=this.doc;null!==n?Gn(n,(n=>{const i=Mi(n,this,e,!1);null!==i.right&&Ci(n,this,i,t,A)})):this._pending.push((()=>this.format(e,t,A)))}removeAttribute(e){null!==this.doc?Gn(this.doc,(t=>{ri(t,this,e)})):this._pending.push((()=>this.removeAttribute(e)))}setAttribute(e,t){null!==this.doc?Gn(this.doc,(A=>{oi(A,this,e,t)})):this._pending.push((()=>this.setAttribute(e,t)))}getAttribute(e){return si(this,e)}getAttributes(){return Ei(this)}_write(e){e.writeTypeRef(Xi)}}class Si{constructor(e,t=(()=>!0)){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(null!==e&&(!this._firstCall||e.deleted||!this._filter(t)))do{if(t=e.content.type,e.deleted||t.constructor!==bi&&t.constructor!==Ni||null===t._start)for(;null!==e;){if(null!==e.right){e=e.right;break}e=e.parent===this._root?null:e.parent._item}else e=t._start}while(null!==e&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,null===e?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}}class Ni extends On{constructor(){super(),this._prelimContent=[]}get firstChild(){const e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Ni}clone(){const e=new Ni;return e.insert(0,this.toArray().map((e=>e instanceof On?e.clone():e))),e}get length(){return null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new Si(this,e)}querySelector(e){e=e.toUpperCase();const t=new Si(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),de(new Si(this,(t=>t.nodeName&&t.nodeName.toUpperCase()===e)))}_callObserver(e,t){Vn(this,e,new yi(this,t,e))}toString(){return qn(this,(e=>e.toString())).join("")}toJSON(){return this.toString()}toDOM(e=document,t={},A){const n=e.createDocumentFragment();return void 0!==A&&A._createAssociation(n,this),Xn(this,(i=>{n.insertBefore(i.toDOM(e,t,A),null)})),n}insert(e,t){null!==this.doc?Gn(this.doc,(A=>{ni(A,this,e,t)})):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)Gn(this.doc,(A=>{ti(A,this,e&&e instanceof On?e._item:e,t)}));else{const A=this._prelimContent,n=null===e?0:A.findIndex((t=>t===e))+1;if(0===n&&null!==e)throw st("Reference item not found");A.splice(n,0,...t)}}delete(e,t=1){null!==this.doc?Gn(this.doc,(A=>{ii(A,this,e,t)})):this._prelimContent.splice(e,t)}toArray(){return Kn(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return ei(this,e)}slice(e=0,t=this.length){return _n(this,e,t)}forEach(e){Xn(this,e)}_write(e){e.writeTypeRef($i)}}class bi extends Ni{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach(((e,t)=>{this.setAttribute(t,e)})),this._prelimAttrs=null}_copy(){return new bi(this.nodeName)}clone(){const e=new bi(this.nodeName);return((e,t)=>{for(const A in e)t(e[A],A)})(this.getAttributes(),((t,A)=>{"string"==typeof t&&e.setAttribute(A,t)})),e.insert(0,this.toArray().map((e=>e instanceof On?e.clone():e))),e}toString(){const e=this.getAttributes(),t=[],A=[];for(const t in e)A.push(t);A.sort();const n=A.length;for(let i=0;i0?" "+t.join(" "):""}>${super.toString()}`}removeAttribute(e){null!==this.doc?Gn(this.doc,(t=>{ri(t,this,e)})):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?Gn(this.doc,(A=>{oi(A,this,e,t)})):this._prelimAttrs.set(e,t)}getAttribute(e){return si(this,e)}hasAttribute(e){return Bi(this,e)}getAttributes(e){return e?((e,t)=>{const A={};return this._map.forEach(((e,n)=>{let i=e;for(;null!==i&&(!t.sv.has(i.id.client)||i.id.clock>=(t.sv.get(i.id.client)||0));)i=i.left;null!==i&&on(i,t)&&(A[n]=i.content.getContent()[i.length-1])})),A})(0,e):Ei(this)}toDOM(e=document,t={},A){const n=e.createElement(this.nodeName),i=this.getAttributes();for(const e in i){const t=i[e];"string"==typeof t&&n.setAttribute(e,t)}return Xn(this,(i=>{n.appendChild(i.toDOM(e,t,A))})),void 0!==A&&A._createAssociation(n,this),n}_write(e){e.writeTypeRef(qi),e.writeKey(this.nodeName)}}class yi extends zn{constructor(e,t,A){super(e,A),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach((e=>{null===e?this.childListChanged=!0:this.attributesChanged.add(e)}))}}class pi extends Qi{constructor(e){super(),this.hookName=e}_copy(){return new pi(this.hookName)}clone(){const e=new pi(this.hookName);return this.forEach(((t,A)=>{e.set(A,t)})),e}toDOM(e=document,t={},A){const n=t[this.hookName];let i;return i=void 0!==n?n.createDom(this):document.createElement(this.hookName),i.setAttribute("data-yjs-hook",this.hookName),void 0!==A&&A._createAssociation(i,this),i}_write(e){e.writeTypeRef(er),e.writeKey(this.hookName)}}class Ti extends Ui{get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new Ti}clone(){const e=new Ti;return e.applyDelta(this.toDelta()),e}toDOM(e=document,t,A){const n=e.createTextNode(this.toString());return void 0!==A&&A._createAssociation(n,this),n}toString(){return this.toDelta().map((e=>{const t=[];for(const A in e.attributes){const n=[];for(const t in e.attributes[A])n.push({key:t,value:e.attributes[A][t]});n.sort(((e,t)=>e.keye.nodeName=0;e--)A+=``;return A})).join("")}toJSON(){return this.toString()}_write(e){e.writeTypeRef(tr)}}class Hi{constructor(e,t){this.id=e,this.length=t}get deleted(){throw Et()}mergeWith(e){return!1}write(e,t,A){throw Et()}integrate(e,t){throw Et()}}class xi extends Hi{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),an(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class zi{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new zi(this.content)}splice(e){throw Et()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class Ji{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new Ji(this.len)}splice(e){const t=new Ji(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){dA(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted()}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t)}getRef(){return 1}}const ji=(e,t)=>new YA({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Zi{constructor(e){e._item&&console.error("This document was already integrated as a sub-document. You should create a second instance instead with the same guid."),this.doc=e;const t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),null!==e.meta&&(t.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new Zi(ji(this.doc.guid,this.opts))}splice(e){throw Et()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}}class vi{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new vi(this.embed)}splice(e){throw Et()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class Pi{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new Pi(this.key,this.value)}splice(e){throw Et()}mergeWith(e){return!1}integrate(e,t){const A=t.parent;A._searchMarker=null,A._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}}class Li{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Li(this.arr)}splice(e){const t=new Li(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){const A=this.arr.length;e.writeLen(A-t);for(let n=t;n=55296&&A<=56319&&(this.str=this.str.slice(0,e-1)+"�",t.str="�"+t.str.slice(1)),t}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(0===t?this.str:this.str.slice(t))}getRef(){return 4}}const _i=[()=>new gi,()=>new Qi,()=>new Ui,e=>new bi(e.readKey()),()=>new Ni,e=>new pi(e.readKey()),()=>new Ti],Ki=0,Wi=1,Xi=2,qi=3,$i=4,er=5,tr=6;class Ar{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new Ar(this.type._copy())}splice(e){throw Et()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;null!==t;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach((t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)})),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;null!==t;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach((t=>{for(;null!==t;)t.gc(e,!0),t=t.left})),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}}const nr=(e,t)=>{let A,n=t,i=0;do{i>0&&(n=_A(n.client,n.clock+i)),A=ln(e,n),i=n.clock-A.id.clock,n=A.redone}while(null!==n&&A instanceof Er);return{item:A,diff:i}},ir=(e,t)=>{for(;null!==e&&e.keep!==t;)e.keep=t,e=e.parent._item},rr=(e,t,A)=>{const{client:n,clock:i}=t.id,r=new Er(_A(n,i+A),t,_A(n,i+A-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(A));return t.deleted&&r.markDeleted(),t.keep&&(r.keep=!0),null!==t.redone&&(r.redone=_A(t.redone.client,t.redone.clock+A)),t.right=r,null!==r.right&&(r.right.left=r),e._mergeStructs.push(r),null!==r.parentSub&&null===r.right&&r.parent._map.set(r.parentSub,r),t.length=A,r},or=(e,t)=>(e=>{for(let A=0;A{const o=e.doc,s=o.store,E=o.clientID,B=t.redone;if(null!==B)return hn(e,B);let c,a=t.parent._item,g=null;if(null!==a&&!0===a.deleted){if(null===a.redone&&(!A.has(a)||null===sr(e,a,A,n,i,r)))return null;for(;null!==a.redone;)a=hn(e,a.redone)}const l=null===a?t.parent:a.content.type;if(null===t.parentSub){for(g=t.left,c=t;null!==g;){let t=g;for(;null!==t&&t.parent._item!==a;)t=null===t.redone?null:hn(e,t.redone);if(null!==t&&t.parent._item===a){g=t;break}g=g.left}for(;null!==c;){let t=c;for(;null!==t&&t.parent._item!==a;)t=null===t.redone?null:hn(e,t.redone);if(null!==t&&t.parent._item===a){c=t;break}c=c.right}}else if(c=null,t.right&&!i){for(g=t;null!==g&&null!==g.right&&(g.right.redone||MA(n,g.right.id)||or(r.undoStack,g.right.id)||or(r.redoStack,g.right.id));)for(g=g.right;g.redone;)g=hn(e,g.redone);if(g&&null!==g.right)return null}else g=l._map.get(t.parentSub)||null;const Q=cn(s,E),h=_A(E,Q),u=new Er(h,g,g&&g.lastId,c,c&&c.id,l,t.parentSub,t.content.copy());return t.redone=h,ir(u,!0),u.integrate(e,0),u};class Er extends Hi{constructor(e,t,A,n,i,r,o,s){super(e,s.getLength()),this.origin=A,this.left=t,this.right=n,this.rightOrigin=i,this.parent=r,this.parentSub=o,this.redone=null,this.content=s,this.info=this.content.isCountable()?2:0}set marker(e){(8&this.info)>0!==e&&(this.info^=8)}get marker(){return(8&this.info)>0}get keep(){return(1&this.info)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(2&this.info)>0}get deleted(){return(4&this.info)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=cn(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=cn(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===VA&&this.id.client!==this.parent.client&&this.parent.clock>=cn(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=un(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=hn(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===xi||this.right&&this.right.constructor===xi)this.parent=null;else if(this.parent){if(this.parent.constructor===VA){const e=ln(t,this.parent);this.parent=e.constructor===xi?null:e.content.type}}else this.left&&this.left.constructor===Er&&(this.parent=this.left.parent,this.parentSub=this.left.parentSub),this.right&&this.right.constructor===Er&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=un(e,e.doc.store,_A(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||null!==this.right.left)||this.left&&this.left.right!==this.right){let t,A=this.left;if(null!==A)t=A.right;else if(null!==this.parentSub)for(t=this.parent._map.get(this.parentSub)||null;null!==t&&null!==t.left;)t=t.left;else t=this.parent._start;const n=new Set,i=new Set;for(;null!==t&&t!==this.right;){if(i.add(t),n.add(t),OA(this.origin,t.origin)){if(t.id.client{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))})),e.keep&&(this.keep=!0),this.right=e.right,null!==this.right&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){const t=this.parent;this.countable&&null===this.parentSub&&(t._length-=this.length),this.markDeleted(),dA(e.deleteSet,this.id.client,this.id.clock,this.length),In(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw Bt();this.content.gc(e),t?((e,t,A)=>{const n=e.clients.get(t.id.client);n[gn(n,t.id.clock)]=A})(e,this,new xi(this.id,this.length)):this.content=new Ji(this.length)}write(e,t){const A=t>0?_A(this.id.client,this.id.clock+t-1):this.origin,n=this.rightOrigin,i=this.parentSub,r=31&this.content.getRef()|(null===A?0:Ue)|(null===n?0:me)|(null===i?0:32);if(e.writeInfo(r),null!==A&&e.writeLeftID(A),null!==n&&e.writeRightID(n),null===A&&null===n){const t=this.parent;if(void 0!==t._item){const A=t._item;if(null===A){const A=KA(t);e.writeParentInfo(!0),e.writeString(A)}else e.writeParentInfo(!1),e.writeLeftID(A.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===VA?(e.writeParentInfo(!1),e.writeLeftID(t)):Bt();null!==i&&e.writeString(i)}this.content.write(e,t)}}const Br=(e,t)=>cr[31&t](e),cr=[()=>{Bt()},e=>new Ji(e.readLen()),e=>{const t=e.readLen(),A=[];for(let n=0;nnew zi(e.readBuf()),e=>new Oi(e.readString()),e=>new vi(e.readJSON()),e=>new Pi(e.readKey(),e.readJSON()),e=>new Ar(_i[e.readTypeRef()](e)),e=>{const t=e.readLen(),A=[];for(let n=0;nnew Zi(ji(e.readString(),e.readAny())),()=>{Bt()}];class ar extends Hi{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){Bt()}write(e,t){e.writeInfo(10),Le(e.restEncoder,this.length-t)}getMissing(e,t){return null}}const gr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},lr="__ $YJS$ __";!0===gr[lr]&&console.error("Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438"),gr[lr]=!0;class Qr extends h{constructor(){super(...arguments),this.contentComponent=null}}const hr=s.create({name:"characterCount",addOptions:()=>({limit:null,mode:"textSize"}),addStorage:()=>({characters:()=>0,words:()=>0}),onBeforeCreate(){this.storage.characters=e=>{const t=(null==e?void 0:e.node)||this.editor.state.doc;return"textSize"===((null==e?void 0:e.mode)||this.options.mode)?t.textBetween(0,t.content.size,void 0," ").length:t.nodeSize},this.storage.words=e=>{const t=(null==e?void 0:e.node)||this.editor.state.doc;return t.textBetween(0,t.content.size," "," ").split(" ").filter((e=>""!==e)).length}},addProseMirrorPlugins(){return[new r({key:new o("characterCount"),filterTransaction:(e,t)=>{const A=this.options.limit;if(!e.docChanged||0===A||null==A)return!0;const n=this.storage.characters({node:t.doc}),i=this.storage.characters({node:e.doc});if(i<=A)return!0;if(n>A&&i>A&&i<=n)return!0;if(n>A&&i>A&&i>n)return!1;if(!e.getMeta("paste"))return!1;const r=e.selection.$head.pos;return e.deleteRange(r-(i-A),r),!(this.storage.characters({node:e.doc})>A)}})]}}),ur=/(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))$/,wr=/(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))/g,Mr=g.create({name:"highlight",addOptions:()=>({multicolor:!1,HTMLAttributes:{}}),addAttributes(){return this.options.multicolor?{color:{default:null,parseHTML:e=>e.getAttribute("data-color")||e.style.backgroundColor,renderHTML:e=>e.color?{"data-color":e.color,style:`background-color: ${e.color}; color: inherit`}:{}}}:{}},parseHTML:()=>[{tag:"mark"}],renderHTML({HTMLAttributes:e}){return["mark",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setHighlight:e=>({commands:t})=>t.setMark(this.name,e),toggleHighlight:e=>({commands:t})=>t.toggleMark(this.name,e),unsetHighlight:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-h":()=>this.editor.commands.toggleHighlight()}},addInputRules(){return[u({find:ur,type:this.type})]},addPasteRules(){return[w({find:wr,type:this.type})]}}),Rr=/^\s*(\[([( |x])?\])\s$/,Ir=R.create({name:"taskItem",addOptions:()=>({nested:!1,HTMLAttributes:{},taskListTypeName:"taskList"}),content(){return this.options.nested?"paragraph block*":"paragraph+"},defining:!0,addAttributes:()=>({checked:{default:!1,keepOnSplit:!1,parseHTML:e=>"true"===e.getAttribute("data-checked"),renderHTML:e=>({"data-checked":e.checked})}}),parseHTML(){return[{tag:`li[data-type="${this.name}"]`,priority:51}]},renderHTML({node:e,HTMLAttributes:t}){return["li",l(this.options.HTMLAttributes,t,{"data-type":this.name}),["label",["input",{type:"checkbox",checked:e.attrs.checked?"checked":null}],["span"]],["div",0]]},addKeyboardShortcuts(){const e={Enter:()=>this.editor.commands.splitListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)};return this.options.nested?{...e,Tab:()=>this.editor.commands.sinkListItem(this.name)}:e},addNodeView(){return({node:e,HTMLAttributes:t,getPos:A,editor:n})=>{const i=document.createElement("li"),r=document.createElement("label"),o=document.createElement("span"),s=document.createElement("input"),E=document.createElement("div");return r.contentEditable="false",s.type="checkbox",s.addEventListener("change",(t=>{if(!n.isEditable&&!this.options.onReadOnlyChecked)return void(s.checked=!s.checked);const{checked:i}=t.target;n.isEditable&&"function"==typeof A&&n.chain().focus(void 0,{scrollIntoView:!1}).command((({tr:e})=>{const t=A(),n=e.doc.nodeAt(t);return e.setNodeMarkup(t,void 0,{...null==n?void 0:n.attrs,checked:i}),!0})).run(),!n.isEditable&&this.options.onReadOnlyChecked&&(this.options.onReadOnlyChecked(e,i)||(s.checked=!s.checked))})),Object.entries(this.options.HTMLAttributes).forEach((([e,t])=>{i.setAttribute(e,t)})),i.dataset.checked=e.attrs.checked,e.attrs.checked&&s.setAttribute("checked","checked"),r.append(s,o),i.append(r,E),Object.entries(t).forEach((([e,t])=>{i.setAttribute(e,t)})),{dom:i,contentDOM:E,update:e=>e.type===this.type&&(i.dataset.checked=e.attrs.checked,e.attrs.checked?s.setAttribute("checked","checked"):s.removeAttribute("checked"),!0)}}},addInputRules(){return[I({find:Rr,type:this.type,getAttributes:e=>({checked:"x"===e[e.length-1]})})]}}),dr=R.create({name:"taskList",addOptions:()=>({itemTypeName:"taskItem",HTMLAttributes:{}}),group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul[data-type="${this.name}"]`,priority:51}]},renderHTML({HTMLAttributes:e}){return["ul",l(this.options.HTMLAttributes,e,{"data-type":this.name}),0]},addCommands(){return{toggleTaskList:()=>({commands:e})=>e.toggleList(this.name,this.options.itemTypeName)}},addKeyboardShortcuts(){return{"Mod-Shift-9":()=>this.editor.commands.toggleTaskList()}}}),kr=s.create({name:"typography",addInputRules(){const e=[];var t;return!1!==this.options.emDash&&e.push(d({find:/--$/,replace:null!=(t=this.options.emDash)?t:"—"})),!1!==this.options.ellipsis&&e.push((e=>d({find:/\.\.\.$/,replace:null!=e?e:"…"}))(this.options.ellipsis)),!1!==this.options.openDoubleQuote&&e.push((e=>d({find:/(?:^|[\s{[(<'"\u2018\u201C])(")$/,replace:null!=e?e:"“"}))(this.options.openDoubleQuote)),!1!==this.options.closeDoubleQuote&&e.push((e=>d({find:/"$/,replace:null!=e?e:"”"}))(this.options.closeDoubleQuote)),!1!==this.options.openSingleQuote&&e.push((e=>d({find:/(?:^|[\s{[(<'"\u2018\u201C])(')$/,replace:null!=e?e:"‘"}))(this.options.openSingleQuote)),!1!==this.options.closeSingleQuote&&e.push((e=>d({find:/'$/,replace:null!=e?e:"’"}))(this.options.closeSingleQuote)),!1!==this.options.leftArrow&&e.push((e=>d({find:/<-$/,replace:null!=e?e:"←"}))(this.options.leftArrow)),!1!==this.options.rightArrow&&e.push((e=>d({find:/->$/,replace:null!=e?e:"→"}))(this.options.rightArrow)),!1!==this.options.copyright&&e.push((e=>d({find:/\(c\)$/,replace:null!=e?e:"©"}))(this.options.copyright)),!1!==this.options.trademark&&e.push((e=>d({find:/\(tm\)$/,replace:null!=e?e:"™"}))(this.options.trademark)),!1!==this.options.servicemark&&e.push((e=>d({find:/\(sm\)$/,replace:null!=e?e:"℠"}))(this.options.servicemark)),!1!==this.options.registeredTrademark&&e.push((e=>d({find:/\(r\)$/,replace:null!=e?e:"®"}))(this.options.registeredTrademark)),!1!==this.options.oneHalf&&e.push((e=>d({find:/(?:^|\s)(1\/2)\s$/,replace:null!=e?e:"½"}))(this.options.oneHalf)),!1!==this.options.plusMinus&&e.push((e=>d({find:/\+\/-$/,replace:null!=e?e:"±"}))(this.options.plusMinus)),!1!==this.options.notEqual&&e.push((e=>d({find:/!=$/,replace:null!=e?e:"≠"}))(this.options.notEqual)),!1!==this.options.laquo&&e.push((e=>d({find:/<<$/,replace:null!=e?e:"«"}))(this.options.laquo)),!1!==this.options.raquo&&e.push((e=>d({find:/>>$/,replace:null!=e?e:"»"}))(this.options.raquo)),!1!==this.options.multiplication&&e.push((e=>d({find:/\d+\s?([*x])\s?\d+$/,replace:null!=e?e:"×"}))(this.options.multiplication)),!1!==this.options.superscriptTwo&&e.push((e=>d({find:/\^2$/,replace:null!=e?e:"²"}))(this.options.superscriptTwo)),!1!==this.options.superscriptThree&&e.push((e=>d({find:/\^3$/,replace:null!=e?e:"³"}))(this.options.superscriptThree)),!1!==this.options.oneQuarter&&e.push((e=>d({find:/(?:^|\s)(1\/4)\s$/,replace:null!=e?e:"¼"}))(this.options.oneQuarter)),!1!==this.options.threeQuarters&&e.push((e=>d({find:/(?:^|\s)(3\/4)\s$/,replace:null!=e?e:"¾"}))(this.options.threeQuarters)),e}}),Gr=/^```([a-z]+)?[\s\n]$/,Cr=/^~~~([a-z]+)?[\s\n]$/,fr=R.create({name:"codeBlock",addOptions:()=>({languageClassPrefix:"language-",exitOnTripleEnter:!0,exitOnArrowDown:!0,HTMLAttributes:{}}),content:"text*",marks:"",group:"block",code:!0,defining:!0,addAttributes(){return{language:{default:null,parseHTML:e=>{var t;const{languageClassPrefix:A}=this.options;return[...(null===(t=e.firstElementChild)||void 0===t?void 0:t.classList)||[]].filter((e=>e.startsWith(A))).map((e=>e.replace(A,"")))[0]||null},rendered:!1}}},parseHTML:()=>[{tag:"pre",preserveWhitespace:"full"}],renderHTML({node:e,HTMLAttributes:t}){return["pre",l(this.options.HTMLAttributes,t),["code",{class:e.attrs.language?this.options.languageClassPrefix+e.attrs.language:null},0]]},addCommands(){return{setCodeBlock:e=>({commands:t})=>t.setNode(this.name,e),toggleCodeBlock:e=>({commands:t})=>t.toggleNode(this.name,"paragraph",e)}},addKeyboardShortcuts(){return{"Mod-Alt-c":()=>this.editor.commands.toggleCodeBlock(),Backspace:()=>{const{empty:e,$anchor:t}=this.editor.state.selection;return!(!e||t.parent.type.name!==this.name)&&!(1!==t.pos&&t.parent.textContent.length)&&this.editor.commands.clearNodes()},Enter:({editor:e})=>{if(!this.options.exitOnTripleEnter)return!1;const{state:t}=e,{selection:A}=t,{$from:n,empty:i}=A;if(!i||n.parent.type!==this.type)return!1;const r=n.parentOffset===n.parent.nodeSize-2,o=n.parent.textContent.endsWith("\n\n");return!(!r||!o)&&e.chain().command((({tr:e})=>(e.delete(n.pos-2,n.pos),!0))).exitCode().run()},ArrowDown:({editor:e})=>{if(!this.options.exitOnArrowDown)return!1;const{state:t}=e,{selection:A,doc:n}=t,{$from:i,empty:r}=A;if(!r||i.parent.type!==this.type)return!1;if(i.parentOffset!==i.parent.nodeSize-2)return!1;const o=i.after();return void 0!==o&&(!n.nodeAt(o)&&e.commands.exitCode())}}},addInputRules(){return[k({find:Gr,type:this.type,getAttributes:e=>({language:e[1]})}),k({find:Cr,type:this.type,getAttributes:e=>({language:e[1]})})]},addProseMirrorPlugins(){return[new r({key:new o("codeBlockVSCodeHandler"),props:{handlePaste:(e,t)=>{if(!t.clipboardData)return!1;if(this.editor.isActive(this.type.name))return!1;const A=t.clipboardData.getData("text/plain"),n=t.clipboardData.getData("vscode-editor-data"),i=n?JSON.parse(n):void 0,r=null==i?void 0:i.mode;if(!A||!r)return!1;const{tr:o}=e.state;return e.state.selection.from===e.state.doc.nodeSize-(1+2*e.state.selection.$to.depth)?o.insert(e.state.selection.from-1,this.type.create({language:r})):o.replaceSelectionWith(this.type.create({language:r})),o.setSelection(G.near(o.doc.resolve(Math.max(0,o.selection.from-2)))),o.insertText(A.replace(/\r\n?/g,"\n")),o.setMeta("paste",!0),e.dispatch(o),!0}}})]}});var Dr={exports:{}};function Fr(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((function(t){var A=e[t];"object"!=typeof A||Object.isFrozen(A)||Fr(A)})),e}Dr.exports=Fr,Dr.exports.default=Fr;class Yr{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function mr(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Ur(e,...t){const A=Object.create(null);for(const t in e)A[t]=e[t];return t.forEach((function(e){for(const t in e)A[t]=e[t]})),A}const Sr=e=>!!e.scope||e.sublanguage&&e.language;class Nr{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=mr(e)}openNode(e){if(!Sr(e))return;let t="";t=e.sublanguage?`language-${e.language}`:((e,{prefix:t})=>{if(e.includes(".")){const A=e.split(".");return[`${t}${A.shift()}`,...A.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ")}return`${t}${e}`})(e.scope,{prefix:this.classPrefix}),this.span(t)}closeNode(e){Sr(e)&&(this.buffer+="
      ")}value(){return this.buffer}span(e){this.buffer+=``}}const br=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class yr{constructor(){this.rootNode=br(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=br({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{yr._collapse(e)})))}}class pr extends yr{constructor(e){super(),this.options=e}addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const A=e.root;A.sublanguage=!0,A.language=t,this.add(A)}toHTML(){return new Nr(this,this.options).value()}finalize(){return!0}}function Tr(e){return e?"string"==typeof e?e:e.source:null}function Hr(e){return Jr("(?=",e,")")}function xr(e){return Jr("(?:",e,")*")}function zr(e){return Jr("(?:",e,")?")}function Jr(...e){return e.map((e=>Tr(e))).join("")}function jr(...e){const t=function(e){const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e);return"("+(t.capture?"":"?:")+e.map((e=>Tr(e))).join("|")+")"}function Zr(e){return new RegExp(e.toString()+"|").exec("").length-1}const vr=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Pr(e,{joinWith:t}){let A=0;return e.map((e=>{A+=1;const t=A;let n=Tr(e),i="";for(;n.length>0;){const e=vr.exec(n);if(!e){i+=n;break}i+=n.substring(0,e.index),n=n.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+String(Number(e[1])+t):(i+=e[0],"("===e[0]&&A++)}return i})).map((e=>`(${e})`)).join(t)}const Lr="[a-zA-Z]\\w*",Vr="[a-zA-Z_]\\w*",Or="\\b\\d+(\\.\\d+)?",_r="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Kr="\\b(0b[01]+)",Wr={begin:"\\\\[\\s\\S]",relevance:0},Xr={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Wr]},qr={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Wr]},$r=function(e,t,A={}){const n=Ur({scope:"comment",begin:e,end:t,contains:[]},A);n.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=jr("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return n.contains.push({begin:Jr(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),n},eo=$r("//","$"),to=$r("/\\*","\\*/"),Ao=$r("#","$");var no=Object.freeze({__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:Lr,UNDERSCORE_IDENT_RE:Vr,NUMBER_RE:Or,C_NUMBER_RE:_r,BINARY_NUMBER_RE:Kr,RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=Jr(t,/.*\b/,e.binary,/\b.*/)),Ur({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:Wr,APOS_STRING_MODE:Xr,QUOTE_STRING_MODE:qr,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},COMMENT:$r,C_LINE_COMMENT_MODE:eo,C_BLOCK_COMMENT_MODE:to,HASH_COMMENT_MODE:Ao,NUMBER_MODE:{scope:"number",begin:Or,relevance:0},C_NUMBER_MODE:{scope:"number",begin:_r,relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:Kr,relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[Wr,{begin:/\[/,end:/\]/,relevance:0,contains:[Wr]}]}]},TITLE_MODE:{scope:"title",begin:Lr,relevance:0},UNDERSCORE_TITLE_MODE:{scope:"title",begin:Vr,relevance:0},METHOD_GUARD:{begin:"\\.\\s*"+Vr,relevance:0},END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})}});function io(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function ro(e){void 0!==e.className&&(e.scope=e.className,delete e.className)}function oo(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=io,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function so(e){Array.isArray(e.illegal)&&(e.illegal=jr(...e.illegal))}function Eo(e){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Bo(e){void 0===e.relevance&&(e.relevance=1)}const co=e=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]})),e.keywords=t.keywords,e.begin=Jr(t.beforeMatch,Hr(t.begin)),e.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},e.relevance=0,delete t.beforeMatch},ao=["of","and","for","in","not","or","if","then","parent","list","value"],go="keyword";function lo(e,t,A=go){const n=Object.create(null);return"string"==typeof e?i(A,e.split(" ")):Array.isArray(e)?i(A,e):Object.keys(e).forEach((function(A){Object.assign(n,lo(e[A],t,A))})),n;function i(e,A){t&&(A=A.map((e=>e.toLowerCase()))),A.forEach((function(t){const A=t.split("|");n[A[0]]=[e,Qo(A[0],A[1])]}))}}function Qo(e,t){return t?Number(t):function(e){return ao.includes(e.toLowerCase())}(e)?0:1}const ho={},uo=e=>{console.error(e)},wo=(e,...t)=>{console.log(`WARN: ${e}`,...t)},Mo=(e,t)=>{ho[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),ho[`${e}/${t}`]=!0)},Ro=new Error;function Io(e,t,{key:A}){let n=0;const i=e[A],r={},o={};for(let e=1;e<=t.length;e++)o[e+n]=i[e],r[e+n]=!0,n+=Zr(t[e-1]);e[A]=o,e[A]._emit=r,e[A]._multi=!0}function ko(e){!function(e){e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)}(e),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw uo("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Ro;if("object"!=typeof e.beginScope||null===e.beginScope)throw uo("beginScope must be object"),Ro;Io(e,e.begin,{key:"beginScope"}),e.begin=Pr(e.begin,{joinWith:""})}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw uo("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Ro;if("object"!=typeof e.endScope||null===e.endScope)throw uo("endScope must be object"),Ro;Io(e,e.end,{key:"endScope"}),e.end=Pr(e.end,{joinWith:""})}}(e)}function Go(e){function t(t,A){return new RegExp(Tr(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(A?"g":""))}class A{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=Zr(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map((e=>e[1]));this.matcherRe=t(Pr(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t)return null;const A=t.findIndex(((e,t)=>t>0&&void 0!==e)),n=this.matchIndexes[A];return t.splice(0,A),Object.assign(t,n)}}class n{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const t=new A;return this.rules.slice(e).forEach((([e,A])=>t.addRule(e,A))),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let A=t.exec(e);if(this.resumingScanAtSamePosition())if(A&&A.index===this.lastIndex);else{const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,A=t.exec(e)}return A&&(this.regexIndex+=A.position+1,this.regexIndex===this.count&&this.considerAll()),A}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Ur(e.classNameAliases||{}),function A(i,r){const o=i;if(i.isCompiled)return o;[ro,Eo,ko,co].forEach((e=>e(i,r))),e.compilerExtensions.forEach((e=>e(i,r))),i.__beforeBegin=null,[oo,so,Bo].forEach((e=>e(i,r))),i.isCompiled=!0;let s=null;return"object"==typeof i.keywords&&i.keywords.$pattern&&(i.keywords=Object.assign({},i.keywords),s=i.keywords.$pattern,delete i.keywords.$pattern),s=s||/\w+/,i.keywords&&(i.keywords=lo(i.keywords,e.case_insensitive)),o.keywordPatternRe=t(s,!0),r&&(i.begin||(i.begin=/\B|\b/),o.beginRe=t(o.begin),i.end||i.endsWithParent||(i.end=/\B|\b/),i.end&&(o.endRe=t(o.end)),o.terminatorEnd=Tr(o.end)||"",i.endsWithParent&&r.terminatorEnd&&(o.terminatorEnd+=(i.end?"|":"")+r.terminatorEnd)),i.illegal&&(o.illegalRe=t(i.illegal)),i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map((function(e){return function(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(t){return Ur(e,{variants:null},t)}))),e.cachedVariants?e.cachedVariants:Co(e)?Ur(e,{starts:e.starts?Ur(e.starts):null}):Object.isFrozen(e)?Ur(e):e}("self"===e?i:e)}))),i.contains.forEach((function(e){A(e,o)})),i.starts&&A(i.starts,r),o.matcher=function(e){const t=new n;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t}(o),o}(e)}function Co(e){return!!e&&(e.endsWithParent||Co(e.starts))}class fo extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const Do=mr,Fo=Ur,Yo=Symbol("nomatch");var mo=function(e){const t=Object.create(null),A=Object.create(null),n=[];let i=!0;const r="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]};let s={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:pr};function E(e){return s.noHighlightRe.test(e)}function B(e,t,A){let n="",i="";"object"==typeof t?(n=e,A=t.ignoreIllegals,i=t.language):(Mo("10.7.0","highlight(lang, code, ...args) has been deprecated."),Mo("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),i=e,n=t),void 0===A&&(A=!0);const r={code:n,language:i};M("before:highlight",r);const o=r.result?r.result:c(r.language,r.code,A);return o.code=r.code,M("after:highlight",o),o}function c(e,A,n,o){const E=Object.create(null);function B(){if(!C.keywords)return void D.addText(F);let e=0;C.keywordPatternRe.lastIndex=0;let t=C.keywordPatternRe.exec(F),A="";for(;t;){A+=F.substring(e,t.index);const n=d.case_insensitive?t[0].toLowerCase():t[0],i=C.keywords[n];if(i){const[e,r]=i;D.addText(A),A="",E[n]=(E[n]||0)+1,E[n]<=7&&(Y+=r),e.startsWith("_")?A+=t[0]:D.addKeyword(t[0],d.classNameAliases[e]||e)}else A+=t[0];e=C.keywordPatternRe.lastIndex,t=C.keywordPatternRe.exec(F)}A+=F.substring(e),D.addText(A)}function g(){null!=C.subLanguage?function(){if(""===F)return;let e=null;if("string"==typeof C.subLanguage){if(!t[C.subLanguage])return void D.addText(F);e=c(C.subLanguage,F,!0,f[C.subLanguage]),f[C.subLanguage]=e._top}else e=a(F,C.subLanguage.length?C.subLanguage:null);C.relevance>0&&(Y+=e.relevance),D.addSublanguage(e._emitter,e.language)}():B(),F=""}function l(e,t){let A=1;const n=t.length-1;for(;A<=n;){if(!e._emit[A]){A++;continue}const n=d.classNameAliases[e[A]]||e[A],i=t[A];n?D.addKeyword(i,n):(F=i,B(),F=""),A++}}function Q(e,t){return e.scope&&"string"==typeof e.scope&&D.openNode(d.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(D.addKeyword(F,d.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),F=""):e.beginScope._multi&&(l(e.beginScope,t),F="")),C=Object.create(e,{parent:{value:C}}),C}function u(e,t,A){let n=function(e,t){const A=e&&e.exec(t);return A&&0===A.index}(e.endRe,A);if(n){if(e["on:end"]){const A=new Yr(e);e["on:end"](t,A),A.isMatchIgnored&&(n=!1)}if(n){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return u(e.parent,t,A)}function w(e){return 0===C.matcher.regexIndex?(F+=e[0],1):(S=!0,0)}function M(e){const t=e[0],n=A.substring(e.index),i=u(C,e,n);if(!i)return Yo;const r=C;C.endScope&&C.endScope._wrap?(g(),D.addKeyword(t,C.endScope._wrap)):C.endScope&&C.endScope._multi?(g(),l(C.endScope,e)):r.skip?F+=t:(r.returnEnd||r.excludeEnd||(F+=t),g(),r.excludeEnd&&(F=t));do{C.scope&&D.closeNode(),C.skip||C.subLanguage||(Y+=C.relevance),C=C.parent}while(C!==i.parent);return i.starts&&Q(i.starts,e),r.returnEnd?0:t.length}let R={};function I(t,r){const o=r&&r[0];if(F+=t,null==o)return g(),0;if("begin"===R.type&&"end"===r.type&&R.index===r.index&&""===o){if(F+=A.slice(r.index,r.index+1),!i){const t=new Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=R.rule,t}return 1}if(R=r,"begin"===r.type)return function(e){const t=e[0],A=e.rule,n=new Yr(A),i=[A.__beforeBegin,A["on:begin"]];for(const A of i)if(A&&(A(e,n),n.isMatchIgnored))return w(t);return A.skip?F+=t:(A.excludeBegin&&(F+=t),g(),A.returnBegin||A.excludeBegin||(F=t)),Q(A,e),A.returnBegin?0:t.length}(r);if("illegal"===r.type&&!n){const e=new Error('Illegal lexeme "'+o+'" for mode "'+(C.scope||"")+'"');throw e.mode=C,e}if("end"===r.type){const e=M(r);if(e!==Yo)return e}if("illegal"===r.type&&""===o)return 1;if(U>1e5&&U>3*r.index)throw new Error("potential infinite loop, way more iterations than matches");return F+=o,o.length}const d=h(e);if(!d)throw uo(r.replace("{}",e)),new Error('Unknown language: "'+e+'"');const k=Go(d);let G="",C=o||k;const f={},D=new s.__emitter(s);!function(){const e=[];for(let t=C;t!==d;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach((e=>D.openNode(e)))}();let F="",Y=0,m=0,U=0,S=!1;try{for(C.matcher.considerAll();;){U++,S?S=!1:C.matcher.considerAll(),C.matcher.lastIndex=m;const e=C.matcher.exec(A);if(!e)break;const t=I(A.substring(m,e.index),e);m=e.index+t}return I(A.substring(m)),D.closeAllNodes(),D.finalize(),G=D.toHTML(),{language:e,value:G,relevance:Y,illegal:!1,_emitter:D,_top:C}}catch(t){if(t.message&&t.message.includes("Illegal"))return{language:e,value:Do(A),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:m,context:A.slice(m-100,m+100),mode:t.mode,resultSoFar:G},_emitter:D};if(i)return{language:e,value:Do(A),illegal:!1,relevance:0,errorRaised:t,_emitter:D,_top:C};throw t}}function a(e,A){A=A||s.languages||Object.keys(t);const n=function(e){const t={value:Do(e),illegal:!1,relevance:0,_top:o,_emitter:new s.__emitter(s)};return t._emitter.addText(e),t}(e),i=A.filter(h).filter(w).map((t=>c(t,e,!1)));i.unshift(n);const r=i.sort(((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(h(e.language).supersetOf===t.language)return 1;if(h(t.language).supersetOf===e.language)return-1}return 0})),[E,B]=r,a=E;return a.secondBest=B,a}function g(e){let t=null;const n=function(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";const A=s.languageDetectRe.exec(t);if(A){const t=h(A[1]);return t||(wo(r.replace("{}",A[1])),wo("Falling back to no-highlight mode for this block.",e)),t?A[1]:"no-highlight"}return t.split(/\s+/).find((e=>E(e)||h(e)))}(e);if(E(n))return;if(M("before:highlightElement",{el:e,language:n}),e.children.length>0&&(s.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),s.throwUnescapedHTML))throw new fo("One of your code blocks includes unescaped HTML.",e.innerHTML);t=e;const i=t.textContent,o=n?B(i,{language:n,ignoreIllegals:!0}):a(i);e.innerHTML=o.value,function(e,t,n){const i=t&&A[t]||n;e.classList.add("hljs"),e.classList.add(`language-${i}`)}(e,n,o.language),e.result={language:o.language,re:o.relevance,relevance:o.relevance},o.secondBest&&(e.secondBest={language:o.secondBest.language,relevance:o.secondBest.relevance}),M("after:highlightElement",{el:e,result:o,text:i})}let l=!1;function Q(){"loading"!==document.readyState?document.querySelectorAll(s.cssSelector).forEach(g):l=!0}function h(e){return e=(e||"").toLowerCase(),t[e]||t[A[e]]}function u(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{A[e.toLowerCase()]=t}))}function w(e){const t=h(e);return t&&!t.disableAutodetect}function M(e,t){const A=e;n.forEach((function(e){e[A]&&e[A](t)}))}"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(function(){l&&Q()}),!1),Object.assign(e,{highlight:B,highlightAuto:a,highlightAll:Q,highlightElement:g,highlightBlock:function(e){return Mo("10.7.0","highlightBlock will be removed entirely in v12.0"),Mo("10.7.0","Please use highlightElement now."),g(e)},configure:function(e){s=Fo(s,e)},initHighlighting:()=>{Q(),Mo("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){Q(),Mo("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(A,n){let r=null;try{r=n(e)}catch(e){if(uo("Language definition for '{}' could not be registered.".replace("{}",A)),!i)throw e;uo(e),r=o}r.name||(r.name=A),t[A]=r,r.rawDefinition=n.bind(null,e),r.aliases&&u(r.aliases,{languageName:A})},unregisterLanguage:function(e){delete t[e];for(const t of Object.keys(A))A[t]===e&&delete A[t]},listLanguages:function(){return Object.keys(t)},getLanguage:h,registerAliases:u,autoDetection:w,inherit:Fo,addPlugin:function(e){!function(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{e["before:highlightBlock"](Object.assign({block:t.el},t))}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{e["after:highlightBlock"](Object.assign({block:t.el},t))})}(e),n.push(e)}}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString="11.6.0",e.regex={concat:Jr,lookahead:Hr,either:jr,optional:zr,anyNumberOfTimes:xr};for(const e in no)"object"==typeof no[e]&&Dr.exports(no[e]);return Object.assign(e,no),e}({}),Uo=mo;mo.HighlightJS=mo,mo.default=mo;var So=Uo;function No(e,t=[]){return e.map((e=>{const A=[...t,...e.properties?e.properties.className:[]];return e.children?No(e.children,A):{text:e.value,classes:A}})).flat()}function bo(e){return e.value||e.children||[]}function yo({doc:e,name:t,lowlight:A,defaultLanguage:n}){const i=[];return f(e,(e=>e.type.name===t)).forEach((e=>{let t=e.pos+1;const r=e.node.attrs.language||n,o=A.listLanguages();No(r&&(o.includes(r)||Boolean(So.getLanguage(r)))?bo(A.highlight(r,e.node.textContent)):bo(A.highlightAuto(e.node.textContent))).forEach((e=>{const A=t+e.text.length;if(e.classes.length){const n=D.inline(t,A,{class:e.classes.join(" ")});i.push(n)}t=A}))})),C.create(e,i)}function po({name:e,lowlight:t,defaultLanguage:A}){if(!["highlight","highlightAuto","listLanguages"].every((e=>"function"==typeof t[e])))throw Error("You should provide an instance of lowlight to use the code-block-lowlight extension");const n=new r({key:new o("lowlight"),state:{init:(n,{doc:i})=>yo({doc:i,name:e,lowlight:t,defaultLanguage:A}),apply:(n,i,r,o)=>{const s=r.selection.$head.parent.type.name,E=o.selection.$head.parent.type.name,B=f(r.doc,(t=>t.type.name===e)),c=f(o.doc,(t=>t.type.name===e));return n.docChanged&&([s,E].includes(e)||c.length!==B.length||n.steps.some((e=>void 0!==e.from&&void 0!==e.to&&B.some((t=>t.pos>=e.from&&t.pos+t.node.nodeSize<=e.to)))))?yo({doc:n.doc,name:e,lowlight:t,defaultLanguage:A}):i.map(n.mapping,n.doc)}},props:{decorations:e=>n.getState(e)}});return n}const To=fr.extend({addOptions(){var e;return{...null===(e=this.parent)||void 0===e?void 0:e.call(this),lowlight:{},defaultLanguage:null}},addProseMirrorPlugins(){var e;return[...(null===(e=this.parent)||void 0===e?void 0:e.call(this))||[],po({name:this.name,lowlight:this.options.lowlight,defaultLanguage:this.options.defaultLanguage})]}});const Ho=function(e){const t={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},A=function(e){const t=e.regex,A=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),n="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="(?!struct)("+n+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},E={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},B={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{className:"string",begin:/<.*?>/},A,e.C_BLOCK_COMMENT_MODE]},c={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},a=t.optional(i)+e.IDENT_RE+"\\s*\\(",g={type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]},l={className:"function.dispatch",relevance:0,keywords:{_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},Q=[l,B,o,A,e.C_BLOCK_COMMENT_MODE,E,s],h={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:g,contains:Q.concat([{begin:/\(/,end:/\)/,keywords:g,contains:Q.concat(["self"]),relevance:0}]),relevance:0};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:g,illegal:".]/,contains:[{begin:n,keywords:g,relevance:0},{begin:a,returnBegin:!0,contains:[c],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,E]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[A,e.C_BLOCK_COMMENT_MODE,s,E,o,{begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:["self",A,e.C_BLOCK_COMMENT_MODE,s,E,o]}]},o,A,e.C_BLOCK_COMMENT_MODE,B]},l,Q,[B,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\s*<(?!<)",end:">",keywords:g,contains:["self",o]},{begin:e.IDENT_RE+"::",keywords:g},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}(e),n=A.keywords;return n.type=[...n.type,...t.type],n.literal=[...n.literal,...t.literal],n.built_in=[...n.built_in,...t.built_in],n._hints=t._hints,A.name="Arduino",A.aliases=["ino"],A.supersetOf="cpp",A};const xo=function(e){const t=e.regex,A=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),n="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="("+n+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},s={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},E={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},B={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{className:"string",begin:/<.*?>/},A,e.C_BLOCK_COMMENT_MODE]},c={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},a=t.optional(i)+e.IDENT_RE+"\\s*\\(",g={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},l=[B,o,A,e.C_BLOCK_COMMENT_MODE,E,s],Q={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:g,contains:l.concat([{begin:/\(/,end:/\)/,keywords:g,contains:l.concat(["self"]),relevance:0}]),relevance:0},h={begin:"("+r+"[\\*&\\s]+)+"+a,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:g,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:n,keywords:g,relevance:0},{begin:a,returnBegin:!0,contains:[e.inherit(c,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[A,e.C_BLOCK_COMMENT_MODE,s,E,o,{begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:["self",A,e.C_BLOCK_COMMENT_MODE,s,E,o]}]},o,A,e.C_BLOCK_COMMENT_MODE,B]};return{name:"C",aliases:["h"],keywords:g,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:B,strings:s,keywords:g}}};const zo=function(e){const t=e.regex,A=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),n="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="(?!struct)("+n+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},E={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},B={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{className:"string",begin:/<.*?>/},A,e.C_BLOCK_COMMENT_MODE]},c={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},a=t.optional(i)+e.IDENT_RE+"\\s*\\(",g={type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]},l={className:"function.dispatch",relevance:0,keywords:{_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},Q=[l,B,o,A,e.C_BLOCK_COMMENT_MODE,E,s],h={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:g,contains:Q.concat([{begin:/\(/,end:/\)/,keywords:g,contains:Q.concat(["self"]),relevance:0}]),relevance:0};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:g,illegal:".]/,contains:[{begin:n,keywords:g,relevance:0},{begin:a,returnBegin:!0,contains:[c],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,E]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[A,e.C_BLOCK_COMMENT_MODE,s,E,o,{begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:["self",A,e.C_BLOCK_COMMENT_MODE,s,E,o]}]},o,A,e.C_BLOCK_COMMENT_MODE,B]},l,Q,[B,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\s*<(?!<)",end:">",keywords:g,contains:["self",o]},{begin:e.IDENT_RE+"::",keywords:g},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}};const Jo=function(e){const t={keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],literal:["default","false","null","true"]},A=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),n={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},r=e.inherit(i,{illegal:/\n/}),o={className:"subst",begin:/\{/,end:/\}/,keywords:t},s=e.inherit(o,{illegal:/\n/}),E={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,s]},B={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]},c=e.inherit(B,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]});o.contains=[B,E,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,n,e.C_BLOCK_COMMENT_MODE],s.contains=[c,E,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,n,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const a={variants:[B,E,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},g={begin:"<",end:">",contains:[{beginKeywords:"in out"},A]},l=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",Q={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:t,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},a,n,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},A,g,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[A,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[A,g,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+l+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:t,contains:[{beginKeywords:["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"].join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,g],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,relevance:0,contains:[a,n,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},Q]}},jo=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Zo=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],vo=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],Po=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],Lo=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();const Vo=function(e){const t=e.regex,A=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}))(e),n=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[A.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/},A.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},A.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+vo.join("|")+")"},{begin:":(:)?("+Po.join("|")+")"}]},A.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Lo.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[A.BLOCK_COMMENT,A.HEXCOLOR,A.IMPORTANT,A.CSS_NUMBER_MODE,...n,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...n,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},A.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:Zo.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...n,A.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+jo.join("|")+")\\b"}]}};const Oo=function(e){const t=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}};const _o=function(e){const t={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:t,illegal:"ts(e,t,A-1)))}const As=function(e){const t=e.regex,A="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",n=A+ts("(?:<"+A+"~~~(?:\\s*,\\s*"+A+"~~~)*>)?",/~~~/g,2),i={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},r={className:"meta",begin:"@"+A,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},o={className:"params",begin:/\(/,end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,A],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,A),/\s+/,A,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,A],className:{1:"keyword",3:"title.class"},contains:[o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+n+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:i,relevance:0,contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,es,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},es,r]}},ns="[A-Za-z$_][0-9A-Za-z$_]*",is=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],rs=["true","false","null","undefined","NaN","Infinity"],os=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ss=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Es=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Bs=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],cs=[].concat(Es,os,ss);const as=function(e){const t=e.regex,A=ns,n={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{const A=e[0].length+e.index,n=e.input[A];if("<"===n||","===n)return void t.ignoreMatch();let i;">"===n&&(((e,{after:t})=>{const A="",D={match:[/const|var|let/,/\s+/,A,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(f)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[M]};var F;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:w,CLASS_REFERENCE:I},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,a,g,l,Q,{match:/\$\d+/},E,I,{className:"attr",begin:A+t.lookahead(":"),relevance:0},D,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[Q,e.REGEXP_MODE,{className:"function",begin:f,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:w}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:""},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:n.begin,"on:begin":n.isTrulyOpeningTag,end:n.end}],subLanguage:"xml",contains:[{begin:n.begin,end:n.end,skip:!0,contains:["self"]}]}]},d,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[M,e.inherit(e.TITLE_MODE,{begin:A,className:"title.function"})]},{match:/\.\.\./,relevance:0},G,{match:"\\$"+A,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[M]},k,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},R,C,{match:/\$[(.]/}]}};const gs=function(e){const t=["true","false","null"],A={scope:"literal",beginKeywords:t.join(" ")};return{name:"JSON",keywords:{literal:t},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0},e.QUOTE_STRING_MODE,A,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}};var ls="[0-9](_*[0-9])*",Qs=`\\.(${ls})`,hs="[0-9a-fA-F](_*[0-9a-fA-F])*",us={className:"number",variants:[{begin:`(\\b(${ls})((${Qs})|\\.)?|(${Qs}))[eE][+-]?(${ls})[fFdD]?\\b`},{begin:`\\b(${ls})((${Qs})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Qs})[fFdD]?\\b`},{begin:`\\b(${ls})[fFdD]\\b`},{begin:`\\b0[xX]((${hs})\\.?|(${hs})?\\.(${hs}))[pP][+-]?(${ls})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${hs})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};const ws=function(e){const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},A={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},n={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,n]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,i,n]}]};n.contains.push(r);const o={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},s={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}]},E=us,B=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),c={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},a=c;return a.variants[1].contains=[c],c.variants[1].contains=[a],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,B,{className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},A,o,s,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[c,e.C_LINE_COMMENT_MODE,B],relevance:0},e.C_LINE_COMMENT_MODE,B,o,s,r,e.C_NUMBER_MODE]},B]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},o,s]},r,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},E]}},Ms=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Rs=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],Is=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],ds=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],ks=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),Gs=Is.concat(ds);const Cs=function(e){const t=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}))(e),A=Gs,n="[\\w-]+",i="("+n+"|@\\{"+n+"\\})",r=[],o=[],s=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},E=function(e,t,A){return{className:e,begin:t,relevance:A}},B={$pattern:/[a-z-]+/,keyword:"and or not only",attribute:Rs.join(" ")},c={begin:"\\(",end:"\\)",contains:o,keywords:B,relevance:0};o.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s("'"),s('"'),t.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},t.HEXCOLOR,c,E("variable","@@?"+n,10),E("variable","@\\{"+n+"\\}"),E("built_in","~?`[^`]*?`"),{className:"attribute",begin:n+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},t.IMPORTANT,{beginKeywords:"and not"},t.FUNCTION_DISPATCH);const a=o.concat({begin:/\{/,end:/\}/,contains:r}),g={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(o)},l={begin:i+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ks.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:o}}]},Q={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:B,returnEnd:!0,contains:o,relevance:0}},h={className:"variable",variants:[{begin:"@"+n+"\\s*:",relevance:15},{begin:"@"+n}],starts:{end:"[;}]",returnEnd:!0,contains:a}},u={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:i,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g,E("keyword","all\\b"),E("variable","@\\{"+n+"\\}"),{begin:"\\b("+Ms.join("|")+")\\b",className:"selector-tag"},t.CSS_NUMBER_MODE,E("selector-tag",i,0),E("selector-id","#"+i),E("selector-class","\\."+i,0),E("selector-tag","&",0),t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+Is.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+ds.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:a},{begin:"!important"},t.FUNCTION_DISPATCH]},w={begin:n+":(:)?"+`(${A.join("|")})`,returnBegin:!0,contains:[u]};return r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,Q,h,w,l,u,g,t.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:r}};const fs=function(e){const t={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},A={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},n={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},i={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},r=e.inherit(n,{contains:[]}),o=e.inherit(i,{contains:[]});n.contains.push(o),i.contains.push(r);let s=[t,A];return[n,i,r,o].forEach((e=>{e.contains=e.contains.concat(s)})),s=s.concat(n,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:s},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:s}]}]},t,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},n,i,{className:"quote",begin:"^>\\s+",contains:s,end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},A,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}};const Ds=function(e){const t=e.regex,A=/[dualxmsipngr]{0,12}/,n={$pattern:/[\w.]+/,keyword:["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"].join(" ")},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:n},r={begin:/->\{/,end:/\}/},o={variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},s=[e.BACKSLASH_ESCAPE,i,o],E=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],B=(e,n,i="\\1")=>{const r="\\1"===i?i:t.concat(i,n);return t.concat(t.concat("(?:",e,")"),n,/(?:\\.|[^\\\/])*?/,r,/(?:\\.|[^\\\/])*?/,i,A)},c=(e,n,i)=>t.concat(t.concat("(?:",e,")"),n,/(?:\\.|[^\\\/])*?/,i,A),a=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),r,{className:"string",contains:s,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:B("s|tr|y",t.either(...E,{capture:!0}))},{begin:B("s|tr|y","\\(","\\)")},{begin:B("s|tr|y","\\[","\\]")},{begin:B("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:c("(?:m|qr)?",/\//,/\//)},{begin:c("m|qr",t.either(...E,{capture:!0}),/\1/)},{begin:c("m|qr",/\(/,/\)/)},{begin:c("m|qr",/\[/,/\]/)},{begin:c("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return i.contains=a,r.contains=a,{name:"Perl",aliases:["pl","pm"],keywords:n,contains:a}};const Fs=function(e){const t=e.regex,A=/(?![A-Za-z0-9])(?![$])/,n=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,A),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,A),r={scope:"variable",match:"\\$+"+n},o={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},s=e.inherit(e.APOS_STRING_MODE,{illegal:null}),E="[ \t\n]",B={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(o)}),s,{begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(o),"on:begin":(e,t)=>{t.data._beginMatch=e[1]||e[2]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}},e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/})]},c={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},a=["false","null","true"],g=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],l=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],Q={keyword:g,literal:(e=>{const t=[];return e.forEach((e=>{t.push(e),e.toLowerCase()===e?t.push(e.toUpperCase()):t.push(e.toLowerCase())})),t})(a),built_in:l},h=e=>e.map((e=>e.replace(/\|\d+$/,""))),u={variants:[{match:[/new/,t.concat(E,"+"),t.concat("(?!",h(l).join("\\b|"),"\\b)"),i],scope:{1:"keyword",4:"title.class"}}]},w=t.concat(n,"\\b(?!\\()"),M={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),w],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),w],scope:{1:"title.class",3:"variable.constant"}},{match:[i,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},R={scope:"attr",match:t.concat(n,t.lookahead(":"),t.lookahead(/(?!::)/))},I={relevance:0,begin:/\(/,end:/\)/,keywords:Q,contains:[R,r,M,e.C_BLOCK_COMMENT_MODE,B,c,u]},d={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",h(g).join("\\b|"),"|",h(l).join("\\b|"),"\\b)"),n,t.concat(E,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[I]};I.contains.push(d);const k=[R,M,e.C_BLOCK_COMMENT_MODE,B,c,u];return{case_insensitive:!1,keywords:Q,contains:[{begin:t.concat(/#\[\s*/,i),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:a,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:a,keyword:["new","array"]},contains:["self",...k]},...k,{scope:"meta",match:i}]},e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},r,d,M,{match:[/const/,/\s/,n],scope:{1:"keyword",3:"variable.constant"}},u,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:Q,contains:["self",r,M,e.C_BLOCK_COMMENT_MODE,B,c]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},B,c]}};const Ys=function(e){const t=e.regex,A=/[\p{XID_Start}_]\p{XID_Continue}*/u,n=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:n,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},r={className:"meta",begin:/^(>>>|\.\.\.) /},o={className:"subst",begin:/\{/,end:/\}/,keywords:i,illegal:/#/},s={begin:/\{\{/,relevance:0},E={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,r,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,s,o]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,o]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},B="[0-9](_?[0-9])*",c=`(\\b(${B}))?\\.(${B})|\\b(${B})\\.`,a=`\\b|${n.join("|")}`,g={className:"number",relevance:0,variants:[{begin:`(\\b(${B})|(${c}))[eE][+-]?(${B})[jJ]?(?=${a})`},{begin:`(${c})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${a})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${a})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${a})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${a})`},{begin:`\\b(${B})[jJ](?=${a})`}]},l={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:i,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},Q={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:["self",r,g,E,e.HASH_COMMENT_MODE]}]};return o.contains=[E,g,r],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i,illegal:/(<\/|\?)|=>/,contains:[r,g,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},E,l,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,A],scope:{1:"keyword",3:"title.function"},contains:[Q]},{variants:[{match:[/\bclass/,/\s+/,A,/\s*/,/\(\s*/,A,/\s*\)/]},{match:[/\bclass/,/\s+/,A]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[g,Q,E]}]}};const ms=function(e){const t=e.regex,A=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,n=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,r=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:A,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:A},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[i,n]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,n]},{scope:{1:"punctuation",2:"number"},match:[r,n]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,n]}]},{scope:{3:"operator"},match:[A,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}};const Us=function(e){const t=e.regex,A="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",n=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=t.concat(n,/(::\w+)*/),r={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},o={className:"doctag",begin:"@[A-Za-z]+"},s={begin:"#<",end:">"},E=[e.COMMENT("#","$",{contains:[o]}),e.COMMENT("^=begin","^=end",{contains:[o],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],B={className:"subst",begin:/#\{/,end:/\}/,keywords:r},c={className:"string",contains:[e.BACKSLASH_ESCAPE,B],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,B]})]}]},a="[0-9](_?[0-9])*",g={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:r}]},l=[c,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,i],scope:{2:"title.class"},keywords:r},{relevance:0,match:[i,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:n,scope:"title.class"},{match:[/def/,/\s+/,A],scope:{1:"keyword",3:"title.function"},contains:[g]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[c,{begin:A}],relevance:0},{className:"number",relevance:0,variants:[{begin:`\\b([1-9](_?[0-9])*|0)(\\.(${a}))?([eE][+-]?(${a})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,B],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(s,E),relevance:0}].concat(s,E);B.contains=l,g.contains=l;const Q=[{begin:/^\s*=>/,starts:{end:"$",contains:l}},{className:"meta.prompt",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",starts:{end:"$",keywords:r,contains:l}}];return E.unshift(s),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(Q).concat(E).concat(l)}};const Ss=function(e){const t=e.regex,A={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let\b)/,e.IDENT_RE,t.lookahead(/\s*\(/))},n="([ui](8|16|32|64|128|size)|f(32|64))?",i=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],r=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:r,keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"],literal:["true","false","Some","None","Ok","Err"],built_in:i},illegal:""},A]}},Ns=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],bs=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],ys=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],ps=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],Ts=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();const Hs=function(e){const t=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}))(e),A=ps,n=ys,i="@[a-z-]+",r={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+Ns.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+n.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+A.join("|")+")"},r,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Ts.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[t.BLOCK_COMMENT,r,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:bs.join(" ")},contains:[{begin:i,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},r,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}};const xs=function(e){const t=e.regex,A=e.COMMENT("--","$"),n=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],r=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],o=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],s=r,E=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!r.includes(e))),B={begin:t.concat(/\b/,t.either(...s),/\s*\(/),relevance:0,keywords:{built_in:s}};return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:function(e,{exceptions:t,when:A}={}){const n=A;return t=t||[],e.map((e=>e.match(/\|\d+$/)||t.includes(e)?e:n(e)?`${e}|0`:e))}(E,{when:e=>e.length<3}),literal:n,type:i,built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]},contains:[{begin:t.either(...o),relevance:0,keywords:{$pattern:/[\w\.]+/,keyword:E.concat(o),literal:n,type:i}},{className:"type",begin:t.either("double precision","large object","with timezone","without timezone")},B,{className:"variable",begin:/@[a-z0-9][a-z0-9_]*/},{className:"string",variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,A,{className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}};function zs(e){return e?"string"==typeof e?e:e.source:null}function Js(e){return js("(?=",e,")")}function js(...e){return e.map((e=>zs(e))).join("")}function Zs(...e){const t=function(e){const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e);return"("+(t.capture?"":"?:")+e.map((e=>zs(e))).join("|")+")"}const vs=e=>js(/\b/,e,/\w$/.test(e)?/\b/:/\B/),Ps=["Protocol","Type"].map(vs),Ls=["init","self"].map(vs),Vs=["Any","Self"],Os=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","distributed","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],_s=["false","nil","true"],Ks=["assignment","associativity","higherThan","left","lowerThan","none","right"],Ws=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],Xs=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],qs=Zs(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),$s=Zs(qs,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),eE=js(qs,$s,"*"),tE=Zs(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),AE=Zs(tE,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),nE=js(tE,AE,"*"),iE=js(/[A-Z]/,AE,"*"),rE=["autoclosure",js(/convention\(/,Zs("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",js(/objc\(/,nE,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],oE=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];const sE=function(e){const t={match:/\s+/,relevance:0},A=e.COMMENT("/\\*","\\*/",{contains:["self"]}),n=[e.C_LINE_COMMENT_MODE,A],i={match:[/\./,Zs(...Ps,...Ls)],className:{2:"keyword"}},r={match:js(/\./,Zs(...Os)),relevance:0},o=Os.filter((e=>"string"==typeof e)).concat(["_|0"]),s={variants:[{className:"keyword",match:Zs(...Os.filter((e=>"string"!=typeof e)).concat(Vs).map(vs),...Ls)}]},E={$pattern:Zs(/\b\w+/,/#\w+/),keyword:o.concat(Ws),literal:_s},B=[i,r,s],c=[{match:js(/\./,Zs(...Xs)),relevance:0},{className:"built_in",match:js(/\b/,Zs(...Xs),/(?=\()/)}],a={match:/->/,relevance:0},g=[a,{className:"operator",relevance:0,variants:[{match:eE},{match:`\\.(\\.|${$s})+`}]}],l="([0-9]_*)+",Q="([0-9a-fA-F]_*)+",h={className:"number",relevance:0,variants:[{match:`\\b(${l})(\\.(${l}))?([eE][+-]?(${l}))?\\b`},{match:`\\b0x(${Q})(\\.(${Q}))?([pP][+-]?(${l}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},u=(e="")=>({className:"subst",variants:[{match:js(/\\/,e,/[0\\tnr"']/)},{match:js(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),w=(e="")=>({className:"subst",match:js(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),M=(e="")=>({className:"subst",label:"interpol",begin:js(/\\/,e,/\(/),end:/\)/}),R=(e="")=>({begin:js(e,/"""/),end:js(/"""/,e),contains:[u(e),w(e),M(e)]}),I=(e="")=>({begin:js(e,/"/),end:js(/"/,e),contains:[u(e),M(e)]}),d={className:"string",variants:[R(),R("#"),R("##"),R("###"),I(),I("#"),I("##"),I("###")]},k={match:js(/`/,nE,/`/)},G=[k,{className:"variable",match:/\$\d+/},{className:"variable",match:`\\$${AE}+`}],C=[{match:/(@|#(un)?)available/,className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:oE,contains:[...g,h,d]}]}},{className:"keyword",match:js(/@/,Zs(...rE))},{className:"meta",match:js(/@/,nE)}],f={match:Js(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:js(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,AE,"+")},{className:"type",match:iE,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:js(/\s+&\s+/,Js(iE)),relevance:0}]},D={begin://,keywords:E,contains:[...n,...B,...C,a,f]};f.contains.push(D);const F={begin:/\(/,end:/\)/,relevance:0,keywords:E,contains:["self",{match:js(nE,/\s*:/),keywords:"_|0",relevance:0},...n,...B,...c,...g,h,d,...G,...C,f]},Y={begin://,contains:[...n,f]},m={begin:/\(/,end:/\)/,keywords:E,contains:[{begin:Zs(Js(js(nE,/\s*:/)),Js(js(nE,/\s+/,nE,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:nE}]},...n,...B,...g,h,d,...C,f,F],endsParent:!0,illegal:/["']/},U={match:[/func/,/\s+/,Zs(k.match,nE,eE)],className:{1:"keyword",3:"title.function"},contains:[Y,m,t],illegal:[/\[/,/%/]},S={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Y,m,t],illegal:/\[|%/},N={match:[/operator/,/\s+/,eE],className:{1:"keyword",3:"title"}},b={begin:[/precedencegroup/,/\s+/,iE],className:{1:"keyword",3:"title"},contains:[f],keywords:[...Ks,..._s],end:/}/};for(const e of d.variants){const t=e.contains.find((e=>"interpol"===e.label));t.keywords=E;const A=[...B,...c,...g,h,d,...G];t.contains=[...A,{begin:/\(/,end:/\)/,contains:["self",...A]}]}return{name:"Swift",keywords:E,contains:[...n,U,S,{beginKeywords:"struct protocol class extension enum actor",end:"\\{",excludeEnd:!0,keywords:E,contains:[e.inherit(e.TITLE_MODE,{className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B]},N,b,{beginKeywords:"import",end:/$/,contains:[...n],relevance:0},...B,...c,...g,h,d,...G,...C,f,F]}},EE="[A-Za-z$_][0-9A-Za-z$_]*",BE=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],cE=["true","false","null","undefined","NaN","Infinity"],aE=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],gE=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],lE=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],QE=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],hE=[].concat(lE,aE,gE);function uE(e){const t=e.regex,A=EE,n={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{const A=e[0].length+e.index,n=e.input[A];if("<"===n||","===n)return void t.ignoreMatch();let i;">"===n&&(((e,{after:t})=>{const A="",D={match:[/const|var|let/,/\s+/,A,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(f)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[M]};var F;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:w,CLASS_REFERENCE:I},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,a,g,l,Q,{match:/\$\d+/},E,I,{className:"attr",begin:A+t.lookahead(":"),relevance:0},D,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[Q,e.REGEXP_MODE,{className:"function",begin:f,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:w}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:""},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:n.begin,"on:begin":n.isTrulyOpeningTag,end:n.end}],subLanguage:"xml",contains:[{begin:n.begin,end:n.end,skip:!0,contains:["self"]}]}]},d,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[M,e.inherit(e.TITLE_MODE,{begin:A,className:"title.function"})]},{match:/\.\.\./,relevance:0},G,{match:"\\$"+A,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[M]},k,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},R,C,{match:/\$[(.]/}]}}const wE=function(e){const t=uE(e),A=EE,n=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],i={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[t.exports.CLASS_REFERENCE]},r={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:n},contains:[t.exports.CLASS_REFERENCE]},o={$pattern:EE,keyword:BE.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]),literal:cE,built_in:hE.concat(n),"variable.language":QE},s={className:"meta",begin:"@"+A},E=(e,t,A)=>{const n=e.contains.findIndex((e=>e.label===t));if(-1===n)throw new Error("can not find mode to replace");e.contains.splice(n,1,A)};return Object.assign(t.keywords,o),t.exports.PARAMS_CONTAINS.push(s),t.contains=t.contains.concat([s,i,r]),E(t,"shebang",e.SHEBANG()),E(t,"use_strict",{className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/}),t.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(t,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t};const ME=function(e){const t=e.regex,A=/\d{1,2}\/\d{1,2}\/\d{4}/,n=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,o={className:"literal",variants:[{begin:t.concat(/# */,t.either(n,A),/ *#/)},{begin:t.concat(/# */,r,/ *#/)},{begin:t.concat(/# */,i,/ *#/)},{begin:t.concat(/# */,t.either(n,A),/ +/,t.either(i,r),/ *#/)}]},s=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),E=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},o,{className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{className:"label",begin:/^\w+:/},s,E,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[E]}]}};const RE=function(e){const t=e.regex,A=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),n={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},r=e.inherit(i,{begin:/\(/,end:/\)/}),o=e.inherit(e.APOS_STRING_MODE,{className:"string"}),s=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),E={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[i,s,o,r,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[i,r,s,o]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},n,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[s]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[E],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[E],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:A,relevance:0,starts:E}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(A,/>/))),contains:[{className:"name",begin:A,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}};const IE=function(e){const t="true false yes no null",A="[\\w#;/?:@&=+$,.~*'()[\\]]+",n={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(n,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),r={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},o=[{className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+A},{className:"type",begin:"!<"+A+">"},{className:"type",begin:"!"+A},{className:"type",begin:"!!"+A},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},{className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},{begin:/\{/,end:/\}/,contains:[r],illegal:"\\n",relevance:0},{begin:"\\[",end:"\\]",contains:[r],illegal:"\\n",relevance:0},n],s=[...o];return s.pop(),s.push(i),r.contains=s,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:o}};function dE(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((t=>{const A=e[t],n=typeof A;"object"!==n&&"function"!==n||Object.isFrozen(A)||dE(A)})),e}class kE{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function GE(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function CE(e,...t){const A=Object.create(null);for(const t in e)A[t]=e[t];return t.forEach((function(e){for(const t in e)A[t]=e[t]})),A}const fE=e=>!!e.scope;class DE{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=GE(e)}openNode(e){if(!fE(e))return;const t=((e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const A=e.split(".");return[`${t}${A.shift()}`,...A.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ")}return`${t}${e}`})(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){fE(e)&&(this.buffer+="")}value(){return this.buffer}span(e){this.buffer+=``}}const FE=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class YE{constructor(){this.rootNode=FE(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=FE({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{YE._collapse(e)})))}}class mE extends YE{constructor(e){super(),this.options=e}addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){const A=e.root;t&&(A.scope=`language:${t}`),this.add(A)}toHTML(){return new DE(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function UE(e){return e?"string"==typeof e?e:e.source:null}function SE(e){return yE("(?=",e,")")}function NE(e){return yE("(?:",e,")*")}function bE(e){return yE("(?:",e,")?")}function yE(...e){return e.map((e=>UE(e))).join("")}function pE(...e){const t=function(e){const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e);return"("+(t.capture?"":"?:")+e.map((e=>UE(e))).join("|")+")"}function TE(e){return new RegExp(e.toString()+"|").exec("").length-1}const HE=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function xE(e,{joinWith:t}){let A=0;return e.map((e=>{A+=1;const t=A;let n=UE(e),i="";for(;n.length>0;){const e=HE.exec(n);if(!e){i+=n;break}i+=n.substring(0,e.index),n=n.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+String(Number(e[1])+t):(i+=e[0],"("===e[0]&&A++)}return i})).map((e=>`(${e})`)).join(t)}const zE="[a-zA-Z]\\w*",JE="[a-zA-Z_]\\w*",jE="\\b\\d+(\\.\\d+)?",ZE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",vE="\\b(0b[01]+)",PE={begin:"\\\\[\\s\\S]",relevance:0},LE={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[PE]},VE={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[PE]},OE=function(e,t,A={}){const n=CE({scope:"comment",begin:e,end:t,contains:[]},A);n.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=pE("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return n.contains.push({begin:yE(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),n},_E=OE("//","$"),KE=OE("/\\*","\\*/"),WE=OE("#","$");var XE=Object.freeze({__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:zE,UNDERSCORE_IDENT_RE:JE,NUMBER_RE:jE,C_NUMBER_RE:ZE,BINARY_NUMBER_RE:vE,RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=yE(t,/.*\b/,e.binary,/\b.*/)),CE({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:PE,APOS_STRING_MODE:LE,QUOTE_STRING_MODE:VE,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},COMMENT:OE,C_LINE_COMMENT_MODE:_E,C_BLOCK_COMMENT_MODE:KE,HASH_COMMENT_MODE:WE,NUMBER_MODE:{scope:"number",begin:jE,relevance:0},C_NUMBER_MODE:{scope:"number",begin:ZE,relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:vE,relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[PE,{begin:/\[/,end:/\]/,relevance:0,contains:[PE]}]}]},TITLE_MODE:{scope:"title",begin:zE,relevance:0},UNDERSCORE_TITLE_MODE:{scope:"title",begin:JE,relevance:0},METHOD_GUARD:{begin:"\\.\\s*"+JE,relevance:0},END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})}});function qE(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function $E(e){void 0!==e.className&&(e.scope=e.className,delete e.className)}function eB(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=qE,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function tB(e){Array.isArray(e.illegal)&&(e.illegal=pE(...e.illegal))}function AB(e){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function nB(e){void 0===e.relevance&&(e.relevance=1)}const iB=e=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]})),e.keywords=t.keywords,e.begin=yE(t.beforeMatch,SE(t.begin)),e.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},e.relevance=0,delete t.beforeMatch},rB=["of","and","for","in","not","or","if","then","parent","list","value"],oB="keyword";function sB(e,t,A=oB){const n=Object.create(null);return"string"==typeof e?i(A,e.split(" ")):Array.isArray(e)?i(A,e):Object.keys(e).forEach((function(A){Object.assign(n,sB(e[A],t,A))})),n;function i(e,A){t&&(A=A.map((e=>e.toLowerCase()))),A.forEach((function(t){const A=t.split("|");n[A[0]]=[e,EB(A[0],A[1])]}))}}function EB(e,t){return t?Number(t):function(e){return rB.includes(e.toLowerCase())}(e)?0:1}const BB={},cB=e=>{console.error(e)},aB=(e,...t)=>{console.log(`WARN: ${e}`,...t)},gB=(e,t)=>{BB[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),BB[`${e}/${t}`]=!0)},lB=new Error;function QB(e,t,{key:A}){let n=0;const i=e[A],r={},o={};for(let e=1;e<=t.length;e++)o[e+n]=i[e],r[e+n]=!0,n+=TE(t[e-1]);e[A]=o,e[A]._emit=r,e[A]._multi=!0}function hB(e){!function(e){e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)}(e),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw cB("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),lB;if("object"!=typeof e.beginScope||null===e.beginScope)throw cB("beginScope must be object"),lB;QB(e,e.begin,{key:"beginScope"}),e.begin=xE(e.begin,{joinWith:""})}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw cB("skip, excludeEnd, returnEnd not compatible with endScope: {}"),lB;if("object"!=typeof e.endScope||null===e.endScope)throw cB("endScope must be object"),lB;QB(e,e.end,{key:"endScope"}),e.end=xE(e.end,{joinWith:""})}}(e)}function uB(e){function t(t,A){return new RegExp(UE(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(A?"g":""))}class A{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=TE(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map((e=>e[1]));this.matcherRe=t(xE(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t)return null;const A=t.findIndex(((e,t)=>t>0&&void 0!==e)),n=this.matchIndexes[A];return t.splice(0,A),Object.assign(t,n)}}class n{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const t=new A;return this.rules.slice(e).forEach((([e,A])=>t.addRule(e,A))),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let A=t.exec(e);if(this.resumingScanAtSamePosition())if(A&&A.index===this.lastIndex);else{const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,A=t.exec(e)}return A&&(this.regexIndex+=A.position+1,this.regexIndex===this.count&&this.considerAll()),A}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=CE(e.classNameAliases||{}),function A(i,r){const o=i;if(i.isCompiled)return o;[$E,AB,hB,iB].forEach((e=>e(i,r))),e.compilerExtensions.forEach((e=>e(i,r))),i.__beforeBegin=null,[eB,tB,nB].forEach((e=>e(i,r))),i.isCompiled=!0;let s=null;return"object"==typeof i.keywords&&i.keywords.$pattern&&(i.keywords=Object.assign({},i.keywords),s=i.keywords.$pattern,delete i.keywords.$pattern),s=s||/\w+/,i.keywords&&(i.keywords=sB(i.keywords,e.case_insensitive)),o.keywordPatternRe=t(s,!0),r&&(i.begin||(i.begin=/\B|\b/),o.beginRe=t(o.begin),i.end||i.endsWithParent||(i.end=/\B|\b/),i.end&&(o.endRe=t(o.end)),o.terminatorEnd=UE(o.end)||"",i.endsWithParent&&r.terminatorEnd&&(o.terminatorEnd+=(i.end?"|":"")+r.terminatorEnd)),i.illegal&&(o.illegalRe=t(i.illegal)),i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map((function(e){return function(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(t){return CE(e,{variants:null},t)}))),e.cachedVariants?e.cachedVariants:wB(e)?CE(e,{starts:e.starts?CE(e.starts):null}):Object.isFrozen(e)?CE(e):e}("self"===e?i:e)}))),i.contains.forEach((function(e){A(e,o)})),i.starts&&A(i.starts,r),o.matcher=function(e){const t=new n;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t}(o),o}(e)}function wB(e){return!!e&&(e.endsWithParent||wB(e.starts))}class MB extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const RB=GE,IB=CE,dB=Symbol("nomatch"),kB=function(e){const t=Object.create(null),A=Object.create(null),n=[];let i=!0;const r="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]};let s={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:mE};function E(e){return s.noHighlightRe.test(e)}function B(e,t,A){let n="",i="";"object"==typeof t?(n=e,A=t.ignoreIllegals,i=t.language):(gB("10.7.0","highlight(lang, code, ...args) has been deprecated."),gB("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),i=e,n=t),void 0===A&&(A=!0);const r={code:n,language:i};M("before:highlight",r);const o=r.result?r.result:c(r.language,r.code,A);return o.code=r.code,M("after:highlight",o),o}function c(e,A,n,o){const E=Object.create(null);function B(){if(!f.keywords)return void F.addText(Y);let e=0;f.keywordPatternRe.lastIndex=0;let t=f.keywordPatternRe.exec(Y),A="";for(;t;){A+=Y.substring(e,t.index);const n=k.case_insensitive?t[0].toLowerCase():t[0],i=f.keywords[n];if(i){const[e,r]=i;F.addText(A),A="",E[n]=(E[n]||0)+1,E[n]<=7&&(m+=r),e.startsWith("_")?A+=t[0]:l(t[0],k.classNameAliases[e]||e)}else A+=t[0];e=f.keywordPatternRe.lastIndex,t=f.keywordPatternRe.exec(Y)}A+=Y.substring(e),F.addText(A)}function g(){null!=f.subLanguage?function(){if(""===Y)return;let e=null;if("string"==typeof f.subLanguage){if(!t[f.subLanguage])return void F.addText(Y);e=c(f.subLanguage,Y,!0,D[f.subLanguage]),D[f.subLanguage]=e._top}else e=a(Y,f.subLanguage.length?f.subLanguage:null);f.relevance>0&&(m+=e.relevance),F.__addSublanguage(e._emitter,e.language)}():B(),Y=""}function l(e,t){""!==e&&(F.startScope(t),F.addText(e),F.endScope())}function Q(e,t){let A=1;const n=t.length-1;for(;A<=n;){if(!e._emit[A]){A++;continue}const n=k.classNameAliases[e[A]]||e[A],i=t[A];n?l(i,n):(Y=i,B(),Y=""),A++}}function u(e,t){return e.scope&&"string"==typeof e.scope&&F.openNode(k.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(l(Y,k.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),Y=""):e.beginScope._multi&&(Q(e.beginScope,t),Y="")),f=Object.create(e,{parent:{value:f}}),f}function w(e,t,A){let n=function(e,t){const A=e&&e.exec(t);return A&&0===A.index}(e.endRe,A);if(n){if(e["on:end"]){const A=new kE(e);e["on:end"](t,A),A.isMatchIgnored&&(n=!1)}if(n){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return w(e.parent,t,A)}function M(e){return 0===f.matcher.regexIndex?(Y+=e[0],1):(N=!0,0)}function R(e){const t=e[0],n=A.substring(e.index),i=w(f,e,n);if(!i)return dB;const r=f;f.endScope&&f.endScope._wrap?(g(),l(t,f.endScope._wrap)):f.endScope&&f.endScope._multi?(g(),Q(f.endScope,e)):r.skip?Y+=t:(r.returnEnd||r.excludeEnd||(Y+=t),g(),r.excludeEnd&&(Y=t));do{f.scope&&F.closeNode(),f.skip||f.subLanguage||(m+=f.relevance),f=f.parent}while(f!==i.parent);return i.starts&&u(i.starts,e),r.returnEnd?0:t.length}let I={};function d(t,r){const o=r&&r[0];if(Y+=t,null==o)return g(),0;if("begin"===I.type&&"end"===r.type&&I.index===r.index&&""===o){if(Y+=A.slice(r.index,r.index+1),!i){const t=new Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=I.rule,t}return 1}if(I=r,"begin"===r.type)return function(e){const t=e[0],A=e.rule,n=new kE(A),i=[A.__beforeBegin,A["on:begin"]];for(const A of i)if(A&&(A(e,n),n.isMatchIgnored))return M(t);return A.skip?Y+=t:(A.excludeBegin&&(Y+=t),g(),A.returnBegin||A.excludeBegin||(Y=t)),u(A,e),A.returnBegin?0:t.length}(r);if("illegal"===r.type&&!n){const e=new Error('Illegal lexeme "'+o+'" for mode "'+(f.scope||"")+'"');throw e.mode=f,e}if("end"===r.type){const e=R(r);if(e!==dB)return e}if("illegal"===r.type&&""===o)return 1;if(S>1e5&&S>3*r.index)throw new Error("potential infinite loop, way more iterations than matches");return Y+=o,o.length}const k=h(e);if(!k)throw cB(r.replace("{}",e)),new Error('Unknown language: "'+e+'"');const G=uB(k);let C="",f=o||G;const D={},F=new s.__emitter(s);!function(){const e=[];for(let t=f;t!==k;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach((e=>F.openNode(e)))}();let Y="",m=0,U=0,S=0,N=!1;try{if(k.__emitTokens)k.__emitTokens(A,F);else{for(f.matcher.considerAll();;){S++,N?N=!1:f.matcher.considerAll(),f.matcher.lastIndex=U;const e=f.matcher.exec(A);if(!e)break;const t=d(A.substring(U,e.index),e);U=e.index+t}d(A.substring(U))}return F.finalize(),C=F.toHTML(),{language:e,value:C,relevance:m,illegal:!1,_emitter:F,_top:f}}catch(t){if(t.message&&t.message.includes("Illegal"))return{language:e,value:RB(A),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:U,context:A.slice(U-100,U+100),mode:t.mode,resultSoFar:C},_emitter:F};if(i)return{language:e,value:RB(A),illegal:!1,relevance:0,errorRaised:t,_emitter:F,_top:f};throw t}}function a(e,A){A=A||s.languages||Object.keys(t);const n=function(e){const t={value:RB(e),illegal:!1,relevance:0,_top:o,_emitter:new s.__emitter(s)};return t._emitter.addText(e),t}(e),i=A.filter(h).filter(w).map((t=>c(t,e,!1)));i.unshift(n);const r=i.sort(((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(h(e.language).supersetOf===t.language)return 1;if(h(t.language).supersetOf===e.language)return-1}return 0})),[E,B]=r,a=E;return a.secondBest=B,a}function g(e){let t=null;const n=function(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";const A=s.languageDetectRe.exec(t);if(A){const t=h(A[1]);return t||(aB(r.replace("{}",A[1])),aB("Falling back to no-highlight mode for this block.",e)),t?A[1]:"no-highlight"}return t.split(/\s+/).find((e=>E(e)||h(e)))}(e);if(E(n))return;if(M("before:highlightElement",{el:e,language:n}),e.children.length>0&&(s.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),s.throwUnescapedHTML))throw new MB("One of your code blocks includes unescaped HTML.",e.innerHTML);t=e;const i=t.textContent,o=n?B(i,{language:n,ignoreIllegals:!0}):a(i);e.innerHTML=o.value,function(e,t,n){const i=t&&A[t]||n;e.classList.add("hljs"),e.classList.add(`language-${i}`)}(e,n,o.language),e.result={language:o.language,re:o.relevance,relevance:o.relevance},o.secondBest&&(e.secondBest={language:o.secondBest.language,relevance:o.secondBest.relevance}),M("after:highlightElement",{el:e,result:o,text:i})}let l=!1;function Q(){"loading"!==document.readyState?document.querySelectorAll(s.cssSelector).forEach(g):l=!0}function h(e){return e=(e||"").toLowerCase(),t[e]||t[A[e]]}function u(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{A[e.toLowerCase()]=t}))}function w(e){const t=h(e);return t&&!t.disableAutodetect}function M(e,t){const A=e;n.forEach((function(e){e[A]&&e[A](t)}))}"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(function(){l&&Q()}),!1),Object.assign(e,{highlight:B,highlightAuto:a,highlightAll:Q,highlightElement:g,highlightBlock:function(e){return gB("10.7.0","highlightBlock will be removed entirely in v12.0"),gB("10.7.0","Please use highlightElement now."),g(e)},configure:function(e){s=IB(s,e)},initHighlighting:()=>{Q(),gB("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){Q(),gB("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(A,n){let r=null;try{r=n(e)}catch(e){if(cB("Language definition for '{}' could not be registered.".replace("{}",A)),!i)throw e;cB(e),r=o}r.name||(r.name=A),t[A]=r,r.rawDefinition=n.bind(null,e),r.aliases&&u(r.aliases,{languageName:A})},unregisterLanguage:function(e){delete t[e];for(const t of Object.keys(A))A[t]===e&&delete A[t]},listLanguages:function(){return Object.keys(t)},getLanguage:h,registerAliases:u,autoDetection:w,inherit:IB,addPlugin:function(e){!function(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{e["before:highlightBlock"](Object.assign({block:t.el},t))}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{e["after:highlightBlock"](Object.assign({block:t.el},t))})}(e),n.push(e)},removePlugin:function(e){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString="11.8.0",e.regex={concat:yE,lookahead:SE,either:pE,optional:bE,anyNumberOfTimes:NE};for(const e in XE)"object"==typeof XE[e]&&dE(XE[e]);return Object.assign(e,XE),e},GB=kB({});GB.newInstance=()=>kB({});var CB=GB;GB.HighlightJS=GB,GB.default=GB;const fB=CB;var DB,FB={exports:{}};DB=FB,function(){var e;function t(e){for(var t,A,n,i,r=1,o=[].slice.call(arguments),s=0,E=e.length,B="",c=!1,a=!1,g=function(){return o[r++]},l=function(){for(var A="";/\d/.test(e[s]);)A+=e[s++],t=e[s];return A.length>0?parseInt(A):null};st?e+"_".repeat(t):this.options.classPrefix+e))},children:[]};this.stack[this.stack.length-1].children.push(t),this.stack.push(t)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const yB={highlight:NB,highlightAuto:function(e,t={}){const A=t.subset||fB.listLanguages();let n=-1,i={type:"root",data:{language:null,relevance:0},children:[]};if("string"!=typeof e)throw mB("Expected `string` for value, got `%s`",e);for(;++ni.data.relevance&&(i=o)}return i},registerLanguage:function(e,t){fB.registerLanguage(e,t)},registered:function(e){return Boolean(fB.getLanguage(e))},listLanguages:function(){return fB.listLanguages()},registerAlias:function(e,t){if("string"==typeof e)fB.registerAliases(t,{languageName:e});else{let t;for(t in e)SB.call(e,t)&&fB.registerAliases(e[t],{languageName:t})}}};yB.registerLanguage("arduino",Ho),yB.registerLanguage("bash",(function(e){const t={},A={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{className:"variable",variants:[{begin:e.regex.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},A]});const n={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},i={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},r={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t,n]};n.contains.push(r);const o={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]},s=e.SHEBANG({binary:`(${["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"].join("|")})`,relevance:10}),E={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"],literal:["true","false"],built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]},contains:[s,e.SHEBANG(),E,o,e.HASH_COMMENT_MODE,i,{match:/(\/[a-z._-]+)+/},r,{className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},t]}})),yB.registerLanguage("c",xo),yB.registerLanguage("cpp",zo),yB.registerLanguage("csharp",Jo),yB.registerLanguage("css",Vo),yB.registerLanguage("diff",Oo),yB.registerLanguage("go",_o),yB.registerLanguage("graphql",Ko),yB.registerLanguage("ini",Wo),yB.registerLanguage("java",As),yB.registerLanguage("javascript",as),yB.registerLanguage("json",gs),yB.registerLanguage("kotlin",ws),yB.registerLanguage("less",Cs),yB.registerLanguage("lua",(function(e){const t="\\[=*\\[",A="\\]=*\\]",n={begin:t,end:A,contains:["self"]},i=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,A,{contains:[n],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:i}].concat(i)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:A,contains:[n],relevance:5}])}})),yB.registerLanguage("makefile",(function(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+A.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:A,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}})),yB.registerLanguage("perl",Ds),yB.registerLanguage("php",Fs),yB.registerLanguage("php-template",(function(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}})),yB.registerLanguage("plaintext",(function(){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}})),yB.registerLanguage("python",Ys),yB.registerLanguage("python-repl",(function(){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}})),yB.registerLanguage("r",ms),yB.registerLanguage("ruby",Us),yB.registerLanguage("rust",Ss),yB.registerLanguage("scss",Hs),yB.registerLanguage("shell",(function(){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}})),yB.registerLanguage("sql",xs),yB.registerLanguage("swift",sE),yB.registerLanguage("typescript",wE),yB.registerLanguage("vbnet",ME),yB.registerLanguage("wasm",(function(e){const t=e.COMMENT(/\(;/,/;\)/);return t.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"]},contains:[e.COMMENT(/;;/,/$/),t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},{className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/},{className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/}]}})),yB.registerLanguage("xml",RE),yB.registerLanguage("yaml",IE);const pB=Object.freeze({__proto__:null,lowlight:yB}),TB="aaa1rp3barth4b0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0faromeo7ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4vianca6w0s2x0a2z0ure5ba0by2idu3namex3narepublic11d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2ntley5rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re2s2c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y0eats7k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0cast4mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking0channel11l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dabur3d1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t0isalat7u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0at2delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d0network8tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntdoor4ier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0ardian6cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5gtv3iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0eles2s3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6logistics9properties14fh2g1h1i0a1ds2m1nder2le4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3ncaster5ia3d0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4de2k2psy3ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0cys3drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7serati6ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic3tual5v1w1x1y1z2na0b1goya4me2tura4vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rthwesternmutual14on4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9dnavy5lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3ssagens7y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0america6xi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cher3ks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0a1b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp2w2ell3ia1ksha5oes2p0ping5uji3w0time7i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ffany5ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0channel7ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lkswagen7vo3te1ing3o2yage5u0elos6wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4finity6ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2",HB="ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5تصالات6رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2",xB=(e,t)=>{for(const A in t)e[A]=t[A];return e},zB="numeric",JB="ascii",jB="alpha",ZB="asciinumeric",vB="alphanumeric",PB="domain",LB="emoji",VB="scheme",OB="slashscheme",_B="whitespace";function KB(e,t){return e in t||(t[e]=[]),t[e]}function WB(e,t,A){t[zB]&&(t[ZB]=!0,t[vB]=!0),t[JB]&&(t[ZB]=!0,t[jB]=!0),t[ZB]&&(t[vB]=!0),t[jB]&&(t[vB]=!0),t[vB]&&(t[PB]=!0),t[LB]&&(t[PB]=!0);for(const n in t){const t=KB(n,A);t.indexOf(e)<0&&t.push(e)}}function XB(e){void 0===e&&(e=null),this.j={},this.jr=[],this.jd=null,this.t=e}XB.groups={},XB.prototype={accepts(){return!!this.t},go(e){const t=this,A=t.j[e];if(A)return A;for(let A=0;A=0&&(A[n]=!0);return A}(o.t,n),A);WB(r,e,n)}else A&&WB(r,A,n);o.t=r}return i.j[e]=o,o}};const qB=(e,t,A,n,i)=>e.ta(t,A,n,i),$B=(e,t,A,n,i)=>e.tr(t,A,n,i),ec=(e,t,A,n,i)=>e.ts(t,A,n,i),tc=(e,t,A,n,i)=>e.tt(t,A,n,i),Ac="WORD",nc="UWORD",ic="LOCALHOST",rc="TLD",oc="UTLD",sc="SCHEME",Ec="SLASH_SCHEME",Bc="NUM",cc="WS",ac="NL",gc="OPENBRACE",lc="OPENBRACKET",Qc="OPENANGLEBRACKET",hc="OPENPAREN",uc="CLOSEBRACE",wc="CLOSEBRACKET",Mc="CLOSEANGLEBRACKET",Rc="CLOSEPAREN",Ic="AMPERSAND",dc="APOSTROPHE",kc="ASTERISK",Gc="AT",Cc="BACKSLASH",fc="BACKTICK",Dc="CARET",Fc="COLON",Yc="COMMA",mc="DOLLAR",Uc="DOT",Sc="EQUALS",Nc="EXCLAMATION",bc="HYPHEN",yc="PERCENT",pc="PIPE",Tc="PLUS",Hc="POUND",xc="QUERY",zc="QUOTE",Jc="SEMI",jc="SLASH",Zc="TILDE",vc="UNDERSCORE",Pc="EMOJI",Lc="SYM";var Vc=Object.freeze({__proto__:null,WORD:Ac,UWORD:nc,LOCALHOST:ic,TLD:rc,UTLD:oc,SCHEME:sc,SLASH_SCHEME:Ec,NUM:Bc,WS:cc,NL:ac,OPENBRACE:gc,OPENBRACKET:lc,OPENANGLEBRACKET:Qc,OPENPAREN:hc,CLOSEBRACE:uc,CLOSEBRACKET:wc,CLOSEANGLEBRACKET:Mc,CLOSEPAREN:Rc,AMPERSAND:Ic,APOSTROPHE:dc,ASTERISK:kc,AT:Gc,BACKSLASH:Cc,BACKTICK:fc,CARET:Dc,COLON:Fc,COMMA:Yc,DOLLAR:mc,DOT:Uc,EQUALS:Sc,EXCLAMATION:Nc,HYPHEN:bc,PERCENT:yc,PIPE:pc,PLUS:Tc,POUND:Hc,QUERY:xc,QUOTE:zc,SEMI:Jc,SLASH:jc,TILDE:Zc,UNDERSCORE:vc,EMOJI:Pc,SYM:Lc});const Oc=/[a-z]/,_c=/\p{L}/u,Kc=/\p{Emoji}/u,Wc=/\d/,Xc=/\s/,qc="\n",$c="️",ea="‍";let ta=null,Aa=null;function na(e,t,A,n,i){let r;const o=t.length;for(let A=0;A=0;)i++;if(i>0){t.push(A.join(""));for(let t=parseInt(e.substring(n,n+i),10);t>0;t--)A.pop();n+=i}else A.push(e[n]),n++}return t}const ra={defaultProtocol:"http",events:null,format:sa,formatHref:sa,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function oa(e,t){void 0===t&&(t=null);let A=xB({},ra);e&&(A=xB(A,e instanceof oa?e.o:e));const n=A.ignoreTags,i=[];for(let e=0;ee,check(e){return this.get("validate",e.toString(),e)},get(e,t,A){const n=null!=t;let i=this.o[e];return i?("object"==typeof i?(i=A.t in i?i[A.t]:ra[e],"function"==typeof i&&n&&(i=i(t,A))):"function"==typeof i&&n&&(i=i(t,A.t,A)),i):i},getObj(e,t,A){let n=this.o[e];return"function"==typeof n&&null!=t&&(n=n(t,A.t,A)),n},render(e){const t=e.render(this);return(this.get("render",null,e)||this.defaultRender)(t,e.t,e)}},Ea.prototype={isLink:!1,toString(){return this.v},toHref(e){return this.toString()},toFormattedString(e){const t=this.toString(),A=e.get("truncate",t,this),n=e.get("format",t,this);return A&&n.length>A?n.substring(0,A)+"…":n},toFormattedHref(e){return e.get("formatHref",this.toHref(e.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(e){return void 0===e&&(e=ra.defaultProtocol),{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(e),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(e){return{type:this.t,value:this.toFormattedString(e),isLink:this.isLink,href:this.toFormattedHref(e),start:this.startIndex(),end:this.endIndex()}},validate(e){return e.get("validate",this.toString(),this)},render(e){const t=this,A=this.toHref(e.get("defaultProtocol")),n=e.get("formatHref",A,this),i=e.get("tagName",A,t),r=this.toFormattedString(e),o={},s=e.get("className",A,t),E=e.get("target",A,t),B=e.get("rel",A,t),c=e.getObj("attributes",A,t),a=e.getObj("events",A,t);return o.href=n,s&&(o.class=s),E&&(o.target=E),B&&(o.rel=B),c&&xB(o,c),{tagName:i,attributes:o,content:r,eventListeners:a}}};const ca=Ba("email",{isLink:!0,toHref(){return"mailto:"+this.toString()}}),aa=Ba("text"),ga=Ba("nl"),la=Ba("url",{isLink:!0,toHref(e){return void 0===e&&(e=ra.defaultProtocol),this.hasProtocol()?this.v:`${e}://${this.v}`},hasProtocol(){const e=this.tk;return e.length>=2&&e[0].t!==ic&&e[1].t===Fc}}),Qa=e=>new XB(e);function ha(e,t,A){return new e(t.slice(A[0].s,A[A.length-1].e),A)}const ua="undefined"!=typeof console&&console&&console.warn||(()=>{}),wa={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function Ma(e,t){if(void 0===t&&(t=!1),wa.initialized&&ua(`linkifyjs: already initialized - will not register custom scheme "${e}" until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.`),!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(e))throw new Error('linkifyjs: incorrect scheme format.\n 1. Must only contain digits, lowercase ASCII letters or "-"\n 2. Cannot start or end with "-"\n 3. "-" cannot repeat');wa.customSchemes.push([e,t])}function Ra(e){return wa.initialized||function(){wa.scanner=function(e){void 0===e&&(e=[]);const t={};XB.groups=t;const A=new XB;null==ta&&(ta=ia(TB)),null==Aa&&(Aa=ia(HB)),tc(A,"'",dc),tc(A,"{",gc),tc(A,"[",lc),tc(A,"<",Qc),tc(A,"(",hc),tc(A,"}",uc),tc(A,"]",wc),tc(A,">",Mc),tc(A,")",Rc),tc(A,"&",Ic),tc(A,"*",kc),tc(A,"@",Gc),tc(A,"`",fc),tc(A,"^",Dc),tc(A,":",Fc),tc(A,",",Yc),tc(A,"$",mc),tc(A,".",Uc),tc(A,"=",Sc),tc(A,"!",Nc),tc(A,"-",bc),tc(A,"%",yc),tc(A,"|",pc),tc(A,"+",Tc),tc(A,"#",Hc),tc(A,"?",xc),tc(A,'"',zc),tc(A,"/",jc),tc(A,";",Jc),tc(A,"~",Zc),tc(A,"_",vc),tc(A,"\\",Cc);const n=$B(A,Wc,Bc,{[zB]:!0});$B(n,Wc,n);const i=$B(A,Oc,Ac,{[JB]:!0});$B(i,Oc,i);const r=$B(A,_c,nc,{[jB]:!0});$B(r,Oc),$B(r,_c,r);const o=$B(A,Xc,cc,{[_B]:!0});tc(A,qc,ac,{[_B]:!0}),tc(o,qc),$B(o,Xc,o);const s=$B(A,Kc,Pc,{[LB]:!0});$B(s,Kc,s),tc(s,$c,s);const E=tc(s,ea);$B(E,Kc,s);const B=[[Oc,i]],c=[[Oc,null],[_c,r]];for(let e=0;ee[0]>t[0]?1:-1));for(let t=0;t=0?i[PB]=!0:Oc.test(n)?Wc.test(n)?i[ZB]=!0:i[JB]=!0:i[zB]=!0,ec(A,n,n,i)}return ec(A,"localhost",ic,{ascii:!0}),A.jd=new XB(Lc),{start:A,tokens:xB({groups:t},Vc)}}(wa.customSchemes);for(let e=0;e=0&&g++,i++,c++;if(g<0)i-=c,i0&&(r.push(ha(aa,t,o)),o=[]),i-=g,c-=g;const e=a.t,n=A.slice(i-c,i);r.push(ha(e,t,n))}}return o.length>0&&r.push(ha(aa,t,o)),r}(wa.parser.start,e,function(e,t){const A=function(e){const t=[],A=e.length;let n=0;for(;n56319||n+1===A||(i=e.charCodeAt(n+1))<56320||i>57343?e[n]:e.slice(n,n+2);t.push(o),n+=o.length}return t}(t.replace(/[A-Z]/g,(e=>e.toLowerCase()))),n=A.length,i=[];let r=0,o=0;for(;o=0&&(a+=A[o].length,g++),B+=A[o].length,r+=A[o].length,o++;r-=a,o-=g,B-=a,i.push({t:c.t,v:t.slice(r-B,r),s:r-B,e:r})}return i}(wa.scanner.start,e))}function Ia(e,t,A){if(void 0===t&&(t=null),void 0===A&&(A=null),t&&"object"==typeof t){if(A)throw Error(`linkifyjs: Invalid link type ${t}; must be a string`);A=t,t=null}const n=new oa(A),i=Ra(e),r=[];for(let e=0;e{"string"!=typeof e?Ma(e.scheme,e.optionalSlashes):Ma(e)}))},onDestroy(){XB.groups={},wa.scanner=null,wa.parser=null,wa.tokenQueue=[],wa.pluginQueue=[],wa.customSchemes=[],wa.initialized=!1},inclusive(){return this.options.autolink},addOptions:()=>({openOnClick:!0,linkOnPaste:!0,autolink:!0,protocols:[],HTMLAttributes:{target:"_blank",rel:"noopener noreferrer nofollow",class:null},validate:void 0}),addAttributes(){return{href:{default:null},target:{default:this.options.HTMLAttributes.target},rel:{default:this.options.HTMLAttributes.rel},class:{default:this.options.HTMLAttributes.class}}},parseHTML:()=>[{tag:'a[href]:not([href *= "javascript:" i])'}],renderHTML({HTMLAttributes:e}){var t;return(null===(t=e.href)||void 0===t?void 0:t.startsWith("javascript:"))?["a",l(this.options.HTMLAttributes,{...e,href:""}),0]:["a",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setLink:e=>({chain:t})=>t().setMark(this.name,e).setMeta("preventAutolink",!0).run(),toggleLink:e=>({chain:t})=>t().toggleMark(this.name,e,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run(),unsetLink:()=>({chain:e})=>e().unsetMark(this.name,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run()}},addPasteRules(){return[w({find:e=>{const t=[];if(e){const A=Ia(e).filter((e=>e.isLink));A.length&&A.forEach((e=>t.push({text:e.value,data:{href:e.href},index:e.start})))}return t},type:this.type,getAttributes:e=>{var t;return{href:null===(t=e.data)||void 0===t?void 0:t.href}}})]},addProseMirrorPlugins(){const e=[];return this.options.autolink&&e.push((t={type:this.type,validate:this.options.validate},new r({key:new o("autolink"),appendTransaction:(e,A,n)=>{const i=e.some((e=>e.docChanged))&&!A.doc.eq(n.doc),r=e.some((e=>e.getMeta("preventAutolink")));if(!i||r)return;const{tr:o}=n,s=F(A.doc,[...e]);return Y(s).forEach((({newRange:e})=>{const A=m(n.doc,e,(e=>e.isTextblock));let i,r;if(A.length>1?(i=A[0],r=n.doc.textBetween(i.pos,i.pos+i.node.nodeSize,void 0," ")):A.length&&n.doc.textBetween(e.from,e.to," "," ").endsWith(" ")&&(i=A[0],r=n.doc.textBetween(i.pos,e.to,void 0," ")),i&&r){const e=r.split(" ").filter((e=>""!==e));if(e.length<=0)return!1;const A=e[e.length-1],E=i.pos+r.lastIndexOf(A);if(!A)return!1;const B=Ra(A).map((e=>e.toObject()));if(!(1===(s=B).length?s[0].isLink:3===s.length&&s[1].isLink&&["()","[]"].includes(s[0].value+s[2].value)))return!1;B.filter((e=>e.isLink)).map((e=>({...e,from:E+e.start+1,to:E+e.end+1}))).filter((e=>!n.schema.marks.code||!n.doc.rangeHasMark(e.from,e.to,n.schema.marks.code))).filter((e=>!t.validate||t.validate(e.value))).forEach((e=>{U(e.from,e.to,n.doc).some((e=>e.mark.type===t.type))||o.addMark(e.from,e.to,t.type.create({href:e.href}))}))}var s})),o.steps.length?o:void 0}}))),this.options.openOnClick&&e.push(function(e){return new r({key:new o("handleClickLink"),props:{handleClick:(t,A,n)=>{var i,r;if(e.whenNotEditable&&t.editable)return!1;if(0!==n.button)return!1;let o=n.target;const s=[];for(;"DIV"!==o.nodeName;)s.push(o),o=o.parentNode;if(!s.find((e=>"A"===e.nodeName)))return!1;const E=S(t.state,e.type.name),B=n.target,c=null!==(i=null==B?void 0:B.href)&&void 0!==i?i:E.href,a=null!==(r=null==B?void 0:B.target)&&void 0!==r?r:E.target;return!(!B||!c||(window.open(c,a),0))}}})}({type:this.type,whenNotEditable:"whenNotEditable"===this.options.openOnClick})),this.options.linkOnPaste&&e.push(function(e){return new r({key:new o("handlePasteLink"),props:{handlePaste:(t,A,n)=>{const{state:i}=t,{selection:r}=i,{empty:o}=r;if(o)return!1;let s="";n.content.forEach((e=>{s+=e.textContent}));const E=Ia(s).find((e=>e.isLink&&e.value===s));return!(!s||!E||(e.editor.commands.setMark(e.type,{href:E.href}),0))}}})}({editor:this.editor,type:this.type})),e;var t}}),ka=g.create({name:"superscript",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"sup"},{style:"vertical-align",getAttrs:e=>"super"===e&&null}],renderHTML({HTMLAttributes:e}){return["sup",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setSuperscript:()=>({commands:e})=>e.setMark(this.name),toggleSuperscript:()=>({commands:e})=>e.toggleMark(this.name),unsetSuperscript:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-.":()=>this.editor.commands.toggleSuperscript()}}}),Ga=g.create({name:"subscript",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"sub"},{style:"vertical-align",getAttrs:e=>"sub"===e&&null}],renderHTML({HTMLAttributes:e}){return["sub",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setSubscript:()=>({commands:e})=>e.setMark(this.name),toggleSubscript:()=>({commands:e})=>e.toggleMark(this.name),unsetSubscript:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-,":()=>this.editor.commands.toggleSubscript()}}}),Ca=s.create({name:"textAlign",addOptions:()=>({types:[],alignments:["left","center","right","justify"],defaultAlignment:"left"}),addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:e=>e.style.textAlign||this.options.defaultAlignment,renderHTML:e=>e.textAlign===this.options.defaultAlignment?{}:{style:`text-align: ${e.textAlign}`}}}}]},addCommands(){return{setTextAlign:e=>({commands:t})=>!!this.options.alignments.includes(e)&&this.options.types.every((A=>t.updateAttributes(A,{textAlign:e}))),unsetTextAlign:()=>({commands:e})=>this.options.types.every((t=>e.resetAttributes(t,"textAlign")))}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign("left"),"Mod-Shift-e":()=>this.editor.commands.setTextAlign("center"),"Mod-Shift-r":()=>this.editor.commands.setTextAlign("right"),"Mod-Shift-j":()=>this.editor.commands.setTextAlign("justify")}}}),fa=s.create({name:"placeholder",addOptions:()=>({emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",placeholder:"Write something …",showOnlyWhenEditable:!0,considerAnyAsEmpty:!1,showOnlyCurrent:!0,includeChildren:!1}),addProseMirrorPlugins(){return[new r({key:new o("placeholder"),props:{decorations:({doc:e,selection:t})=>{var A;const n=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:i}=t,r=[];if(!n)return null;const{firstChild:o}=e.content,s=!!this.options.considerAnyAsEmpty||o&&o.type.name===(null===(A=e.type.contentMatch.defaultType)||void 0===A?void 0:A.name),E=e.content.childCount<=1&&o&&s&&o.nodeSize<=2&&(!(o&&o.type.isLeaf)||!(o&&o.isAtom));return e.descendants(((e,t)=>{const A=i>=t&&i<=t+e.nodeSize;if((A||!this.options.showOnlyCurrent)&&!e.isLeaf&&!e.childCount){const n=[this.options.emptyNodeClass];E&&n.push(this.options.emptyEditorClass);const i=D.node(t,t+e.nodeSize,{class:n.join(" "),"data-placeholder":"function"==typeof this.options.placeholder?this.options.placeholder({editor:this.editor,node:e,pos:t,hasAnchor:A}):this.options.placeholder});r.push(i)}return this.options.includeChildren})),C.create(e,r)}}})]}}),Da=g.create({name:"underline",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:e=>!!e.includes("underline")&&{}}],renderHTML({HTMLAttributes:e}){return["u",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setUnderline:()=>({commands:e})=>e.setMark(this.name),toggleUnderline:()=>({commands:e})=>e.toggleMark(this.name),unsetUnderline:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),Fa=s.create({name:"color",addOptions:()=>({types:["textStyle"]}),addGlobalAttributes(){return[{types:this.options.types,attributes:{color:{default:null,parseHTML:e=>{var t;return null===(t=e.style.color)||void 0===t?void 0:t.replace(/['"]+/g,"")},renderHTML:e=>e.color?{style:`color: ${e.color}`}:{}}}}]},addCommands:()=>({setColor:e=>({chain:t})=>t().setMark("textStyle",{color:e}).run(),unsetColor:()=>({chain:e})=>e().setMark("textStyle",{color:null}).removeEmptyTextStyle().run()})}),Ya=s.create({name:"fontFamily",addOptions:()=>({types:["textStyle"]}),addGlobalAttributes(){return[{types:this.options.types,attributes:{fontFamily:{default:null,parseHTML:e=>{var t;return null===(t=e.style.fontFamily)||void 0===t?void 0:t.replace(/['"]+/g,"")},renderHTML:e=>e.fontFamily?{style:`font-family: ${e.fontFamily.split(",").map((e=>CSS.escape(e.trim()))).join(", ")}`}:{}}}}]},addCommands:()=>({setFontFamily:e=>({chain:t})=>t().setMark("textStyle",{fontFamily:e}).run(),unsetFontFamily:()=>({chain:e})=>e().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run()})}),ma=/^\s*>\s$/,Ua=R.create({name:"blockquote",addOptions:()=>({HTMLAttributes:{}}),content:"block+",group:"block",defining:!0,parseHTML:()=>[{tag:"blockquote"}],renderHTML({HTMLAttributes:e}){return["blockquote",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setBlockquote:()=>({commands:e})=>e.wrapIn(this.name),toggleBlockquote:()=>({commands:e})=>e.toggleWrap(this.name),unsetBlockquote:()=>({commands:e})=>e.lift(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-b":()=>this.editor.commands.toggleBlockquote()}},addInputRules(){return[I({find:ma,type:this.type})]}}),Sa=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/,Na=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g,ba=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/,ya=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g,pa=g.create({name:"bold",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"strong"},{tag:"b",getAttrs:e=>"normal"!==e.style.fontWeight&&null},{style:"font-weight",getAttrs:e=>/^(bold(er)?|[5-9]\d{2,})$/.test(e)&&null}],renderHTML({HTMLAttributes:e}){return["strong",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setBold:()=>({commands:e})=>e.setMark(this.name),toggleBold:()=>({commands:e})=>e.toggleMark(this.name),unsetBold:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-b":()=>this.editor.commands.toggleBold(),"Mod-B":()=>this.editor.commands.toggleBold()}},addInputRules(){return[u({find:Sa,type:this.type}),u({find:ba,type:this.type})]},addPasteRules(){return[w({find:Na,type:this.type}),w({find:ya,type:this.type})]}}),Ta=R.create({name:"listItem",addOptions:()=>({HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}),content:"paragraph block*",defining:!0,parseHTML:()=>[{tag:"li"}],renderHTML({HTMLAttributes:e}){return["li",l(this.options.HTMLAttributes,e),0]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),Ha=g.create({name:"textStyle",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"span",getAttrs:e=>!!e.hasAttribute("style")&&{}}],renderHTML({HTMLAttributes:e}){return["span",l(this.options.HTMLAttributes,e),0]},addCommands(){return{removeEmptyTextStyle:()=>({state:e,commands:t})=>{const A=Q(e,this.type),n=Object.entries(A).some((([,e])=>!!e));return!!n||t.unsetMark(this.name)}}}}),xa=/^\s*([-+*])\s$/,za=R.create({name:"bulletList",addOptions:()=>({itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}),group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML:()=>[{tag:"ul"}],renderHTML({HTMLAttributes:e}){return["ul",l(this.options.HTMLAttributes,e),0]},addCommands(){return{toggleBulletList:()=>({commands:e,chain:t})=>this.options.keepAttributes?t().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(Ta.name,this.editor.getAttributes(Ha.name)).run():e.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-8":()=>this.editor.commands.toggleBulletList()}},addInputRules(){let e=I({find:xa,type:this.type});return(this.options.keepMarks||this.options.keepAttributes)&&(e=I({find:xa,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:()=>this.editor.getAttributes(Ha.name),editor:this.editor})),[e]}}),Ja=/(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))$/,ja=/(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))/g,Za=g.create({name:"code",addOptions:()=>({HTMLAttributes:{}}),excludes:"_",code:!0,exitable:!0,parseHTML:()=>[{tag:"code"}],renderHTML({HTMLAttributes:e}){return["code",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setCode:()=>({commands:e})=>e.setMark(this.name),toggleCode:()=>({commands:e})=>e.toggleMark(this.name),unsetCode:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-e":()=>this.editor.commands.toggleCode()}},addInputRules(){return[u({find:Ja,type:this.type})]},addPasteRules(){return[w({find:ja,type:this.type})]}}),va=R.create({name:"doc",topNode:!0,content:"block+"});function Pa(e={}){return new r({view:t=>new La(t,e)})}class La{constructor(e,t){var A;this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=null!==(A=t.width)&&void 0!==A?A:1,this.color=!1===t.color?void 0:t.color||"black",this.class=t.class,this.handlers=["dragover","dragend","drop","dragleave"].map((t=>{let A=e=>{this[t](e)};return e.dom.addEventListener(t,A),{name:t,handler:A}}))}destroy(){this.handlers.forEach((({name:e,handler:t})=>this.editorView.dom.removeEventListener(e,t)))}update(e,t){null!=this.cursorPos&&t.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,null==e?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e,t=this.editorView.state.doc.resolve(this.cursorPos),A=!t.parent.inlineContent;if(A){let A=t.nodeBefore,n=t.nodeAfter;if(A||n){let t=this.editorView.nodeDOM(this.cursorPos-(A?A.nodeSize:0));if(t){let i=t.getBoundingClientRect(),r=A?i.bottom:i.top;A&&n&&(r=(r+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2),e={left:i.left,right:i.right,top:r-this.width/2,bottom:r+this.width/2}}}}if(!e){let t=this.editorView.coordsAtPos(this.cursorPos);e={left:t.left-this.width/2,right:t.left+this.width/2,top:t.top,bottom:t.bottom}}let n,i,r=this.editorView.dom.offsetParent;if(this.element||(this.element=r.appendChild(document.createElement("div")),this.class&&(this.element.className=this.class),this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none;",this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle("prosemirror-dropcursor-block",A),this.element.classList.toggle("prosemirror-dropcursor-inline",!A),!r||r==document.body&&"static"==getComputedStyle(r).position)n=-pageXOffset,i=-pageYOffset;else{let e=r.getBoundingClientRect();n=e.left-r.scrollLeft,i=e.top-r.scrollTop}this.element.style.left=e.left-n+"px",this.element.style.top=e.top-i+"px",this.element.style.width=e.right-e.left+"px",this.element.style.height=e.bottom-e.top+"px"}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout((()=>this.setCursor(null)),e)}dragover(e){if(!this.editorView.editable)return;let t=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),A=t&&t.inside>=0&&this.editorView.state.doc.nodeAt(t.inside),n=A&&A.type.spec.disableDropCursor,i="function"==typeof n?n(this.editorView,t,e):n;if(t&&!i){let e=t.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let t=N(this.editorView.state.doc,e,this.editorView.dragging.slice);null!=t&&(e=t)}this.setCursor(e),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){e.target!=this.editorView.dom&&this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}}const Va=s.create({name:"dropCursor",addOptions:()=>({color:"currentColor",width:1,class:void 0}),addProseMirrorPlugins(){return[Pa(this.options)]}});class Oa extends b{constructor(e){super(e,e)}map(e,t){let A=e.resolve(t.map(this.head));return Oa.valid(A)?new Oa(A):b.near(A)}content(){return y.empty}eq(e){return e instanceof Oa&&e.head==this.head}toJSON(){return{type:"gapcursor",pos:this.head}}static fromJSON(e,t){if("number"!=typeof t.pos)throw new RangeError("Invalid input for GapCursor.fromJSON");return new Oa(e.resolve(t.pos))}getBookmark(){return new _a(this.anchor)}static valid(e){let t=e.parent;if(t.isTextblock||!function(e){for(let t=e.depth;t>=0;t--){let A=e.index(t),n=e.node(t);if(0!=A)for(let e=n.child(A-1);;e=e.lastChild){if(0==e.childCount&&!e.inlineContent||e.isAtom||e.type.spec.isolating)return!0;if(e.inlineContent)return!1}else if(n.type.spec.isolating)return!0}return!0}(e)||!function(e){for(let t=e.depth;t>=0;t--){let A=e.indexAfter(t),n=e.node(t);if(A!=n.childCount)for(let e=n.child(A);;e=e.firstChild){if(0==e.childCount&&!e.inlineContent||e.isAtom||e.type.spec.isolating)return!0;if(e.inlineContent)return!1}else if(n.type.spec.isolating)return!0}return!0}(e))return!1;let A=t.type.spec.allowGapCursor;if(null!=A)return A;let n=t.contentMatchAt(e.index()).defaultType;return n&&n.isTextblock}static findGapCursorFrom(e,t,A=!1){e:for(;;){if(!A&&Oa.valid(e))return e;let n=e.pos,i=null;for(let A=e.depth;;A--){let r=e.node(A);if(t>0?e.indexAfter(A)0){i=r.child(t>0?e.indexAfter(A):e.index(A)-1);break}if(0==A)return null;n+=t;let o=e.doc.resolve(n);if(Oa.valid(o))return o}for(;;){let r=t>0?i.firstChild:i.lastChild;if(!r){if(i.isAtom&&!i.isText&&!p.isSelectable(i)){e=e.doc.resolve(n+i.nodeSize*t),A=!1;continue e}break}i=r,n+=t;let o=e.doc.resolve(n);if(Oa.valid(o))return o}return null}}}Oa.prototype.visible=!1,Oa.findFrom=Oa.findGapCursorFrom,b.jsonID("gapcursor",Oa);class _a{constructor(e){this.pos=e}map(e){return new _a(e.map(this.pos))}resolve(e){let t=e.resolve(this.pos);return Oa.valid(t)?new Oa(t):b.near(t)}}const Ka=T({ArrowLeft:Wa("horiz",-1),ArrowRight:Wa("horiz",1),ArrowUp:Wa("vert",-1),ArrowDown:Wa("vert",1)});function Wa(e,t){const A="vert"==e?t>0?"down":"up":t>0?"right":"left";return function(e,n,i){let r=e.selection,o=t>0?r.$to:r.$from,s=r.empty;if(r instanceof G){if(!i.endOfTextblock(A)||0==o.depth)return!1;s=!1,o=e.doc.resolve(t>0?o.after():o.before())}let E=Oa.findGapCursorFrom(o,t,s);return!!E&&(n&&n(e.tr.setSelection(new Oa(E))),!0)}}function Xa(e,t,A){if(!e||!e.editable)return!1;let n=e.state.doc.resolve(t);if(!Oa.valid(n))return!1;let i=e.posAtCoords({left:A.clientX,top:A.clientY});return!(i&&i.inside>-1&&p.isSelectable(e.state.doc.nodeAt(i.inside))||(e.dispatch(e.state.tr.setSelection(new Oa(n))),0))}function qa(e,t){if("insertCompositionText"!=t.inputType||!(e.state.selection instanceof Oa))return!1;let{$from:A}=e.state.selection,n=A.parent.contentMatchAt(A.index()).findWrapping(e.state.schema.nodes.text);if(!n)return!1;let i=H.empty;for(let e=n.length-1;e>=0;e--)i=H.from(n[e].createAndFill(null,i));let r=e.state.tr.replace(A.pos,A.pos,new y(i,0,0));return r.setSelection(G.near(r.doc.resolve(A.pos+1))),e.dispatch(r),!1}function $a(e){if(!(e.selection instanceof Oa))return null;let t=document.createElement("div");return t.className="ProseMirror-gapcursor",C.create(e.doc,[D.widget(e.selection.head,t,{key:"gapcursor"})])}const eg=s.create({name:"gapCursor",addProseMirrorPlugins:()=>[new r({props:{decorations:$a,createSelectionBetween:(e,t,A)=>t.pos==A.pos&&Oa.valid(A)?new Oa(A):null,handleClick:Xa,handleKeyDown:Ka,handleDOMEvents:{beforeinput:qa}}})],extendNodeSchema(e){var t;return{allowGapCursor:null!==(t=x(z(e,"allowGapCursor",{name:e.name,options:e.options,storage:e.storage})))&&void 0!==t?t:null}}}),tg=R.create({name:"hardBreak",addOptions:()=>({keepMarks:!0,HTMLAttributes:{}}),inline:!0,group:"inline",selectable:!1,parseHTML:()=>[{tag:"br"}],renderHTML({HTMLAttributes:e}){return["br",l(this.options.HTMLAttributes,e)]},renderText:()=>"\n",addCommands(){return{setHardBreak:()=>({commands:e,chain:t,state:A,editor:n})=>e.first([()=>e.exitCode(),()=>e.command((()=>{const{selection:e,storedMarks:i}=A;if(e.$from.parent.type.spec.isolating)return!1;const{keepMarks:r}=this.options,{splittableMarks:o}=n.extensionManager,s=i||e.$to.parentOffset&&e.$from.marks();return t().insertContent({type:this.name}).command((({tr:e,dispatch:t})=>{if(t&&s&&r){const t=s.filter((e=>o.includes(e.type.name)));e.ensureMarks(t)}return!0})).run()}))])}},addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak()}}}),Ag=R.create({name:"heading",addOptions:()=>({levels:[1,2,3,4,5,6],HTMLAttributes:{}}),content:"inline*",group:"block",defining:!0,addAttributes:()=>({level:{default:1,rendered:!1}}),parseHTML(){return this.options.levels.map((e=>({tag:`h${e}`,attrs:{level:e}})))},renderHTML({node:e,HTMLAttributes:t}){return[`h${this.options.levels.includes(e.attrs.level)?e.attrs.level:this.options.levels[0]}`,l(this.options.HTMLAttributes,t),0]},addCommands(){return{setHeading:e=>({commands:t})=>!!this.options.levels.includes(e.level)&&t.setNode(this.name,e),toggleHeading:e=>({commands:t})=>!!this.options.levels.includes(e.level)&&t.toggleNode(this.name,"paragraph",e)}},addKeyboardShortcuts(){return this.options.levels.reduce(((e,t)=>({...e,[`Mod-Alt-${t}`]:()=>this.editor.commands.toggleHeading({level:t})})),{})},addInputRules(){return this.options.levels.map((e=>k({find:new RegExp(`^(#{1,${e}})\\s$`),type:this.type,getAttributes:{level:e}})))}});var ng=200,ig=function(){};ig.prototype.append=function(e){return e.length?(e=ig.from(e),!this.length&&e||e.length=t?ig.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))},ig.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)},ig.prototype.forEach=function(e,t,A){void 0===t&&(t=0),void 0===A&&(A=this.length),t<=A?this.forEachInner(e,t,A,0):this.forEachInvertedInner(e,t,A,0)},ig.prototype.map=function(e,t,A){void 0===t&&(t=0),void 0===A&&(A=this.length);var n=[];return this.forEach((function(t,A){return n.push(e(t,A))}),t,A),n},ig.from=function(e){return e instanceof ig?e:e&&e.length?new rg(e):ig.empty};var rg=function(e){function t(t){e.call(this),this.values=t}e&&(t.__proto__=e),(t.prototype=Object.create(e&&e.prototype)).constructor=t;var A={length:{configurable:!0},depth:{configurable:!0}};return t.prototype.flatten=function(){return this.values},t.prototype.sliceInner=function(e,A){return 0==e&&A==this.length?this:new t(this.values.slice(e,A))},t.prototype.getInner=function(e){return this.values[e]},t.prototype.forEachInner=function(e,t,A,n){for(var i=t;i=A;i--)if(!1===e(this.values[i],n+i))return!1},t.prototype.leafAppend=function(e){if(this.length+e.length<=ng)return new t(this.values.concat(e.flatten()))},t.prototype.leafPrepend=function(e){if(this.length+e.length<=ng)return new t(e.flatten().concat(this.values))},A.length.get=function(){return this.values.length},A.depth.get=function(){return 0},Object.defineProperties(t.prototype,A),t}(ig);ig.empty=new rg([]);var og=function(e){function t(t,A){e.call(this),this.left=t,this.right=A,this.length=t.length+A.length,this.depth=Math.max(t.depth,A.depth)+1}return e&&(t.__proto__=e),(t.prototype=Object.create(e&&e.prototype)).constructor=t,t.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},t.prototype.getInner=function(e){return ei&&!1===this.right.forEachInner(e,Math.max(t-i,0),Math.min(this.length,A)-i,n+i))&&void 0},t.prototype.forEachInvertedInner=function(e,t,A,n){var i=this.left.length;return!(t>i&&!1===this.right.forEachInvertedInner(e,t-i,Math.max(A,i)-i,n+i))&&!(A=A?this.right.slice(e-A,t-A):this.left.slice(e,A).append(this.right.slice(0,t-A))},t.prototype.leafAppend=function(e){var A=this.right.leafAppend(e);if(A)return new t(this.left,A)},t.prototype.leafPrepend=function(e){var A=this.left.leafPrepend(e);if(A)return new t(A,this.right)},t.prototype.appendInner=function(e){return this.left.depth>=Math.max(this.right.depth,e.depth)+1?new t(this.left,new t(this.right,e)):new t(this,e)},t}(ig);class sg{constructor(e,t){this.items=e,this.eventCount=t}popEvent(e,t){if(0==this.eventCount)return null;let A,n,i=this.items.length;for(;;i--)if(this.items.get(i-1).selection){--i;break}t&&(A=this.remapping(i,this.items.length),n=A.maps.length);let r,o,s=e.tr,E=[],B=[];return this.items.forEach(((e,t)=>{if(!e.step)return A||(A=this.remapping(i,t+1),n=A.maps.length),n--,void B.push(e);if(A){B.push(new Eg(e.map));let t,i=e.step.map(A.slice(n));i&&s.maybeStep(i).doc&&(t=s.mapping.maps[s.mapping.maps.length-1],E.push(new Eg(t,void 0,void 0,E.length+B.length))),n--,t&&A.appendMap(t,n)}else s.maybeStep(e.step);return e.selection?(r=A?e.selection.map(A.slice(n)):e.selection,o=new sg(this.items.slice(0,i).append(B.reverse().concat(E)),this.eventCount-1),!1):void 0}),this.items.length,0),{remaining:o,transform:s,selection:r}}addTransform(e,t,A,n){let i=[],r=this.eventCount,o=this.items,s=!n&&o.length?o.get(o.length-1):null;for(let A=0;Acg&&(o=function(e,t){let A;return e.forEach(((e,n)=>{if(e.selection&&0==t--)return A=n,!1})),e.slice(A)}(o,E),r-=E),new sg(o.append(i),r)}remapping(e,t){let A=new J;return this.items.forEach(((t,n)=>{A.appendMap(t.map,null!=t.mirrorOffset&&n-t.mirrorOffset>=e?A.maps.length-t.mirrorOffset:void 0)}),e,t),A}addMaps(e){return 0==this.eventCount?this:new sg(this.items.append(e.map((e=>new Eg(e)))),this.eventCount)}rebased(e,t){if(!this.eventCount)return this;let A=[],n=Math.max(0,this.items.length-t),i=e.mapping,r=e.steps.length,o=this.eventCount;this.items.forEach((e=>{e.selection&&o--}),n);let s=t;this.items.forEach((t=>{let n=i.getMirror(--s);if(null==n)return;r=Math.min(r,n);let E=i.maps[n];if(t.step){let r=e.steps[n].invert(e.docs[n]),B=t.selection&&t.selection.map(i.slice(s+1,n));B&&o++,A.push(new Eg(E,r,B))}else A.push(new Eg(E))}),n);let E=[];for(let e=t;e500&&(c=c.compress(this.items.length-A.length)),c}emptyItemCount(){let e=0;return this.items.forEach((t=>{t.step||e++})),e}compress(e=this.items.length){let t=this.remapping(0,e),A=t.maps.length,n=[],i=0;return this.items.forEach(((r,o)=>{if(o>=e)n.push(r),r.selection&&i++;else if(r.step){let e=r.step.map(t.slice(A)),o=e&&e.getMap();if(A--,o&&t.appendMap(o,A),e){let s=r.selection&&r.selection.map(t.slice(A));s&&i++;let E,B=new Eg(o.invert(),e,s),c=n.length-1;(E=n.length&&n[c].merge(B))?n[c]=E:n.push(B)}}else r.map&&A--}),this.items.length,0),new sg(ig.from(n.reverse()),i)}}sg.empty=new sg(ig.empty,0);class Eg{constructor(e,t,A,n){this.map=e,this.step=t,this.selection=A,this.mirrorOffset=n}merge(e){if(this.step&&e.step&&!e.selection){let t=e.step.merge(this.step);if(t)return new Eg(t.getMap().invert(),t,this.selection)}}}class Bg{constructor(e,t,A,n,i){this.done=e,this.undone=t,this.prevRanges=A,this.prevTime=n,this.prevComposition=i}}const cg=20;function ag(e){let t=[];return e.forEach(((e,A,n,i)=>t.push(n,i))),t}function gg(e,t){if(!e)return null;let A=[];for(let n=0;nnew Bg(sg.empty,sg.empty,null,0,-1),apply:(t,A,n)=>function(e,t,A,n){let i,r=A.getMeta(ug);if(r)return r.historyState;A.getMeta(wg)&&(e=new Bg(e.done,e.undone,null,0,-1));let o=A.getMeta("appendedTransaction");if(0==A.steps.length)return e;if(o&&o.getMeta(ug))return o.getMeta(ug).redo?new Bg(e.done.addTransform(A,void 0,n,hg(t)),e.undone,ag(A.mapping.maps[A.steps.length-1]),e.prevTime,e.prevComposition):new Bg(e.done,e.undone.addTransform(A,void 0,n,hg(t)),null,e.prevTime,e.prevComposition);if(!1===A.getMeta("addToHistory")||o&&!1===o.getMeta("addToHistory"))return(i=A.getMeta("rebased"))?new Bg(e.done.rebased(A,i),e.undone.rebased(A,i),gg(e.prevRanges,A.mapping),e.prevTime,e.prevComposition):new Bg(e.done.addMaps(A.mapping.maps),e.undone.addMaps(A.mapping.maps),gg(e.prevRanges,A.mapping),e.prevTime,e.prevComposition);{let i=A.getMeta("composition"),r=0==e.prevTime||!o&&e.prevComposition!=i&&(e.prevTime<(A.time||0)-n.newGroupDelay||!function(e,t){if(!t)return!1;if(!e.docChanged)return!0;let A=!1;return e.mapping.maps[0].forEach(((e,n)=>{for(let i=0;i=t[i]&&(A=!0)})),A}(A,e.prevRanges)),s=o?gg(e.prevRanges,A.mapping):ag(A.mapping.maps[A.steps.length-1]);return new Bg(e.done.addTransform(A,r?t.selection.getBookmark():void 0,n,hg(t)),sg.empty,s,A.time,null==i?e.prevComposition:i)}}(A,n,t,e)},config:e={depth:e.depth||100,newGroupDelay:e.newGroupDelay||500},props:{handleDOMEvents:{beforeinput(e,t){let A=t.inputType,n="historyUndo"==A?Ig:"historyRedo"==A?dg:null;return!!n&&(t.preventDefault(),n(e.state,e.dispatch))}}}})}function Rg(e,t){return(A,n)=>{let i=ug.getState(A);if(!i||0==(e?i.undone:i.done).eventCount)return!1;if(n){let r=function(e,t,A){let n=hg(t),i=ug.get(t).spec.config,r=(A?e.undone:e.done).popEvent(t,n);if(!r)return null;let o=r.selection.resolve(r.transform.doc),s=(A?e.done:e.undone).addTransform(r.transform,t.selection.getBookmark(),i,n),E=new Bg(A?s:r.remaining,A?r.remaining:s,null,0,-1);return r.transform.setSelection(o).setMeta(ug,{redo:A,historyState:E})}(i,A,e);r&&n(t?r.scrollIntoView():r)}return!0}}const Ig=Rg(!1,!0),dg=Rg(!0,!0),kg=s.create({name:"history",addOptions:()=>({depth:100,newGroupDelay:500}),addCommands:()=>({undo:()=>({state:e,dispatch:t})=>Ig(e,t),redo:()=>({state:e,dispatch:t})=>dg(e,t)}),addProseMirrorPlugins(){return[Mg(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),Gg=R.create({name:"horizontalRule",addOptions:()=>({HTMLAttributes:{}}),group:"block",parseHTML:()=>[{tag:"hr"}],renderHTML({HTMLAttributes:e}){return["hr",l(this.options.HTMLAttributes,e)]},addCommands(){return{setHorizontalRule:()=>({chain:e,state:t})=>{const{$to:A}=t.selection,n=e();return 0===A.parentOffset?n.insertContentAt(Math.max(A.pos-2,0),{type:this.name}):n.insertContent({type:this.name}),n.command((({tr:e,dispatch:t})=>{var A;if(t){const{$to:t}=e.selection,n=t.end();if(t.nodeAfter)e.setSelection(t.nodeAfter.isTextblock?G.create(e.doc,t.pos+1):t.nodeAfter.isBlock?p.create(e.doc,t.pos):G.create(e.doc,t.pos));else{const i=null===(A=t.parent.type.contentMatch.defaultType)||void 0===A?void 0:A.create();i&&(e.insert(n,i),e.setSelection(G.create(e.doc,n+1)))}e.scrollIntoView()}return!0})).run()}}},addInputRules(){return[j({find:/^(?:---|—-|___\s|\*\*\*\s)$/,type:this.type})]}}),Cg=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/,fg=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g,Dg=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/,Fg=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g,Yg=g.create({name:"italic",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"em"},{tag:"i",getAttrs:e=>"normal"!==e.style.fontStyle&&null},{style:"font-style=italic"}],renderHTML({HTMLAttributes:e}){return["em",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setItalic:()=>({commands:e})=>e.setMark(this.name),toggleItalic:()=>({commands:e})=>e.toggleMark(this.name),unsetItalic:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-i":()=>this.editor.commands.toggleItalic(),"Mod-I":()=>this.editor.commands.toggleItalic()}},addInputRules(){return[u({find:Cg,type:this.type}),u({find:Dg,type:this.type})]},addPasteRules(){return[w({find:fg,type:this.type}),w({find:Fg,type:this.type})]}}),mg=R.create({name:"listItem",addOptions:()=>({HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}),content:"paragraph block*",defining:!0,parseHTML:()=>[{tag:"li"}],renderHTML({HTMLAttributes:e}){return["li",l(this.options.HTMLAttributes,e),0]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),Ug=R.create({name:"listItem",addOptions:()=>({HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}),content:"paragraph block*",defining:!0,parseHTML:()=>[{tag:"li"}],renderHTML({HTMLAttributes:e}){return["li",l(this.options.HTMLAttributes,e),0]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),Sg=g.create({name:"textStyle",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"span",getAttrs:e=>!!e.hasAttribute("style")&&{}}],renderHTML({HTMLAttributes:e}){return["span",l(this.options.HTMLAttributes,e),0]},addCommands(){return{removeEmptyTextStyle:()=>({state:e,commands:t})=>{const A=Q(e,this.type),n=Object.entries(A).some((([,e])=>!!e));return!!n||t.unsetMark(this.name)}}}}),Ng=/^(\d+)\.\s$/,bg=R.create({name:"orderedList",addOptions:()=>({itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}),group:"block list",content(){return`${this.options.itemTypeName}+`},addAttributes:()=>({start:{default:1,parseHTML:e=>e.hasAttribute("start")?parseInt(e.getAttribute("start")||"",10):1}}),parseHTML:()=>[{tag:"ol"}],renderHTML({HTMLAttributes:e}){const{start:t,...A}=e;return 1===t?["ol",l(this.options.HTMLAttributes,A),0]:["ol",l(this.options.HTMLAttributes,e),0]},addCommands(){return{toggleOrderedList:()=>({commands:e,chain:t})=>this.options.keepAttributes?t().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(Ug.name,this.editor.getAttributes(Sg.name)).run():e.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addInputRules(){let e=I({find:Ng,type:this.type,getAttributes:e=>({start:+e[1]}),joinPredicate:(e,t)=>t.childCount+t.attrs.start===+e[1]});return(this.options.keepMarks||this.options.keepAttributes)&&(e=I({find:Ng,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:e=>({start:+e[1],...this.editor.getAttributes(Sg.name)}),joinPredicate:(e,t)=>t.childCount+t.attrs.start===+e[1],editor:this.editor})),[e]}}),yg=R.create({name:"paragraph",priority:1e3,addOptions:()=>({HTMLAttributes:{}}),group:"block",content:"inline*",parseHTML:()=>[{tag:"p"}],renderHTML({HTMLAttributes:e}){return["p",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setParagraph:()=>({commands:e})=>e.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),pg=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,Tg=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,Hg=g.create({name:"strike",addOptions:()=>({HTMLAttributes:{}}),parseHTML:()=>[{tag:"s"},{tag:"del"},{tag:"strike"},{style:"text-decoration",consuming:!1,getAttrs:e=>!!e.includes("line-through")&&{}}],renderHTML({HTMLAttributes:e}){return["s",l(this.options.HTMLAttributes,e),0]},addCommands(){return{setStrike:()=>({commands:e})=>e.setMark(this.name),toggleStrike:()=>({commands:e})=>e.toggleMark(this.name),unsetStrike:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){const e={};return v()?e["Mod-Shift-s"]=()=>this.editor.commands.toggleStrike():e["Ctrl-Shift-s"]=()=>this.editor.commands.toggleStrike(),e},addInputRules(){return[u({find:pg,type:this.type})]},addPasteRules(){return[w({find:Tg,type:this.type})]}}),xg=R.create({name:"text",group:"inline"}),zg=s.create({name:"starterKit",addExtensions(){var e,t,A,n,i,r,o,s,E,B,c,a,g,l,Q,h,u,w;const M=[];return!1!==this.options.blockquote&&M.push(Ua.configure(null===(e=this.options)||void 0===e?void 0:e.blockquote)),!1!==this.options.bold&&M.push(pa.configure(null===(t=this.options)||void 0===t?void 0:t.bold)),!1!==this.options.bulletList&&M.push(za.configure(null===(A=this.options)||void 0===A?void 0:A.bulletList)),!1!==this.options.code&&M.push(Za.configure(null===(n=this.options)||void 0===n?void 0:n.code)),!1!==this.options.codeBlock&&M.push(fr.configure(null===(i=this.options)||void 0===i?void 0:i.codeBlock)),!1!==this.options.document&&M.push(va.configure(null===(r=this.options)||void 0===r?void 0:r.document)),!1!==this.options.dropcursor&&M.push(Va.configure(null===(o=this.options)||void 0===o?void 0:o.dropcursor)),!1!==this.options.gapcursor&&M.push(eg.configure(null===(s=this.options)||void 0===s?void 0:s.gapcursor)),!1!==this.options.hardBreak&&M.push(tg.configure(null===(E=this.options)||void 0===E?void 0:E.hardBreak)),!1!==this.options.heading&&M.push(Ag.configure(null===(B=this.options)||void 0===B?void 0:B.heading)),!1!==this.options.history&&M.push(kg.configure(null===(c=this.options)||void 0===c?void 0:c.history)),!1!==this.options.horizontalRule&&M.push(Gg.configure(null===(a=this.options)||void 0===a?void 0:a.horizontalRule)),!1!==this.options.italic&&M.push(Yg.configure(null===(g=this.options)||void 0===g?void 0:g.italic)),!1!==this.options.listItem&&M.push(mg.configure(null===(l=this.options)||void 0===l?void 0:l.listItem)),!1!==this.options.orderedList&&M.push(bg.configure(null===(Q=this.options)||void 0===Q?void 0:Q.orderedList)),!1!==this.options.paragraph&&M.push(yg.configure(null===(h=this.options)||void 0===h?void 0:h.paragraph)),!1!==this.options.strike&&M.push(Hg.configure(null===(u=this.options)||void 0===u?void 0:u.strike)),!1!==this.options.text&&M.push(xg.configure(null===(w=this.options)||void 0===w?void 0:w.text)),M}}),Jg=/[\uD800-\uDBFF]/,jg=/[\uDC00-\uDFFF]/,Zg=new o("y-sync"),vg=new o("y-undo"),Pg=new o("yjs-cursor"),Lg=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&t.sv.get(e.id.client)>e.id.clock&&!MA(t.ds,e.id),Vg=[{light:"#ecd44433",dark:"#ecd444"}],Og=(e,t,A)=>{if(!e.has(A)){if(e.sizeA.add(e))),t=t.filter((e=>!A.has(e)))}e.set(A,(n=t)[Ce(Ft()*n.length)])}var n;return e.get(A)},_g=(e,t)=>({anchor:ll(t.selection.anchor,e.type,e.mapping),head:ll(t.selection.head,e.type,e.mapping)});class Kg{constructor(e,t){this.type=e,this.prosemirrorView=t,this.mux=(()=>{let e=!0;return(t,A)=>{if(e){e=!1;try{t()}finally{e=!0}}else void 0!==A&&A()}})(),this.isDestroyed=!1,this.mapping=new Map,this._observeFunction=this._typeChanged.bind(this),this.doc=e.doc,this.beforeTransactionSelection=null,this.beforeAllTransactions=()=>{null===this.beforeTransactionSelection&&(this.beforeTransactionSelection=_g(this,t.state))},this.afterAllTransactions=()=>{this.beforeTransactionSelection=null},this.doc.on("beforeAllTransactions",this.beforeAllTransactions),this.doc.on("afterAllTransactions",this.afterAllTransactions),e.observeDeep(this._observeFunction),this._domSelectionInView=null}get _tr(){return this.prosemirrorView.state.tr.setMeta("addToHistory",!1)}_isLocalCursorInView(){return!!this.prosemirrorView.hasFocus()&&(jt&&null===this._domSelectionInView&&($t(0,(()=>{this._domSelectionInView=null})),this._domSelectionInView=this._isDomSelectionInView()),this._domSelectionInView)}_isDomSelectionInView(){const e=this.prosemirrorView._root.getSelection(),t=this.prosemirrorView._root.createRange();t.setStart(e.anchorNode,e.anchorOffset),t.setEnd(e.focusNode,e.focusOffset),0===t.getClientRects().length&&t.startContainer&&t.collapsed&&t.selectNodeContents(t.startContainer);const A=t.getBoundingClientRect(),n=Wt.documentElement;return A.bottom>=0&&A.right>=0&&A.left<=(window.innerWidth||n.clientWidth||0)&&A.top<=(window.innerHeight||n.clientHeight||0)}renderSnapshot(e,t){t||(t=rn(kA(),new Map)),this.prosemirrorView.dispatch(this._tr.setMeta(Zg,{snapshot:e,prevSnapshot:t}))}unrenderSnapshot(){this.mapping=new Map,this.mux((()=>{const e=this.type.toArray().map((e=>Xg(e,this.prosemirrorView.state.schema,this.mapping))).filter((e=>null!==e)),t=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new y(H.from(e),0,0));t.setMeta(Zg,{snapshot:null,prevSnapshot:null}),this.prosemirrorView.dispatch(t)}))}_forceRerender(){this.mapping=new Map,this.mux((()=>{const e=this.type.toArray().map((e=>Xg(e,this.prosemirrorView.state.schema,this.mapping))).filter((e=>null!==e)),t=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new y(H.from(e),0,0));this.prosemirrorView.dispatch(t.setMeta(Zg,{isChangeOrigin:!0,binding:this}))}))}_renderSnapshot(e,t,A){e||(e=(e=>rn(GA(e.store),Bn(e.store)))(this.doc)),this.mapping=new Map,this.mux((()=>{this.doc.transact((n=>{const i=A.permanentUserData;i&&i.dss.forEach((e=>{wA(n,e,(()=>{}))}));const r=(e,t)=>{const n="added"===e?i.getUserByClientId(t.client):i.getUserByDeletedId(t);return{user:n,type:e,color:Og(A.colorMapping,A.colors,n)}},o=Wn(this.type,new nn(t.ds,e.sv)).map((A=>!A._item.deleted||Lg(A._item,e)||Lg(A._item,t)?Xg(A,this.prosemirrorView.state.schema,new Map,e,t,r):null)).filter((e=>null!==e)),s=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new y(H.from(o),0,0));this.prosemirrorView.dispatch(s.setMeta(Zg,{isChangeOrigin:!0}))}),Zg)}))}_typeChanged(e,t){const A=Zg.getState(this.prosemirrorView.state);0!==e.length&&null==A.snapshot&&null==A.prevSnapshot?this.mux((()=>{const e=(e,t)=>this.mapping.delete(t);wA(t,t.deleteSet,(e=>{if(e.constructor===Er){const t=e.content.type;t&&this.mapping.delete(t)}})),t.changed.forEach(e),t.changedParentTypes.forEach(e);const A=this.type.toArray().map((e=>Wg(e,this.prosemirrorView.state.schema,this.mapping))).filter((e=>null!==e));let n=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new y(H.from(A),0,0));((e,t,A)=>{if(null!==t&&null!==t.anchor&&null!==t.head){const n=hl(A.doc,A.type,t.anchor,A.mapping),i=hl(A.doc,A.type,t.head,A.mapping);null!==n&&null!==i&&(e=e.setSelection(G.create(e.doc,n,i)))}})(n,this.beforeTransactionSelection,this),n=n.setMeta(Zg,{isChangeOrigin:!0,isUndoRedoOperation:t.origin instanceof Fn}),null!==this.beforeTransactionSelection&&this._isLocalCursorInView()&&n.scrollIntoView(),this.prosemirrorView.dispatch(n)})):this.renderSnapshot(A.snapshot,A.prevSnapshot)}_prosemirrorChanged(e){this.doc.transact((()=>{Bl(this.doc,this.type,e,this.mapping),this.beforeTransactionSelection=_g(this,this.prosemirrorView.state)}),Zg)}destroy(){this.isDestroyed=!0,this.type.unobserveDeep(this._observeFunction),this.doc.off("beforeAllTransactions",this.beforeAllTransactions),this.doc.off("afterAllTransactions",this.afterAllTransactions)}}const Wg=(e,t,A,n,i,r)=>{const o=A.get(e);if(void 0===o){if(e instanceof bi)return Xg(e,t,A,n,i,r);throw Et()}return o},Xg=(e,t,A,n,i,r)=>{const o=[],s=e=>{if(e.constructor===bi){const s=Wg(e,t,A,n,i,r);null!==s&&o.push(s)}else{const s=qg(e,t,A,n,i,r);null!==s&&s.forEach((e=>{null!==e&&o.push(e)}))}};void 0===n||void 0===i?e.toArray().forEach(s):Wn(e,new nn(i.ds,n.sv)).forEach(s);try{const s=e.getAttributes(n);void 0!==n&&(Lg(e._item,n)?Lg(e._item,i)||(s.ychange=r?r("added",e._item.id):{type:"added"}):s.ychange=r?r("removed",e._item.id):{type:"removed"});const E=t.node(e.nodeName,s,o);return A.set(e,E),E}catch(t){return e.doc.transact((t=>{e._item.delete(t)}),Zg),A.delete(e),null}},qg=(e,t,A,n,i,r)=>{const o=[],s=e.toDelta(n,i,r);try{for(let e=0;e{e._item.delete(t)}),Zg),null}return o},$g=(e,t)=>e instanceof Array?((e,t)=>{const A=new Ti,n=e.map((e=>({insert:e.text,attributes:El(e.marks)})));return A.applyDelta(n),t.set(A,e),A})(e,t):((e,t)=>{const A=new bi(e.type.name);for(const t in e.attrs){const n=e.attrs[t];null!==n&&"ychange"!==t&&A.setAttribute(t,n)}return A.insert(0,Al(e).map((e=>$g(e,t)))),t.set(A,e),A})(e,t),el=e=>"object"==typeof e&&null!==e,tl=(e,t)=>{const A=Object.keys(e).filter((t=>null!==e[t]));let n=A.length===Object.keys(t).filter((e=>null!==t[e])).length;for(let i=0;i{const t=e.content.content,A=[];for(let e=0;e{const A=e.toDelta();return A.length===t.length&&A.every(((e,A)=>e.insert===t[A].text&&Tt(e.attributes||{}).length===t[A].marks.length&&t[A].marks.every((t=>tl(e.attributes[t.type.name]||{},t.attrs)))))},il=(e,t)=>{if(e instanceof bi&&!(t instanceof Array)&&cl(e,t)){const A=Al(t);return e._length===A.length&&tl(e.getAttributes(),t.attrs)&&e.toArray().every(((e,t)=>il(e,A[t])))}return e instanceof Ti&&t instanceof Array&&nl(e,t)},rl=(e,t)=>e===t||e instanceof Array&&t instanceof Array&&e.length===t.length&&e.every(((e,A)=>t[A]===e)),ol=(e,t,A)=>{const n=e.toArray(),i=Al(t),r=i.length,o=n.length,s=De(o,r);let E=0,B=0,c=!1;for(;E{A.set(e,t);const{nAttrs:n,str:i}=(e=>{let t="",A=e._start;const n={};for(;null!==A;)A.deleted||(A.countable&&A.content instanceof Oi?t+=A.content.str:A.content instanceof Pi&&(n[A.content.key]=null)),A=A.right;return{str:t,nAttrs:n}})(e),r=t.map((e=>({insert:e.text,attributes:Object.assign({},n,El(e.marks))}))),{insert:o,remove:s,index:E}=((e,t)=>{let A=0,n=0;for(;A0&&Jg.test(e[A-1])&&A--;n+A0&&jg.test(e[e.length-n])&&n--,{index:A,remove:e.length-A-n,insert:t.slice(A,t.length-n)}})(i,r.map((e=>e.insert)).join(""));e.delete(E,s),e.insert(E,o),e.applyDelta(r.map((e=>({retain:e.insert.length,attributes:e.attributes}))))},El=e=>{const t={};return e.forEach((e=>{"ychange"!==e.type.name&&(t[e.type.name]=e.attrs)})),t},Bl=(e,t,A,n)=>{if(t instanceof bi&&t.nodeName!==A.type.name)throw new Error("node name mismatch!");if(n.set(t,A),t instanceof bi){const e=t.getAttributes(),n=A.attrs;for(const A in n)null!==n[A]?e[A]!==n[A]&&"ychange"!==A&&t.setAttribute(A,n[A]):t.removeAttribute(A);for(const A in e)void 0===n[A]&&t.removeAttribute(A)}const i=Al(A),r=i.length,o=t.toArray(),s=o.length,E=De(r,s);let B=0,c=0;for(;B{for(;s-B-c>0&&r-B-c>0;){const A=o[B],E=i[B],a=o[s-c-1],g=i[r-c-1];if(A instanceof Ti&&E instanceof Array)nl(A,E)||sl(A,E,n),B+=1;else{let i=A instanceof bi&&cl(A,E),r=a instanceof bi&&cl(a,g);if(i&&r){const e=ol(A,E,n),t=ol(a,g,n);e.foundMappedChild&&!t.foundMappedChild?r=!1:!e.foundMappedChild&&t.foundMappedChild||e.equalityFactor0&&(t.slice(B,B+A).forEach((e=>n.delete(e))),t.delete(B,A)),B+c!(t instanceof Array)&&e.nodeName===t.type.name;let al=null;const gl=()=>{const e=al;al=null,e.forEach(((e,t)=>{const A=t.state.tr,n=Zg.getState(t.state);n&&n.binding&&!n.binding.isDestroyed&&(e.forEach(((e,t)=>{A.setMeta(t,e)})),t.dispatch(A))}))},ll=(e,t,A)=>{if(0===e)return tn(t,0);let n=null===t._first?null:t._first.content.type;for(;null!==n&&t!==n;){if(n instanceof Ti){if(n._length>=e)return tn(n,e);if(e-=n._length,null!==n._item&&null!==n._item.next)n=n._item.next.content.type;else{do{n=null===n._item?null:n._item.parent,e--}while(n!==t&&null!==n&&null!==n._item&&null===n._item.next);null!==n&&n!==t&&(n=null===n._item?null:n._item.next.content.type)}}else{const i=(A.get(n)||{nodeSize:0}).nodeSize;if(null!==n._first&&e1)return new XA(null===n._item?null:n._item.id,null===n._item?KA(n):null,null);if(e-=i,null!==n._item&&null!==n._item.next)n=n._item.next.content.type;else{if(0===e)return n=null===n._item?n:n._item.parent,new XA(null===n._item?null:n._item.id,null===n._item?KA(n):null,null);do{n=n._item.parent,e--}while(n!==t&&null===n._item.next);n!==t&&(n=n._item.next.content.type)}}}if(null===n)throw Bt();if(0===e&&n.constructor!==Ti&&n!==t)return Ql(n._item.parent,n._item)}return tn(t,t._length)},Ql=(e,t)=>{let A=null,n=null;return null===e._item?n=KA(e):A=_A(e._item.id.client,e._item.id.clock),new XA(A,n,t.id)},hl=(e,t,A,n)=>{const i=((e,t,A=!0)=>{const n=t.store,i=e.item,r=e.type,o=e.tname,s=e.assoc;let E=null,B=0;if(null!==i){if(cn(n,i.client)<=i.clock)return null;const e=A?nr(n,i):{item:ln(n,i),diff:0},t=e.item;if(!(t instanceof Er))return null;if(E=t.parent,null===E._item||!E._item.deleted){B=t.deleted||!t.countable?0:e.diff+(s>=0?0:1);let A=t.left;for(;null!==A;)!A.deleted&&A.countable&&(B+=A.length),A=A.left}}else{if(null!==o)E=t.get(o);else{if(null===r)throw Bt();{if(cn(n,r.client)<=r.clock)return null;const{item:e}=A?nr(n,r):{item:ln(n,r)};if(!(e instanceof Er&&e.content instanceof Ar))return null;E=e.content.type}}B=s>=0?E._length:0}return((e,t,A=0)=>new $A(e,t,A))(E,B,e.assoc)})(A,e);if(null===i||i.type!==t&&!WA(t,i.type._item))return null;let r=i.type,o=0;if(r.constructor===Ti)o=i.index;else if(null===r._item||!r._item.deleted){let e=r._first,t=0;for(;te!==t,wl=e=>{const t=document.createElement("span");t.classList.add("ProseMirror-yjs-cursor"),t.setAttribute("style",`border-color: ${e.color}`);const A=document.createElement("div");A.setAttribute("style",`background-color: ${e.color}`),A.insertBefore(document.createTextNode(e.name),null);const n=document.createTextNode("⁠"),i=document.createTextNode("⁠");return t.insertBefore(n,null),t.insertBefore(A,null),t.insertBefore(i,null),t},Ml=e=>({style:`background-color: ${e.color}70`,class:"ProseMirror-yjs-selection"}),Rl=/^#[0-9a-fA-F]{6}$/,Il=(e,t,A,n,i)=>{const r=Zg.getState(e),o=r.doc,s=[];return null!=r.snapshot||null!=r.prevSnapshot||null===r.binding?C.create(e.doc,[]):(t.getStates().forEach(((t,E)=>{if(A(o.clientID,E,t)&&null!=t.cursor){const A=t.user||{};null==A.color?A.color="#ffa500":Rl.test(A.color)||console.warn("A user uses an unsupported color format",A),null==A.name&&(A.name=`User: ${E}`);let B=hl(o,r.type,qA(t.cursor.anchor),r.binding.mapping),c=hl(o,r.type,qA(t.cursor.head),r.binding.mapping);if(null!==B&&null!==c){const t=Fe(e.doc.content.size-1,0);B=De(B,t),c=De(c,t),s.push(D.widget(c,(()=>n(A)),{key:E+"",side:10}));const r=De(B,c),o=Fe(B,c);s.push(D.inline(r,o,i(A),{inclusiveEnd:!0,inclusiveStart:!1}))}}})),C.create(e.doc,s))},dl=(e,{awarenessStateFilter:t=ul,cursorBuilder:A=wl,selectionBuilder:n=Ml,getSelection:i=(e=>e.selection)}={},o="cursor")=>new r({key:Pg,state:{init:(i,r)=>Il(r,e,t,A,n),apply(i,r,o,s){const E=Zg.getState(s),B=i.getMeta(Pg);return E&&E.isChangeOrigin||B&&B.awarenessUpdated?Il(s,e,t,A,n):r.map(i.mapping,i.doc)}},props:{decorations:e=>Pg.getState(e)},view:t=>{const A=()=>{t.docView&&((e,t)=>{al||(al=new Map,$t(0,gl)),we(al,e,he).set(t,{awarenessUpdated:!0})})(t,Pg)},n=()=>{const A=Zg.getState(t.state),n=e.getLocalState()||{};if(null!=A.binding)if(t.hasFocus()){const r=i(t.state),s=ll(r.anchor,A.type,A.binding.mapping),E=ll(r.head,A.type,A.binding.mapping);null!=n.cursor&&An(qA(n.cursor.anchor),s)&&An(qA(n.cursor.head),E)||e.setLocalStateField(o,{anchor:s,head:E})}else null!=n.cursor&&null!==hl(A.doc,A.type,qA(n.cursor.anchor),A.binding.mapping)&&e.setLocalStateField(o,null)};return e.on("change",A),t.dom.addEventListener("focusin",n),t.dom.addEventListener("focusout",n),{update:n,destroy:()=>{t.dom.removeEventListener("focusin",n),t.dom.removeEventListener("focusout",n),e.off("change",A),e.setLocalStateField(o,null)}}}}),kl=new Set(["paragraph"]),Gl=s.create({name:"collaboration",priority:1e3,addOptions:()=>({document:null,field:"default",fragment:null}),onCreate(){this.editor.extensionManager.extensions.find((e=>"history"===e.name))&&console.warn('[tiptap warn]: "@tiptap/extension-collaboration" comes with its own history support and is not compatible with "@tiptap/extension-history".')},addCommands:()=>({undo:()=>({tr:e,state:t,dispatch:A})=>(e.setMeta("preventDispatch",!0),0!==vg.getState(t).undoManager.undoStack.length&&(!A||(e=>{const t=vg.getState(e).undoManager;if(null!=t)return t.undo(),!0})(t))),redo:()=>({tr:e,state:t,dispatch:A})=>(e.setMeta("preventDispatch",!0),0!==vg.getState(t).undoManager.redoStack.length&&(!A||(e=>{const t=vg.getState(e).undoManager;if(null!=t)return t.redo(),!0})(t)))}),addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Mod-y":()=>this.editor.commands.redo(),"Shift-Mod-z":()=>this.editor.commands.redo()}},addProseMirrorPlugins(){const e=this.options.fragment?this.options.fragment:this.options.document.getXmlFragment(this.options.field),t=(({protectedNodes:e=kl,trackedOrigins:t=[],undoManager:A=null}={})=>new r({key:vg,state:{init:(n,i)=>{const r=Zg.getState(i),o=A||new Fn(r.type,{trackedOrigins:new Set([Zg].concat(t)),deleteFilter:t=>((e,t)=>!(e instanceof Er&&e.content instanceof Ar&&(e.content.type instanceof Ui||e.content.type instanceof bi&&t.has(e.content.type.nodeName))&&0!==e.content.type._length))(t,e),captureTransaction:e=>!1!==e.meta.get("addToHistory")});return{undoManager:o,prevSel:null,hasUndoOps:o.undoStack.length>0,hasRedoOps:o.redoStack.length>0}},apply:(e,t,A,n)=>{const i=Zg.getState(n).binding,r=t.undoManager,o=r.undoStack.length>0,s=r.redoStack.length>0;return i?{undoManager:r,prevSel:_g(i,A),hasUndoOps:o,hasRedoOps:s}:o!==t.hasUndoOps||s!==t.hasRedoOps?Object.assign({},t,{hasUndoOps:r.undoStack.length>0,hasRedoOps:r.redoStack.length>0}):t}},view:e=>{const t=Zg.getState(e.state),A=vg.getState(e.state).undoManager;return A.on("stack-item-added",(({stackItem:A})=>{const n=t.binding;n&&A.meta.set(n,vg.getState(e.state).prevSel)})),A.on("stack-item-popped",(({stackItem:e})=>{const A=t.binding;A&&(A.beforeTransactionSelection=e.meta.get(A)||A.beforeTransactionSelection)})),{destroy:()=>{A.destroy()}}}}))(),A=t.spec.view;t.spec.view=e=>{const{undoManager:t}=vg.getState(e.state);t.restore&&(t.restore(),t.restore=()=>{});const n=A?A(e):void 0;return{destroy:()=>{const e=t.trackedOrigins.has(t),A=t._observers;t.restore=()=>{e&&t.trackedOrigins.add(t),t.doc.on("afterTransaction",t.afterTransactionHandler),t._observers=A},(null==n?void 0:n.destroy)&&n.destroy()}}};const n=this.options.ySyncOptions,i=this.options.onFirstRender,o=((e,{colors:t=Vg,colorMapping:A=new Map,permanentUserData:n=null,onFirstRender:i=(()=>{})}={})=>{let o=!1;const s=new r({props:{editable:e=>{const t=Zg.getState(e);return null==t.snapshot&&null==t.prevSnapshot}},key:Zg,state:{init:()=>({type:e,doc:e.doc,binding:null,snapshot:null,prevSnapshot:null,isChangeOrigin:!1,isUndoRedoOperation:!1,addToHistory:!0,colors:t,colorMapping:A,permanentUserData:n}),apply:(e,t)=>{const A=e.getMeta(Zg);if(void 0!==A){t=Object.assign({},t);for(const e in A)t[e]=A[e]}return t.addToHistory=!1!==e.getMeta("addToHistory"),t.isChangeOrigin=void 0!==A&&!!A.isChangeOrigin,t.isUndoRedoOperation=void 0!==A&&!!A.isChangeOrigin&&!!A.isUndoRedoOperation,null!==t.binding&&(void 0===A||null==A.snapshot&&null==A.prevSnapshot||$t(0,(()=>{null==t.binding||t.binding.isDestroyed||(null==A.restore?t.binding._renderSnapshot(A.snapshot,A.prevSnapshot,t):(t.binding._renderSnapshot(A.snapshot,A.snapshot,t),delete t.restore,delete t.snapshot,delete t.prevSnapshot,t.binding.mux((()=>{t.binding._prosemirrorChanged(t.binding.prosemirrorView.state.doc)}))))}))),t}},view:t=>{const A=new Kg(e,t);return A._forceRerender(),i(),{update:()=>{const e=s.getState(t.state);if(null==e.snapshot&&null==e.prevSnapshot&&(o||null!==t.state.doc.content.findDiffStart(t.state.doc.type.createAndFill().content))){if(o=!0,!1===e.addToHistory&&!e.isChangeOrigin){const e=vg.getState(t.state),A=e&&e.undoManager;A&&A.stopCapturing()}A.mux((()=>{e.doc.transact((n=>{n.meta.set("addToHistory",e.addToHistory),A._prosemirrorChanged(t.state.doc)}),Zg)}))}},destroy:()=>{A.destroy()}}}});return s})(e,{...n?{...n}:{},...i?{onFirstRender:i}:{}});return[o,t]}}),Cl=e=>Array.from(e.entries()).map((([e,t])=>({clientId:e,...t.user}))),fl=()=>null,Dl=s.create({name:"collaborationCursor",addOptions:()=>({provider:null,user:{name:null,color:null},render:e=>{const t=document.createElement("span");t.classList.add("collaboration-cursor__caret"),t.setAttribute("style",`border-color: ${e.color}`);const A=document.createElement("div");return A.classList.add("collaboration-cursor__label"),A.setAttribute("style",`background-color: ${e.color}`),A.insertBefore(document.createTextNode(e.name),null),t.insertBefore(A,null),t},selectionRender:Ml,onUpdate:fl}),onCreate(){this.options.onUpdate!==fl&&console.warn('[tiptap warn]: DEPRECATED: The "onUpdate" option is deprecated. Please use `editor.storage.collaborationCursor.users` instead. Read more: https://tiptap.dev/api/extensions/collaboration-cursor')},addStorage:()=>({users:[]}),addCommands(){return{updateUser:e=>()=>(this.options.user=e,this.options.provider.awareness.setLocalStateField("user",this.options.user),!0),user:e=>({editor:t})=>(console.warn('[tiptap warn]: DEPRECATED: The "user" command is deprecated. Please use "updateUser" instead. Read more: https://tiptap.dev/api/extensions/collaboration-cursor'),t.commands.updateUser(e))}},addProseMirrorPlugins(){return[dl((()=>(this.options.provider.awareness.setLocalStateField("user",this.options.user),this.storage.users=Cl(this.options.provider.awareness.states),this.options.provider.awareness.on("update",(()=>{this.storage.users=Cl(this.options.provider.awareness.states)})),this.options.provider.awareness))(),{cursorBuilder:this.options.render,selectionBuilder:this.options.selectionRender})]}}),Fl=Math.floor,Yl=127,ml=Number.MAX_SAFE_INTEGER,Ul="undefined"!=typeof TextEncoder?new TextEncoder:null,Sl=Ul?e=>Ul.encode(e):e=>{const t=unescape(encodeURIComponent(e)),A=t.length,n=new Uint8Array(A);for(let e=0;e{const A=e.cbuf.length;e.cpos===A&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*A),e.cpos=0),e.cbuf[e.cpos++]=t},yl=(e,t)=>{for(;t>Yl;)bl(e,128|Yl&t),t=Fl(t/128);bl(e,Yl&t)},pl=new Uint8Array(3e4),Tl=pl.length/3,Hl=Ul&&Ul.encodeInto?(e,t)=>{if(t.length{const A=unescape(encodeURIComponent(t)),n=A.length;yl(e,n);for(let t=0;t{yl(e,t.byteLength),((e,t)=>{const A=e.cbuf.length,n=e.cpos,i=(r=A-n)<(o=t.length)?r:o;var r,o;const s=t.length-i;e.cbuf.set(t.subarray(0,i),n),e.cpos+=i,s>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(((e,t)=>e>t?e:t)(2*A,s)),e.cbuf.set(t.subarray(i)),e.cpos=s)})(e,t)},zl=e=>new Error(e),Jl=zl("Unexpected end of array"),jl=zl("Integer out of Range"),Zl=e=>e.arr[e.pos++],vl=e=>{let t=0,A=1;const n=e.arr.length;for(;e.posml)throw jl}throw Jl},Pl=Nl?e=>Nl.decode((e=>((e,t)=>{const A=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,A})(e,vl(e)))(e)):e=>{let t=vl(e);if(0===t)return"";{let A=String.fromCodePoint(Zl(e));if(--t<100)for(;t--;)A+=String.fromCodePoint(Zl(e));else for(;t>0;){const n=t<1e4?t:1e4,i=e.arr.subarray(e.pos,e.pos+n);e.pos+=n,A+=String.fromCodePoint.apply(null,i),t-=n}return decodeURIComponent(escape(A))}};var Ll;!function(e){e[e.Token=0]="Token",e[e.PermissionDenied=1]="PermissionDenied",e[e.Authenticated=2]="Authenticated"}(Ll||(Ll={}));const Vl=e=>Array.from(e.entries()).map((([e,t])=>({clientId:e,...t})));var Ol;async function _l(e){return new Promise((t=>{setTimeout(t,e)}))}function Kl(e,t){let A=t.delay;if(0===A)return 0;if(t.factor&&(A*=Math.pow(t.factor,e.attemptNum-1),0!==t.maxDelay&&(A=Math.min(A,t.maxDelay))),t.jitter){const e=Math.ceil(t.minDelay),n=Math.floor(A);A=Math.floor(Math.random()*(n-e+1))+e}return Math.round(A)}!function(e){e[e.Connecting=0]="Connecting",e[e.Open=1]="Open",e[e.Closing=2]="Closing",e[e.Closed=3]="Closed"}(Ol||(Ol={}));const Wl=()=>new Map,Xl=(e,t,A)=>{let n=e.get(t);return void 0===n&&e.set(t,n=A()),n},ql=()=>new Set,$l=Array.from,eQ=String.fromCharCode,tQ=/^\s*/g,AQ=/([A-Z])/g,nQ=(e,t)=>(e=>e.replace(tQ,""))(e.replace(AQ,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),iQ="undefined"!=typeof TextEncoder?new TextEncoder:null,rQ=iQ?e=>iQ.encode(e):e=>{const t=unescape(encodeURIComponent(e)),A=t.length,n=new Uint8Array(A);for(let e=0;ecQ(e).length,gQ=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),lQ=(e,t)=>{if(null==e||null==t)return((e,t)=>e===t)(e,t);if(e.constructor!==t.constructor)return!1;if(e===t)return!0;switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let A=0;A(()=>{if(void 0===uQ)if(QQ){uQ=Wl();const e=process.argv;let t=null;for(let A=0;A{if(0!==e.length){const[t,A]=e.split("=");uQ.set(`--${nQ(t,"-")}`,A),uQ.set(`-${nQ(t,"-")}`,A)}}))):uQ=Wl();return uQ})().has(e),MQ=e=>{return void 0===(t=QQ?process.env[e.toUpperCase()]:BQ.getItem(e))?null:t;var t};(e=>{wQ("--"+e)||MQ(e)})("production");const RQ=QQ&&(e=>["true","1","2"].includes(e))(process.env.FORCE_COLOR);!wQ("no-colors")&&(!QQ||process.stdout.isTTY||RQ)&&(!QQ||wQ("color")||RQ||null!==MQ("COLORTERM")||(MQ("TERM")||"").includes("color"));const IQ=Math.floor,dQ=128,kQ=127,GQ=Number.MAX_SAFE_INTEGER;class CQ{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const fQ=()=>new CQ,DQ=e=>{let t=e.cpos;for(let A=0;A{const t=new Uint8Array(DQ(e));let A=0;for(let n=0;n{const A=e.cbuf.length;e.cpos===A&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*A),e.cpos=0),e.cbuf[e.cpos++]=t},mQ=(e,t)=>{for(;t>kQ;)YQ(e,dQ|kQ&t),t=IQ(t/128);YQ(e,kQ&t)},UQ=new Uint8Array(3e4),SQ=UQ.length/3,NQ=iQ&&iQ.encodeInto?(e,t)=>{if(t.length{const A=unescape(encodeURIComponent(t)),n=A.length;mQ(e,n);for(let t=0;t{mQ(e,t.byteLength),((e,t)=>{const A=e.cbuf.length,n=e.cpos,i=(r=A-n)<(o=t.length)?r:o;var r,o;const s=t.length-i;e.cbuf.set(t.subarray(0,i),n),e.cpos+=i,s>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(((e,t)=>e>t?e:t)(2*A,s)),e.cbuf.set(t.subarray(i)),e.cpos=s)})(e,t)},yQ=e=>new Error(e),pQ=yQ("Unexpected end of array"),TQ=yQ("Integer out of Range");class HQ{constructor(e){this.arr=e,this.pos=0}}const xQ=e=>new HQ(e),zQ=e=>((e,t)=>{const A=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,A})(e,jQ(e)),JQ=e=>e.arr[e.pos++],jQ=e=>{let t=0,A=1;const n=e.arr.length;for(;e.posGQ)throw TQ}throw pQ},ZQ=oQ?e=>oQ.decode(zQ(e)):e=>{let t=jQ(e);if(0===t)return"";{let A=String.fromCodePoint(JQ(e));if(--t<100)for(;t--;)A+=String.fromCodePoint(JQ(e));else for(;t>0;){const n=t<1e4?t:1e4,i=e.arr.subarray(e.pos,e.pos+n);e.pos+=n,A+=String.fromCodePoint.apply(null,i),t-=n}return decodeURIComponent(escape(A))}},vQ=hQ?e=>{let t="";for(let A=0;ABuffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"),PQ=hQ?e=>{const t=atob(e),A=new Uint8Array(t.length);for(let e=0;e{const t=Buffer.from(e,"base64");return((e,t,A)=>new Uint8Array(e,t,A))(t.buffer,t.byteOffset,t.byteLength)},LQ=new Map,VQ="undefined"==typeof BroadcastChannel?class{constructor(e){this.room=e,this.onmessage=null,this._onChange=t=>t.key===e&&null!==this.onmessage&&this.onmessage({data:PQ(t.newValue||"")}),EQ||addEventListener("storage",this._onChange)}postMessage(e){BQ.setItem(this.room,vQ(new Uint8Array(e)))}close(){EQ||removeEventListener("storage",this._onChange)}}:BroadcastChannel,OQ=e=>Xl(LQ,e,(()=>{const t=ql(),A=new VQ(e);return A.onmessage=e=>t.forEach((t=>t(e.data,"broadcastchannel"))),{bc:A,subs:t}})),_Q=Date.now;class KQ{constructor(){this._observers=Wl()}on(e,t){Xl(this._observers,e,ql).add(t)}once(e,t){const A=(...n)=>{this.off(e,A),t(...n)};this.on(e,A)}off(e,t){const A=this._observers.get(e);void 0!==A&&(A.delete(t),0===A.size&&this._observers.delete(e))}emit(e,t){return $l((this._observers.get(e)||Wl()).values()).forEach((e=>e(...t)))}destroy(){this._observers=Wl()}}class WQ extends KQ{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const e=_Q();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const t=[];this.meta.forEach(((A,n)=>{n!==this.clientID&&3e4<=e-A.lastUpdated&&this.states.has(n)&&t.push(n)})),t.length>0&&XQ(this,t,"timeout")}),IQ(3e3)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const t=this.clientID,A=this.meta.get(t),n=void 0===A?0:A.clock+1,i=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:n,lastUpdated:_Q()});const r=[],o=[],s=[],E=[];null===e?E.push(t):null==i?null!=e&&r.push(t):(o.push(t),lQ(i,e)||s.push(t)),(r.length>0||s.length>0||E.length>0)&&this.emit("change",[{added:r,updated:s,removed:E},"local"]),this.emit("update",[{added:r,updated:o,removed:E},"local"])}setLocalStateField(e,t){const A=this.getLocalState();null!==A&&this.setLocalState({...A,[e]:t})}getStates(){return this.states}}const XQ=(e,t,A)=>{const n=[];for(let A=0;A0&&(e.emit("change",[{added:[],updated:[],removed:n},A]),e.emit("update",[{added:[],updated:[],removed:n},A]))},qQ=(e,t,A=e.states)=>{const n=t.length,i=fQ();mQ(i,n);for(let r=0;re.apply(this,t))),this}off(e,t){const A=this.callbacks[e];return A&&(t?this.callbacks[e]=A.filter((e=>e!==t)):delete this.callbacks[e]),this}removeAllListeners(){this.callbacks={}}}var eh,th;!function(e){e[e.Sync=0]="Sync",e[e.Awareness=1]="Awareness",e[e.Auth=2]="Auth",e[e.QueryAwareness=3]="QueryAwareness",e[e.Stateless=5]="Stateless",e[e.CLOSE=7]="CLOSE",e[e.SyncStatus=8]="SyncStatus"}(eh||(eh={})),function(e){e.Connecting="connecting",e.Connected="connected",e.Disconnected="disconnected"}(th||(th={}));class Ah{constructor(e){this.data=e,this.encoder=fQ(),this.decoder=xQ(new Uint8Array(this.data))}peekVarString(){return(e=>{const t=e.pos,A=ZQ(e);return e.pos=t,A})(this.decoder)}readVarUint(){return jQ(this.decoder)}readVarString(){return ZQ(this.decoder)}readVarUint8Array(){return zQ(this.decoder)}writeVarUint(e){return mQ(this.encoder,e)}writeVarString(e){return NQ(this.encoder,e)}writeVarUint8Array(e){return bQ(this.encoder,e)}length(){return DQ(this.encoder)}}class nh extends $Q{constructor(e){super(),this.messageQueue=[],this.configuration={url:"",document:void 0,WebSocketPolyfill:void 0,parameters:{},connect:!0,broadcast:!0,forceSyncInterval:!1,messageReconnectTimeout:3e4,delay:1e3,initialDelay:0,factor:2,maxAttempts:0,minDelay:1e3,maxDelay:3e4,jitter:!0,timeout:0,onOpen:()=>null,onConnect:()=>null,onMessage:()=>null,onOutgoingMessage:()=>null,onStatus:()=>null,onDisconnect:()=>null,onClose:()=>null,onDestroy:()=>null,onAwarenessUpdate:()=>null,onAwarenessChange:()=>null,quiet:!1,providerMap:new Map},this.webSocket=null,this.webSocketHandlers={},this.shouldConnect=!0,this.status=th.Disconnected,this.lastMessageReceived=0,this.identifier=0,this.intervals={forceSync:null,connectionChecker:null},this.connectionAttempt=null,this.receivedOnOpenPayload=void 0,this.receivedOnStatusPayload=void 0,this.closeTries=0,this.setConfiguration(e),this.configuration.WebSocketPolyfill=e.WebSocketPolyfill?e.WebSocketPolyfill:WebSocket,this.on("open",this.configuration.onOpen),this.on("open",this.onOpen.bind(this)),this.on("connect",this.configuration.onConnect),this.on("message",this.configuration.onMessage),this.on("outgoingMessage",this.configuration.onOutgoingMessage),this.on("status",this.configuration.onStatus),this.on("status",this.onStatus.bind(this)),this.on("disconnect",this.configuration.onDisconnect),this.on("close",this.configuration.onClose),this.on("destroy",this.configuration.onDestroy),this.on("awarenessUpdate",this.configuration.onAwarenessUpdate),this.on("awarenessChange",this.configuration.onAwarenessChange),this.on("close",this.onClose.bind(this)),this.on("message",this.onMessage.bind(this)),this.intervals.connectionChecker=setInterval(this.checkConnection.bind(this),this.configuration.messageReconnectTimeout/10),void 0!==e.connect&&(this.shouldConnect=e.connect),this.shouldConnect&&this.connect()}async onOpen(e){this.receivedOnOpenPayload=e}async onStatus(e){this.receivedOnStatusPayload=e}attach(e){let t;return this.configuration.providerMap.set(e.configuration.name,e),this.status===th.Disconnected&&this.shouldConnect&&(t=this.connect()),this.receivedOnOpenPayload&&e.onOpen(this.receivedOnOpenPayload),this.receivedOnStatusPayload&&e.onStatus(this.receivedOnStatusPayload),t}detach(e){this.configuration.providerMap.delete(e.configuration.name)}setConfiguration(e={}){this.configuration={...this.configuration,...e}}async connect(){if(this.status===th.Connected)return;this.cancelWebsocketRetry&&(this.cancelWebsocketRetry(),this.cancelWebsocketRetry=void 0),this.receivedOnOpenPayload=void 0,this.receivedOnStatusPayload=void 0,this.shouldConnect=!0;const{retryPromise:e,cancelFunc:t}=(()=>{let e=!1;const t=async function(e,t){const A=function(e){return e||(e={}),{delay:void 0===e.delay?200:e.delay,initialDelay:void 0===e.initialDelay?0:e.initialDelay,minDelay:void 0===e.minDelay?0:e.minDelay,maxDelay:void 0===e.maxDelay?0:e.maxDelay,factor:void 0===e.factor?0:e.factor,maxAttempts:void 0===e.maxAttempts?3:e.maxAttempts,timeout:void 0===e.timeout?0:e.timeout,jitter:!0===e.jitter,handleError:void 0===e.handleError?null:e.handleError,handleTimeout:void 0===e.handleTimeout?null:e.handleTimeout,beforeAttempt:void 0===e.beforeAttempt?null:e.beforeAttempt,calculateDelay:void 0===e.calculateDelay?null:e.calculateDelay}}(t);for(const e of["delay","initialDelay","minDelay","maxDelay","maxAttempts","timeout"]){const t=A[e];if(!Number.isInteger(t)||t<0)throw new Error(`Value for ${e} must be an integer greater than or equal to 0`)}if(A.factor.constructor!==Number||A.factor<0)throw new Error("Value for factor must be a number greater than or equal to 0");if(A.delay{if(A.handleError&&await A.handleError(e,n,A),n.aborted||0===n.attemptsRemaining)throw e;n.attemptNum++;const r=i(n,A);return r&&await _l(r),t()};return n.attemptsRemaining>0&&n.attemptsRemaining--,A.timeout?new Promise(((t,i)=>{const o=setTimeout((()=>{if(A.handleTimeout)try{t(A.handleTimeout(n,A))}catch(e){i(e)}else{const e=new Error(`Retry timeout (attemptNum: ${n.attemptNum}, timeout: ${A.timeout})`);e.code="ATTEMPT_TIMEOUT",i(e)}}),A.timeout);e(n,A).then((e=>{clearTimeout(o),t(e)})).catch((e=>{clearTimeout(o),r(e).then(t).catch(i)}))})):e(n,A).catch(r)}()}(this.createWebSocketConnection.bind(this),{delay:this.configuration.delay,initialDelay:this.configuration.initialDelay,factor:this.configuration.factor,maxAttempts:this.configuration.maxAttempts,minDelay:this.configuration.minDelay,maxDelay:this.configuration.maxDelay,jitter:this.configuration.jitter,timeout:this.configuration.timeout,beforeAttempt:t=>{this.shouldConnect&&!e||t.abort()}}).catch((e=>{if(e&&"ATTEMPT_ABORTED"!==e.code)throw e}));return{retryPromise:t,cancelFunc:()=>{e=!0}}})();return this.cancelWebsocketRetry=t,e}attachWebSocketListeners(e,t){const{identifier:A}=e;this.webSocketHandlers[A]={message:e=>this.emit("message",e),close:e=>this.emit("close",{event:e}),open:e=>this.emit("open",e),error:e=>{t(e)}};const n=this.webSocketHandlers[e.identifier];Object.keys(n).forEach((t=>{e.addEventListener(t,n[t])}))}cleanupWebSocket(){if(!this.webSocket)return;const{identifier:e}=this.webSocket,t=this.webSocketHandlers[e];Object.keys(t).forEach((A=>{var n;null===(n=this.webSocket)||void 0===n||n.removeEventListener(A,t[A]),delete this.webSocketHandlers[e]})),this.webSocket.close(),this.webSocket=null}createWebSocketConnection(){return new Promise(((e,t)=>{this.webSocket&&(this.messageQueue=[],this.cleanupWebSocket()),this.lastMessageReceived=0,this.identifier+=1;const A=new this.configuration.WebSocketPolyfill(this.url);A.binaryType="arraybuffer",A.identifier=this.identifier,this.attachWebSocketListeners(A,t),this.webSocket=A,this.status=th.Connecting,this.emit("status",{status:th.Connecting}),this.connectionAttempt={resolve:e,reject:t}}))}onMessage(e){var t;this.resolveConnectionAttempt(),this.lastMessageReceived=_Q();const A=new Ah(e.data).peekVarString();null===(t=this.configuration.providerMap.get(A))||void 0===t||t.onMessage(e)}resolveConnectionAttempt(){this.connectionAttempt&&(this.connectionAttempt.resolve(),this.connectionAttempt=null,this.status=th.Connected,this.emit("status",{status:th.Connected}),this.emit("connect"),this.messageQueue.forEach((e=>this.send(e))),this.messageQueue=[])}stopConnectionAttempt(){this.connectionAttempt=null}rejectConnectionAttempt(){var e;null===(e=this.connectionAttempt)||void 0===e||e.reject(),this.connectionAttempt=null}checkConnection(){var e;this.status===th.Connected&&this.lastMessageReceived&&(this.configuration.messageReconnectTimeout>=_Q()-this.lastMessageReceived||(this.closeTries+=1,this.closeTries>2?(this.onClose({event:{code:4408,reason:"forced"}}),this.closeTries=0):(null===(e=this.webSocket)||void 0===e||e.close(),this.messageQueue=[])))}get serverUrl(){for(;"/"===this.configuration.url[this.configuration.url.length-1];)return this.configuration.url.slice(0,this.configuration.url.length-1);return this.configuration.url}get url(){const e=(()=>((e,t)=>{const A=[];for(const n in e)A.push(t(e[n],n));return A})(this.configuration.parameters,((e,t)=>`${encodeURIComponent(t)}=${encodeURIComponent(e)}`)).join("&"))();return`${this.serverUrl}${0===e.length?"":`?${e}`}`}disconnect(){if(this.shouldConnect=!1,null!==this.webSocket)try{this.webSocket.close(),this.messageQueue=[]}catch{}}send(e){var t;(null===(t=this.webSocket)||void 0===t?void 0:t.readyState)===Ol.Open?this.webSocket.send(e):this.messageQueue.push(e)}onClose({event:e}){this.closeTries=0,this.cleanupWebSocket(),this.status===th.Connected&&(this.status=th.Disconnected,this.emit("status",{status:th.Disconnected}),this.emit("disconnect",{event:e})),4401===e.code&&("Unauthorized"===e.reason?console.warn("[HocuspocusProvider] An authentication token is required, but you didn’t send one. Try adding a `token` to your HocuspocusProvider configuration. Won’t try again."):console.warn(`[HocuspocusProvider] Connection closed with status Unauthorized: ${e.reason}`),this.shouldConnect=!1),4403!==e.code||this.configuration.quiet?(1009===e.code&&(console.warn(`[HocuspocusProvider] Connection closed with status MessageTooBig: ${e.reason}`),this.shouldConnect=!1),this.connectionAttempt?this.rejectConnectionAttempt():this.shouldConnect&&this.connect(),this.shouldConnect||this.status!==th.Disconnected&&(this.status=th.Disconnected,this.emit("status",{status:th.Disconnected}),this.emit("disconnect",{event:e}))):console.warn("[HocuspocusProvider] The provided authentication token isn’t allowed to connect to this server. Will try again.")}destroy(){this.emit("destroy"),this.intervals.forceSync&&clearInterval(this.intervals.forceSync),clearInterval(this.intervals.connectionChecker),this.stopConnectionAttempt(),this.disconnect(),this.removeAllListeners(),this.cleanupWebSocket()}}const ih=(e,t)=>{mQ(e,0);const A=(e=>((e,t=new pA)=>(e instanceof Map?JA(t,e):((e,t)=>{JA(e,Bn(t.store))})(t,e),t.toUint8Array()))(e,new bA))(t);bQ(e,A)},rh=(e,t,A)=>{mQ(e,1),bQ(e,((e,t)=>((e,t=new Uint8Array([0]),A=new TA)=>{((e,t,A=new Map)=>{HA(e,t.store,A),CA(e,GA(t.store))})(A,e,zA(t));const n=[A.toUint8Array()];if(e.store.pendingDs&&n.push(e.store.pendingDs),e.store.pendingStructs&&n.push(bn(e.store.pendingStructs.update,t)),n.length>1){if(A.constructor===yA)return Un(n.map(((e,t)=>0===t?e:Hn(e))));if(A.constructor===TA)return Nn(n)}return n[0]})(e,t,new yA))(t,A))},oh=(e,t,A)=>{try{((e,t,A)=>{xA(e,t,A,UA)})(t,zQ(e),A)}catch(e){console.error("Caught error while handling a Yjs update",e)}},sh=oh;class Eh{constructor(){this.encoder=fQ()}get(e){return e.encoder}toUint8Array(){return FQ(this.encoder)}}class Bh{constructor(e){this.broadcasted=!1,this.message=e}setBroadcasted(e){return this.broadcasted=e,this}apply(e,t){const{message:A}=this,n=A.readVarUint(),i=A.length();switch(n){case eh.Sync:this.applySyncMessage(e,t);break;case eh.Awareness:this.applyAwarenessMessage(e);break;case eh.Auth:this.applyAuthMessage(e);break;case eh.QueryAwareness:this.applyQueryAwarenessMessage(e);break;case eh.Stateless:e.receiveStateless(ZQ(A.decoder));break;case eh.SyncStatus:this.applySyncStatusMessage(e,1===(e=>{let t=e.arr[e.pos++],A=63&t,n=64;const i=(64&t)>0?-1:1;if(!(t&dQ))return i*A;const r=e.arr.length;for(;e.posGQ)throw TQ}throw pQ})(A.decoder));break;default:throw new Error(`Can’t apply message of unknown type: ${n}`)}A.length()>i+1&&(this.broadcasted?e.broadcast(Eh,{encoder:A.encoder}):e.send(Eh,{encoder:A.encoder}))}applySyncMessage(e,t){const{message:A}=this;A.writeVarUint(eh.Sync);const n=((e,t,A,n)=>{const i=jQ(e);switch(i){case 0:((e,t,A)=>{rh(t,A,zQ(e))})(e,t,A);break;case 1:oh(e,A,n);break;case 2:sh(e,A,n);break;default:throw new Error("Unknown message type")}return i})(A.decoder,A.encoder,e.document,e);t&&1===n&&(e.synced=!0)}applySyncStatusMessage(e,t){t&&e.decrementUnsyncedChanges()}applyAwarenessMessage(e){if(!e.awareness)return;const{message:t}=this;((e,t,A)=>{const n=xQ(t),i=_Q(),r=[],o=[],s=[],E=[],B=jQ(n);for(let t=0;t0||s.length>0||E.length>0)&&e.emit("change",[{added:r,updated:s,removed:E},A]),(r.length>0||o.length>0||E.length>0)&&e.emit("update",[{added:r,updated:o,removed:E},A])})(e.awareness,t.readVarUint8Array(),e)}applyAuthMessage(e){const{message:t}=this;((e,t,A)=>{switch(vl(e)){case Ll.PermissionDenied:t(Pl(e));break;case Ll.Authenticated:A(Pl(e))}})(t.decoder,e.permissionDeniedHandler.bind(e),e.authenticatedHandler.bind(e))}applyQueryAwarenessMessage(e){if(!e.awareness)return;const{message:t}=this;t.writeVarUint(eh.Awareness),t.writeVarUint8Array(qQ(e.awareness,Array.from(e.awareness.getStates().keys())))}}class ch{constructor(e,t={}){this.message=new e,this.encoder=this.message.get(t)}create(){return FQ(this.encoder)}send(e){null==e||e.send(this.create())}broadcast(e){((e,t,A=null)=>{const n=OQ(e);n.bc.postMessage(t),n.subs.forEach((e=>e(t,A)))})(e,this.create())}}class ah extends Eh{constructor(){super(...arguments),this.type=eh.Auth,this.description="Authentication"}get(e){if(void 0===e.token)throw new Error("The authentication message requires `token` as an argument.");var t,A;return NQ(this.encoder,e.documentName),mQ(this.encoder,this.type),A=e.token,yl(t=this.encoder,Ll.Token),Hl(t,A),this.encoder}}class gh extends Eh{constructor(){super(...arguments),this.type=eh.Awareness,this.description="Awareness states update"}get(e){if(void 0===e.awareness)throw new Error("The awareness message requires awareness as an argument");if(void 0===e.clients)throw new Error("The awareness message requires clients as an argument");let t;return NQ(this.encoder,e.documentName),mQ(this.encoder,this.type),t=void 0===e.states?qQ(e.awareness,e.clients):qQ(e.awareness,e.clients,e.states),bQ(this.encoder,t),this.encoder}}class lh extends Eh{constructor(){super(...arguments),this.type=eh.CLOSE,this.description="Ask the server to close the connection"}get(e){return NQ(this.encoder,e.documentName),mQ(this.encoder,this.type),this.encoder}}class Qh extends Eh{constructor(){super(...arguments),this.type=eh.QueryAwareness,this.description="Queries awareness states"}get(e){return NQ(this.encoder,e.documentName),mQ(this.encoder,this.type),this.encoder}}class hh extends Eh{constructor(){super(...arguments),this.type=eh.Stateless,this.description="A stateless message"}get(e){var t;return NQ(this.encoder,e.documentName),mQ(this.encoder,this.type),NQ(this.encoder,null!==(t=e.payload)&&void 0!==t?t:""),this.encoder}}class uh extends Eh{constructor(){super(...arguments),this.type=eh.Sync,this.description="First sync step"}get(e){if(void 0===e.document)throw new Error("The sync step one message requires document as an argument");return NQ(this.encoder,e.documentName),mQ(this.encoder,this.type),ih(this.encoder,e.document),this.encoder}}class wh extends Eh{constructor(){super(...arguments),this.type=eh.Sync,this.description="Second sync step"}get(e){if(void 0===e.document)throw new Error("The sync step two message requires document as an argument");return NQ(this.encoder,e.documentName),mQ(this.encoder,this.type),rh(this.encoder,e.document),this.encoder}}class Mh extends Eh{constructor(){super(...arguments),this.type=eh.Sync,this.description="A document update"}get(e){var t,A;return NQ(this.encoder,e.documentName),mQ(this.encoder,this.type),A=e.update,mQ(t=this.encoder,2),bQ(t,A),this.encoder}}class Rh extends Error{constructor(){super(...arguments),this.code=1001}}class Ih extends $Q{constructor(e){var t,A,n;super(),this.configuration={name:"",document:void 0,awareness:void 0,token:null,parameters:{},broadcast:!0,forceSyncInterval:!1,onAuthenticated:()=>null,onAuthenticationFailed:()=>null,onOpen:()=>null,onConnect:()=>null,onMessage:()=>null,onOutgoingMessage:()=>null,onStatus:()=>null,onSynced:()=>null,onDisconnect:()=>null,onClose:()=>null,onDestroy:()=>null,onAwarenessUpdate:()=>null,onAwarenessChange:()=>null,onStateless:()=>null,quiet:!1,connect:!0,preserveConnection:!0},this.subscribedToBroadcastChannel=!1,this.isSynced=!1,this.unsyncedChanges=0,this.status=th.Disconnected,this.isAuthenticated=!1,this.authorizedScope=void 0,this.mux=(()=>{let e=!0;return(t,A)=>{if(e){e=!1;try{t()}finally{e=!0}}else void 0!==A&&A()}})(),this.intervals={forceSync:null},this.isConnected=!0,this.boundBroadcastChannelSubscriber=this.broadcastChannelSubscriber.bind(this),this.boundPageUnload=this.pageUnload.bind(this),this.boundOnOpen=this.onOpen.bind(this),this.boundOnClose=this.onClose.bind(this),this.boundOnStatus=this.onStatus.bind(this),this.forwardConnect=e=>this.emit("connect",e),this.forwardOpen=e=>this.emit("open",e),this.forwardClose=e=>this.emit("close",e),this.forwardDisconnect=e=>this.emit("disconnect",e),this.forwardDestroy=e=>this.emit("destroy",e),this.setConfiguration(e),this.configuration.document=e.document?e.document:new YA,this.configuration.awareness=void 0!==e.awareness?e.awareness:new WQ(this.document),this.on("open",this.configuration.onOpen),this.on("message",this.configuration.onMessage),this.on("outgoingMessage",this.configuration.onOutgoingMessage),this.on("synced",this.configuration.onSynced),this.on("destroy",this.configuration.onDestroy),this.on("awarenessUpdate",this.configuration.onAwarenessUpdate),this.on("awarenessChange",this.configuration.onAwarenessChange),this.on("stateless",this.configuration.onStateless),this.on("authenticated",this.configuration.onAuthenticated),this.on("authenticationFailed",this.configuration.onAuthenticationFailed),this.configuration.websocketProvider.on("connect",this.configuration.onConnect),this.configuration.websocketProvider.on("connect",this.forwardConnect),this.configuration.websocketProvider.on("open",this.boundOnOpen),this.configuration.websocketProvider.on("open",this.forwardOpen),this.configuration.websocketProvider.on("close",this.boundOnClose),this.configuration.websocketProvider.on("close",this.configuration.onClose),this.configuration.websocketProvider.on("close",this.forwardClose),this.configuration.websocketProvider.on("status",this.boundOnStatus),this.configuration.websocketProvider.on("disconnect",this.configuration.onDisconnect),this.configuration.websocketProvider.on("disconnect",this.forwardDisconnect),this.configuration.websocketProvider.on("destroy",this.configuration.onDestroy),this.configuration.websocketProvider.on("destroy",this.forwardDestroy),null===(t=this.awareness)||void 0===t||t.on("update",(()=>{this.emit("awarenessUpdate",{states:Vl(this.awareness.getStates())})})),null===(A=this.awareness)||void 0===A||A.on("change",(()=>{this.emit("awarenessChange",{states:Vl(this.awareness.getStates())})})),this.document.on("update",this.documentUpdateHandler.bind(this)),null===(n=this.awareness)||void 0===n||n.on("update",this.awarenessUpdateHandler.bind(this)),this.registerEventListeners(),this.configuration.forceSyncInterval&&(this.intervals.forceSync=setInterval(this.forceSync.bind(this),this.configuration.forceSyncInterval)),this.configuration.websocketProvider.attach(this)}onStatus({status:e}){this.status=e,this.configuration.onStatus({status:e}),this.emit("status",{status:e})}setConfiguration(e={}){!e.websocketProvider&&e.url&&(this.configuration.websocketProvider=new nh({url:e.url,connect:e.connect,parameters:e.parameters})),this.configuration={...this.configuration,...e}}get document(){return this.configuration.document}get awareness(){return this.configuration.awareness}get hasUnsyncedChanges(){return this.unsyncedChanges>0}incrementUnsyncedChanges(){this.unsyncedChanges+=1,this.emit("unsyncedChanges",this.unsyncedChanges)}decrementUnsyncedChanges(){this.unsyncedChanges-=1,0===this.unsyncedChanges&&(this.synced=!0),this.emit("unsyncedChanges",this.unsyncedChanges)}forceSync(){this.send(uh,{document:this.document,documentName:this.configuration.name})}pageUnload(){this.awareness&&XQ(this.awareness,[this.document.clientID],"window unload")}registerEventListeners(){"undefined"!=typeof window&&window.addEventListener("unload",this.boundPageUnload)}sendStateless(e){this.send(hh,{documentName:this.configuration.name,payload:e})}documentUpdateHandler(e,t){t!==this&&(this.incrementUnsyncedChanges(),this.send(Mh,{update:e,documentName:this.configuration.name},!0))}awarenessUpdateHandler({added:e,updated:t,removed:A},n){const i=e.concat(t).concat(A);this.send(gh,{awareness:this.awareness,clients:i,documentName:this.configuration.name},!0)}get synced(){return this.isSynced}set synced(e){this.isSynced!==e&&(this.isSynced=e,this.emit("synced",{state:e}),this.emit("sync",{state:e}))}receiveStateless(e){this.emit("stateless",{payload:e})}get isAuthenticationRequired(){return!!this.configuration.token&&!this.isAuthenticated}async connect(){return this.configuration.broadcast&&this.subscribeToBroadcastChannel(),this.configuration.websocketProvider.shouldConnect=!0,this.configuration.websocketProvider.attach(this)}disconnect(){this.disconnectBroadcastChannel(),this.configuration.websocketProvider.detach(this),this.isConnected=!1,this.configuration.preserveConnection||this.configuration.websocketProvider.disconnect()}async onOpen(e){let t;this.isAuthenticated=!1,this.isConnected=!0,this.emit("open",{event:e});try{t=await this.getToken()}catch(e){return void this.permissionDeniedHandler(`Failed to get token: ${e}`)}this.isAuthenticationRequired&&this.send(ah,{token:t,documentName:this.configuration.name}),this.startSync()}async getToken(){return"function"==typeof this.configuration.token?await this.configuration.token():this.configuration.token}startSync(){this.incrementUnsyncedChanges(),this.send(uh,{document:this.document,documentName:this.configuration.name}),this.awareness&&null!==this.awareness.getLocalState()&&this.send(gh,{awareness:this.awareness,clients:[this.document.clientID],documentName:this.configuration.name})}send(e,t,A=!1){if(!this.isConnected)return;A&&this.mux((()=>{this.broadcast(e,t)}));const n=new ch(e,t);this.emit("outgoingMessage",{message:n.message}),n.send(this.configuration.websocketProvider)}onMessage(e){const t=new Ah(e.data),A=t.readVarString();t.writeVarString(A),this.emit("message",{event:e,message:new Ah(e.data)}),new Bh(t).apply(this,!0)}onClose(e){this.isAuthenticated=!1,this.synced=!1,this.awareness&&XQ(this.awareness,Array.from(this.awareness.getStates().keys()).filter((e=>e!==this.document.clientID)),this)}destroy(){this.emit("destroy"),this.intervals.forceSync&&clearInterval(this.intervals.forceSync),this.awareness&&(XQ(this.awareness,[this.document.clientID],"provider destroy"),this.awareness.off("update",this.awarenessUpdateHandler),this.awareness.destroy()),this.document.off("update",this.documentUpdateHandler),this.removeAllListeners(),this.configuration.websocketProvider.off("connect",this.configuration.onConnect),this.configuration.websocketProvider.off("connect",this.forwardConnect),this.configuration.websocketProvider.off("open",this.boundOnOpen),this.configuration.websocketProvider.off("open",this.forwardOpen),this.configuration.websocketProvider.off("close",this.boundOnClose),this.configuration.websocketProvider.off("close",this.configuration.onClose),this.configuration.websocketProvider.off("close",this.forwardClose),this.configuration.websocketProvider.off("status",this.boundOnStatus),this.configuration.websocketProvider.off("disconnect",this.configuration.onDisconnect),this.configuration.websocketProvider.off("disconnect",this.forwardDisconnect),this.configuration.websocketProvider.off("destroy",this.configuration.onDestroy),this.configuration.websocketProvider.off("destroy",this.forwardDestroy),this.send(lh,{documentName:this.configuration.name}),this.disconnect(),"undefined"!=typeof window&&window.removeEventListener("unload",this.boundPageUnload)}permissionDeniedHandler(e){this.emit("authenticationFailed",{reason:e}),this.isAuthenticated=!1,this.disconnect(),this.status=th.Disconnected}authenticatedHandler(e){this.isAuthenticated=!0,this.authorizedScope=e,this.emit("authenticated")}get broadcastChannel(){return`${this.configuration.name}`}broadcastChannelSubscriber(e){this.mux((()=>{const t=new Ah(e),A=t.readVarString();t.writeVarString(A),new Bh(t).setBroadcasted(!0).apply(this,!1)}))}subscribeToBroadcastChannel(){var e;this.subscribedToBroadcastChannel||(e=this.boundBroadcastChannelSubscriber,OQ(this.broadcastChannel).subs.add(e),this.subscribedToBroadcastChannel=!0),this.mux((()=>{this.broadcast(uh,{document:this.document,documentName:this.configuration.name}),this.broadcast(wh,{document:this.document,documentName:this.configuration.name}),this.broadcast(Qh,{document:this.document,documentName:this.configuration.name}),this.awareness&&this.broadcast(gh,{awareness:this.awareness,clients:[this.document.clientID],document:this.document,documentName:this.configuration.name})}))}disconnectBroadcastChannel(){this.awareness&&this.send(gh,{awareness:this.awareness,clients:[this.document.clientID],states:new Map,documentName:this.configuration.name},!0),this.subscribedToBroadcastChannel&&(((e,t)=>{const A=OQ(e);A.subs.delete(t)&&0===A.subs.size&&(A.bc.close(),LQ.delete(e))})(this.broadcastChannel,this.boundBroadcastChannelSubscriber),this.subscribedToBroadcastChannel=!1)}broadcast(e,t){this.configuration.broadcast&&this.subscribedToBroadcastChannel&&new ch(e,t).broadcast(this.broadcastChannel)}setAwarenessField(e,t){if(!this.awareness)throw new Rh(`Cannot set awareness field "${e}" to ${JSON.stringify(t)}. You have disabled Awareness for this provider by explicitly passing awareness: null in the provider configuration.`);this.awareness.setLocalStateField(e,t)}}crypto.getRandomValues.bind(crypto);const dh={};function kh(e,t){"string"!=typeof t&&(t=kh.defaultChars);const A=function(e){let t=dh[e];if(t)return t;t=dh[e]=[];for(let e=0;e<128;e++){const A=String.fromCharCode(e);t.push(A)}for(let A=0;A=55296&&e<=57343?"���":String.fromCharCode(e),n+=6;continue}}if(240==(248&r)&&n+91114111?t+="����":(e-=65536,t+=String.fromCharCode(55296+(e>>10),56320+(1023&e))),n+=9;continue}}t+="�"}}return t}))}kh.defaultChars=";/?:@&=+$,#",kh.componentChars="";const Gh={};function Ch(e,t,A){"string"!=typeof t&&(A=t,t=Ch.defaultChars),void 0===A&&(A=!0);const n=function(e){let t=Gh[e];if(t)return t;t=Gh[e]=[];for(let e=0;e<128;e++){const A=String.fromCharCode(e);/^[0-9a-z]$/i.test(A)?t.push(A):t.push("%"+("0"+e.toString(16).toUpperCase()).slice(-2))}for(let A=0;A=55296&&o<=57343){if(o>=55296&&o<=56319&&t+1=56320&&A<=57343){i+=encodeURIComponent(e[t]+e[t+1]),t++;continue}}i+="%EF%BF%BD"}else i+=encodeURIComponent(e[t])}return i}function fh(e){let t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||"",t}function Dh(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}Ch.defaultChars=";/?:@&=+$,-_.!~*'()#",Ch.componentChars="-_.!~*'()";const Fh=/^([a-z0-9.+-]+:)/i,Yh=/:[0-9]*$/,mh=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,Uh=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),Sh=["'"].concat(Uh),Nh=["%","/","?",";","#"].concat(Sh),bh=["/","?","#"],yh=/^[+a-z0-9A-Z_-]{0,63}$/,ph=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Th={javascript:!0,"javascript:":!0},Hh={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function xh(e,t){if(e&&e instanceof Dh)return e;const A=new Dh;return A.parse(e,t),A}Dh.prototype.parse=function(e,t){let A,n,i,r=e;if(r=r.trim(),!t&&1===e.split("#").length){const e=mh.exec(r);if(e)return this.pathname=e[1],e[2]&&(this.search=e[2]),this}let o=Fh.exec(r);if(o&&(o=o[0],A=o.toLowerCase(),this.protocol=o,r=r.substr(o.length)),(t||o||r.match(/^\/\/[^@\/]+@[^@\/]+/))&&(i="//"===r.substr(0,2),!i||o&&Th[o]||(r=r.substr(2),this.slashes=!0)),!Th[o]&&(i||o&&!Hh[o])){let e,t,A=-1;for(let e=0;e127?n+="x":n+=A[e];if(!n.match(yh)){const n=e.slice(0,t),i=e.slice(t+1),o=A.match(ph);o&&(n.push(o[1]),i.unshift(o[2])),i.length&&(r=i.join(".")+r),this.hostname=n.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),o&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const s=r.indexOf("#");-1!==s&&(this.hash=r.substr(s),r=r.slice(0,s));const E=r.indexOf("?");return-1!==E&&(this.search=r.substr(E),r=r.slice(0,E)),r&&(this.pathname=r),Hh[A]&&this.hostname&&!this.pathname&&(this.pathname=""),this},Dh.prototype.parseHost=function(e){let t=Yh.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};const zh=Object.freeze({__proto__:null,decode:kh,encode:Ch,format:fh,parse:xh}),Jh=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,jh=/[\0-\x1F\x7F-\x9F]/,Zh=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,vh=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/,Ph=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,Lh=Object.freeze({__proto__:null,Any:Jh,Cc:jh,Cf:/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,P:Zh,S:vh,Z:Ph}),Vh=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map((e=>e.charCodeAt(0)))),Oh=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map((e=>e.charCodeAt(0))));var _h;const Kh=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),Wh=null!==(_h=String.fromCodePoint)&&void 0!==_h?_h:function(e){let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e),t};var Xh,qh,$h,eu;function tu(e){return e>=Xh.ZERO&&e<=Xh.NINE}!function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"}(Xh||(Xh={})),function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"}(qh||(qh={})),function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"}($h||($h={})),function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"}(eu||(eu={}));class Au{constructor(e,t,A){this.decodeTree=e,this.emitCodePoint=t,this.errors=A,this.state=$h.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=eu.Strict}startEntity(e){this.decodeMode=e,this.state=$h.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(e,t){switch(this.state){case $h.EntityStart:return e.charCodeAt(t)===Xh.NUM?(this.state=$h.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=$h.NamedEntity,this.stateNamedEntity(e,t));case $h.NumericStart:return this.stateNumericStart(e,t);case $h.NumericDecimal:return this.stateNumericDecimal(e,t);case $h.NumericHex:return this.stateNumericHex(e,t);case $h.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===Xh.LOWER_X?(this.state=$h.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=$h.NumericDecimal,this.stateNumericDecimal(e,t))}addToNumericResult(e,t,A,n){if(t!==A){const i=A-t;this.result=this.result*Math.pow(n,i)+parseInt(e.substr(t,i),n),this.consumed+=i}}stateNumericHex(e,t){const A=t;for(;t=Xh.UPPER_A&&n<=Xh.UPPER_F||n>=Xh.LOWER_A&&n<=Xh.LOWER_F)))return this.addToNumericResult(e,A,t,16),this.emitNumericEntity(i,3);t+=1}var n;return this.addToNumericResult(e,A,t,16),-1}stateNumericDecimal(e,t){const A=t;for(;t=55296&&e<=57343||e>1114111?65533:null!==(t=Kh.get(e))&&void 0!==t?t:e}(this.result),this.consumed),this.errors&&(e!==Xh.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(e,t){const{decodeTree:A}=this;let n=A[this.treeIndex],i=(n&qh.VALUE_LENGTH)>>14;for(;t=Xh.UPPER_A&&e<=Xh.UPPER_Z||e>=Xh.LOWER_A&&e<=Xh.LOWER_Z||tu(e)}(r)))?0:this.emitNotTerminatedNamedEntity();if(n=A[this.treeIndex],i=(n&qh.VALUE_LENGTH)>>14,0!==i){if(o===Xh.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==eu.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}var r;return-1}emitNotTerminatedNamedEntity(){var e;const{result:t,decodeTree:A}=this;return this.emitNamedEntityData(t,(A[t]&qh.VALUE_LENGTH)>>14,this.consumed),null===(e=this.errors)||void 0===e||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,A){const{decodeTree:n}=this;return this.emitCodePoint(1===t?n[e]&~qh.VALUE_LENGTH:n[e+1],A),3===t&&this.emitCodePoint(n[e+2],A),A}end(){var e;switch(this.state){case $h.NamedEntity:return 0===this.result||this.decodeMode===eu.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case $h.NumericDecimal:return this.emitNumericEntity(0,2);case $h.NumericHex:return this.emitNumericEntity(0,3);case $h.NumericStart:return null===(e=this.errors)||void 0===e||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case $h.EntityStart:return 0}}}function nu(e){let t="";const A=new Au(e,(e=>t+=Wh(e)));return function(e,n){let i=0,r=0;for(;(r=e.indexOf("&",r))>=0;){t+=e.slice(i,r),A.startEntity(n);const o=A.write(e,r+1);if(o<0){i=r+A.end();break}i=r+o,r=0===o?i+1:i}const o=t+e.slice(i);return t="",o}}function iu(e,t,A,n){const i=(t&qh.BRANCH_LENGTH)>>7,r=t&qh.JUMP_TABLE;if(0===i)return 0!==r&&n===r?A:-1;if(r){const t=n-r;return t<0||t>=i?-1:e[A+t]-1}let o=A,s=o+i-1;for(;o<=s;){const t=o+s>>>1,A=e[t];if(An))return e[t+i];s=t-1}}return-1}const ru=nu(Vh);function ou(e,t=eu.Legacy){return ru(e,t)}function su(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)}nu(Oh);const Eu=Object.prototype.hasOwnProperty;function Bu(e){return Array.prototype.slice.call(arguments,1).forEach((function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(A){e[A]=t[A]}))}})),e}function cu(e,t,A){return[].concat(e.slice(0,t),A,e.slice(t+1))}function au(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||!(65535&~e&&65534!=(65535&e))||e>=0&&e<=8||11===e||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function gu(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e))):String.fromCharCode(e)}const lu=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,Qu=new RegExp(lu.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),hu=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function uu(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(Qu,(function(e,t,A){return t||function(e,t){if(35===t.charCodeAt(0)&&hu.test(t)){const A="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return au(A)?gu(A):e}const A=ou(e);return A!==e?A:e}(e,A)}))}const wu=/[&<>"]/,Mu=/[&<>"]/g,Ru={"&":"&","<":"<",">":">",'"':"""};function Iu(e){return Ru[e]}function du(e){return wu.test(e)?e.replace(Mu,Iu):e}const ku=/[.?*+^$[\]\\(){}|-]/g;function Gu(e){switch(e){case 9:case 32:return!0}return!1}function Cu(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function fu(e){return Zh.test(e)||vh.test(e)}function Du(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function Fu(e){return e=e.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}const Yu=Object.freeze({__proto__:null,lib:{mdurl:zh,ucmicro:Lh},assign:Bu,isString:su,has:function(e,t){return Eu.call(e,t)},unescapeMd:function(e){return e.indexOf("\\")<0?e:e.replace(lu,"$1")},unescapeAll:uu,isValidEntityCode:au,fromCodePoint:gu,escapeHtml:du,arrayReplaceAt:cu,isSpace:Gu,isWhiteSpace:Cu,isMdAsciiPunct:Du,isPunctChar:fu,escapeRE:function(e){return e.replace(ku,"\\$&")},normalizeReference:Fu}),mu=Object.freeze({__proto__:null,parseLinkLabel:function(e,t,A){let n,i,r,o;const s=e.posMax,E=e.pos;for(e.pos=t+1,n=1;e.pos32))return r;if(41===n){if(0===o)break;o--}i++}return t===i||0!==o||(r.str=uu(e.slice(t,i)),r.pos=i,r.ok=!0),r},parseLinkTitle:function(e,t,A,n){let i,r=t;const o={ok:!1,can_continue:!1,pos:0,str:"",marker:0};if(n)o.str=n.str,o.marker=n.marker;else{if(r>=A)return o;let n=e.charCodeAt(r);if(34!==n&&39!==n&&40!==n)return o;t++,r++,40===n&&(n=41),o.marker=n}for(;r"+du(r.content)+""},Uu.code_block=function(e,t,A,n,i){return""+du(e[t].content)+"\n"},Uu.fence=function(e,t,A,n,i){const r=e[t],o=r.info?uu(r.info).trim():"";let s,E="",B="";if(o){const e=o.split(/(\s+)/g);E=e[0],B=e.slice(2).join("")}if(s=A.highlight&&A.highlight(r.content,E,B)||du(r.content),0===s.indexOf("${s}\n`}return`
      ${s}
      \n`},Uu.image=function(e,t,A,n,i){const r=e[t];return r.attrs[r.attrIndex("alt")][1]=i.renderInlineAsText(r.children,A,n),i.renderToken(e,t,A)},Uu.hardbreak=function(e,t,A){return A.xhtmlOut?"
      \n":"
      \n"},Uu.softbreak=function(e,t,A){return A.breaks?A.xhtmlOut?"
      \n":"
      \n":"\n"},Uu.text=function(e,t){return du(e[t].content)},Uu.html_block=function(e,t){return e[t].content},Uu.html_inline=function(e,t){return e[t].content},Su.prototype.renderAttrs=function(e){let t,A,n;if(!e.attrs)return"";for(n="",t=0,A=e.attrs.length;t\n":">",i},Su.prototype.renderInline=function(e,t,A){let n="";const i=this.rules;for(let r=0,o=e.length;r=0&&(A=this.attrs[t][1]),A},bu.prototype.attrJoin=function(e,t){const A=this.attrIndex(e);A<0?this.attrPush([e,t]):this.attrs[A][1]=this.attrs[A][1]+" "+t},yu.prototype.Token=bu;const pu=/\r\n?|\n/g,Tu=/\0/g;const Hu=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,xu=/\((c|tm|r)\)/i,zu=/\((c|tm|r)\)/gi,Ju={c:"©",r:"®",tm:"™"};function ju(e,t){return Ju[t.toLowerCase()]}function Zu(e){let t=0;for(let A=e.length-1;A>=0;A--){const n=e[A];"text"!==n.type||t||(n.content=n.content.replace(zu,ju)),"link_open"===n.type&&"auto"===n.info&&t--,"link_close"===n.type&&"auto"===n.info&&t++}}function vu(e){let t=0;for(let A=e.length-1;A>=0;A--){const n=e[A];"text"!==n.type||t||Hu.test(n.content)&&(n.content=n.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1—").replace(/(^|\s)--(?=\s|$)/gm,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1–")),"link_open"===n.type&&"auto"===n.info&&t--,"link_close"===n.type&&"auto"===n.info&&t++}}const Pu=/['"]/,Lu=/['"]/g;function Vu(e,t,A){return e.slice(0,t)+A+e.slice(t+1)}function Ou(e,t){let A;const n=[];for(let i=0;i=0&&!(n[A].level<=o);A--);if(n.length=A+1,"text"!==r.type)continue;let s=r.content,E=0,B=s.length;e:for(;E=0)Q=s.charCodeAt(c.index-1);else for(A=i-1;A>=0&&"softbreak"!==e[A].type&&"hardbreak"!==e[A].type;A--)if(e[A].content){Q=e[A].content.charCodeAt(e[A].content.length-1);break}let h=32;if(E=48&&Q<=57&&(g=a=!1),a&&g&&(a=u,g=w),a||g){if(g)for(A=n.length-1;A>=0;A--){let a=n[A];if(n[A].level=0;r--){const o=n[r];if("link_close"!==o.type){if("html_inline"===o.type&&(/^\s]/i.test(o.content)&&i>0&&i--,/^<\/a\s*>/i.test(o.content)&&i++),!(i>0)&&"text"===o.type&&e.md.linkify.test(o.content)){const i=o.content;let s=e.md.linkify.match(i);const E=[];let B=o.level,c=0;s.length>0&&0===s[0].index&&r>0&&"text_special"===n[r-1].type&&(s=s.slice(1));for(let t=0;tc){const t=new e.Token("text","",0);t.content=i.slice(c,r),t.level=B,E.push(t)}const o=new e.Token("link_open","a",1);o.attrs=[["href",A]],o.level=B++,o.markup="linkify",o.info="auto",E.push(o);const a=new e.Token("text","",0);a.content=n,a.level=B,E.push(a);const g=new e.Token("link_close","a",-1);g.level=--B,g.markup="linkify",g.info="auto",E.push(g),c=s[t].lastIndex}if(c=0;t--)"inline"===e.tokens[t].type&&(xu.test(e.tokens[t].content)&&Zu(e.tokens[t].children),Hu.test(e.tokens[t].content)&&vu(e.tokens[t].children))}],["smartquotes",function(e){if(e.md.options.typographer)for(let t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&Pu.test(e.tokens[t].content)&&Ou(e.tokens[t].children,e)}],["text_join",function(e){let t,A;const n=e.tokens,i=n.length;for(let e=0;e=n)return-1;let r=e.src.charCodeAt(i++);if(r<48||r>57)return-1;for(;;){if(i>=n)return-1;if(r=e.src.charCodeAt(i++),!(r>=48&&r<=57)){if(41===r||46===r)break;return-1}if(i-A>=10)return-1}return i0&&this.level++,this.tokens.push(n),n},Wu.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},Wu.prototype.skipEmptyLines=function(e){for(let t=this.lineMax;et;)if(!Gu(this.src.charCodeAt(--e)))return e+1;return e},Wu.prototype.skipChars=function(e,t){for(let A=this.src.length;eA;)if(t!==this.src.charCodeAt(--e))return e+1;return e},Wu.prototype.getLines=function(e,t,A,n){if(e>=t)return"";const i=new Array(t-e);for(let r=0,o=e;oA?new Array(e-A+1).join(" ")+this.src.slice(B,E):this.src.slice(B,E)}return i.join("")},Wu.prototype.Token=bu;const tw="<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",Aw="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",nw=new RegExp("^(?:"+tw+"|"+Aw+"|\x3c!---?>|\x3c!--(?:[^-]|-[^-]|--[^>])*--\x3e|<[?][\\s\\S]*?[?]>|]*>|)"),iw=new RegExp("^(?:"+tw+"|"+Aw+")"),rw=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(iw.source+"\\s*$"),/^$/,!1]],ow=[["table",function(e,t,A,n){if(t+2>A)return!1;let i=t+1;if(e.sCount[i]=4)return!1;let r=e.bMarks[i]+e.tShift[i];if(r>=e.eMarks[i])return!1;const o=e.src.charCodeAt(r++);if(124!==o&&45!==o&&58!==o)return!1;if(r>=e.eMarks[i])return!1;const s=e.src.charCodeAt(r++);if(124!==s&&45!==s&&58!==s&&!Gu(s))return!1;if(45===o&&Gu(s))return!1;for(;r=4)return!1;B=qu(E),B.length&&""===B[0]&&B.shift(),B.length&&""===B[B.length-1]&&B.pop();const a=B.length;if(0===a||a!==c.length)return!1;if(n)return!0;const g=e.parentType;e.parentType="table";const l=e.md.block.ruler.getRules("blockquote"),Q=[t,0];e.push("table_open","table",1).map=Q,e.push("thead_open","thead",1).map=[t,t+1],e.push("tr_open","tr",1).map=[t,t+1];for(let t=0;t=4)break;if(B=qu(E),B.length&&""===B[0]&&B.shift(),B.length&&""===B[B.length-1]&&B.pop(),u+=a-B.length,u>65536)break;i===t+2&&(e.push("tbody_open","tbody",1).map=h=[t+2,0]),e.push("tr_open","tr",1).map=[i,i+1];for(let t=0;t=4))break;n++,i=n}e.line=i;const r=e.push("code_block","code",0);return r.content=e.getLines(t,i,4+e.blkIndent,!1)+"\n",r.map=[t,e.line],!0}],["fence",function(e,t,A,n){let i=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(i+3>r)return!1;const o=e.src.charCodeAt(i);if(126!==o&&96!==o)return!1;let s=i;i=e.skipChars(i,o);let E=i-s;if(E<3)return!1;const B=e.src.slice(s,i),c=e.src.slice(i,r);if(96===o&&c.indexOf(String.fromCharCode(o))>=0)return!1;if(n)return!0;let a=t,g=!1;for(;!(a++,a>=A||(i=s=e.bMarks[a]+e.tShift[a],r=e.eMarks[a],i=4||(i=e.skipChars(i,o),i-s=4)return!1;if(62!==e.src.charCodeAt(i))return!1;if(n)return!0;const s=[],E=[],B=[],c=[],a=e.md.block.ruler.getRules("blockquote"),g=e.parentType;e.parentType="blockquote";let l,Q=!1;for(l=t;l=r)break;if(62===e.src.charCodeAt(i++)&&!t){let t,A,n=e.sCount[l]+1;32===e.src.charCodeAt(i)?(i++,n++,A=!1,t=!0):9===e.src.charCodeAt(i)?(t=!0,(e.bsCount[l]+n)%4==3?(i++,n++,A=!1):A=!0):t=!1;let o=n;for(s.push(e.bMarks[l]),e.bMarks[l]=i;i=r,E.push(e.bsCount[l]),e.bsCount[l]=e.sCount[l]+1+(t?1:0),B.push(e.sCount[l]),e.sCount[l]=o-n,c.push(e.tShift[l]),e.tShift[l]=i-e.bMarks[l];continue}if(Q)break;let n=!1;for(let t=0,i=a.length;t";const w=[t,0];u.map=w,e.md.block.tokenize(e,t,l),e.push("blockquote_close","blockquote",-1).markup=">",e.lineMax=o,e.parentType=g,w[1]=e.line;for(let A=0;A=4)return!1;let r=e.bMarks[t]+e.tShift[t];const o=e.src.charCodeAt(r++);if(42!==o&&45!==o&&95!==o)return!1;let s=1;for(;r=4)return!1;if(e.listIndent>=0&&e.sCount[E]-e.listIndent>=4&&e.sCount[E]=e.blkIndent&&(l=!0),(g=ew(e,E))>=0){if(c=!0,o=e.bMarks[E]+e.tShift[E],a=Number(e.src.slice(o,g-1)),l&&1!==a)return!1}else{if(!((g=$u(e,E))>=0))return!1;c=!1}if(l&&e.skipSpaces(g)>=e.eMarks[E])return!1;if(n)return!0;const Q=e.src.charCodeAt(g-1),h=e.tokens.length;c?(s=e.push("ordered_list_open","ol",1),1!==a&&(s.attrs=[["start",a]])):s=e.push("bullet_list_open","ul",1);const u=[E,0];s.map=u,s.markup=String.fromCharCode(Q);let w=!1;const M=e.md.block.ruler.getRules("list"),R=e.parentType;for(e.parentType="list";E=i?1:n-t,l>4&&(l=1);const h=t+l;s=e.push("list_item_open","li",1),s.markup=String.fromCharCode(Q);const u=[E,0];s.map=u,c&&(s.info=e.src.slice(o,g-1));const R=e.tight,I=e.tShift[E],d=e.sCount[E],k=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=h,e.tight=!0,e.tShift[E]=a-e.bMarks[E],e.sCount[E]=n,a>=i&&e.isEmpty(E+1)?e.line=Math.min(e.line+2,A):e.md.block.tokenize(e,E,A,!0),e.tight&&!w||(B=!1),w=e.line-E>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=k,e.tShift[E]=I,e.sCount[E]=d,e.tight=R,s=e.push("list_item_close","li",-1),s.markup=String.fromCharCode(Q),E=e.line,u[1]=E,E>=A)break;if(e.sCount[E]=4)break;let G=!1;for(let t=0,n=M.length;t=4)return!1;if(91!==e.src.charCodeAt(i))return!1;function s(t){const A=e.lineMax;if(t>=A||e.isEmpty(t))return null;let n=!1;if(e.sCount[t]-e.blkIndent>3&&(n=!0),e.sCount[t]<0&&(n=!0),!n){const n=e.md.block.ruler.getRules("reference"),i=e.parentType;e.parentType="reference";let r=!1;for(let i=0,o=n.length;i=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(i))return!1;let o=e.src.slice(i,r),s=0;for(;s=4)return!1;let o=e.src.charCodeAt(i);if(35!==o||i>=r)return!1;let s=1;for(o=e.src.charCodeAt(++i);35===o&&i6||ii&&Gu(e.src.charCodeAt(E-1))&&(r=E),e.line=t+1;const B=e.push("heading_open","h"+String(s),1);B.markup="########".slice(0,s),B.map=[t,e.line];const c=e.push("inline","",0);return c.content=e.src.slice(i,r).trim(),c.map=[t,e.line],c.children=[],e.push("heading_close","h"+String(s),-1).markup="########".slice(0,s),!0},["paragraph","reference","blockquote"]],["lheading",function(e,t,A){const n=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;const i=e.parentType;e.parentType="paragraph";let r,o=0,s=t+1;for(;s3)continue;if(e.sCount[s]>=e.blkIndent){let t=e.bMarks[s]+e.tShift[s];const A=e.eMarks[s];if(t=A))){o=61===r?1:2;break}}if(e.sCount[s]<0)continue;let t=!1;for(let i=0,r=n.length;i3)continue;if(e.sCount[r]<0)continue;let t=!1;for(let i=0,o=n.length;i=A))&&!(e.sCount[o]=r){e.line=A;break}const t=e.line;let E=!1;for(let r=0;r=e.line)throw new Error("block rule didn't increment state.line");break}if(!E)throw new Error("none of the block rules matched");e.tight=!s,e.isEmpty(e.line-1)&&(s=!0),o=e.line,o0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],i={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(n),this.tokens_meta.push(i),n},Ew.prototype.scanDelims=function(e,t){const A=this.posMax,n=this.src.charCodeAt(e),i=e>0?this.src.charCodeAt(e-1):32;let r=e;for(;r?@[]^_`{|}~-".split("").forEach((function(e){aw[e.charCodeAt(0)]=1}));const lw={tokenize:function(e,t){const A=e.src.charCodeAt(e.pos);if(t)return!1;if(126!==A)return!1;const n=e.scanDelims(e.pos,!0);let i=n.length;const r=String.fromCharCode(A);if(i<2)return!1;let o;i%2&&(o=e.push("text","",0),o.content=r,i--);for(let t=0;t=0;A--){const n=t[A];if(95!==n.marker&&42!==n.marker)continue;if(-1===n.end)continue;const i=t[n.end],r=A>0&&t[A-1].end===n.end+1&&t[A-1].marker===n.marker&&t[A-1].token===n.token-1&&t[n.end+1].token===i.token+1,o=String.fromCharCode(n.marker),s=e.tokens[n.token];s.type=r?"strong_open":"em_open",s.tag=r?"strong":"em",s.nesting=1,s.markup=r?o+o:o,s.content="";const E=e.tokens[i.token];E.type=r?"strong_close":"em_close",E.tag=r?"strong":"em",E.nesting=-1,E.markup=r?o+o:o,E.content="",r&&(e.tokens[t[A-1].token].content="",e.tokens[t[n.end+1].token].content="",A--)}}const hw={tokenize:function(e,t){const A=e.src.charCodeAt(e.pos);if(t)return!1;if(95!==A&&42!==A)return!1;const n=e.scanDelims(e.pos,42===A);for(let t=0;t\x00-\x20]*)$/,Mw=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,Rw=/^&([a-z][a-z0-9]{1,31});/i;function Iw(e){const t={},A=e.length;if(!A)return;let n=0,i=-2;const r=[];for(let o=0;os;E-=r[E]+1){const t=e[E];if(t.marker===A.marker&&t.open&&t.end<0){let n=!1;if((t.close||A.open)&&(t.length+A.length)%3==0&&(t.length%3==0&&A.length%3==0||(n=!0)),!n){const n=E>0&&!e[E-1].open?r[E-1]+1:0;r[o]=o-E+n,r[E]=n,A.open=!1,t.end=o,t.close=!1,B=-1,i=-2;break}}}-1!==B&&(t[A.marker][(A.open?3:0)+(A.length||0)%3]=B)}}const dw=[["text",function(e,t){let A=e.pos;for(;A0)return!1;const A=e.pos;if(A+3>e.posMax)return!1;if(58!==e.src.charCodeAt(A))return!1;if(47!==e.src.charCodeAt(A+1))return!1;if(47!==e.src.charCodeAt(A+2))return!1;const n=e.pending.match(cw);if(!n)return!1;const i=n[1],r=e.md.linkify.matchAtStart(e.src.slice(A-i.length));if(!r)return!1;let o=r.url;if(o.length<=i.length)return!1;o=o.replace(/\*+$/,"");const s=e.md.normalizeLink(o);if(!e.md.validateLink(s))return!1;if(!t){e.pending=e.pending.slice(0,-i.length);const t=e.push("link_open","a",1);t.attrs=[["href",s]],t.markup="linkify",t.info="auto",e.push("text","",0).content=e.md.normalizeLinkText(o);const A=e.push("link_close","a",-1);A.markup="linkify",A.info="auto"}return e.pos+=o.length-i.length,!0}],["newline",function(e,t){let A=e.pos;if(10!==e.src.charCodeAt(A))return!1;const n=e.pending.length-1,i=e.posMax;if(!t)if(n>=0&&32===e.pending.charCodeAt(n))if(n>=1&&32===e.pending.charCodeAt(n-1)){let t=n-1;for(;t>=1&&32===e.pending.charCodeAt(t-1);)t--;e.pending=e.pending.slice(0,t),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(A++;A=n)return!1;let i=e.src.charCodeAt(A);if(10===i){for(t||e.push("hardbreak","br",0),A++;A=55296&&i<=56319&&A+1=56320&&t<=57343&&(r+=e.src[A+1],A++)}const o="\\"+r;if(!t){const t=e.push("text_special","",0);t.content=i<256&&0!==aw[i]?r:o,t.markup=o,t.info="escape"}return e.pos=A+1,!0}],["backticks",function(e,t){let A=e.pos;if(96!==e.src.charCodeAt(A))return!1;const n=A;A++;const i=e.posMax;for(;A=a)return!1;if(E=Q,i=e.md.helpers.parseLinkDestination(e.src,Q,e.posMax),i.ok){for(o=e.md.normalizeLink(i.str),e.md.validateLink(o)?Q=i.pos:o="",E=Q;Q=a||41!==e.src.charCodeAt(Q))&&(B=!0),Q++}if(B){if(void 0===e.env.references)return!1;if(Q=0?n=e.src.slice(E,Q++):Q=l+1):Q=l+1,n||(n=e.src.slice(g,l)),r=e.env.references[Fu(n)],!r)return e.pos=c,!1;o=r.href,s=r.title}if(!t){e.pos=g,e.posMax=l;const t=[["href",o]];e.push("link_open","a",1).attrs=t,s&&t.push(["title",s]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)}return e.pos=Q,e.posMax=a,!0}],["image",function(e,t){let A,n,i,r,o,s,E,B,c="";const a=e.pos,g=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;const l=e.pos+2,Q=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(Q<0)return!1;if(r=Q+1,r=g)return!1;for(B=r,s=e.md.helpers.parseLinkDestination(e.src,r,e.posMax),s.ok&&(c=e.md.normalizeLink(s.str),e.md.validateLink(c)?r=s.pos:c=""),B=r;r=g||41!==e.src.charCodeAt(r))return e.pos=a,!1;r++}else{if(void 0===e.env.references)return!1;if(r=0?i=e.src.slice(B,r++):r=Q+1):r=Q+1,i||(i=e.src.slice(l,Q)),o=e.env.references[Fu(i)],!o)return e.pos=a,!1;c=o.href,E=o.title}if(!t){n=e.src.slice(l,Q);const t=[];e.md.inline.parse(n,e.md,e.env,t);const A=e.push("image","img",0),i=[["src",c],["alt",""]];A.attrs=i,A.children=t,A.content=n,E&&i.push(["title",E])}return e.pos=r,e.posMax=g,!0}],["autolink",function(e,t){let A=e.pos;if(60!==e.src.charCodeAt(A))return!1;const n=e.pos,i=e.posMax;for(;;){if(++A>=i)return!1;const t=e.src.charCodeAt(A);if(60===t)return!1;if(62===t)break}const r=e.src.slice(n+1,A);if(ww.test(r)){const A=e.md.normalizeLink(r);if(!e.md.validateLink(A))return!1;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",A]],t.markup="autolink",t.info="auto",e.push("text","",0).content=e.md.normalizeLinkText(r);const n=e.push("link_close","a",-1);n.markup="autolink",n.info="auto"}return e.pos+=r.length+2,!0}if(uw.test(r)){const A=e.md.normalizeLink("mailto:"+r);if(!e.md.validateLink(A))return!1;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",A]],t.markup="autolink",t.info="auto",e.push("text","",0).content=e.md.normalizeLinkText(r);const n=e.push("link_close","a",-1);n.markup="autolink",n.info="auto"}return e.pos+=r.length+2,!0}return!1}],["html_inline",function(e,t){if(!e.md.options.html)return!1;const A=e.posMax,n=e.pos;if(60!==e.src.charCodeAt(n)||n+2>=A)return!1;const i=e.src.charCodeAt(n+1);if(33!==i&&63!==i&&47!==i&&!function(e){const t=32|e;return t>=97&&t<=122}(i))return!1;const r=e.src.slice(n).match(nw);if(!r)return!1;if(!t){const t=e.push("html_inline","",0);t.content=r[0],/^\s]/i.test(t.content)&&e.linkLevel++,/^<\/a\s*>/i.test(t.content)&&e.linkLevel--}return e.pos+=r[0].length,!0}],["entity",function(e,t){const A=e.pos,n=e.posMax;if(38!==e.src.charCodeAt(A))return!1;if(A+1>=n)return!1;if(35===e.src.charCodeAt(A+1)){const n=e.src.slice(A).match(Mw);if(n){if(!t){const t="x"===n[1][0].toLowerCase()?parseInt(n[1].slice(1),16):parseInt(n[1],10),A=e.push("text_special","",0);A.content=au(t)?gu(t):gu(65533),A.markup=n[0],A.info="entity"}return e.pos+=n[0].length,!0}}else{const n=e.src.slice(A).match(Rw);if(n){const A=ou(n[0]);if(A!==n[0]){if(!t){const t=e.push("text_special","",0);t.content=A,t.markup=n[0],t.info="entity"}return e.pos+=n[0].length,!0}}}return!1}]],kw=[["balance_pairs",function(e){const t=e.tokens_meta,A=e.tokens_meta.length;Iw(e.delimiters);for(let e=0;e0&&n++,"text"===i[t].type&&t+1=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;o||e.pos++,r[t]=e.pos},Gw.prototype.tokenize=function(e){const t=this.ruler.getRules(""),A=t.length,n=e.posMax,i=e.md.options.maxNesting;for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}if(o){if(e.pos>=n)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},Gw.prototype.parse=function(e,t,A,n){const i=new this.State(e,t,A,n);this.tokenize(i);const r=this.ruler2.getRules(""),o=r.length;for(let e=0;e=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:n.match(A.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,A){const n=e.slice(t);return A.re.mailto||(A.re.mailto=new RegExp("^"+A.re.src_email_name+"@"+A.re.src_host_strict,"i")),A.re.mailto.test(n)?n.match(A.re.mailto)[0].length:0}}},Uw="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",Sw="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function Nw(e){const t=e.re=function(e){const t={};e=e||{},t.src_Any=Jh.source,t.src_Cc=jh.source,t.src_Z=Ph.source,t.src_P=Zh.source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!"+(e["---"]?"-(?!--)|":"-|")+"_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|[><|]|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]|$)|"+(e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+"|$)|;(?!"+t.src_ZCc+"|$)|\\!+(?!"+t.src_ZCc+"|[!]|$)|\\?(?!"+t.src_ZCc+"|[?]|$))+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}(e.__opts__),A=e.__tlds__.slice();function n(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||A.push(Uw),A.push(t.src_xn),t.src_tlds=A.join("|"),t.email_fuzzy=RegExp(n(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(n(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(n(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(n(t.tpl_host_fuzzy_test),"i");const i=[];function r(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){const A=e.__schemas__[t];if(null===A)return;const n={validate:null,link:null};if(e.__compiled__[t]=n,"[object Object]"===fw(A))return"[object RegExp]"!==fw(A.validate)?Dw(A.validate)?n.validate=A.validate:r(t,A):n.validate=function(e){return function(t,A){const n=t.slice(A);return e.test(n)?n.match(e)[0].length:0}}(A.validate),void(Dw(A.normalize)?n.normalize=A.normalize:A.normalize?r(t,A):n.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===fw(e)}(A)?r(t,A):i.push(t)})),i.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};const o=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(Fw).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+o+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+o+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function bw(e,t){const A=e.__index__,n=e.__last_index__,i=e.__text_cache__.slice(A,n);this.schema=e.__schema__.toLowerCase(),this.index=A+t,this.lastIndex=n+t,this.raw=i,this.text=i,this.url=i}function yw(e,t){const A=new bw(e,t);return e.__compiled__[A.schema].normalize(A,e),A}function pw(e,t){if(!(this instanceof pw))return new pw(e,t);t||Object.keys(e||{}).reduce((function(e,t){return e||Yw.hasOwnProperty(t)}),!1)&&(t=e,e={}),this.__opts__=Cw({},Yw,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=Cw({},mw,e),this.__compiled__={},this.__tlds__=Sw,this.__tlds_replaced__=!1,this.re={},Nw(this)}pw.prototype.add=function(e,t){return this.__schemas__[e]=t,Nw(this),this},pw.prototype.set=function(e){return this.__opts__=Cw(this.__opts__,e),this},pw.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;let t,A,n,i,r,o,s,E,B;if(this.re.schema_test.test(e))for(s=this.re.schema_search,s.lastIndex=0;null!==(t=s.exec(e));)if(i=this.testSchemaAt(e,t[2],s.lastIndex),i){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+i;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(E=e.search(this.re.host_fuzzy_test),E>=0&&(this.__index__<0||E=0&&null!==(n=e.match(this.re.email_fuzzy))&&(r=n.index+n[1].length,o=n.index+n[0].length,(this.__index__<0||rthis.__last_index__)&&(this.__schema__="mailto:",this.__index__=r,this.__last_index__=o))),this.__index__>=0},pw.prototype.pretest=function(e){return this.re.pretest.test(e)},pw.prototype.testSchemaAt=function(e,t,A){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,A,this):0},pw.prototype.match=function(e){const t=[];let A=0;this.__index__>=0&&this.__text_cache__===e&&(t.push(yw(this,A)),A=this.__last_index__);let n=A?e.slice(A):e;for(;this.test(n);)t.push(yw(this,A)),n=n.slice(this.__last_index__),A+=this.__last_index__;return t.length?t:null},pw.prototype.matchAtStart=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return null;const t=this.re.schema_at_start.exec(e);if(!t)return null;const A=this.testSchemaAt(e,t[2],t[0].length);return A?(this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+A,yw(this,0)):null},pw.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,A){return e!==A[t-1]})).reverse(),Nw(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,Nw(this),this)},pw.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},pw.prototype.onCompile=function(){};const Tw=2147483647,Hw=36,xw=/^xn--/,zw=/[^\0-\x7F]/,Jw=/[\x2E\u3002\uFF0E\uFF61]/g,jw={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Zw=Math.floor,vw=String.fromCharCode;function Pw(e){throw new RangeError(jw[e])}function Lw(e,t){const A=e.split("@");let n="";A.length>1&&(n=A[0]+"@",e=A[1]);const i=function(e,t){const A=[];let n=e.length;for(;n--;)A[n]=t(e[n]);return A}((e=e.replace(Jw,".")).split("."),t).join(".");return n+i}function Vw(e){const t=[];let A=0;const n=e.length;for(;A=55296&&i<=56319&&A>1,e+=Zw(e/t);e>455;n+=Hw)e=Zw(e/35);return Zw(n+36*e/(e+38))},Kw=function(e){const t=[],A=e.length;let n=0,i=128,r=72,o=e.lastIndexOf("-");o<0&&(o=0);for(let A=0;A=128&&Pw("not-basic"),t.push(e.charCodeAt(A));for(let E=o>0?o+1:0;E=A&&Pw("invalid-input");const o=(s=e.charCodeAt(E++))>=48&&s<58?s-48+26:s>=65&&s<91?s-65:s>=97&&s<123?s-97:Hw;o>=Hw&&Pw("invalid-input"),o>Zw((Tw-n)/t)&&Pw("overflow"),n+=o*t;const B=i<=r?1:i>=r+26?26:i-r;if(oZw(Tw/c)&&Pw("overflow"),t*=c}const B=t.length+1;r=_w(n-o,B,0==o),Zw(n/B)>Tw-i&&Pw("overflow"),i+=Zw(n/B),n%=B,t.splice(n++,0,i)}var s;return String.fromCodePoint(...t)},Ww=function(e){const t=[],A=(e=Vw(e)).length;let n=128,i=0,r=72;for(const A of e)A<128&&t.push(vw(A));const o=t.length;let s=o;for(o&&t.push("-");s=n&&tZw((Tw-i)/E)&&Pw("overflow"),i+=(A-n)*E,n=A;for(const A of e)if(ATw&&Pw("overflow"),A===n){let e=i;for(let A=Hw;;A+=Hw){const n=A<=r?1:A>=r+26?26:A-r;if(eString.fromCodePoint(...e)},decode:Kw,encode:Ww,toASCII:function(e){return Lw(e,(function(e){return zw.test(e)?"xn--"+Ww(e):e}))},toUnicode:function(e){return Lw(e,(function(e){return xw.test(e)?Kw(e.slice(4).toLowerCase()):e}))}},qw={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},zero:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","fragments_join"]}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","fragments_join"]}}}},$w=/^(vbscript|javascript|file|data):/,eM=/^data:image\/(gif|png|jpeg|webp);/;function tM(e){const t=e.trim().toLowerCase();return!$w.test(t)||eM.test(t)}const AM=["http:","https:","mailto:"];function nM(e){const t=xh(e,!0);if(t.hostname&&(!t.protocol||AM.indexOf(t.protocol)>=0))try{t.hostname=Xw.toASCII(t.hostname)}catch(e){}return Ch(fh(t))}function iM(e){const t=xh(e,!0);if(t.hostname&&(!t.protocol||AM.indexOf(t.protocol)>=0))try{t.hostname=Xw.toUnicode(t.hostname)}catch(e){}return kh(fh(t),kh.defaultChars+"%")}function rM(e,t){if(!(this instanceof rM))return new rM(e,t);t||su(e)||(t=e||{},e="default"),this.inline=new Gw,this.block=new sw,this.core=new Ku,this.renderer=new Su,this.linkify=new pw,this.validateLink=tM,this.normalizeLink=nM,this.normalizeLinkText=iM,this.utils=Yu,this.helpers=Bu({},mu),this.options={},this.configure(e),t&&this.set(t)}rM.prototype.set=function(e){return Bu(this.options,e),this},rM.prototype.configure=function(e){const t=this;if(su(e)){const t=e;if(!(e=qw[t]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name')}if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach((function(A){e.components[A].rules&&t[A].ruler.enableOnly(e.components[A].rules),e.components[A].rules2&&t[A].ruler2.enableOnly(e.components[A].rules2)})),this},rM.prototype.enable=function(e,t){let A=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){A=A.concat(this[t].ruler.enable(e,!0))}),this),A=A.concat(this.inline.ruler2.enable(e,!0));const n=e.filter((function(e){return A.indexOf(e)<0}));if(n.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+n);return this},rM.prototype.disable=function(e,t){let A=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){A=A.concat(this[t].ruler.disable(e,!0))}),this),A=A.concat(this.inline.ruler2.disable(e,!0));const n=e.filter((function(e){return A.indexOf(e)<0}));if(n.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+n);return this},rM.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},rM.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");const A=new this.core.State(e,this,t);return this.core.process(A),A.tokens},rM.prototype.render=function(e,t){return this.renderer.render(this.parse(e,t=t||{}),this.options,t)},rM.prototype.parseInline=function(e,t){const A=new this.core.State(e,this,t);return A.inlineMode=!0,this.core.process(A),A.tokens},rM.prototype.renderInline=function(e,t){return this.renderer.render(this.parseInline(e,t=t||{}),this.options,t)};const oM=new P({nodes:{doc:{content:"block+"},paragraph:{content:"inline*",group:"block",parseDOM:[{tag:"p"}],toDOM:()=>["p",0]},blockquote:{content:"block+",group:"block",parseDOM:[{tag:"blockquote"}],toDOM:()=>["blockquote",0]},horizontal_rule:{group:"block",parseDOM:[{tag:"hr"}],toDOM:()=>["div",["hr"]]},heading:{attrs:{level:{default:1}},content:"(text | image)*",group:"block",defining:!0,parseDOM:[{tag:"h1",attrs:{level:1}},{tag:"h2",attrs:{level:2}},{tag:"h3",attrs:{level:3}},{tag:"h4",attrs:{level:4}},{tag:"h5",attrs:{level:5}},{tag:"h6",attrs:{level:6}}],toDOM:e=>["h"+e.attrs.level,0]},code_block:{content:"text*",group:"block",code:!0,defining:!0,marks:"",attrs:{params:{default:""}},parseDOM:[{tag:"pre",preserveWhitespace:"full",getAttrs:e=>({params:e.getAttribute("data-params")||""})}],toDOM:e=>["pre",e.attrs.params?{"data-params":e.attrs.params}:{},["code",0]]},ordered_list:{content:"list_item+",group:"block",attrs:{order:{default:1},tight:{default:!1}},parseDOM:[{tag:"ol",getAttrs:e=>({order:e.hasAttribute("start")?+e.getAttribute("start"):1,tight:e.hasAttribute("data-tight")})}],toDOM:e=>["ol",{start:1==e.attrs.order?null:e.attrs.order,"data-tight":e.attrs.tight?"true":null},0]},bullet_list:{content:"list_item+",group:"block",attrs:{tight:{default:!1}},parseDOM:[{tag:"ul",getAttrs:e=>({tight:e.hasAttribute("data-tight")})}],toDOM:e=>["ul",{"data-tight":e.attrs.tight?"true":null},0]},list_item:{content:"block+",defining:!0,parseDOM:[{tag:"li"}],toDOM:()=>["li",0]},text:{group:"inline"},image:{inline:!0,attrs:{src:{},alt:{default:null},title:{default:null}},group:"inline",draggable:!0,parseDOM:[{tag:"img[src]",getAttrs:e=>({src:e.getAttribute("src"),title:e.getAttribute("title"),alt:e.getAttribute("alt")})}],toDOM:e=>["img",e.attrs]},hard_break:{inline:!0,group:"inline",selectable:!1,parseDOM:[{tag:"br"}],toDOM:()=>["br"]}},marks:{em:{parseDOM:[{tag:"i"},{tag:"em"},{style:"font-style=italic"},{style:"font-style=normal",clearMark:e=>"em"==e.type.name}],toDOM:()=>["em"]},strong:{parseDOM:[{tag:"strong"},{tag:"b",getAttrs:e=>"normal"!=e.style.fontWeight&&null},{style:"font-weight=400",clearMark:e=>"strong"==e.type.name},{style:"font-weight",getAttrs:e=>/^(bold(er)?|[5-9]\d{2,})$/.test(e)&&null}],toDOM:()=>["strong"]},link:{attrs:{href:{},title:{default:null}},inclusive:!1,parseDOM:[{tag:"a[href]",getAttrs:e=>({href:e.getAttribute("href"),title:e.getAttribute("title")})}],toDOM:e=>["a",e.attrs]},code:{parseDOM:[{tag:"code"}],toDOM:()=>["code"]}}});class sM{constructor(e,t){this.schema=e,this.tokenHandlers=t,this.stack=[{type:e.topNodeType,attrs:null,content:[],marks:L.none}]}top(){return this.stack[this.stack.length-1]}push(e){this.stack.length&&this.top().content.push(e)}addText(e){if(!e)return;let t,A=this.top(),n=A.content,i=n[n.length-1],r=this.schema.text(e,A.marks);i&&(t=function(e,t){if(e.isText&&t.isText&&L.sameSet(e.marks,t.marks))return e.withText(e.text+t.text)}(i,r))?n[n.length-1]=t:n.push(r)}openMark(e){let t=this.top();t.marks=e.addToSet(t.marks)}closeMark(e){let t=this.top();t.marks=e.removeFromSet(t.marks)}parseTokens(e){for(let t=0;t{e.openNode(t,EM(i,A,n,r)),e.addText(cM(A.content)),e.closeNode()}:(A[n+"_open"]=(e,A,n,r)=>e.openNode(t,EM(i,A,n,r)),A[n+"_close"]=e=>e.closeNode())}else if(i.node){let t=e.nodeType(i.node);A[n]=(e,A,n,r)=>e.addNode(t,EM(i,A,n,r))}else if(i.mark){let t=e.marks[i.mark];BM(i,n)?A[n]=(e,A,n,r)=>{e.openMark(t.create(EM(i,A,n,r))),e.addText(cM(A.content)),e.closeMark(t)}:(A[n+"_open"]=(e,A,n,r)=>e.openMark(t.create(EM(i,A,n,r))),A[n+"_close"]=e=>e.closeMark(t))}else{if(!i.ignore)throw new RangeError("Unrecognized parsing spec "+JSON.stringify(i));BM(i,n)?A[n]=aM:(A[n+"_open"]=aM,A[n+"_close"]=aM)}}return A.text=(e,t)=>e.addText(t.content),A.inline=(e,t)=>e.parseTokens(t.children),A.softbreak=A.softbreak||(e=>e.addText(" ")),A}(e,A)}parse(e,t={}){let A,n=new sM(this.schema,this.tokenHandlers);n.parseTokens(this.tokenizer.parse(e,t));do{A=n.closeNode()}while(n.stack.length);return A||this.schema.topNodeType.createAndFill()}}(oM,rM("commonmark",{html:!1}),{blockquote:{block:"blockquote"},paragraph:{block:"paragraph"},list_item:{block:"list_item"},bullet_list:{block:"bullet_list",getAttrs:(e,t,A)=>({tight:gM(t,A)})},ordered_list:{block:"ordered_list",getAttrs:(e,t,A)=>({order:+e.attrGet("start")||1,tight:gM(t,A)})},heading:{block:"heading",getAttrs:e=>({level:+e.tag.slice(1)})},code_block:{block:"code_block",noCloseToken:!0},fence:{block:"code_block",getAttrs:e=>({params:e.info||""}),noCloseToken:!0},hr:{node:"horizontal_rule"},image:{node:"image",getAttrs:e=>({src:e.attrGet("src"),title:e.attrGet("title")||null,alt:e.children[0]&&e.children[0].content||null})},hardbreak:{node:"hard_break"},em:{mark:"em"},strong:{mark:"strong"},link:{mark:"link",getAttrs:e=>({href:e.attrGet("href"),title:e.attrGet("title")||null})},code_inline:{mark:"code",noCloseToken:!0}});const lM=new class{constructor(e,t,A={}){this.nodes=e,this.marks=t,this.options=A}serialize(e,t={}){t=Object.assign({},this.options,t);let A=new hM(this.nodes,this.marks,t);return A.renderContent(e),A.out}}({blockquote(e,t){e.wrapBlock("> ",null,t,(()=>e.renderContent(t)))},code_block(e,t){const A=t.textContent.match(/`{3,}/gm),n=A?A.sort().slice(-1)[0]+"`":"```";e.write(n+(t.attrs.params||"")+"\n"),e.text(t.textContent,!1),e.write("\n"),e.write(n),e.closeBlock(t)},heading(e,t){e.write(e.repeat("#",t.attrs.level)+" "),e.renderInline(t,!1),e.closeBlock(t)},horizontal_rule(e,t){e.write(t.attrs.markup||"---"),e.closeBlock(t)},bullet_list(e,t){e.renderList(t," ",(()=>(t.attrs.bullet||"*")+" "))},ordered_list(e,t){let A=t.attrs.order||1,n=String(A+t.childCount-1).length,i=e.repeat(" ",n+2);e.renderList(t,i,(t=>{let i=String(A+t);return e.repeat(" ",n-i.length)+i+". "}))},list_item(e,t){e.renderContent(t)},paragraph(e,t){e.renderInline(t),e.closeBlock(t)},image(e,t){e.write("!["+e.esc(t.attrs.alt||"")+"]("+t.attrs.src.replace(/[\(\)]/g,"\\$&")+(t.attrs.title?' "'+t.attrs.title.replace(/"/g,'\\"')+'"':"")+")")},hard_break(e,t,A,n){for(let i=n+1;i(e.inAutolink=function(e,t,A){if(e.attrs.title||!/^\w+:/.test(e.attrs.href))return!1;let n=t.child(A);return!(!n.isText||n.text!=e.attrs.href||n.marks[n.marks.length-1]!=e||A!=t.childCount-1&&e.isInSet(t.child(A+1).marks))}(t,A,n),e.inAutolink?"<":"["),close(e,t,A,n){let{inAutolink:i}=e;return e.inAutolink=void 0,i?">":"]("+t.attrs.href.replace(/[\(\)"]/g,"\\$&")+(t.attrs.title?` "${t.attrs.title.replace(/"/g,'\\"')}"`:"")+")"},mixable:!0},code:{open:(e,t,A,n)=>QM(A.child(n),-1),close:(e,t,A,n)=>QM(A.child(n-1),1),escape:!1}});function QM(e,t){let A,n=/`+/g,i=0;if(e.isText)for(;A=n.exec(e.text);)i=Math.max(i,A[0].length);let r=i>0&&t>0?" `":"`";for(let e=0;e0&&t<0&&(r+=" "),r}class hM{constructor(e,t,A){this.nodes=e,this.marks=t,this.options=A,this.delim="",this.out="",this.closed=null,this.inAutolink=void 0,this.atBlockStart=!1,this.inTightList=!1,void 0===this.options.tightLists&&(this.options.tightLists=!1),void 0===this.options.hardBreakNodeName&&(this.options.hardBreakNodeName="hard_break")}flushClose(e=2){if(this.closed){if(this.atBlank()||(this.out+="\n"),e>1){let t=this.delim,A=/\s+$/.exec(t);A&&(t=t.slice(0,t.length-A[0].length));for(let A=1;Athis.render(t,e,n)))}renderInline(e,t=!0){this.atBlockStart=t;let A=[],n="",i=(t,i,r)=>{let o=t?t.marks:[];t&&t.type.name===this.options.hardBreakNodeName&&(o=o.filter((t=>{if(r+1==e.childCount)return!1;let A=e.child(r+1);return t.isInSet(A.marks)&&(!A.isText||/\S/.test(A.text))})));let s=n;if(n="",t&&t.isText&&o.some((e=>{let t=this.marks[e.type.name];return t&&t.expelEnclosingWhitespace&&!e.isInSet(A)}))){let[e,n,i]=/^(\s*)(.*)$/m.exec(t.text);n&&(s+=n,(t=i?t.withText(i):null)||(o=A))}if(t&&t.isText&&o.some((t=>{let A=this.marks[t.type.name];return A&&A.expelEnclosingWhitespace&&(r==e.childCount-1||!t.isInSet(e.child(r+1).marks))}))){let[e,i,r]=/^(.*?)(\s*)$/m.exec(t.text);r&&(n=r,(t=i?t.withText(i):null)||(o=A))}let E=o.length?o[o.length-1]:null,B=E&&!1===this.marks[E.type.name].escape,c=o.length-(B?1:0);e:for(let e=0;en?o=o.slice(0,n).concat(t).concat(o.slice(n,e)).concat(o.slice(e+1,c)):n>e&&(o=o.slice(0,e).concat(o.slice(e+1,n)).concat(t).concat(o.slice(n,c)));continue e}}}let a=0;for(;a0&&(this.atBlockStart=!1)};e.forEach(i),i(null,0,e.childCount),this.atBlockStart=!1}renderList(e,t,A){this.closed&&this.closed.type==e.type?this.flushClose(3):this.inTightList&&this.flushClose(1);let n=void 0!==e.attrs.tight?e.attrs.tight:this.options.tightLists,i=this.inTightList;this.inTightList=n,e.forEach(((i,r,o)=>{o&&n&&this.flushClose(1),this.wrapBlock(t,A(o),e,(()=>this.render(i,e,o)))})),this.inTightList=i}esc(e,t=!1){return e=e.replace(/[`*\\~\[\]_]/g,((t,A)=>"_"==t&&A>0&&A+1])/,"\\$&").replace(/^(\s*)(#{1,6})(\s|$)/,"$1\\$2$3").replace(/^(\s*\d+)\.\s/,"$1\\. ")),this.options.escapeExtraCharacters&&(e=e.replace(this.options.escapeExtraCharacters,"\\$&")),e}quote(e){let t=-1==e.indexOf('"')?'""':-1==e.indexOf("'")?"''":"()";return t[0]+e+t[1]}repeat(e,t){let A="";for(let n=0;n=0;n--)if(e[n].level===A)return n;return-1}function kM(e,t){return"inline"===e[t].type&&"paragraph_open"===e[t-1].type&&function(e){return"list_item_open"===e.type}(e[t-2])&&function(e){return 0===e.content.indexOf("[ ] ")||0===e.content.indexOf("[x] ")||0===e.content.indexOf("[X] ")}(e[t])}function GM(e,t){if(e.children.unshift(function(e,t){var A=new t("html_inline","",0),n=uM?' disabled="" ':"";return 0===e.content.indexOf("[ ] ")?A.content='':0!==e.content.indexOf("[x] ")&&0!==e.content.indexOf("[X] ")||(A.content=''),A}(e,t)),e.children[1].content=e.children[1].content.slice(3),e.content=e.content.slice(3),wM)if(MM){e.children.pop();var A="task-item-"+Math.ceil(1e7*Math.random()-1e3);e.children[0].content=e.children[0].content.slice(0,-1)+' id="'+A+'">',e.children.push(function(e,t,A){var n=new A("html_inline","",0);return n.content='",n.attrs=[{for:t}],n}(e.content,A,t))}else e.children.unshift(function(e){var t=new e("html_inline","",0);return t.content="",t}(t))}var CM=Object.defineProperty,fM=(e,t,A)=>(((e,t,A)=>{t in e?CM(e,t,{enumerable:!0,configurable:!0,writable:!0,value:A}):e[t]=A})(e,"symbol"!=typeof t?t+"":t,A),A);const DM=s.create({name:"markdownTightLists",addOptions:()=>({tight:!0,tightClass:"tight",listTypes:["bulletList","orderedList"]}),addGlobalAttributes(){return[{types:this.options.listTypes,attributes:{tight:{default:this.options.tight,parseHTML:e=>"true"===e.getAttribute("data-tight")||!e.querySelector("p"),renderHTML:e=>({class:e.tight?this.options.tightClass:null,"data-tight":e.tight?"true":null})}}}]},addCommands(){var e=this;return{toggleTight:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return A=>{let{editor:n,commands:i}=A;return e.options.listTypes.some((e=>function(e){if(!n.isActive(e))return!1;const A=n.getAttributes(e);return i.updateAttributes(e,{tight:null!=t?t:!(null!=A&&A.tight)})}(e)))}}}}}),FM=rM();function YM(e,t){return FM.inline.State.prototype.scanDelims.call({src:e,posMax:e.length}),new FM.inline.State(e,null,null,[]).scanDelims(t,!0)}function mM(e,t,A,n){let i=e.substring(0,A)+e.substring(A+t.length);return i=i.substring(0,A+n)+t+i.substring(A+n),i}class UM extends hM{constructor(e,t,A){super(e,t,null!=A?A:{}),fM(this,"inTable",!1),this.inlines=[]}render(e,t,A){super.render(e,t,A);const n=this.inlines[this.inlines.length-1];if(null!=n&&n.start&&null!=n&&n.end){const{delimiter:e,start:t,end:A}=this.normalizeInline(n);this.out=function(e,t,A,n){let i={text:e,from:A,to:n};return i=function(e,t,A,n){let i=A,r=e;for(;iA&&!YM(r,i).can_close;)r=mM(r,t,i,-1),i--;return{text:r,from:A,to:i}}(i.text,t,i.from,i.to),i.to-i.from({markdown:{serialize:{open(e,t){var A,n;return this.editor.storage.markdown.options.html?null!==(A=null===(n=NM(t))||void 0===n?void 0:n[0])&&void 0!==A?A:"":(console.warn(`Tiptap Markdown: "${t.type.name}" mark is only available in html mode`),"")},close(e,t){var A,n;return this.editor.storage.markdown.options.html&&null!==(A=null===(n=NM(t))||void 0===n?void 0:n[1])&&void 0!==A?A:""}},parse:{}}})});function NM(e){const t=e.type.schema,A=t.text(" ",[e]),n=V(H.from(A),t).match(/^(<.*?>) (<\/.*?>)$/);return n?[n[1],n[2]]:null}function bM(e){const t=`${e}`;return(new window.DOMParser).parseFromString(t,"text/html").body}const yM=R.create({name:"markdownHTMLNode",addStorage:()=>({markdown:{serialize(e,t,A){this.editor.storage.markdown.options.html?e.write(function(e,t){const A=e.type.schema,n=V(H.from(e),A);return e.isBlock&&(t instanceof H||t.type.name===A.topNodeType.name)?function(e){const t=bM(e).firstElementChild;return t.innerHTML=t.innerHTML.trim()?`\n${t.innerHTML}\n`:"\n",t.outerHTML}(n):n}(t,A)):(console.warn(`Tiptap Markdown: "${t.type.name}" node is only available in html mode`),e.write(`[${t.type.name}]`)),t.isBlock&&e.closeBlock(t)},parse:{}}})}),pM=R.create({name:"blockquote"}).extend({addStorage:()=>({markdown:{serialize:lM.nodes.blockquote,parse:{}}})}),TM=R.create({name:"bulletList"}).extend({addStorage:()=>({markdown:{serialize(e,t){return e.renderList(t," ",(()=>(this.editor.storage.markdown.options.bulletListMarker||"-")+" "))},parse:{}}})}),HM=R.create({name:"codeBlock"}).extend({addStorage:()=>({markdown:{serialize(e,t){e.write("```"+(t.attrs.language||"")+"\n"),e.text(t.textContent,!1),e.ensureNewLine(),e.write("```"),e.closeBlock(t)},parse:{setup(e){var t;e.set({langPrefix:null!==(t=this.options.languageClassPrefix)&&void 0!==t?t:"language-"})},updateDOM(e){e.innerHTML=e.innerHTML.replace(/\n<\/code><\/pre>/g,"")}}}})}),xM=R.create({name:"hardBreak"}).extend({addStorage:()=>({markdown:{serialize(e,t,A,n){for(let i=n+1;i({markdown:{serialize:lM.nodes.heading,parse:{}}})}),JM=R.create({name:"horizontalRule"}).extend({addStorage:()=>({markdown:{serialize:lM.nodes.horizontal_rule,parse:{}}})}),jM=R.create({name:"image"}).extend({addStorage:()=>({markdown:{serialize:lM.nodes.image,parse:{}}})}),ZM=R.create({name:"listItem"}).extend({addStorage:()=>({markdown:{serialize:lM.nodes.list_item,parse:{}}})}),vM=R.create({name:"orderedList"}).extend({addStorage:()=>({markdown:{serialize(e,t,A,n){const i=t.attrs.start||1,r=String(i+t.childCount-1).length,o=e.repeat(" ",r+2),s=function(e,t,A){let n=0;for(;A-n>0&&t.child(A-n-1).type.name===e.type.name;n++);return n}(t,A,n),E=s%2?") ":". ";e.renderList(t,o,(t=>{const A=String(i+t);return e.repeat(" ",r-A.length)+A+E}))},parse:{}}})}),PM=R.create({name:"paragraph"}).extend({addStorage:()=>({markdown:{serialize:lM.nodes.paragraph,parse:{}}})});function LM(e){var t,A;return null!==(t=null==e||null===(A=e.content)||void 0===A?void 0:A.content)&&void 0!==t?t:[]}const VM=R.create({name:"table"}).extend({addStorage:()=>({markdown:{serialize(e,t,A){!function(e){const t=LM(e),A=t[0],n=t.slice(1);return!LM(A).some((e=>"tableHeader"!==e.type.name||OM(e)||e.childCount>1))&&!n.some((e=>LM(e).some((e=>"tableHeader"===e.type.name||OM(e)||e.childCount>1))))}(t)?yM.storage.markdown.serialize.call(this,e,t,A):(e.inTable=!0,t.forEach(((t,A,n)=>{if(e.write("| "),t.forEach(((t,A,n)=>{n&&e.write(" | ");const i=t.firstChild;i.textContent.trim()&&e.renderInline(i)})),e.write(" |"),e.ensureNewLine(),!n){const A=Array.from({length:t.childCount}).map((()=>"---")).join(" | ");e.write(`| ${A} |`),e.ensureNewLine()}})),e.closeBlock(t),e.inTable=!1)},parse:{}}})});function OM(e){return e.attrs.colspan>1||e.attrs.rowspan>1}const _M=R.create({name:"taskItem"}).extend({addStorage:()=>({markdown:{serialize(e,t){e.write((t.attrs.checked?"[x]":"[ ]")+" "),e.renderContent(t)},parse:{updateDOM(e){[...e.querySelectorAll(".task-list-item")].forEach((e=>{const t=e.querySelector("input");e.setAttribute("data-type","taskItem"),t&&(e.setAttribute("data-checked",t.checked),t.remove())}))}}}})}),KM=R.create({name:"taskList"}).extend({addStorage:()=>({markdown:{serialize:TM.storage.markdown.serialize,parse:{setup(e){e.use(RM)},updateDOM(e){[...e.querySelectorAll(".contains-task-list")].forEach((e=>{e.setAttribute("data-type","taskList")}))}}}})}),WM=R.create({name:"text"}).extend({addStorage:()=>({markdown:{serialize(e,t){e.text(function(e){return null==e?void 0:e.replace(//g,">")}(t.text))},parse:{}}})}),XM=g.create({name:"bold"}).extend({addStorage:()=>({markdown:{serialize:lM.marks.strong,parse:{}}})}),qM=g.create({name:"code"}).extend({addStorage:()=>({markdown:{serialize:lM.marks.code,parse:{}}})}),$M=g.create({name:"italic"}).extend({addStorage:()=>({markdown:{serialize:lM.marks.em,parse:{}}})}),eR=g.create({name:"link"}).extend({addStorage:()=>({markdown:{serialize:lM.marks.link,parse:{}}})}),tR=g.create({name:"strike"}).extend({addStorage:()=>({markdown:{serialize:{open:"~~",close:"~~",expelEnclosingWhitespace:!0},parse:{}}})}),AR=[pM,TM,HM,xM,zM,JM,yM,jM,ZM,vM,PM,VM,_M,KM,WM,XM,qM,SM,$M,eR,tR];function nR(e){var t,A;const n=null===(t=e.storage)||void 0===t?void 0:t.markdown,i=null===(A=AR.find((t=>t.name===e.name)))||void 0===A?void 0:A.storage.markdown;return n||i?{...i,...n}:null}class iR{constructor(e){fM(this,"editor",null),this.editor=e}serialize(e){const t=new UM(this.nodes,this.marks,{hardBreakNodeName:xM.name});return t.renderContent(e),t.out}get nodes(){var e;return{...Object.fromEntries(Object.keys(this.editor.schema.nodes).map((e=>[e,this.serializeNode(yM)]))),...Object.fromEntries(null!==(e=this.editor.extensionManager.extensions.filter((e=>"node"===e.type&&this.serializeNode(e))).map((e=>[e.name,this.serializeNode(e)])))&&void 0!==e?e:[])}}get marks(){var e;return{...Object.fromEntries(Object.keys(this.editor.schema.marks).map((e=>[e,this.serializeMark(SM)]))),...Object.fromEntries(null!==(e=this.editor.extensionManager.extensions.filter((e=>"mark"===e.type&&this.serializeMark(e))).map((e=>[e.name,this.serializeMark(e)])))&&void 0!==e?e:[])}}serializeNode(e){var t;return null===(t=nR(e))||void 0===t||null===(t=t.serialize)||void 0===t?void 0:t.bind({editor:this.editor,options:e.options})}serializeMark(e){var t;const A=null===(t=nR(e))||void 0===t?void 0:t.serialize;return A?{...A,open:"function"==typeof A.open?A.open.bind({editor:this.editor,options:e.options}):A.open,close:"function"==typeof A.close?A.close.bind({editor:this.editor,options:e.options}):A.close}:null}}class rR{constructor(e,t){fM(this,"editor",null),fM(this,"md",null);let{html:A,linkify:n,breaks:i}=t;this.editor=e,this.md=this.withPatchedRenderer(rM({html:A,linkify:n,breaks:i}))}parse(e){let{inline:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof e){this.editor.extensionManager.extensions.forEach((e=>{var t;return null===(t=nR(e))||void 0===t||null===(t=t.parse)||void 0===t||null===(t=t.setup)||void 0===t?void 0:t.call({editor:this.editor,options:e.options},this.md)}));const A=bM(this.md.render(e));return this.editor.extensionManager.extensions.forEach((e=>{var t;return null===(t=nR(e))||void 0===t||null===(t=t.parse)||void 0===t||null===(t=t.updateDOM)||void 0===t?void 0:t.call({editor:this.editor,options:e.options},A)})),this.normalizeDOM(A,{inline:t,content:e}),A.innerHTML}return e}normalizeDOM(e,t){let{inline:A,content:n}=t;return this.normalizeBlocks(e),e.querySelectorAll("*").forEach((e=>{var t;(null===(t=e.nextSibling)||void 0===t?void 0:t.nodeType)!==Node.TEXT_NODE||e.closest("pre")||(e.nextSibling.textContent=e.nextSibling.textContent.replace(/^\n/,""))})),A&&this.normalizeInline(e,n),e}normalizeBlocks(e){const t=Object.values(this.editor.schema.nodes).filter((e=>e.isBlock)).map((e=>{var t;return null===(t=e.spec.parseDOM)||void 0===t?void 0:t.map((e=>e.tag))})).flat().filter(Boolean).join(",");t&&[...e.querySelectorAll(t)].forEach((e=>{e.parentElement.matches("p")&&function(e){const t=e.parentElement,A=t.cloneNode();for(;t.firstChild&&t.firstChild!==e;)A.appendChild(t.firstChild);A.childNodes.length>0&&t.parentElement.insertBefore(A,t),t.parentElement.insertBefore(e,t),0===t.childNodes.length&&t.remove()}(e)}))}normalizeInline(e,t){var A;if(null!==(A=e.firstElementChild)&&void 0!==A&&A.matches("p")){var n,i,r,o;const A=e.firstElementChild,{nextElementSibling:s}=A,E=null!==(n=null===(i=t.match(/^\s+/))||void 0===i?void 0:i[0])&&void 0!==n?n:"",B=s?"":null!==(r=null===(o=t.match(/\s+$/))||void 0===o?void 0:o[0])&&void 0!==r?r:"";if(t.match(/^\n\n/))return void(A.innerHTML=`${A.innerHTML}${B}`);!function(e){const t=e.parentNode;for(;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e)}(A),e.innerHTML=`${E}${e.innerHTML}${B}`}}withPatchedRenderer(e){const t=e=>function(){const t=e(...arguments);return"\n"===t?t:"\n"===t[t.length-1]?t.slice(0,-1):t};return e.renderer.rules.hardbreak=t(e.renderer.rules.hardbreak),e.renderer.rules.softbreak=t(e.renderer.rules.softbreak),e.renderer.rules.fence=t(e.renderer.rules.fence),e.renderer.rules.code_block=t(e.renderer.rules.code_block),e.renderer.renderToken=t(e.renderer.renderToken.bind(e.renderer)),e}}const oR=s.create({name:"markdownClipboard",addOptions:()=>({transformPastedText:!1,transformCopiedText:!1}),addProseMirrorPlugins(){return[new r({key:new o("markdownClipboard"),props:{clipboardTextParser:(e,t,A)=>{if(A||!this.options.transformPastedText)return null;const n=this.editor.storage.markdown.parser.parse(e,{inline:!0});return O.fromSchema(this.editor.schema).parseSlice(bM(n),{preserveWhitespace:!0,context:t})},clipboardTextSerializer:e=>this.options.transformCopiedText?this.editor.storage.markdown.serializer.serialize(e.content):null}})]}}),sR=s.create({name:"markdown",priority:50,addOptions:()=>({html:!0,tightLists:!0,tightListClass:"tight",bulletListMarker:"-",linkify:!1,breaks:!1,transformPastedText:!1,transformCopiedText:!1}),addCommands(){const e=_.Commands.config.addCommands();return{setContent:(t,A,n)=>i=>e.setContent(i.editor.storage.markdown.parser.parse(t),A,n)(i),insertContentAt:(t,A,n)=>i=>e.insertContentAt(t,i.editor.storage.markdown.parser.parse(A,{inline:!0}),n)(i)}},onBeforeCreate(){this.editor.storage.markdown={options:{...this.options},parser:new rR(this.editor,this.options),serializer:new iR(this.editor),getMarkdown:()=>this.editor.storage.markdown.serializer.serialize(this.editor.state.doc)},this.editor.options.initialContent=this.editor.options.content,this.editor.options.content=this.editor.storage.markdown.parser.parse(this.editor.options.content)},onCreate(){this.editor.options.content=this.editor.options.initialContent,delete this.editor.options.initialContent},addStorage:()=>({}),addExtensions(){return[DM.configure({tight:this.options.tightLists,tightClass:this.options.tightListClass}),oR.configure({transformPastedText:this.options.transformPastedText,transformCopiedText:this.options.transformCopiedText})]}});function ER({types:e,node:t}){return Array.isArray(e)&&e.includes(t.type)||t.type===e}const BR=s.create({name:"trailingNode",addOptions:()=>({node:"paragraph",notAfter:["paragraph"]}),addProseMirrorPlugins(){const e=new o(this.name),t=Object.entries(this.editor.schema.nodes).map((([,e])=>e)).filter((e=>this.options.notAfter.includes(e.name)));return[new r({key:e,appendTransaction:(t,A,n)=>{const{doc:i,tr:r,schema:o}=n;if(e.getState(n))return r.insert(i.content.size,o.nodes[this.options.node].create())},state:{init:(e,A)=>!ER({node:A.tr.doc.lastChild,types:t}),apply:(e,A)=>e.docChanged?!ER({node:e.doc.lastChild,types:t}):A}})]}});function cR(e,t){return function(){return e.apply(t,arguments)}}const{toString:aR}=Object.prototype,{getPrototypeOf:gR}=Object,lR=(QR=Object.create(null),e=>{const t=aR.call(e);return QR[t]||(QR[t]=t.slice(8,-1).toLowerCase())});var QR;const hR=e=>(e=e.toLowerCase(),t=>lR(t)===e),uR=e=>t=>typeof t===e,{isArray:wR}=Array,MR=uR("undefined"),RR=hR("ArrayBuffer"),IR=uR("string"),dR=uR("function"),kR=uR("number"),GR=e=>null!==e&&"object"==typeof e,CR=e=>{if("object"!==lR(e))return!1;const t=gR(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},fR=hR("Date"),DR=hR("File"),FR=hR("Blob"),YR=hR("FileList"),mR=hR("URLSearchParams");function UR(e,t,{allOwnKeys:A=!1}={}){if(null==e)return;let n,i;if("object"!=typeof e&&(e=[e]),wR(e))for(n=0,i=e.length;n0;)if(n=A[i],t===n.toLowerCase())return n;return null}const NR="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,bR=e=>!MR(e)&&e!==NR,yR=(pR="undefined"!=typeof Uint8Array&&gR(Uint8Array),e=>pR&&e instanceof pR);var pR;const TR=hR("HTMLFormElement"),HR=(({hasOwnProperty:e})=>(t,A)=>e.call(t,A))(Object.prototype),xR=hR("RegExp"),zR=(e,t)=>{const A=Object.getOwnPropertyDescriptors(e),n={};UR(A,((A,i)=>{let r;!1!==(r=t(A,i,e))&&(n[i]=r||A)})),Object.defineProperties(e,n)},JR="abcdefghijklmnopqrstuvwxyz",jR="0123456789",ZR={DIGIT:jR,ALPHA:JR,ALPHA_DIGIT:JR+JR.toUpperCase()+jR},vR=hR("AsyncFunction"),PR={isArray:wR,isArrayBuffer:RR,isBuffer:function(e){return null!==e&&!MR(e)&&null!==e.constructor&&!MR(e.constructor)&&dR(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||dR(e.append)&&("formdata"===(t=lR(e))||"object"===t&&dR(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&RR(e.buffer),t},isString:IR,isNumber:kR,isBoolean:e=>!0===e||!1===e,isObject:GR,isPlainObject:CR,isUndefined:MR,isDate:fR,isFile:DR,isBlob:FR,isRegExp:xR,isFunction:dR,isStream:e=>GR(e)&&dR(e.pipe),isURLSearchParams:mR,isTypedArray:yR,isFileList:YR,forEach:UR,merge:function e(){const{caseless:t}=bR(this)&&this||{},A={},n=(n,i)=>{const r=t&&SR(A,i)||i;A[r]=CR(A[r])&&CR(n)?e(A[r],n):CR(n)?e({},n):wR(n)?n.slice():n};for(let e=0,t=arguments.length;e(UR(t,((t,n)=>{e[n]=A&&dR(t)?cR(t,A):t}),{allOwnKeys:n}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,A,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),A&&Object.assign(e.prototype,A)},toFlatObject:(e,t,A,n)=>{let i,r,o;const s={};if(t=t||{},null==e)return t;do{for(i=Object.getOwnPropertyNames(e),r=i.length;r-- >0;)o=i[r],n&&!n(o,e,t)||s[o]||(t[o]=e[o],s[o]=!0);e=!1!==A&&gR(e)}while(e&&(!A||A(e,t))&&e!==Object.prototype);return t},kindOf:lR,kindOfTest:hR,endsWith:(e,t,A)=>{e=String(e),(void 0===A||A>e.length)&&(A=e.length);const n=e.indexOf(t,A-=t.length);return-1!==n&&n===A},toArray:e=>{if(!e)return null;if(wR(e))return e;let t=e.length;if(!kR(t))return null;const A=new Array(t);for(;t-- >0;)A[t]=e[t];return A},forEachEntry:(e,t)=>{const A=(e&&e[Symbol.iterator]).call(e);let n;for(;(n=A.next())&&!n.done;){const A=n.value;t.call(e,A[0],A[1])}},matchAll:(e,t)=>{let A;const n=[];for(;null!==(A=e.exec(t));)n.push(A);return n},isHTMLForm:TR,hasOwnProperty:HR,hasOwnProp:HR,reduceDescriptors:zR,freezeMethods:e=>{zR(e,((t,A)=>{if(dR(e)&&-1!==["arguments","caller","callee"].indexOf(A))return!1;dR(e[A])&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+A+"'")}))}))},toObjectSet:(e,t)=>{const A={},n=e=>{e.forEach((e=>{A[e]=!0}))};return wR(e)?n(e):n(String(e).split(t)),A},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,A){return t.toUpperCase()+A})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:SR,global:NR,isContextDefined:bR,ALPHABET:ZR,generateString:(e=16,t=ZR.ALPHA_DIGIT)=>{let A="";const{length:n}=t;for(;e--;)A+=t[Math.random()*n|0];return A},isSpecCompliantForm:function(e){return!!(e&&dR(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),A=(e,n)=>{if(GR(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[n]=e;const i=wR(e)?[]:{};return UR(e,((e,t)=>{const r=A(e,n+1);!MR(r)&&(i[t]=r)})),t[n]=void 0,i}}return e};return A(e,0)},isAsyncFn:vR,isThenable:e=>e&&(GR(e)||dR(e))&&dR(e.then)&&dR(e.catch)};function LR(e,t,A,n,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),A&&(this.config=A),n&&(this.request=n),i&&(this.response=i)}PR.inherits(LR,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:PR.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const VR=LR.prototype,OR={};function _R(e){return PR.isPlainObject(e)||PR.isArray(e)}function KR(e){return PR.endsWith(e,"[]")?e.slice(0,-2):e}function WR(e,t,A){return e?e.concat(t).map((function(e,t){return e=KR(e),!A&&t?"["+e+"]":e})).join(A?".":""):t}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{OR[e]={value:e}})),Object.defineProperties(LR,OR),Object.defineProperty(VR,"isAxiosError",{value:!0}),LR.from=(e,t,A,n,i,r)=>{const o=Object.create(VR);return PR.toFlatObject(e,o,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),LR.call(o,e.message,t,A,n,i),o.cause=e,o.name=e.name,r&&Object.assign(o,r),o};const XR=PR.toFlatObject(PR,{},null,(function(e){return/^is[A-Z]/.test(e)}));function qR(e,t,A){if(!PR.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,A=PR.toFlatObject(A,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!PR.isUndefined(t[e])}));const n=A.metaTokens,i=A.visitor||B,r=A.dots,o=A.indexes,s=(A.Blob||"undefined"!=typeof Blob&&Blob)&&PR.isSpecCompliantForm(t);if(!PR.isFunction(i))throw new TypeError("visitor must be a function");function E(e){if(null===e)return"";if(PR.isDate(e))return e.toISOString();if(!s&&PR.isBlob(e))throw new LR("Blob is not supported. Use a Buffer instead.");return PR.isArrayBuffer(e)||PR.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function B(e,A,i){let s=e;if(e&&!i&&"object"==typeof e)if(PR.endsWith(A,"{}"))A=n?A:A.slice(0,-2),e=JSON.stringify(e);else if(PR.isArray(e)&&function(e){return PR.isArray(e)&&!e.some(_R)}(e)||(PR.isFileList(e)||PR.endsWith(A,"[]"))&&(s=PR.toArray(e)))return A=KR(A),s.forEach((function(e,n){!PR.isUndefined(e)&&null!==e&&t.append(!0===o?WR([A],n,r):null===o?A:A+"[]",E(e))})),!1;return!!_R(e)||(t.append(WR(i,A,r),E(e)),!1)}const c=[],a=Object.assign(XR,{defaultVisitor:B,convertValue:E,isVisitable:_R});if(!PR.isObject(e))throw new TypeError("data must be an object");return function e(A,n){if(!PR.isUndefined(A)){if(-1!==c.indexOf(A))throw Error("Circular reference detected in "+n.join("."));c.push(A),PR.forEach(A,(function(A,r){!0===(!(PR.isUndefined(A)||null===A)&&i.call(t,A,PR.isString(r)?r.trim():r,n,a))&&e(A,n?n.concat(r):[r])})),c.pop()}}(e),t}function $R(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function eI(e,t){this._pairs=[],e&&qR(e,this,t)}const tI=eI.prototype;function AI(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function nI(e,t,A){if(!t)return e;const n=A&&A.encode||AI,i=A&&A.serialize;let r;if(r=i?i(t,A):PR.isURLSearchParams(t)?t.toString():new eI(t,A).toString(n),r){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+r}return e}tI.append=function(e,t){this._pairs.push([e,t])},tI.toString=function(e){const t=e?function(t){return e.call(this,t,$R)}:$R;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};const iI=class{constructor(){this.handlers=[]}use(e,t,A){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!A&&A.synchronous,runWhen:A?A.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){PR.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},rI={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},oI={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:eI,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},sI="undefined"!=typeof window&&"undefined"!=typeof document,EI=(BI="undefined"!=typeof navigator&&navigator.product,sI&&["ReactNative","NativeScript","NS"].indexOf(BI)<0);var BI;const cI="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,aI={...Object.freeze({__proto__:null,hasBrowserEnv:sI,hasStandardBrowserWebWorkerEnv:cI,hasStandardBrowserEnv:EI}),...oI};function gI(e){function t(e,A,n,i){let r=e[i++];if("__proto__"===r)return!0;const o=Number.isFinite(+r),s=i>=e.length;return r=!r&&PR.isArray(n)?n.length:r,s?(n[r]=PR.hasOwnProp(n,r)?[n[r],A]:A,!o):(n[r]&&PR.isObject(n[r])||(n[r]=[]),t(e,A,n[r],i)&&PR.isArray(n[r])&&(n[r]=function(e){const t={},A=Object.keys(e);let n;const i=A.length;let r;for(n=0;n{t(function(e){return PR.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),n,A,0)})),A}return null}const lI={transitional:rI,adapter:["xhr","http"],transformRequest:[function(e,t){const A=t.getContentType()||"",n=A.indexOf("application/json")>-1,i=PR.isObject(e);if(i&&PR.isHTMLForm(e)&&(e=new FormData(e)),PR.isFormData(e))return n?JSON.stringify(gI(e)):e;if(PR.isArrayBuffer(e)||PR.isBuffer(e)||PR.isStream(e)||PR.isFile(e)||PR.isBlob(e))return e;if(PR.isArrayBufferView(e))return e.buffer;if(PR.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let r;if(i){if(A.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return qR(e,new aI.classes.URLSearchParams,Object.assign({visitor:function(e,t,A,n){return aI.isNode&&PR.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((r=PR.isFileList(e))||A.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return qR(r?{"files[]":e}:e,t&&new t,this.formSerializer)}}return i||n?(t.setContentType("application/json",!1),function(e){if(PR.isString(e))try{return(0,JSON.parse)(e),PR.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||lI.transitional,A=t&&t.forcedJSONParsing,n="json"===this.responseType;if(e&&PR.isString(e)&&(A&&!this.responseType||n)){const A=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(A){if("SyntaxError"===e.name)throw LR.from(e,LR.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:aI.classes.FormData,Blob:aI.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};PR.forEach(["delete","get","head","post","put","patch"],(e=>{lI.headers[e]={}}));const QI=lI,hI=PR.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),uI=Symbol("internals");function wI(e){return e&&String(e).trim().toLowerCase()}function MI(e){return!1===e||null==e?e:PR.isArray(e)?e.map(MI):String(e)}function RI(e,t,A,n,i){return PR.isFunction(n)?n.call(this,t,A):(i&&(t=A),PR.isString(t)?PR.isString(n)?-1!==t.indexOf(n):PR.isRegExp(n)?n.test(t):void 0:void 0)}class II{constructor(e){e&&this.set(e)}set(e,t,A){const n=this;function i(e,t,A){const i=wI(t);if(!i)throw new Error("header name must be a non-empty string");const r=PR.findKey(n,i);(!r||void 0===n[r]||!0===A||void 0===A&&!1!==n[r])&&(n[r||t]=MI(e))}const r=(e,t)=>PR.forEach(e,((e,A)=>i(e,A,t)));return PR.isPlainObject(e)||e instanceof this.constructor?r(e,t):PR.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?r((e=>{const t={};let A,n,i;return e&&e.split("\n").forEach((function(e){i=e.indexOf(":"),A=e.substring(0,i).trim().toLowerCase(),n=e.substring(i+1).trim(),!A||t[A]&&hI[A]||("set-cookie"===A?t[A]?t[A].push(n):t[A]=[n]:t[A]=t[A]?t[A]+", "+n:n)})),t})(e),t):null!=e&&i(t,e,A),this}get(e,t){if(e=wI(e)){const A=PR.findKey(this,e);if(A){const e=this[A];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),A=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=A.exec(e);)t[n[1]]=n[2];return t}(e);if(PR.isFunction(t))return t.call(this,e,A);if(PR.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=wI(e)){const A=PR.findKey(this,e);return!(!A||void 0===this[A]||t&&!RI(0,this[A],A,t))}return!1}delete(e,t){const A=this;let n=!1;function i(e){if(e=wI(e)){const i=PR.findKey(A,e);!i||t&&!RI(0,A[i],i,t)||(delete A[i],n=!0)}}return PR.isArray(e)?e.forEach(i):i(e),n}clear(e){const t=Object.keys(this);let A=t.length,n=!1;for(;A--;){const i=t[A];e&&!RI(0,this[i],i,e,!0)||(delete this[i],n=!0)}return n}normalize(e){const t=this,A={};return PR.forEach(this,((n,i)=>{const r=PR.findKey(A,i);if(r)return t[r]=MI(n),void delete t[i];const o=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,A)=>t.toUpperCase()+A))}(i):String(i).trim();o!==i&&delete t[i],t[o]=MI(n),A[o]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return PR.forEach(this,((A,n)=>{null!=A&&!1!==A&&(t[n]=e&&PR.isArray(A)?A.join(", "):A)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const A=new this(e);return t.forEach((e=>A.set(e))),A}static accessor(e){const t=(this[uI]=this[uI]={accessors:{}}).accessors,A=this.prototype;function n(e){const n=wI(e);t[n]||(function(e,t){const A=PR.toCamelCase(" "+t);["get","set","has"].forEach((n=>{Object.defineProperty(e,n+A,{value:function(e,A,i){return this[n].call(this,t,e,A,i)},configurable:!0})}))}(A,e),t[n]=!0)}return PR.isArray(e)?e.forEach(n):n(e),this}}II.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),PR.reduceDescriptors(II.prototype,(({value:e},t)=>{let A=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[A]=e}}})),PR.freezeMethods(II);const dI=II;function kI(e,t){const A=this||QI,n=t||A,i=dI.from(n.headers);let r=n.data;return PR.forEach(e,(function(e){r=e.call(A,r,i.normalize(),t?t.status:void 0)})),i.normalize(),r}function GI(e){return!(!e||!e.__CANCEL__)}function CI(e,t,A){LR.call(this,null==e?"canceled":e,LR.ERR_CANCELED,t,A),this.name="CanceledError"}PR.inherits(CI,LR,{__CANCEL__:!0});const fI=aI.hasStandardBrowserEnv?{write(e,t,A,n,i,r){const o=[e+"="+encodeURIComponent(t)];PR.isNumber(A)&&o.push("expires="+new Date(A).toGMTString()),PR.isString(n)&&o.push("path="+n),PR.isString(i)&&o.push("domain="+i),!0===r&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function DI(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const FI=aI.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let A;function n(A){let n=A;return e&&(t.setAttribute("href",n),n=t.href),t.setAttribute("href",n),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return A=n(window.location.href),function(e){const t=PR.isString(e)?n(e):e;return t.protocol===A.protocol&&t.host===A.host}}():function(){return!0};function YI(e,t){let A=0;const n=function(e,t){e=e||10;const A=new Array(e),n=new Array(e);let i,r=0,o=0;return t=void 0!==t?t:1e3,function(s){const E=Date.now(),B=n[o];i||(i=E),A[r]=s,n[r]=E;let c=o,a=0;for(;c!==r;)a+=A[c++],c%=e;if(r=(r+1)%e,r===o&&(o=(o+1)%e),E-i{const r=i.loaded,o=i.lengthComputable?i.total:void 0,s=r-A,E=n(s);A=r;const B={loaded:r,total:o,progress:o?r/o:void 0,bytes:s,rate:E||void 0,estimated:E&&o&&r<=o?(o-r)/E:void 0,event:i};B[t?"download":"upload"]=!0,e(B)}}const mI="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,A){let n=e.data;const i=dI.from(e.headers).normalize();let r,o,{responseType:s,withXSRFToken:E}=e;function B(){e.cancelToken&&e.cancelToken.unsubscribe(r),e.signal&&e.signal.removeEventListener("abort",r)}if(PR.isFormData(n))if(aI.hasStandardBrowserEnv||aI.hasStandardBrowserWebWorkerEnv)i.setContentType(!1);else if(!1!==(o=i.getContentType())){const[e,...t]=o?o.split(";").map((e=>e.trim())).filter(Boolean):[];i.setContentType([e||"multipart/form-data",...t].join("; "))}let c=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",A=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";i.set("Authorization","Basic "+btoa(t+":"+A))}const a=DI(e.baseURL,e.url);function g(){if(!c)return;const n=dI.from("getAllResponseHeaders"in c&&c.getAllResponseHeaders());!function(e,t,A){const n=A.config.validateStatus;A.status&&n&&!n(A.status)?t(new LR("Request failed with status code "+A.status,[LR.ERR_BAD_REQUEST,LR.ERR_BAD_RESPONSE][Math.floor(A.status/100)-4],A.config,A.request,A)):e(A)}((function(e){t(e),B()}),(function(e){A(e),B()}),{data:s&&"text"!==s&&"json"!==s?c.response:c.responseText,status:c.status,statusText:c.statusText,headers:n,config:e,request:c}),c=null}if(c.open(e.method.toUpperCase(),nI(a,e.params,e.paramsSerializer),!0),c.timeout=e.timeout,"onloadend"in c?c.onloadend=g:c.onreadystatechange=function(){c&&4===c.readyState&&(0!==c.status||c.responseURL&&0===c.responseURL.indexOf("file:"))&&setTimeout(g)},c.onabort=function(){c&&(A(new LR("Request aborted",LR.ECONNABORTED,e,c)),c=null)},c.onerror=function(){A(new LR("Network Error",LR.ERR_NETWORK,e,c)),c=null},c.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),A(new LR(t,(e.transitional||rI).clarifyTimeoutError?LR.ETIMEDOUT:LR.ECONNABORTED,e,c)),c=null},aI.hasStandardBrowserEnv&&(E&&PR.isFunction(E)&&(E=E(e)),E||!1!==E&&FI(a))){const t=e.xsrfHeaderName&&e.xsrfCookieName&&fI.read(e.xsrfCookieName);t&&i.set(e.xsrfHeaderName,t)}void 0===n&&i.setContentType(null),"setRequestHeader"in c&&PR.forEach(i.toJSON(),(function(e,t){c.setRequestHeader(t,e)})),PR.isUndefined(e.withCredentials)||(c.withCredentials=!!e.withCredentials),s&&"json"!==s&&(c.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&c.addEventListener("progress",YI(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&c.upload&&c.upload.addEventListener("progress",YI(e.onUploadProgress)),(e.cancelToken||e.signal)&&(r=t=>{c&&(A(!t||t.type?new CI(null,e,c):t),c.abort(),c=null)},e.cancelToken&&e.cancelToken.subscribe(r),e.signal&&(e.signal.aborted?r():e.signal.addEventListener("abort",r)));const l=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(a);l&&-1===aI.protocols.indexOf(l)?A(new LR("Unsupported protocol "+l+":",LR.ERR_BAD_REQUEST,e)):c.send(n||null)}))},UI={http:null,xhr:mI};PR.forEach(UI,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const SI=e=>`- ${e}`,NI=e=>PR.isFunction(e)||null===e||!1===e,bI=e=>{e=PR.isArray(e)?e:[e];const{length:t}=e;let A,n;const i={};for(let r=0;r`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new LR("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(SI).join("\n"):" "+SI(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function yI(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new CI(null,e)}function pI(e){return yI(e),e.headers=dI.from(e.headers),e.data=kI.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),bI(e.adapter||QI.adapter)(e).then((function(t){return yI(e),t.data=kI.call(e,e.transformResponse,t),t.headers=dI.from(t.headers),t}),(function(t){return GI(t)||(yI(e),t&&t.response&&(t.response.data=kI.call(e,e.transformResponse,t.response),t.response.headers=dI.from(t.response.headers))),Promise.reject(t)}))}const TI=e=>e instanceof dI?{...e}:e;function HI(e,t){t=t||{};const A={};function n(e,t,A){return PR.isPlainObject(e)&&PR.isPlainObject(t)?PR.merge.call({caseless:A},e,t):PR.isPlainObject(t)?PR.merge({},t):PR.isArray(t)?t.slice():t}function i(e,t,A){return PR.isUndefined(t)?PR.isUndefined(e)?void 0:n(void 0,e,A):n(e,t,A)}function r(e,t){if(!PR.isUndefined(t))return n(void 0,t)}function o(e,t){return PR.isUndefined(t)?PR.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function s(A,i,r){return r in t?n(A,i):r in e?n(void 0,A):void 0}const E={url:r,method:r,data:r,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:s,headers:(e,t)=>i(TI(e),TI(t),!0)};return PR.forEach(Object.keys(Object.assign({},e,t)),(function(n){const r=E[n]||i,o=r(e[n],t[n],n);PR.isUndefined(o)&&r!==s||(A[n]=o)})),A}const xI={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{xI[e]=function(A){return typeof A===e||"a"+(t<1?"n ":" ")+e}}));const zI={};xI.transitional=function(e,t,A){function n(e,t){return"[Axios v1.6.8] Transitional option '"+e+"'"+t+(A?". "+A:"")}return(A,i,r)=>{if(!1===e)throw new LR(n(i," has been removed"+(t?" in "+t:"")),LR.ERR_DEPRECATED);return t&&!zI[i]&&(zI[i]=!0,console.warn(n(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(A,i,r)}};const JI={assertOptions:function(e,t,A){if("object"!=typeof e)throw new LR("options must be an object",LR.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let i=n.length;for(;i-- >0;){const r=n[i],o=t[r];if(o){const t=e[r],A=void 0===t||o(t,r,e);if(!0!==A)throw new LR("option "+r+" must be "+A,LR.ERR_BAD_OPTION_VALUE)}else if(!0!==A)throw new LR("Unknown option "+r,LR.ERR_BAD_OPTION)}},validators:xI},jI=JI.validators;class ZI{constructor(e){this.defaults=e,this.interceptors={request:new iI,response:new iI}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t;Error.captureStackTrace?Error.captureStackTrace(t={}):t=new Error;const A=t.stack?t.stack.replace(/^.+\n/,""):"";e.stack?A&&!String(e.stack).endsWith(A.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+A):e.stack=A}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=HI(this.defaults,t);const{transitional:A,paramsSerializer:n,headers:i}=t;void 0!==A&&JI.assertOptions(A,{silentJSONParsing:jI.transitional(jI.boolean),forcedJSONParsing:jI.transitional(jI.boolean),clarifyTimeoutError:jI.transitional(jI.boolean)},!1),null!=n&&(PR.isFunction(n)?t.paramsSerializer={serialize:n}:JI.assertOptions(n,{encode:jI.function,serialize:jI.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let r=i&&PR.merge(i.common,i[t.method]);i&&PR.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete i[e]})),t.headers=dI.concat(r,i);const o=[];let s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,o.unshift(e.fulfilled,e.rejected))}));const E=[];let B;this.interceptors.response.forEach((function(e){E.push(e.fulfilled,e.rejected)}));let c,a=0;if(!s){const e=[pI.bind(this),void 0];for(e.unshift.apply(e,o),e.push.apply(e,E),c=e.length,B=Promise.resolve(t);a{if(!A._listeners)return;let t=A._listeners.length;for(;t-- >0;)A._listeners[t](e);A._listeners=null})),this.promise.then=e=>{let t;const n=new Promise((e=>{A.subscribe(e),t=e})).then(e);return n.cancel=function(){A.unsubscribe(t)},n},e((function(e,n,i){A.reason||(A.reason=new CI(e,n,i),t(A.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new PI((function(t){e=t})),cancel:e}}}const LI=PI,VI={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(VI).forEach((([e,t])=>{VI[t]=e}));const OI=VI,_I=function e(t){const A=new vI(t),n=cR(vI.prototype.request,A);return PR.extend(n,vI.prototype,A,{allOwnKeys:!0}),PR.extend(n,A,null,{allOwnKeys:!0}),n.create=function(A){return e(HI(t,A))},n}(QI);_I.Axios=vI,_I.CanceledError=CI,_I.CancelToken=LI,_I.isCancel=GI,_I.VERSION="1.6.8",_I.toFormData=qR,_I.AxiosError=LR,_I.Cancel=_I.CanceledError,_I.all=function(e){return Promise.all(e)},_I.spread=function(e){return function(t){return e.apply(null,t)}},_I.isAxiosError=function(e){return PR.isObject(e)&&!0===e.isAxiosError},_I.mergeConfig=HI,_I.AxiosHeaders=dI,_I.formToJSON=e=>gI(PR.isHTMLForm(e)?new FormData(e):e),_I.getAdapter=bI,_I.HttpStatusCode=OI,_I.default=_I;const KI=_I,WI=["image/jpeg","image/gif","image/png","image/jpg"];async function XI(e,t){const A=e instanceof DataTransferItem?e.getAsFile():e;return(null==t?void 0:t.options.uploadFunc)?t.options.uploadFunc(A):(null==t?void 0:t.options.uploadUrl)?async function(e,t){return(await KI.postForm(t,{imgFile:e})).data.url||""}(A,t.options.uploadUrl):new Promise((e=>{const t=new FileReader;t.onloadend=()=>e(t.result),t.readAsDataURL(A)}))}const qI=s.create({name:"imageUploader",addCommands(){return{uploadImage:e=>()=>(XI(e,this).then((e=>{Boolean(e)&&this.editor.chain().focus().setImage({src:e}).run()})),!0)}},addOptions:()=>({uploadUrl:"",uploadFunc:null}),addProseMirrorPlugins(){return[new r({key:new o("imageUploader"),props:{handlePaste:(e,t)=>{var A;const n=Array.from((null===(A=t.clipboardData)||void 0===A?void 0:A.items)||[]);if(n.some((e=>"text/html"===e.type)))return!1;const i=n.find((e=>WI.includes(e.type)));return!!Boolean(i)&&(XI(i,this).then((e=>{Boolean(e)&&this.editor.chain().focus().setImage({src:e}).run()})),!0)},handleDrop:(e,t)=>{var A;return!!Boolean(null===(A=t.dataTransfer)||void 0===A?void 0:A.files.length)&&(XI(t.dataTransfer.files.item(0),this).then((e=>{Boolean(e)&&this.editor.chain().focus().setImage({src:e}).run()})),!0)}}})]}}),$I=s.create({name:"defaultTextStyle",addProseMirrorPlugins:()=>[new r({appendTransaction(e,t,A){if(1!==e.length||1!==e[0].steps.length)return;const n=e[0].doc.type.schema,i=n.marks.textStyle.create({fontFamily:Be["Sans-serif"]}),r=n.marks.textStyle.create({fontFamily:Be["Sans-serif"],fontSize:13});let o=A.tr;return e.forEach((e=>{e.steps.forEach((e=>{e.getMap().forEach(((e,t,n,s)=>{A.doc.nodesBetween(n,s,((e,t)=>{"heading"===e.type.name&&e.forEach(((e,A)=>{e.isText&&!Boolean(e.marks.find((e=>"textStyle"===e.type.name)))&&(o=o.addMark(t+A,t+A+e.nodeSize+1,i))})),"paragraph"===e.type.name&&e.forEach(((e,A)=>{e.isText&&!Boolean(e.marks.find((e=>"textStyle"===e.type.name)))&&(o=o.addMark(t+A,t+A+e.nodeSize+1,r))}))}))}))}))})),o}})]});var ed,td;if("undefined"!=typeof WeakMap){let e=new WeakMap;ed=t=>e.get(t),td=(t,A)=>(e.set(t,A),A)}else{const e=[],t=10;let A=0;ed=t=>{for(let A=0;A(A==t&&(A=0),e[A++]=n,e[A++]=i)}var Ad=class{constructor(e,t,A,n){this.width=e,this.height=t,this.map=A,this.problems=n}findCell(e){for(let t=0;tn&&(r+=i.attrs.colspan)}}for(let e=0;e1&&(A=!0)}-1==t?t=r:t!=r&&(t=Math.max(t,r))}return t}(e),A=e.childCount,n=[];let i=0,r=null;const o=[];for(let e=0,i=t*A;e=A){(r||(r=[])).push({type:"overlong_rowspan",pos:E,n:g-e});break}const B=i+e*t;for(let e=0;e0;t--)if("row"==e.node(t).type.spec.tableRole)return e.node(0).resolve(e.before(t+1));return null}function sd(e){const t=e.selection.$head;for(let e=t.depth;e>0;e--)if("row"==t.node(e).type.spec.tableRole)return!0;return!1}function Ed(e){const t=e.selection;if("$anchorCell"in t&&t.$anchorCell)return t.$anchorCell.pos>t.$headCell.pos?t.$anchorCell:t.$headCell;if("node"in t&&t.node&&"cell"==t.node.type.spec.tableRole)return t.$anchor;const A=od(t.$head)||function(e){for(let t=e.nodeAfter,A=e.pos;t;t=t.firstChild,A++){const n=t.type.spec.tableRole;if("cell"==n||"header_cell"==n)return e.doc.resolve(A)}for(let t=e.nodeBefore,A=e.pos;t;t=t.lastChild,A--){const n=t.type.spec.tableRole;if("cell"==n||"header_cell"==n)return e.doc.resolve(A-t.nodeSize)}}(t.$head);if(A)return A;throw new RangeError(`No cell found around position ${t.head}`)}function Bd(e){return"row"==e.parent.type.spec.tableRole&&!!e.nodeAfter}function cd(e,t){return e.depth==t.depth&&e.pos>=t.start(-1)&&e.pos<=t.end(-1)}function ad(e,t,A){const n=e.node(-1),i=Ad.get(n),r=e.start(-1),o=i.nextCell(e.pos-r,t,A);return null==o?null:e.node(0).resolve(r+o)}function gd(e,t,A=1){const n={...e,colspan:e.colspan-A};return n.colwidth&&(n.colwidth=n.colwidth.slice(),n.colwidth.splice(t,A),n.colwidth.some((e=>e>0))||(n.colwidth=null)),n}function ld(e,t,A=1){const n={...e,colspan:e.colspan+A};if(n.colwidth){n.colwidth=n.colwidth.slice();for(let e=0;ee!=t.pos-i));s.unshift(t.pos-i);const E=s.map((e=>{const t=A.nodeAt(e);if(!t)throw RangeError(`No cell with offset ${e} found`);const n=i+e+1;return new K(o.resolve(n),o.resolve(n+t.content.size))}));super(E[0].$from,E[0].$to,E),this.$anchorCell=e,this.$headCell=t}map(t,A){const n=t.resolve(A.map(this.$anchorCell.pos)),i=t.resolve(A.map(this.$headCell.pos));if(Bd(n)&&Bd(i)&&cd(n,i)){const t=this.$anchorCell.node(-1)!=n.node(-1);return t&&this.isRowSelection()?e.rowSelection(n,i):t&&this.isColSelection()?e.colSelection(n,i):new e(n,i)}return G.between(n,i)}content(){const e=this.$anchorCell.node(-1),t=Ad.get(e),A=this.$anchorCell.start(-1),n=t.rectBetween(this.$anchorCell.pos-A,this.$headCell.pos-A),i={},r=[];for(let A=n.top;A0||c>0){let e=E.attrs;if(B>0&&(e=gd(e,0,B)),c>0&&(e=gd(e,e.colspan-c,c)),s.leftn.bottom){const e={...E.attrs,rowspan:Math.min(s.bottom,n.bottom)-Math.max(s.top,n.top)};E=s.top0)&&Math.max(e+this.$anchorCell.nodeAfter.attrs.rowspan,t+this.$headCell.nodeAfter.attrs.rowspan)==this.$headCell.node(-1).childCount}static colSelection(t,A=t){const n=t.node(-1),i=Ad.get(n),r=t.start(-1),o=i.findCell(t.pos-r),s=i.findCell(A.pos-r),E=t.node(0);return o.top<=s.top?(o.top>0&&(t=E.resolve(r+i.map[o.left])),s.bottom0&&(A=E.resolve(r+i.map[s.left])),o.bottom0)&&Math.max(n+this.$anchorCell.nodeAfter.attrs.colspan,i+this.$headCell.nodeAfter.attrs.colspan)==t.width}eq(t){return t instanceof e&&t.$anchorCell.pos==this.$anchorCell.pos&&t.$headCell.pos==this.$headCell.pos}static rowSelection(t,A=t){const n=t.node(-1),i=Ad.get(n),r=t.start(-1),o=i.findCell(t.pos-r),s=i.findCell(A.pos-r),E=t.node(0);return o.left<=s.left?(o.left>0&&(t=E.resolve(r+i.map[o.top*i.width])),s.right0&&(A=E.resolve(r+i.map[s.top*i.width])),o.right{t.push(D.node(A,A+e.nodeSize,{class:"selectedCell"}))})),C.create(e.doc,t)}var wd=new o("fix-tables");function Md(e,t,A,n){const i=e.childCount,r=t.childCount;e:for(let o=0,s=0;o{"table"==t.type.spec.tableRole&&(A=function(e,t,A,n){const i=Ad.get(t);if(!i.problems)return n;n||(n=e.tr);const r=[];for(let e=0;e0){let t="cell";A.firstChild&&(t=A.firstChild.type.spec.tableRole);const r=[];for(let A=0;At.width)for(let r=0,c=0;rt.height){const c=[];for(let e=0,n=(t.height-1)*t.width;e=t.width)&&A.nodeAt(t.map[n+e]).type==s.header_cell;c.push(i?B||(B=s.header_cell.createAndFill()):E||(E=s.cell.createAndFill()))}const a=s.row.create(null,H.from(c)),g=[];for(let e=t.height;e{if(!i)return!1;const r=A.selection;if(r instanceof Qd)return fd(A,n,b.near(r.$headCell,t));if("horiz"!=e&&!r.empty)return!1;const o=Nd(i,e,t);if(null==o)return!1;if("horiz"==e)return fd(A,n,b.near(A.doc.resolve(r.head+t),t));{const i=A.doc.resolve(o),r=ad(i,e,t);let s;return s=r?b.near(r,1):t<0?b.near(A.doc.resolve(i.before(-1)),-1):b.near(A.doc.resolve(i.after(-1)),1),fd(A,n,s)}}}function Fd(e,t){return(A,n,i)=>{if(!i)return!1;const r=A.selection;let o;if(r instanceof Qd)o=r;else{const n=Nd(i,e,t);if(null==n)return!1;o=new Qd(A.doc.resolve(n))}const s=ad(o.$headCell,e,t);return!!s&&fd(A,n,new Qd(o.$anchorCell,s))}}function Yd(e,t){const A=e.selection;if(!(A instanceof Qd))return!1;if(t){const n=e.tr,i=id(e.schema).cell.createAndFill().content;A.forEachCell(((e,t)=>{e.content.eq(i)||n.replace(n.mapping.map(t+1),n.mapping.map(t+e.nodeSize-1),new y(i,0,0))})),n.docChanged&&t(n)}return!0}function md(e,t){const A=od(e.state.doc.resolve(t));return!!A&&(e.dispatch(e.state.tr.setSelection(new Qd(A))),!0)}function Ud(e,t,A){if(!sd(e.state))return!1;let n=function(e){if(!e.size)return null;let{content:t,openStart:A,openEnd:n}=e;for(;1==t.childCount&&(A>0&&n>0||"table"==t.child(0).type.spec.tableRole);)A--,n--,t=t.child(0).content;const i=t.child(0),r=i.type.spec.tableRole,o=i.type.schema,s=[];if("row"==r)for(let e=0;e=0;t--){const{rowspan:i,colspan:r}=n.child(t).attrs;for(let t=e;t=t.length&&t.push(H.empty),A[i]n&&(s=s.type.createChecked(gd(s.attrs,s.attrs.colspan,A+s.attrs.colspan-n),s.content)),o.push(s),A+=s.attrs.colspan;for(let A=1;Ai&&(t=t.type.create({...t.attrs,rowspan:Math.max(1,i-t.attrs.rowspan)},t.content)),o.push(t)}e.push(H.from(o))}A=e,t=i}return{width:e,height:t,rows:A}}(n,o.right-o.left,o.bottom-o.top),Gd(e.state,e.dispatch,r,o,n),!0}if(n){const t=Ed(e.state),A=t.start(-1);return Gd(e.state,e.dispatch,A,Ad.get(t.node(-1)).findCell(t.pos-A),n),!0}return!1}function Sd(e,t){var A;if(t.ctrlKey||t.metaKey)return;const n=bd(e,t.target);let i;if(t.shiftKey&&e.state.selection instanceof Qd)r(e.state.selection.$anchorCell,t),t.preventDefault();else if(t.shiftKey&&n&&null!=(i=od(e.state.selection.$anchor))&&(null==(A=yd(e,t))?void 0:A.pos)!=i.pos)r(i,t),t.preventDefault();else if(!n)return;function r(t,A){let n=yd(e,A);const i=null==rd.getState(e.state);if(!n||!cd(t,n)){if(!i)return;n=t}const r=new Qd(t,n);if(i||!e.state.selection.eq(r)){const A=e.state.tr.setSelection(r);i&&A.setMeta(rd,t.pos),e.dispatch(A)}}function o(){e.root.removeEventListener("mouseup",o),e.root.removeEventListener("dragstart",o),e.root.removeEventListener("mousemove",s),null!=rd.getState(e.state)&&e.dispatch(e.state.tr.setMeta(rd,-1))}function s(A){const i=A,s=rd.getState(e.state);let E;if(null!=s)E=e.state.doc.resolve(s);else if(bd(e,i.target)!=n&&(E=yd(e,t),!E))return o();E&&r(E,i)}e.root.addEventListener("mouseup",o),e.root.addEventListener("dragstart",o),e.root.addEventListener("mousemove",s)}function Nd(e,t,A){if(!(e.state.selection instanceof G))return null;const{$head:n}=e.state.selection;for(let i=n.depth-1;i>=0;i--){const r=n.node(i);if((A<0?n.index(i):n.indexAfter(i))!=(A<0?0:r.childCount))return null;if("cell"==r.type.spec.tableRole||"header_cell"==r.type.spec.tableRole){const r=n.before(i);return e.endOfTextblock("vert"==t?A>0?"down":"up":A>0?"right":"left")?r:null}}return null}function bd(e,t){for(;t&&t!=e.dom;t=t.parentNode)if("TD"==t.nodeName||"TH"==t.nodeName)return t;return null}function yd(e,t){const A=e.posAtCoords({left:t.clientX,top:t.clientY});return A&&A?od(e.state.doc.resolve(A.pos)):null}var pd=class{constructor(e,t){this.node=e,this.cellMinWidth=t,this.dom=document.createElement("div"),this.dom.className="tableWrapper",this.table=this.dom.appendChild(document.createElement("table")),this.colgroup=this.table.appendChild(document.createElement("colgroup")),Td(e,this.colgroup,this.table,t),this.contentDOM=this.table.appendChild(document.createElement("tbody"))}update(e){return e.type==this.node.type&&(this.node=e,Td(e,this.colgroup,this.table,this.cellMinWidth),!0)}ignoreMutation(e){return"attributes"==e.type&&(e.target==this.table||this.colgroup.contains(e.target))}};function Td(e,t,A,n,i,r){var o;let s=0,E=!0,B=t.firstChild;const c=e.firstChild;if(c){for(let e=0,A=0;e(i.spec.props.nodeViews[id(n.schema).table.name]=(e,n)=>new A(e,t,n),new zd(-1,!1)),apply:(e,t)=>t.apply(e)},props:{attributes:e=>{const t=Hd.getState(e);return t&&t.activeHandle>-1?{class:"resize-cursor"}:{}},handleDOMEvents:{mousemove:(t,A)=>{!function(e,t,A,n,i){const r=Hd.getState(e.state);if(r&&!r.dragging){const n=function(e){for(;e&&"TD"!=e.nodeName&&"TH"!=e.nodeName;)e=e.classList&&e.classList.contains("ProseMirror")?null:e.parentNode;return e}(t.target);let o=-1;if(n){const{left:i,right:r}=n.getBoundingClientRect();t.clientX-i<=A?o=Jd(e,t,"left",A):r-t.clientX<=A&&(o=Jd(e,t,"right",A))}if(o!=r.activeHandle){if(!i&&-1!==o){const t=e.state.doc.resolve(o),A=t.node(-1),n=Ad.get(A),i=t.start(-1);if(n.colCount(t.pos-i)+t.nodeAfter.attrs.colspan-1==n.width-1)return}Zd(e,o)}}}(t,A,e,0,n)},mouseleave:e=>{!function(e){const t=Hd.getState(e.state);t&&t.activeHandle>-1&&!t.dragging&&Zd(e,-1)}(e)},mousedown:(e,A)=>{!function(e,t,A){var n;const i=null!=(n=e.dom.ownerDocument.defaultView)?n:window,r=Hd.getState(e.state);if(!r||-1==r.activeHandle||r.dragging)return!1;const o=e.state.doc.nodeAt(r.activeHandle),s=function(e,t,{colspan:A,colwidth:n}){const i=n&&n[n.length-1];if(i)return i;const r=e.domAtPos(t);let o=r.node.childNodes[r.offset].offsetWidth,s=A;if(n)for(let e=0;e{const t=Hd.getState(e);if(t&&t.activeHandle>-1)return function(e,t){const A=[],n=e.doc.resolve(t),i=n.node(-1);if(!i)return C.empty;const r=Ad.get(i),o=n.start(-1),s=r.colCount(n.pos-o)+n.nodeAfter.attrs.colspan;for(let e=0;e-1&&t.docChanged){let n=t.mapping.map(A.activeHandle,-1);return Bd(t.doc.resolve(n))||(n=-1),new e(n,A.dragging)}return A}};function Jd(e,t,A,n){const i=e.posAtCoords({left:t.clientX+("right"==A?-n:n),top:t.clientY});if(!i)return-1;const{pos:r}=i,o=od(e.state.doc.resolve(r));if(!o)return-1;if("right"==A)return o.pos;const s=Ad.get(o.node(-1)),E=o.start(-1),B=s.map.indexOf(o.pos-E);return B%s.width==0?-1:E+s.map[B-1]}function jd(e,t,A){return Math.max(A,e.startWidth+(t.clientX-e.startX))}function Zd(e,t){e.dispatch(e.state.tr.setMeta(Hd,{setHandle:t}))}function vd(e){const t=e.selection,A=Ed(e),n=A.node(-1),i=A.start(-1),r=Ad.get(n);return{...t instanceof Qd?r.rectBetween(t.$anchorCell.pos-i,t.$headCell.pos-i):r.findCell(A.pos-i),tableStart:i,map:r,table:n}}function Pd(e,{map:t,tableStart:A,table:n},i){let r=i>0?-1:0;(function(e,t,A){const n=id(t.type.schema).header_cell;for(let i=0;i0&&i0&&t.map[s-1]==E||i0?-1:0;(function(e,t,A){var n;const i=id(t.type.schema).header_cell;for(let r=0;r0&&i0&&B==t.map[o-t.width]){const t=A.nodeAt(B).attrs;e.setNodeMarkup(e.mapping.slice(s).map(B+n),null,{...t,rowspan:t.rowspan-1}),r+=t.colspan-1}else if(i0&&A[r]==A[r-1]||n.right0&&A[i]==A[i-e]||n.bottomA[e.type.spec.tableRole],(e,t)=>{var A;const i=e.selection;let r,o;if(i instanceof Qd){if(i.$anchorCell.pos!=i.$headCell.pos)return!1;r=i.$anchorCell.nodeAfter,o=i.$anchorCell.pos}else{if(r=function(e){for(let t=e.depth;t>0;t--){const A=e.node(t).type.spec.tableRole;if("cell"===A||"header_cell"===A)return e.node(t)}return null}(i.$from),!r)return!1;o=null==(A=od(i.$from))?void 0:A.pos}if(null==r||null==o)return!1;if(1==r.attrs.colspan&&1==r.attrs.rowspan)return!1;if(t){let A=r.attrs;const s=[],E=A.colwidth;A.rowspan>1&&(A={...A,rowspan:1}),A.colspan>1&&(A={...A,colspan:1});const B=vd(e),c=e.tr;for(let e=0;ei.table.nodeAt(e)));for(let e=0;e{const t=e+i.tableStart,A=r.doc.nodeAt(t);A&&r.setNodeMarkup(t,B,A.attrs)})),A(r)}return!0}}qd("row",{useDeprecatedLogic:!0}),qd("column",{useDeprecatedLogic:!0});var $d=qd("cell",{useDeprecatedLogic:!0});function ek(e){return function(t,A){if(!sd(t))return!1;const n=function(e,t){if(t<0){const t=e.nodeBefore;if(t)return e.pos-t.nodeSize;for(let t=e.index(-1)-1,A=e.before();t>=0;t--){const n=e.node(-1).child(t),i=n.lastChild;if(i)return A-1-i.nodeSize;A-=n.nodeSize}}else{if(e.index()null,apply(e,t){const A=e.getMeta(rd);if(null!=A)return-1==A?null:A;if(null==t||!e.docChanged)return t;const{deleted:n,pos:i}=e.mapping.mapResult(t);return n?null:i}},props:{decorations:ud,handleDOMEvents:{mousedown:Sd},createSelectionBetween:e=>null!=rd.getState(e.state)?e.state.selection:null,handleTripleClick:md,handleKeyDown:Cd,handlePaste:Ud},appendTransaction:(t,A,n)=>function(e,t,A){const n=(t||e).selection,i=(t||e).doc;let r,o;if(n instanceof p&&(o=n.node.type.spec.tableRole)){if("cell"==o||"header_cell"==o)r=Qd.create(i,n.from);else if("row"==o){const e=i.resolve(n.from+1);r=Qd.rowSelection(e,e)}else if(!A){const e=Ad.get(n.node),t=n.from+1;r=Qd.create(i,t+1,t+e.map[e.width*e.height-1])}}else n instanceof G&&function({$from:e,$to:t}){if(e.pos==t.pos||e.pos=0&&!(e.after(i+1)=0&&!(t.before(e+1)>t.start(e));e--,n--);return A==n&&/row|table/.test(e.node(i).type.spec.tableRole)}(n)?r=G.create(i,n.from):n instanceof G&&function({$from:e,$to:t}){let A,n;for(let t=e.depth;t>0;t--){const n=e.node(t);if("cell"===n.type.spec.tableRole||"header_cell"===n.type.spec.tableRole){A=n;break}}for(let e=t.depth;e>0;e--){const A=t.node(e);if("cell"===A.type.spec.tableRole||"header_cell"===A.type.spec.tableRole){n=A;break}}return A!==n&&0===t.parentOffset}(n)&&(r=G.create(i,n.$from.start(),n.$from.end()));return r&&(t||(t=e.tr)).setSelection(r),t}(n,Rd(n,A),e)})}function Ak(e,t,A,n,i,r){let o=0,s=!0,E=t.firstChild;const B=e.firstChild;for(let e=0,A=0;e{const{selection:t}=e.state;if(!function(e){return e instanceof Qd}(t))return!1;let A=0;const n=X(t.ranges[0].$from,(e=>"table"===e.type.name));return null==n||n.node.descendants((e=>{if("table"===e.type.name)return!1;["tableCell","tableHeader"].includes(e.type.name)&&(A+=1)})),A===t.ranges.length&&(e.commands.deleteTable(),!0)},ok=R.create({name:"table",addOptions:()=>({HTMLAttributes:{},resizable:!1,handleWidth:5,cellMinWidth:25,View:nk,lastColumnResizable:!0,allowTableNodeSelection:!1}),content:"tableRow+",tableRole:"table",isolating:!0,group:"block",parseHTML:()=>[{tag:"table"}],renderHTML({node:e,HTMLAttributes:t}){const{colgroup:A,tableWidth:n,tableMinWidth:i}=function(e,t){let A=0,n=!0;const i=[],r=e.firstChild;if(!r)return{};for(let e=0,o=0;e({insertTable:({rows:e=3,cols:t=3,withHeaderRow:A=!0}={})=>({tr:n,dispatch:i,editor:r})=>{const o=function(e,t,A,n,i){const r=function(e){if(e.cached.tableNodeTypes)return e.cached.tableNodeTypes;const t={};return Object.keys(e.nodes).forEach((A=>{const n=e.nodes[A];n.spec.tableRole&&(t[n.spec.tableRole]=n)})),e.cached.tableNodeTypes=t,t}(e),o=[],s=[];for(let e=0;e({state:e,dispatch:t})=>function(e,t){if(!sd(e))return!1;if(t){const A=vd(e);t(Pd(e.tr,A,A.left))}return!0}(e,t),addColumnAfter:()=>({state:e,dispatch:t})=>function(e,t){if(!sd(e))return!1;if(t){const A=vd(e);t(Pd(e.tr,A,A.right))}return!0}(e,t),deleteColumn:()=>({state:e,dispatch:t})=>function(e,t){if(!sd(e))return!1;if(t){const A=vd(e),n=e.tr;if(0==A.left&&A.right==A.map.width)return!1;for(let e=A.right-1;Ld(n,A,e),e!=A.left;e--){const e=A.tableStart?n.doc.nodeAt(A.tableStart-1):n.doc;if(!e)throw RangeError("No table found");A.table=e,A.map=Ad.get(e)}t(n)}return!0}(e,t),addRowBefore:()=>({state:e,dispatch:t})=>function(e,t){if(!sd(e))return!1;if(t){const A=vd(e);t(Vd(e.tr,A,A.top))}return!0}(e,t),addRowAfter:()=>({state:e,dispatch:t})=>function(e,t){if(!sd(e))return!1;if(t){const A=vd(e);t(Vd(e.tr,A,A.bottom))}return!0}(e,t),deleteRow:()=>({state:e,dispatch:t})=>function(e,t){if(!sd(e))return!1;if(t){const A=vd(e),n=e.tr;if(0==A.top&&A.bottom==A.map.height)return!1;for(let e=A.bottom-1;Od(n,A,e),e!=A.top;e--){const e=A.tableStart?n.doc.nodeAt(A.tableStart-1):n.doc;if(!e)throw RangeError("No table found");A.table=e,A.map=Ad.get(A.table)}t(n)}return!0}(e,t),deleteTable:()=>({state:e,dispatch:t})=>function(e,t){const A=e.selection.$anchor;for(let n=A.depth;n>0;n--)if("table"==A.node(n).type.spec.tableRole)return t&&t(e.tr.delete(A.before(n),A.after(n)).scrollIntoView()),!0;return!1}(e,t),mergeCells:()=>({state:e,dispatch:t})=>Kd(e,t),splitCell:()=>({state:e,dispatch:t})=>Wd(e,t),toggleHeaderColumn:()=>({state:e,dispatch:t})=>qd("column")(e,t),toggleHeaderRow:()=>({state:e,dispatch:t})=>qd("row")(e,t),toggleHeaderCell:()=>({state:e,dispatch:t})=>$d(e,t),mergeOrSplit:()=>({state:e,dispatch:t})=>!!Kd(e,t)||Wd(e,t),setCellAttribute:(e,t)=>({state:A,dispatch:n})=>function(e,t){return function(A,n){if(!sd(A))return!1;const i=Ed(A);if(i.nodeAfter.attrs[e]===t)return!1;if(n){const r=A.tr;A.selection instanceof Qd?A.selection.forEachCell(((A,n)=>{A.attrs[e]!==t&&r.setNodeMarkup(n,null,{...A.attrs,[e]:t})})):r.setNodeMarkup(i.pos,null,{...i.nodeAfter.attrs,[e]:t}),n(r)}return!0}}(e,t)(A,n),goToNextCell:()=>({state:e,dispatch:t})=>ek(1)(e,t),goToPreviousCell:()=>({state:e,dispatch:t})=>ek(-1)(e,t),fixTables:()=>({state:e,dispatch:t})=>(t&&Rd(e),!0),setCellSelection:e=>({tr:t,dispatch:A})=>{if(A){const A=Qd.create(t.doc,e.anchorCell,e.headCell);t.setSelection(A)}return!0}}),addKeyboardShortcuts(){return{Tab:()=>!!this.editor.commands.goToNextCell()||!!this.editor.can().addRowAfter()&&this.editor.chain().addRowAfter().goToNextCell().run(),"Shift-Tab":()=>this.editor.commands.goToPreviousCell(),Backspace:rk,"Mod-Backspace":rk,Delete:rk,"Mod-Delete":rk}},addProseMirrorPlugins(){return[...this.options.resizable&&this.editor.isEditable?[xd({handleWidth:this.options.handleWidth,cellMinWidth:this.options.cellMinWidth,View:this.options.View,lastColumnResizable:this.options.lastColumnResizable})]:[],tk({allowTableNodeSelection:this.options.allowTableNodeSelection})]},extendNodeSchema:e=>({tableRole:x(z(e,"tableRole",{name:e.name,options:e.options,storage:e.storage}))})}),sk=R.create({name:"tableCell",addOptions:()=>({HTMLAttributes:{}}),content:"block+",addAttributes:()=>({colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:e=>{const t=e.getAttribute("colwidth");return t?[parseInt(t,10)]:null}}}),tableRole:"cell",isolating:!0,parseHTML:()=>[{tag:"td"}],renderHTML({HTMLAttributes:e}){return["td",l(this.options.HTMLAttributes,e),0]}}),Ek=R.create({name:"tableHeader",addOptions:()=>({HTMLAttributes:{}}),content:"block+",addAttributes:()=>({colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:e=>{const t=e.getAttribute("colwidth");return t?[parseInt(t,10)]:null}}}),tableRole:"header_cell",isolating:!0,parseHTML:()=>[{tag:"th"}],renderHTML({HTMLAttributes:e}){return["th",l(this.options.HTMLAttributes,e),0]}}),Bk=R.create({name:"tableRow",addOptions:()=>({HTMLAttributes:{}}),content:"(tableCell | tableHeader)*",tableRole:"row",parseHTML:()=>[{tag:"tr"}],renderHTML({HTMLAttributes:e}){return["tr",l(this.options.HTMLAttributes,e),0]}}),ck=sk.extend({addAttributes:()=>({colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:e=>{const t=e.getAttribute("colwidth");return Boolean(t)?[parseInt(t,10)]:null},renderHTML:e=>e.colwidth?{style:`width: ${e.colwidth[0]}px;`}:{}}}),renderHTML({HTMLAttributes:e}){return["td",l(this.options.HTMLAttributes,e,{style:"border: 1px solid black; padding: 5px;"}),0]}}),ak=Ek.extend({addAttributes:()=>({colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:e=>{const t=e.getAttribute("colwidth");return Boolean(t)?[parseInt(t,10)]:null},renderHTML:e=>e.colwidth?{style:`width: ${e.colwidth[0]}px;`}:{}}}),renderHTML({HTMLAttributes:e}){return["th",l(this.options.HTMLAttributes,e,{style:"border: 1px solid black; padding: 5px;"}),0]}}),gk=ok.extend({renderHTML({HTMLAttributes:e}){return["table",l(this.options.HTMLAttributes,e,{style:"border-collapse: collapse; border: 1px solid black;"}),["tbody",0]]}}),lk=R.create({name:"iframe",group:"block",atom:!0,addOptions:()=>({HTMLAttributes:{class:"iframe-wrapper"}}),addAttributes:()=>({src:{default:null},frameborder:{default:0},width:{default:null},height:{default:null}}),parseHTML:()=>[{tag:"iframe"}],renderHTML({HTMLAttributes:e}){return["div",this.options.HTMLAttributes,["iframe",e]]},addCommands(){return{setIframe:e=>({tr:t,dispatch:A})=>{const{selection:n}=t,i=this.type.create(e);return Boolean(A)&&t.replaceRangeWith(n.from,n.to,i),!0}}}}),Qk=R.create({name:"embed",group:"block",atom:!0,addOptions:()=>({HTMLAttributes:{class:"embed-wrapper"}}),addAttributes:()=>({src:{default:null},type:{default:"text/html"},width:{default:null},height:{default:null}}),parseHTML:()=>[{tag:"embed"}],renderHTML({HTMLAttributes:e}){return["div",this.options.HTMLAttributes,["embed",e]]},addCommands(){return{setEmbed:e=>({tr:t,dispatch:A})=>{const{selection:n}=t,i=this.type.create(e);return Boolean(A)&&t.replaceRangeWith(n.from,n.to,i),!0}}}}),hk=tg.extend({addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak(),Enter:()=>{const{state:e}=this.editor,{selection:t}=e,{$from:A}=t;if("paragraph"===A.parent.type.name){const{nodeBefore:e}=A;return e&&"hardBreak"===e.type.name?(this.editor.commands.deleteRange({from:A.pos-1,to:A.pos}),!1):this.editor.commands.setHardBreak()}}}}});function uk(e){var t;const{char:A,allowSpaces:n,allowedPrefixes:i,startOfLine:r,$position:o}=e,s=q(A),E=new RegExp(`\\s${s}$`),B=r?"^":"",c=n?new RegExp(`${B}${s}.*?(?=\\s${s}|$)`,"gm"):new RegExp(`${B}(?:^)?${s}[^\\s${s}]*`,"gm"),a=(null===(t=o.nodeBefore)||void 0===t?void 0:t.isText)&&o.nodeBefore.text;if(!a)return null;const g=o.pos-a.length,l=Array.from(a.matchAll(c)).pop();if(!l||void 0===l.input||void 0===l.index)return null;const Q=l.input.slice(Math.max(0,l.index-1),l.index),h=new RegExp(`^[${null==i?void 0:i.join("")}\0]?$`).test(Q);if(null!==i&&!h)return null;const u=g+l.index;let w=u+l[0].length;return n&&E.test(a.slice(w-1,w+1))&&(l[0]+=" ",w+=1),u=o.pos?{range:{from:u,to:w},query:l[0].slice(A.length),text:l[0]}:null}const wk=new o("suggestion");function Mk({pluginKey:e=wk,editor:t,char:A="@",allowSpaces:n=!1,allowedPrefixes:i=[" "],startOfLine:o=!1,decorationTag:s="span",decorationClass:E="suggestion",command:B=(()=>null),items:c=(()=>[]),render:a=(()=>({})),allow:g=(()=>!0),findSuggestionMatch:l=uk}){let Q;const h=null==a?void 0:a(),u=new r({key:e,view(){return{update:async(e,A)=>{var n,i,r,o,s,E,a;const g=null===(n=this.key)||void 0===n?void 0:n.getState(A),l=null===(i=this.key)||void 0===i?void 0:i.getState(e.state),u=g.active&&l.active&&g.range.from!==l.range.from,w=!g.active&&l.active,M=g.active&&!l.active,R=w||u,I=!w&&!M&&g.query!==l.query&&!u,d=M||u;if(!R&&!I&&!d)return;const k=d&&!R?g:l,G=e.dom.querySelector(`[data-decoration-id="${k.decorationId}"]`);Q={editor:t,range:k.range,query:k.query,text:k.text,items:[],command:e=>B({editor:t,range:k.range,props:e}),decorationNode:G,clientRect:G?()=>{var A;const{decorationId:n}=null===(A=this.key)||void 0===A?void 0:A.getState(t.state),i=e.dom.querySelector(`[data-decoration-id="${n}"]`);return(null==i?void 0:i.getBoundingClientRect())||null}:null},R&&(null===(r=null==h?void 0:h.onBeforeStart)||void 0===r||r.call(h,Q)),I&&(null===(o=null==h?void 0:h.onBeforeUpdate)||void 0===o||o.call(h,Q)),(I||R)&&(Q.items=await c({editor:t,query:k.query})),d&&(null===(s=null==h?void 0:h.onExit)||void 0===s||s.call(h,Q)),I&&(null===(E=null==h?void 0:h.onUpdate)||void 0===E||E.call(h,Q)),R&&(null===(a=null==h?void 0:h.onStart)||void 0===a||a.call(h,Q))},destroy:()=>{var e;Q&&(null===(e=null==h?void 0:h.onExit)||void 0===e||e.call(h,Q))}}},state:{init:()=>({active:!1,range:{from:0,to:0},query:null,text:null,composing:!1}),apply(e,r,s,E){const{isEditable:B}=t,{composing:c}=t.view,{selection:a}=e,{empty:Q,from:h}=a,u={...r};if(u.composing=c,B&&(Q||t.view.composing)){!(hr.range.to)||c||r.composing||(u.active=!1);const e=l({char:A,allowSpaces:n,allowedPrefixes:i,startOfLine:o,$position:a.$from}),s=`id_${Math.floor(4294967295*Math.random())}`;e&&g({editor:t,state:E,range:e.range})?(u.active=!0,u.decorationId=r.decorationId?r.decorationId:s,u.range=e.range,u.query=e.query,u.text=e.text):u.active=!1}else u.active=!1;return u.active||(u.decorationId=null,u.range={from:0,to:0},u.query=null,u.text=null),u}},props:{handleKeyDown(e,t){var A;const{active:n,range:i}=u.getState(e.state);return n&&(null===(A=null==h?void 0:h.onKeyDown)||void 0===A?void 0:A.call(h,{view:e,event:t,range:i}))||!1},decorations(e){const{active:t,range:A,decorationId:n}=u.getState(e);return t?C.create(e.doc,[D.inline(A.from,A.to,{nodeName:s,class:E,"data-decoration-id":n})]):null}}});return u}const Rk="shash-menu",Ik=e=>{const{clientRect:t}=e;if(null===t)return e.editor.storage[Rk].rect;const A=t();return Boolean(A)?A:e.editor.storage[Rk].rect},dk=(e,t)=>""===t?e:e.filter((({title:e,label:A,alias:n})=>[e,A,...n].some((e=>e.toLowerCase().includes(t.toLowerCase()))))),kk=s.create({name:Rk,addProseMirrorPlugins(){return[Mk({pluginKey:new o(Rk),char:"/",allowSpaces:!0,startOfLine:!0,allow:({state:e,range:t})=>{var A;const n=e.doc.resolve(t.from),i=1===n.depth,r="paragraph"===n.parent.type.name,o="/"===(null===(A=n.parent.textContent)||void 0===A?void 0:A.charAt(0));return i&&r&&o},command:({editor:e,props:t})=>{var A,n,i;const{view:r,state:o}=e,{$head:s,$from:E}=o.selection,B=E.pos,c=Boolean(null==s?void 0:s.nodeBefore)?B-(null!==(i=null===(A=s.nodeBefore.text)||void 0===A?void 0:A.substring(null===(n=s.nodeBefore.text)||void 0===n?void 0:n.indexOf("/")).length)&&void 0!==i?i:0):E.start(),a=o.tr.deleteRange(c,B);r.dispatch(a),t.action(e),r.focus()},editor:this.editor,items:({query:e})=>{const t=(e=>{const t=Boolean(e.storage.markdown);return[{group:"format",items:[...ae.map((A=>({icon:`ci-heading_h${A}`,title:$.getString(`menu.heading.${A}`),label:$.getString(`menu.heading.${A}`),alias:$.getPronunciation(`menu.heading.${A}`).split(","),action:()=>{let n=e.chain().focus().toggleHeading({level:A});return t||(n=n.unsetFontSize()),n.run()}}))),{icon:"ci-list_unordered",title:$.getString("menu.list.bullet"),label:$.getString("menu.list.bullet"),alias:$.getPronunciation("menu.list.bullet").split(","),action:()=>e.chain().focus().toggleBulletList().run()},{icon:"ci-list_ordered",title:$.getString("menu.list.ordered"),label:$.getString("menu.list.ordered"),alias:$.getPronunciation("menu.list.ordered").split(","),action:()=>e.chain().focus().toggleOrderedList().run()},...t?[]:[{icon:"ci-list_checklist",title:$.getString("menu.list.task"),label:$.getString("menu.list.task"),alias:$.getPronunciation("menu.list.task").split(","),action:()=>e.chain().focus().toggleTaskList().run()}],{icon:"ci-double_quotes_l",title:$.getString("menu.quote"),label:$.getString("menu.quote"),alias:$.getPronunciation("menu.quote").split(","),action:()=>e.chain().focus().toggleBlockquote().run(),isActive:()=>e.isActive("blockquote")}]},{group:"insert",items:[{icon:"ci-image_02",title:$.getString("menu.image"),label:$.getString("menu.image"),alias:$.getPronunciation("menu.image").split(","),action:()=>{const t=document.createElement("input");t.setAttribute("type","file"),t.setAttribute("accept","image/jpeg,image/gif,image/png,image/jpg"),t.onchange=t=>{const{files:A}=t.target;Boolean(A.length)&&e.chain().focus().uploadImage(A.item(0)).run()},t.click()}},{icon:"ci-table",title:$.getString("menu.table"),label:$.getString("menu.table"),alias:$.getPronunciation("menu.table").split(","),action:()=>e.chain().focus().insertTable({rows:3,cols:4,withHeaderRow:Boolean(e.storage.markdown)}).run()},{icon:"ci-remove_minus",title:$.getString("menu.hr"),label:$.getString("menu.hr"),alias:$.getPronunciation("menu.hr").split(","),action:()=>e.chain().focus().setHorizontalRule().run()}]}]})(this.editor);return"group"in t[0]?t.map((t=>{const A=dk(t.items,e);return 0===A.length?null:{group:t.group,items:A}})).filter((e=>Boolean(e))):dk(t,e)},render:()=>{let e,t;return{onStart:A=>{e=document.createElement("zen-editor-slash-menu"),e.editor=this.editor,e.items=A.items,e.props=A,t=a("body",{getReferenceClientRect:()=>Ik(A),appendTo:()=>{var e,t,A,n;return null===document.fullscreenElement?document.body:null===(n=null===(A=null===(t=null===(e=document.fullscreenElement)||void 0===e?void 0:e.shadowRoot)||void 0===t?void 0:t.querySelector("zen-editor-core"))||void 0===A?void 0:A.shadowRoot)||void 0===n?void 0:n.querySelector(".editor")},content:e,showOnCreate:!0,interactive:!0,trigger:"manual",placement:"bottom-start"})},onUpdate:A=>{e.items=A.items,t[0].setProps({getReferenceClientRect:()=>Ik(A)})},onKeyDown:A=>{var n;return"Escape"===A.event.key?(t[0].hide(),!0):(null==t?void 0:t[0].state.isShown)?null===(n=e.onkeydown)||void 0===n?void 0:n.call(e,A.event):void(null==t||t[0].show())},onExit:()=>{t[0].destroy(),e.remove()}}}})]},addStorage:()=>({rect:{width:0,height:0,left:0,top:0,right:0,bottom:0}})}),Gk=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,Ck=R.create({name:"image",addOptions:()=>({inline:!1,allowBase64:!1,HTMLAttributes:{}}),inline(){return this.options.inline},group(){return this.options.inline?"inline":"block"},draggable:!0,addAttributes:()=>({src:{default:null},alt:{default:null},title:{default:null}}),parseHTML(){return[{tag:this.options.allowBase64?"img[src]":'img[src]:not([src^="data:"])'}]},renderHTML({HTMLAttributes:e}){return["img",l(this.options.HTMLAttributes,e)]},addCommands(){return{setImage:e=>({commands:t})=>t.insertContent({type:this.name,attrs:e})}},addInputRules(){return[j({find:Gk,type:this.type,getAttributes:e=>{const[,,t,A,n]=e;return{src:A,alt:t,title:n}}})]}}).extend({name:"resizableImage",addOptions:()=>({inline:!1,allowBase64:!1,HTMLAttributes:{}}),addAttributes(){var e;return Object.assign(Object.assign({},null===(e=this.parent)||void 0===e?void 0:e.call(this)),{width:{default:"100%",renderHTML:e=>({width:e.width})},height:{default:"auto",renderHTML:e=>({height:e.height})}})},addNodeView:()=>({editor:e,node:t,getPos:A})=>{const n=document.createElement("div");n.classList.add("resizable-image-holder");const i=document.createElement("img"),{src:r,width:o,height:s}=t.attrs;i.src=r,i.style.width=Number.isInteger(o)?`${o}px`:o,i.style.height=Number.isInteger(s)?`${s}px`:s,n.append(i);const E=document.createElement("div");E.classList.add("resizable-image-handle"),n.append(E);const B=document.createElement("div");return B.classList.add("resizable-image-size"),B.textContent=`${Number.isInteger(o)?o:"auto"} × ${Number.isInteger(s)?s:"auto"}`,n.append(B),new ResizeObserver((()=>{B.style.transform=B.offsetWidth>B.parentElement.offsetWidth?`translateX(${B.clientWidth}px)`:"none"})).observe(B),E.onmousedown=r=>{r.preventDefault(),n.classList.add("is-dragging");const o=i.width,s=i.height,E=r.clientX,c=e=>{const t=o+(e.clientX-E),A=t/(o/s);t<10||A<10||(i.width=t,i.height=A,i.style.width=`${t}px`,i.style.height=`${A}px`,B.textContent=`${t} × ${Math.round(A)}`)},a=()=>{document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",a),n.classList.remove("is-dragging");const{width:r,height:o}=i;if(B.textContent=`${r} × ${o}`,"function"==typeof A){const{view:n}=e,i=n.state.tr.setNodeMarkup(A(),null,Object.assign(Object.assign({},t.attrs),{width:r,height:o}));n.dispatch(i),e.commands.focus()}};document.addEventListener("mousemove",c),document.addEventListener("mouseup",a,{once:!0})},{dom:n}},addInputRules(){return[j({find:/(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,type:this.type,getAttributes:e=>{const[,,t,A,n,i,r,o]=e;return{src:A,alt:t,title:n,height:i,width:r,isDraggable:o}}})]},addStorage:()=>({markdown:{serialize(e,t){if(!t.attrs.src||t.attrs.src.startsWith("data:"))return"";e.write(`![${e.esc(t.attrs.alt||"")}](${e.esc(t.attrs.src)})`)}}})}),fk=e=>{const{preferHardBreak:t,markdown:A,neglectDefaultTextStyle:n,uploadUrl:i,placeholder:r,slashMenu:o}=e,{lowlight:s}=pB,E=[];E.push(zg.configure(Object.assign({history:!1,codeBlock:!1},t?{}:{hardBreak:!1})),Mr,kr,To.configure({lowlight:s}),gk.configure({resizable:!0,cellMinWidth:48}),Bk,ak,ck,Ck.configure({inline:!0}),qI.configure({uploadUrl:i}),da,BR,fa.configure({placeholder:r}),Ae,...o?[kk]:[],hr);const B=(({collaborative:e,ydoc:t,hocuspocus:A,docName:n,username:i,userColor:r})=>e?null===t||[A,n,i,r].some((e=>""===e))?(console.warn("Some options required for collaborative editing are missing. Disabling collaboration."),[]):[Gl.configure({document:t}),Dl.configure({provider:new Ih({url:A,name:n,document:t}),user:{name:i,color:r}})]:[])(e);return B.length>0?E.push(...B):E.push(kg.configure({depth:50,newGroupDelay:500})),A?(E.push(sR.configure({html:!1,transformPastedText:!0,transformCopiedText:!0})),E):(E.push(ne.extend({priority:1e3}),Fa,re,Ya,ka,Ga,...t?[hk]:[],...n?[]:[$I],dr,Ir,Ca.configure({types:["heading","paragraph"]}),se,Da,lk,Qk),E)},Dk=class{constructor(t){e(this,t),this.editorDidLoad=n(this,"editorDidLoad",7),this.lastRAF=0,this.lastUpdateTimer=0,this.isComposition=!1,this.toggleMonaco=async()=>{if(this.isMonaco){const e=await this.monacoEditor.getValue();this.editor.chain().setContent(e).run()}this.isMonaco=!this.isMonaco},this.name="",this.readonly=!1,this.uploadUrl="",this.placeholder="",this.initialContent="",this.resizable=!1,this.exposeEditor=!1,this.size="sm",this.hideUI=!1,this.hideMenubar=!1,this.menubarMode="full",this.extraMenubarItems="",this.slashMenu=!1,this.bubbleMenu=!1,this.preferHardBreak=!1,this.neglectDefaultTextStyle=!1,this.markdown=!1,this.locale=void 0,this.styles=void 0,this.collaborative=!1,this.hocuspocus="",this.docName="",this.username="",this.userColor="#ffcc00",this.updateInputValue=void 0,this.fullscreenable=!1,this.toggleFullscreen=void 0,this.isFullscreen=!1,this.value=void 0,this.editor=null,this.forceUpdateCounter=0,this.isMonaco=!1}forceUpdate(){this.forceUpdateCounter>1e3?this.forceUpdateCounter=0:this.forceUpdateCounter++}tryForceUpdate(){Boolean(this.lastUpdateTimer)&&cancelAnimationFrame(this.lastUpdateTimer),this.lastUpdateTimer=requestAnimationFrame((()=>{this.forceUpdate(),this.lastUpdateTimer=0}))}handleInput(){Boolean(this.lastRAF)&&cancelAnimationFrame(this.lastRAF),this.lastRAF=requestAnimationFrame((()=>{this.tryForceUpdate(),this.updateInputValue(),this.lastRAF=0}))}onLocaleChanage(){void 0!==this.locale&&($.setLocale(this.locale),this.forceUpdate())}connectedCallback(){void 0!==this.locale&&$.setLocale(this.locale),setTimeout((()=>{this.ydoc=this.collaborative?new YA:null,this.editor=new Qr({extensions:fk({collaborative:this.collaborative,preferHardBreak:this.preferHardBreak,markdown:this.markdown,neglectDefaultTextStyle:this.neglectDefaultTextStyle,uploadUrl:this.uploadUrl,placeholder:this.placeholder,slashMenu:this.slashMenu,hocuspocus:this.hocuspocus,docName:this.docName,username:this.username,userColor:this.userColor,ydoc:this.ydoc}),editorProps:{attributes:{spellcheck:"false"},handleDOMEvents:{compositionstart:()=>{this.isComposition=!0},compositionend:()=>{this.isComposition=!1,this.handleInput()},mouseup:e=>{requestAnimationFrame((()=>{const t=e.pluginViews.find((e=>{var t;return"BubbleMenuView"===(null===(t=e.constructor)||void 0===t?void 0:t.name)}));null==t||t.update(e)}))}},editable:()=>!this.readonly},content:this.value||this.initialContent}),this.editorDidLoad.emit(this.editor),this.editor.on("transaction",(()=>{this.isComposition||this.handleInput()})),this.editor.on("blur",(()=>{Boolean(this.lastRAF)&&cancelAnimationFrame(this.lastRAF),this.lastRAF=requestAnimationFrame((()=>{this.updateInputValue(),this.lastRAF=0}))})),this.updateInputValue(),this.exposeEditor&&(window.$zenEditors||(window.$zenEditors={}),window.$zenEditors[this.name||"ze"]=this.editor)}),0)}componentDidLoad(){Boolean(this.styles&&this.element.shadowRoot)&&(this.element.shadowRoot.adoptedStyleSheets=[...this.element.shadowRoot.adoptedStyleSheets,this.styles])}disconnectedCallback(){Boolean(this.lastUpdateTimer)&&cancelAnimationFrame(this.lastUpdateTimer),Boolean(this.lastRAF)&&cancelAnimationFrame(this.lastRAF),this.editor.destroy()}render(){return Boolean(this.editor)?t("div",{class:`editor${this.isFullscreen?" is-fullscreen":""}${this.resizable?" resizable":""}${"full"===this.size?" full":"auto"===this.size?" size-auto":""}${this.hideUI?" hide-ui":""}`},!this.hideUI&&t(i,null,this.hideMenubar?null:t("zen-editor-menubar",{editor:this.editor,menubarMode:ce[this.markdown?"basic":this.menubarMode],toggleMonaco:this.toggleMonaco,toggleFullscreen:this.fullscreenable&&this.toggleFullscreen,states:{isMonaco:this.isMonaco,isCollaborative:this.collaborative,isFullscreen:this.isFullscreen},forceUpdateCounter:this.forceUpdateCounter,styles:this.styles,extraMenubarItems:this.extraMenubarItems}),this.isMonaco&&t("monaco-editor",{class:`monaco-editor ${this.size}`,ref:e=>this.monacoEditor=e,options:{language:"html",ariaContainerElement:null,value:this.editor.getHTML()},tiptapEditor:this.editor,updateInputValue:this.updateInputValue})),t("zen-editor-content",{class:`editor__content ${this.size}`,editor:this.editor,bubbleMenu:this.bubbleMenu,styles:this.styles,style:{display:this.isMonaco?"none":""}})):null}get element(){return A(this)}static get watchers(){return{locale:["onLocaleChanage"]}}};Dk.style='button,input,select{font-size:inherit;font-family:inherit;color:#333333;margin:0.1em;border:1px solid #333333;border-radius:0.25em;padding:0.1em 0.4em;background:white;accent-color:black}button[disabled],input[disabled],select[disabled]{opacity:0.3}.editor{font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;background-color:#fff;border:1px solid #a6a39e;border-radius:0.25em;color:#0d0d0d;display:flex;flex-direction:column;min-height:10em;max-height:96vh}.editor.resizable{resize:vertical;overflow:hidden}.editor.is-fullscreen{height:100% !important;max-height:unset;resize:none}.editor.size-auto{max-height:unset}.editor.full{min-height:100%}.editor.hide-ui{border:none}.hide-ui .editor__content{cursor:unset}.editor__content{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;padding:0.25em 0.75em 1.25em 1em;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;cursor:text}.editor__content.sm{min-height:3.5em}.editor__content.lg{min-height:14em}.editor__content.full{min-height:100%}.editor__content.narrow{padding:0 0 0 0.5em}.editor__content .collaboration-cursor__caret{border-left:1px solid #0d0d0d;border-right:1px solid #0d0d0d;margin-left:-1px;margin-right:-1px;pointer-events:none;position:relative;word-break:normal}.editor__content .collaboration-cursor__label{border-radius:3px 3px 3px 0;color:#0d0d0d;font-size:12px;font-style:normal;font-weight:600;left:-1px;line-height:normal;padding:0.1em 0.3em;position:absolute;top:-1.4em;user-select:none;white-space:nowrap}.editor__footer{align-items:center;border-top:1px solid #a6a39e;color:#6e6e6e;display:flex;flex:0 0 auto;font-size:12px;flex-wrap:wrap;font-weight:600;justify-content:space-between;padding:0.25em 0.75em;white-space:nowrap}.editor ::-webkit-scrollbar{width:14px;height:14px}.editor ::-webkit-scrollbar-track{border:4px solid transparent;background-clip:padding-box;border-radius:8px;background-color:transparent}.editor ::-webkit-scrollbar-thumb{border:4px solid rgba(0, 0, 0, 0);background-clip:padding-box;border-radius:8px;background-color:rgba(0, 0, 0, 0)}.editor :hover::-webkit-scrollbar-thumb{background-color:rgba(0, 0, 0, 0.1)}.editor ::-webkit-scrollbar-thumb:hover{background-color:rgba(0, 0, 0, 0.15)}.editor ::-webkit-scrollbar-button{display:none;width:0;height:0}.editor ::-webkit-scrollbar-corner{background-color:transparent}.editor .monaco-editor{height:100%;min-height:10em}.editor .monaco-editor.sm{min-height:3.5em}.editor .monaco-editor.lg{min-height:14em}.editor .monaco-editor.full{min-height:100%}';const Fk=class{constructor(t){e(this,t),this.itemProps=void 0,this.menubarMode=void 0,this.styles=void 0}updateMenu(){if(this.menuTippy){const{subMenu:e}=this.itemProps;this.menuContent=document.createElement("div"),this.menuContent.style.padding="0.1em",this.menuContent.style.borderRadius="0.3em",this.menuContent.style.backgroundColor="#fff",this.menuContent.style.border="1px solid #a6a39e",e.forEach((e=>{const t=document.createElement("zen-editor-menu-item"),{menuModeLevel:A}=e;A&&A>this.menubarMode||(t.itemProps=Object.assign(Object.assign({},e),{action:e.action?()=>{e.action(),this.menuTippy.hide()}:null}),this.menuContent.append(t))})),this.menuTippy.setContent(this.menuContent)}}componentDidLoad(){var e;const{subMenu:t}=this.itemProps;t&&(this.menuTippy=a(null!==(e=this.menuTippyTarget)&&void 0!==e?e:this.el,{placement:"bottom-start",trigger:"click",interactive:!0,animation:!1,appendTo:()=>{var e,t,A,n;return null===document.fullscreenElement?document.body:null===(n=null===(A=null===(t=null===(e=document.fullscreenElement)||void 0===e?void 0:e.shadowRoot)||void 0===t?void 0:t.querySelector("zen-editor-core"))||void 0===A?void 0:A.shadowRoot)||void 0===n?void 0:n.querySelector(".editor")}}),this.updateMenu())}componentDidUpdate(){this.menuTippy&&this.updateMenu()}render(){const{icon:e,label:A,title:n,action:r,subMenu:o,isDisabled:s=null,isActive:E=null,flip:B="none"}=this.itemProps;return t(i,{key:"c96b2f3d5aabd000099a64d5c5047e4dc5c10453"},t("button",{key:"a905940caaedc710512eadb20234dd7a2950877e",class:`menu-item${s&&s()?" is-disabled":""}${E&&E()?" is-active":""}${"none"!==B?` flip-${B}`:""}${(null==e?void 0:e.flip)?` flip-${e.flip}`:""}${o&&r?" has-submenu":""}`,onClick:s&&s()?null:r,title:n},e&&("string"==typeof e&&e.startsWith("ci")?t("i",{class:`coolicons ${e}`}):t("i",{class:`coolicons ${e.icon}`})),A&&t("span",{key:"d81dcdb9b201856a2838c7ffac5fffc0f12eb66c",class:"label"},A),o&&!r?t("i",{class:"coolicons ci-caret_down_sm"}):null),o&&r&&t("button",{key:"c6b2574f91e30afe6ad488b1f3f364c601ac9695",class:"menu-item",ref:e=>this.menuTippyTarget=e},t("i",{key:"29b0364de10a5d367b044898cf6f305b5a1e19ee",class:"coolicons ci-caret_down_sm"})))}get el(){return A(this)}};Fk.style='@font-face{font-family:\'coolicons\';src:url(data:application/font-woff;base64,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BAAAgAQAAIAEAACABAAAgAQAAKsEAACrBAAA1QQAAKsEAACrBAAAqwQAAKsEAACrBAAAqwQAAKsEAACABAAAqwQAAKsEAACrBAAAVQQAAIAEAACABAAAVQQAAIAEAABVBAAAVQQAAFUEAABVBAAAVQQAAFUEAABVBAAAVQQAAFUEAABVBAAAVQQAAFUEAABVBAAAVQQAAFUEAABVBAAAVQQAAFUEAACrBAAAZwQAAFUEAABVBAAAVQQAAFUEAABVBAAAVQQAAQAEAABVBAAAVQQAAG0EAAEzBAAARgQAAIAEAACABAAAKwQAAIAEAACABAAAgAQAAIAEAABVBAAAVQQAAFUEAAA0BAABKwQAACsEAACABAAAKwQAAFUEAABVBAAAqwQAAdUEAAHVBAAB1QQAAdUEAACABAAAVQQAAFUEAAErBAAAlAQAAFUEAACABAAAgAQAAH8EAABVBAAAqwQAAKsEAACABAAAgAQAAIAEAABVBAAAVQQAAFUEAABVBAAANAQAAKsEAABVBAAAqQQAAKsEAACrBAAAqwQAAKsEAACrBAAAVQQAAKsEAAEABAABAAQAAIAEAACABAAAVQQAAKsEAAErBAAAqwQAAasEAADVBAAAVQQAAVUEAABVBAAAVQQAAG8EAACABAAAgAQAAIAEAACABAAAVQQAAFUEAABVBAAAVQQAAFUEAABIBAAAKwQAAJcEAAEABAAAVQQAAFUEAACABAAAVQQAADAEAABVBAAAqwQAAFUEAABVBAAAgAQAAIAEAACABAAAVQQAAIAEAABVBAAA1QQAAFUEAACABAAAcAQAAFUEAABVBAAAVQQAAGQEAAArBAAAVQQAAIAEAACABAAAgAQAAIAEAABVBAAAZwQAAFUEAABVBAAARgQAAKsEAABVBAABgAQAAYAEAAEABAAA1QQAAFUEAABVBAAAVQQAAIAEAACABAAAVQQAAFUEAABVBAAAVQQAAEcEAABVBAAAVQQAAKsEAACABAAAVQQAACsEAABVBAAAKwQAACsEAABVBAAAVQQAAIAEAABVBAAAgAQAAJEEAABVBAAAgAQAAIAEAACABAAAgAQAANUEAABVBAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAABZBAAAWQQAAFkEAADVBAAAqwQAASsEAAErBAAAqwQAAIAEAADV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)\n format(\'woff\');font-weight:normal;font-style:normal;font-display:block}i.coolicons{font-family:\'coolicons\' !important;speak:never;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ci-add_column:before{content:"\\e900"}.ci-add_minus_square:before{content:"\\e901"}.ci-add_plus_circle:before{content:"\\e902"}.ci-add_plus_square:before{content:"\\e903"}.ci-add_plus:before{content:"\\e904"}.ci-add_row:before{content:"\\e905"}.ci-add_to_queue:before{content:"\\e906"}.ci-airplay:before{content:"\\e907"}.ci-alarm:before{content:"\\e908"}.ci-archive:before{content:"\\e909"}.ci-arrow_circle_down_left:before{content:"\\e90a"}.ci-arrow_circle_down_right:before{content:"\\e90b"}.ci-arrow_circle_down:before{content:"\\e90c"}.ci-arrow_circle_left:before{content:"\\e90d"}.ci-arrow_circle_right:before{content:"\\e90e"}.ci-arrow_circle_up_left:before{content:"\\e90f"}.ci-arrow_circle_up_right:before{content:"\\e910"}.ci-arrow_circle_up:before{content:"\\e911"}.ci-arrow_down_left_lg:before{content:"\\e912"}.ci-arrow_down_left_md:before{content:"\\e913"}.ci-arrow_down_left_sm:before{content:"\\e914"}.ci-arrow_down_lg:before{content:"\\e915"}.ci-arrow_down_md:before{content:"\\e916"}.ci-arrow_down_right_lg:before{content:"\\e917"}.ci-arrow_down_right_md:before{content:"\\e918"}.ci-arrow_down_right_sm:before{content:"\\e919"}.ci-arrow_down_sm:before{content:"\\e91a"}.ci-arrow_down_up:before{content:"\\e91b"}.ci-arrow_left_lg:before{content:"\\e91c"}.ci-arrow_left_md:before{content:"\\e91d"}.ci-arrow_left_right:before{content:"\\e91e"}.ci-arrow_left_sm:before{content:"\\e91f"}.ci-arrow_reload_02:before{content:"\\e920"}.ci-arrow_right_lg:before{content:"\\e921"}.ci-arrow_right_md:before{content:"\\e922"}.ci-arrow_right_sm:before{content:"\\e923"}.ci-arrow_sub_down_left:before{content:"\\e924"}.ci-arrow_sub_down_right:before{content:"\\e925"}.ci-arrow_sub_left_down:before{content:"\\e926"}.ci-arrow_sub_left_up:before{content:"\\e927"}.ci-arrow_sub_right_down:before{content:"\\e928"}.ci-arrow_sub_right_up:before{content:"\\e929"}.ci-arrow_sub_up_left:before{content:"\\e92a"}.ci-arrow_sub_up_right:before{content:"\\e92b"}.ci-arrow_undo_down_left:before{content:"\\e92c"}.ci-arrow_undo_down_right:before{content:"\\e92d"}.ci-arrow_undo_up_left:before{content:"\\e92e"}.ci-arrow_undo_up_right:before{content:"\\e92f"}.ci-arrow_up_left_lg:before{content:"\\e930"}.ci-arrow_up_left_md:before{content:"\\e931"}.ci-arrow_up_left_sm:before{content:"\\e932"}.ci-arrow_up_lg:before{content:"\\e933"}.ci-arrow_up_md:before{content:"\\e934"}.ci-arrow_up_right_lg:before{content:"\\e935"}.ci-arrow_up_right_md:before{content:"\\e936"}.ci-arrow_up_right_sm:before{content:"\\e937"}.ci-arrow_up_sm:before{content:"\\e938"}.ci-arrows_reload_01:before{content:"\\e939"}.ci-bar_bottom:before{content:"\\e93a"}.ci-bar_left:before{content:"\\e93b"}.ci-bar_right:before{content:"\\e93c"}.ci-bar_top:before{content:"\\e93d"}.ci-bell_add:before{content:"\\e93e"}.ci-bell_close:before{content:"\\e93f"}.ci-bell_notification:before{content:"\\e940"}.ci-bell_off:before{content:"\\e941"}.ci-bell_remove:before{content:"\\e942"}.ci-bell_ring:before{content:"\\e943"}.ci-bell:before{content:"\\e944"}.ci-bold:before{content:"\\e945"}.ci-book_open:before{content:"\\e946"}.ci-book:before{content:"\\e947"}.ci-bookmark:before{content:"\\e948"}.ci-building_01:before{content:"\\e949"}.ci-building_02:before{content:"\\e94a"}.ci-building_03:before{content:"\\e94b"}.ci-building_04:before{content:"\\e94c"}.ci-bulb:before{content:"\\e94d"}.ci-calendar_add:before{content:"\\e94e"}.ci-calendar_check:before{content:"\\e94f"}.ci-calendar_close:before{content:"\\e950"}.ci-calendar_days:before{content:"\\e951"}.ci-calendar_event:before{content:"\\e952"}.ci-calendar_remove:before{content:"\\e953"}.ci-calendar_week:before{content:"\\e954"}.ci-calendar:before{content:"\\e955"}.ci-camera:before{content:"\\e956"}.ci-car_auto:before{content:"\\e957"}.ci-caret_circle_down:before{content:"\\e958"}.ci-caret_circle_left:before{content:"\\e959"}.ci-caret_circle_right:before{content:"\\e95a"}.ci-caret_circle_up:before{content:"\\e95b"}.ci-caret_down_md:before{content:"\\e95c"}.ci-caret_down_sm:before{content:"\\e95d"}.ci-caret_left_sm:before{content:"\\e95e"}.ci-caret_right_sm:before{content:"\\e95f"}.ci-caret_up_md:before{content:"\\e960"}.ci-caret_up_sm:before{content:"\\e961"}.ci-chart_bar_horizontal_01:before{content:"\\e962"}.ci-chart_bar_vertical_01:before{content:"\\e963"}.ci-chart_line:before{content:"\\e964"}.ci-chart_pie:before{content:"\\e965"}.ci-chat_add:before{content:"\\e966"}.ci-chat_check:before{content:"\\e967"}.ci-chat_circle_add:before{content:"\\e968"}.ci-chat_circle_check:before{content:"\\e969"}.ci-chat_circle_close:before{content:"\\e96a"}.ci-chat_circle_dots:before{content:"\\e96b"}.ci-chat_circle_remove:before{content:"\\e96c"}.ci-chat_circle:before{content:"\\e96d"}.ci-chat_close:before{content:"\\e96e"}.ci-chat_conversation_circle:before{content:"\\e96f"}.ci-chat_conversation:before{content:"\\e970"}.ci-chat_dots:before{content:"\\e971"}.ci-chat_remove:before{content:"\\e972"}.ci-chat:before{content:"\\e973"}.ci-check_all_big:before{content:"\\e974"}.ci-check_all:before{content:"\\e975"}.ci-check_big:before{content:"\\e976"}.ci-check:before{content:"\\e977"}.ci-checkbox_check:before{content:"\\e978"}.ci-checkbox_fill:before{content:"\\e979"}.ci-checkbox_unchecked:before{content:"\\e97a"}.ci-chevron_down_duo:before{content:"\\e97b"}.ci-chevron_down:before{content:"\\e97c"}.ci-chevron_left_duo:before{content:"\\e97d"}.ci-chevron_left_md:before{content:"\\e97e"}.ci-chevron_left:before{content:"\\e97f"}.ci-chevron_right_duo:before{content:"\\e980"}.ci-chevron_right_md:before{content:"\\e981"}.ci-chevron_right:before{content:"\\e982"}.ci-chevron_up_duo:before{content:"\\e983"}.ci-chevron_up:before{content:"\\e984"}.ci-chromecast:before{content:"\\e985"}.ci-circle_check:before{content:"\\e986"}.ci-circle_help:before{content:"\\e987"}.ci-circle_warning:before{content:"\\e988"}.ci-circle:before{content:"\\e989"}.ci-clock:before{content:"\\e98a"}.ci-close_circle:before{content:"\\e98b"}.ci-close_lg:before{content:"\\e98c"}.ci-close_md:before{content:"\\e98d"}.ci-close_sm:before{content:"\\e98e"}.ci-close_square:before{content:"\\e98f"}.ci-cloud_add:before{content:"\\e990"}.ci-cloud_check:before{content:"\\e991"}.ci-cloud_close:before{content:"\\e992"}.ci-cloud_download:before{content:"\\e993"}.ci-cloud_off:before{content:"\\e994"}.ci-cloud_remove:before{content:"\\e995"}.ci-cloud_upload:before{content:"\\e996"}.ci-cloud:before{content:"\\e997"}.ci-code:before{content:"\\e998"}.ci-coffe_to_go:before{content:"\\e999"}.ci-coffee:before{content:"\\e99a"}.ci-columns:before{content:"\\e99b"}.ci-combine_cells:before{content:"\\e99c"}.ci-command:before{content:"\\e99d"}.ci-compass:before{content:"\\e99e"}.ci-cookie:before{content:"\\e99f"}.ci-copy:before{content:"\\e9a0"}.ci-credit_card_01:before{content:"\\e9a1"}.ci-credit_card_02:before{content:"\\e9a2"}.ci-crop:before{content:"\\e9a3"}.ci-cupcake:before{content:"\\e9a4"}.ci-cylinder:before{content:"\\e9a5"}.ci-data:before{content:"\\e9a6"}.ci-delete_column:before{content:"\\e9a7"}.ci-delete_row:before{content:"\\e9a8"}.ci-desktop_tower:before{content:"\\e9a9"}.ci-desktop:before{content:"\\e9aa"}.ci-devices:before{content:"\\e9ab"}.ci-double_quotes_l:before{content:"\\e9ac"}.ci-double_quotes_r:before{content:"\\e9ad"}.ci-download_package:before{content:"\\e9ae"}.ci-download:before{content:"\\e9af"}.ci-drag_horizontal:before{content:"\\e9b0"}.ci-drag_vertical:before{content:"\\e9b1"}.ci-dummy_circle_small:before{content:"\\e9b2"}.ci-dummy_circle:before{content:"\\e9b3"}.ci-dummy_square_small:before{content:"\\e9b4"}.ci-dummy_square:before{content:"\\e9b5"}.ci-edit_pencil_01:before{content:"\\e9b6"}.ci-edit_pencil_02:before{content:"\\e9b7"}.ci-edit_pencil_line_01:before{content:"\\e9b8"}.ci-edit_pencil_line_02:before{content:"\\e9b9"}.ci-exit:before{content:"\\e9ba"}.ci-expand:before{content:"\\e9bb"}.ci-external_link:before{content:"\\e9bc"}.ci-figma:before{content:"\\e9bd"}.ci-file_add:before{content:"\\e9be"}.ci-file_blank:before{content:"\\e9bf"}.ci-file_check:before{content:"\\e9c0"}.ci-file_close:before{content:"\\e9c1"}.ci-file_code:before{content:"\\e9c2"}.ci-file_document:before{content:"\\e9c3"}.ci-file_download:before{content:"\\e9c4"}.ci-file_edit:before{content:"\\e9c5"}.ci-file_remove:before{content:"\\e9c6"}.ci-file_search:before{content:"\\e9c7"}.ci-file_upload:before{content:"\\e9c8"}.ci-files:before{content:"\\e9c9"}.ci-filter_off:before{content:"\\e9ca"}.ci-filter:before{content:"\\e9cb"}.ci-first_aid:before{content:"\\e9cc"}.ci-flag:before{content:"\\e9cd"}.ci-folder_add:before{content:"\\e9ce"}.ci-folder_check:before{content:"\\e9cf"}.ci-folder_close:before{content:"\\e9d0"}.ci-folder_code:before{content:"\\e9d1"}.ci-folder_document:before{content:"\\e9d2"}.ci-folder_download:before{content:"\\e9d3"}.ci-folder_edit:before{content:"\\e9d4"}.ci-folder_open:before{content:"\\e9d5"}.ci-folder_remove:before{content:"\\e9d6"}.ci-folder_search:before{content:"\\e9d7"}.ci-folder_upload:before{content:"\\e9d8"}.ci-folder:before{content:"\\e9d9"}.ci-folders:before{content:"\\e9da"}.ci-font:before{content:"\\e9db"}.ci-forward:before{content:"\\e9dc"}.ci-gift:before{content:"\\e9dd"}.ci-globe:before{content:"\\e9de"}.ci-hamburger_lg:before{content:"\\e9df"}.ci-hamburger_md:before{content:"\\e9e0"}.ci-handbag:before{content:"\\e9e1"}.ci-heading_h1:before{content:"\\e9e2"}.ci-heading_h2:before{content:"\\e9e3"}.ci-heading_h3:before{content:"\\e9e4"}.ci-heading_h4:before{content:"\\e9e5"}.ci-heading_h5:before{content:"\\e9e6"}.ci-heading_h6:before{content:"\\e9e7"}.ci-heading:before{content:"\\e9e8"}.ci-headphones:before{content:"\\e9e9"}.ci-heart_01:before{content:"\\e9ea"}.ci-heart_02:before{content:"\\e9eb"}.ci-help:before{content:"\\e9ec"}.ci-hide:before{content:"\\e9ed"}.ci-house_01:before{content:"\\e9ee"}.ci-house_02:before{content:"\\e9ef"}.ci-house_03:before{content:"\\e9f0"}.ci-house_add:before{content:"\\e9f1"}.ci-house_check:before{content:"\\e9f2"}.ci-house_close:before{content:"\\e9f3"}.ci-house_remove:before{content:"\\e9f4"}.ci-image_01:before{content:"\\e9f5"}.ci-image_02:before{content:"\\e9f6"}.ci-info:before{content:"\\e9f7"}.ci-instance:before{content:"\\e9f8"}.ci-italic:before{content:"\\e9f9"}.ci-keyboard:before{content:"\\e9fa"}.ci-label:before{content:"\\e9fb"}.ci-laptop:before{content:"\\e9fc"}.ci-layer:before{content:"\\e9fd"}.ci-layers:before{content:"\\e9fe"}.ci-leaf:before{content:"\\e9ff"}.ci-line_l:before{content:"\\ea00"}.ci-line_m:before{content:"\\ea01"}.ci-line_s:before{content:"\\ea02"}.ci-line_xl:before{content:"\\ea03"}.ci-link_break:before{content:"\\ea04"}.ci-link_horizontal_off:before{content:"\\ea05"}.ci-link_horizontal:before{content:"\\ea06"}.ci-link_vertical:before{content:"\\ea07"}.ci-link:before{content:"\\ea08"}.ci-list_add:before{content:"\\ea09"}.ci-list_check:before{content:"\\ea0a"}.ci-list_checklist:before{content:"\\ea0b"}.ci-list_ordered:before{content:"\\ea0c"}.ci-list_remove:before{content:"\\ea0d"}.ci-list_unordered:before{content:"\\ea0e"}.ci-loading:before{content:"\\ea0f"}.ci-lock_open:before{content:"\\ea10"}.ci-lock:before{content:"\\ea11"}.ci-log_out:before{content:"\\ea12"}.ci-magnifying_glass_minus:before{content:"\\ea13"}.ci-magnifying_glass_plus:before{content:"\\ea14"}.ci-mail_open:before{content:"\\ea15"}.ci-mail:before{content:"\\ea16"}.ci-main_component:before{content:"\\ea17"}.ci-map_pin:before{content:"\\ea18"}.ci-map:before{content:"\\ea19"}.ci-mention:before{content:"\\ea1a"}.ci-menu_alt_01:before{content:"\\ea1b"}.ci-menu_alt_02:before{content:"\\ea1c"}.ci-menu_alt_03:before{content:"\\ea1d"}.ci-menu_alt_04:before{content:"\\ea1e"}.ci-menu_alt_05:before{content:"\\ea1f"}.ci-menu_duo_lg:before{content:"\\ea20"}.ci-menu_duo_md:before{content:"\\ea21"}.ci-mobile_button:before{content:"\\ea22"}.ci-mobile:before{content:"\\ea23"}.ci-monitor_play:before{content:"\\ea24"}.ci-monitor:before{content:"\\ea25"}.ci-moon:before{content:"\\ea26"}.ci-more_grid_big:before{content:"\\ea27"}.ci-more_grid_small:before{content:"\\ea28"}.ci-more_horizontal:before{content:"\\ea29"}.ci-more_vertical:before{content:"\\ea2a"}.ci-mouse:before{content:"\\ea2b"}.ci-move_horizontal:before{content:"\\ea2c"}.ci-move_vertical:before{content:"\\ea2d"}.ci-move:before{content:"\\ea2e"}.ci-moving_desk:before{content:"\\ea2f"}.ci-navigation:before{content:"\\ea30"}.ci-note_edit:before{content:"\\ea31"}.ci-note_search:before{content:"\\ea32"}.ci-note:before{content:"\\ea33"}.ci-notebook:before{content:"\\ea34"}.ci-octagon_check:before{content:"\\ea35"}.ci-octagon_help:before{content:"\\ea36"}.ci-octagon_warning:before{content:"\\ea37"}.ci-octagon:before{content:"\\ea38"}.ci-option:before{content:"\\ea39"}.ci-paper_plane:before{content:"\\ea3a"}.ci-paperclip_attechment_horizontal:before{content:"\\ea3b"}.ci-paperclip_attechment_tilt:before{content:"\\ea3c"}.ci-paragraph:before{content:"\\ea3d"}.ci-path:before{content:"\\ea3e"}.ci-pause_circle:before{content:"\\ea3f"}.ci-pause:before{content:"\\ea40"}.ci-phone:before{content:"\\ea41"}.ci-planet:before{content:"\\ea42"}.ci-play_circle:before{content:"\\ea43"}.ci-play:before{content:"\\ea44"}.ci-printer:before{content:"\\ea45"}.ci-puzzle:before{content:"\\ea46"}.ci-qr_code:before{content:"\\ea47"}.ci-radio_fill:before{content:"\\ea48"}.ci-radio_unchecked:before{content:"\\ea49"}.ci-rainbow:before{content:"\\ea4a"}.ci-redo:before{content:"\\ea4b"}.ci-remove_minus_circle:before{content:"\\ea4c"}.ci-remove_minus:before{content:"\\ea4d"}.ci-rewind:before{content:"\\ea4e"}.ci-rows:before{content:"\\ea4f"}.ci-ruler:before{content:"\\ea50"}.ci-save:before{content:"\\ea51"}.ci-search_magnifying_glass:before{content:"\\ea52"}.ci-select_multiple:before{content:"\\ea53"}.ci-settings_future:before{content:"\\ea54"}.ci-settings:before{content:"\\ea55"}.ci-share_android:before{content:"\\ea56"}.ci-share_ios_export:before{content:"\\ea57"}.ci-shield_check:before{content:"\\ea58"}.ci-shield_warning:before{content:"\\ea59"}.ci-shield:before{content:"\\ea5a"}.ci-shopping_bag_01:before{content:"\\ea5b"}.ci-shopping_bag_02:before{content:"\\ea5c"}.ci-shopping_cart_01:before{content:"\\ea5d"}.ci-shopping_cart_02:before{content:"\\ea5e"}.ci-show:before{content:"\\ea5f"}.ci-shrink:before{content:"\\ea60"}.ci-shuffle:before{content:"\\ea61"}.ci-single_quotes_l:before{content:"\\ea62"}.ci-single_quotes_r:before{content:"\\ea63"}.ci-skip_back:before{content:"\\ea64"}.ci-skip_forward:before{content:"\\ea65"}.ci-slider_01:before{content:"\\ea66"}.ci-slider_02:before{content:"\\ea67"}.ci-slider_03:before{content:"\\ea68"}.ci-sort_ascending:before{content:"\\ea69"}.ci-sort_descending:before{content:"\\ea6a"}.ci-square_check:before{content:"\\ea6b"}.ci-square_help:before{content:"\\ea6c"}.ci-square_warning:before{content:"\\ea6d"}.ci-square:before{content:"\\ea6e"}.ci-star:before{content:"\\ea6f"}.ci-stop_circle:before{content:"\\ea70"}.ci-stop_sign:before{content:"\\ea71"}.ci-stop:before{content:"\\ea72"}.ci-strikethrough:before{content:"\\ea73"}.ci-suitcase:before{content:"\\ea74"}.ci-sun:before{content:"\\ea75"}.ci-swatches_palette:before{content:"\\ea76"}.ci-swicht_left:before{content:"\\ea77"}.ci-swicht_right:before{content:"\\ea78"}.ci-table_add:before{content:"\\ea79"}.ci-table_remove:before{content:"\\ea7a"}.ci-table:before{content:"\\ea7b"}.ci-tablet_button:before{content:"\\ea7c"}.ci-tablet:before{content:"\\ea7d"}.ci-tag:before{content:"\\ea7e"}.ci-terminal:before{content:"\\ea7f"}.ci-text_align_center:before{content:"\\ea80"}.ci-text_align_justify:before{content:"\\ea81"}.ci-text_align_left:before{content:"\\ea82"}.ci-text_align_right:before{content:"\\ea83"}.ci-text:before{content:"\\ea84"}.ci-ticket_voucher:before{content:"\\ea85"}.ci-timer_add:before{content:"\\ea86"}.ci-timer_close:before{content:"\\ea87"}.ci-timer_remove:before{content:"\\ea88"}.ci-timer:before{content:"\\ea89"}.ci-trash_empty:before{content:"\\ea8a"}.ci-trash_full:before{content:"\\ea8b"}.ci-trending_down:before{content:"\\ea8c"}.ci-trending_up:before{content:"\\ea8d"}.ci-triangle_check:before{content:"\\ea8e"}.ci-triangle_warning:before{content:"\\ea8f"}.ci-triangle:before{content:"\\ea90"}.ci-underline:before{content:"\\ea91"}.ci-undo:before{content:"\\ea92"}.ci-unfold_less:before{content:"\\ea93"}.ci-unfold_more:before{content:"\\ea94"}.ci-user_01:before{content:"\\ea95"}.ci-user_02:before{content:"\\ea96"}.ci-user_03:before{content:"\\ea97"}.ci-user_add:before{content:"\\ea98"}.ci-user_card_id:before{content:"\\ea99"}.ci-user_check:before{content:"\\ea9a"}.ci-user_circle:before{content:"\\ea9b"}.ci-user_close:before{content:"\\ea9c"}.ci-user_remove:before{content:"\\ea9d"}.ci-user_square:before{content:"\\ea9e"}.ci-user_voice:before{content:"\\ea9f"}.ci-users_group:before{content:"\\eaa0"}.ci-users:before{content:"\\eaa1"}.ci-volume_max:before{content:"\\eaa2"}.ci-volume_min:before{content:"\\eaa3"}.ci-volume_minus:before{content:"\\eaa4"}.ci-volume_off_02:before{content:"\\eaa5"}.ci-volume_off:before{content:"\\eaa6"}.ci-volume_plus:before{content:"\\eaa7"}.ci-warning:before{content:"\\eaa8"}.ci-water_drop:before{content:"\\eaa9"}.ci-wavy_check:before{content:"\\eaaa"}.ci-wavy_help:before{content:"\\eaab"}.ci-wavy_warning:before{content:"\\eaac"}.ci-wavy:before{content:"\\eaad"}.ci-wifi_high:before{content:"\\eaae"}.ci-wifi_low:before{content:"\\eaaf"}.ci-wifi_medium:before{content:"\\eab0"}.ci-wifi_none:before{content:"\\eab1"}.ci-wifi_off:before{content:"\\eab2"}.ci-wifi_problem:before{content:"\\eab3"}.ci-window_check:before{content:"\\eab4"}.ci-window_close:before{content:"\\eab5"}.ci-window_code_block:before{content:"\\eab6"}.ci-window_sidebar:before{content:"\\eab7"}.ci-window_terminal:before{content:"\\eab8"}.ci-window:before{content:"\\eab9"}zen-editor-menu-item .menu-item{background-color:transparent;border:none;border-radius:0.4em;color:#525252;height:1.75em;margin-right:0.25em;padding:0.25em;min-width:1.75em;cursor:pointer}zen-editor-menu-item .menu-item i{font-size:1.25em}zen-editor-menu-item .menu-item.flip-h{transform:scaleX(-1)}zen-editor-menu-item .menu-item.flip-v{transform:scaleY(-1)}zen-editor-menu-item .menu-item.is-disabled{opacity:0.5;cursor:unset}zen-editor-menu-item .menu-item.is-disabled:hover{background-color:transparent;color:#525252}zen-editor-menu-item .menu-item:hover,zen-editor-menu-item .menu-item.is-active{background-color:#525252;color:#fff}zen-editor-menu-item .menu-item.has-submenu+.menu-item>i.ci-caret_down_sm{margin:0 -0.25em}zen-editor-menu-item .menu-item.has-submenu{margin-right:0}zen-editor-menu-item .menu-item.has-submenu:hover{border-radius:0.4em 0 0 0.4em}zen-editor-menu-item .menu-item.has-submenu+.menu-item{border-radius:0 0.4em 0.4em 0;margin-left:0;padding:0.25em 0;min-width:0.75em}zen-editor-menu-item .menu-item i.color-crimson{color:crimson}zen-editor-menu-item .menu-item i.color-deeppink{color:deeppink}zen-editor-menu-item .menu-item i.color-darkorange{color:darkorange}zen-editor-menu-item .menu-item i.color-darkviolet{color:darkviolet}zen-editor-menu-item .menu-item i.color-forestgreen{color:forestgreen}zen-editor-menu-item .menu-item i.color-royalblue{color:royalblue}zen-editor-menu-item .menu-item i.color-saddlebrown{color:saddlebrown}zen-editor-menu-item .menu-item i.color-dimgray{color:dimgray}zen-editor-menu-item .menu-item:has(.color):hover,zen-editor-menu-item .menu-item:has(.color).is-active{background-color:transparent;box-shadow:inset 0 0 0 1px #525252}zen-editor-menu-item:hover .menu-item.has-submenu{border-radius:0.4em 0 0 0.4em}zen-editor-menu-item:last-of-type .menu-item{margin-right:0}';const Yk=class{constructor(t){e(this,t),this.editor=void 0,this.menubarMode=void 0,this.extraMenubarItems="",this.forceUpdateCounter=void 0,this.states=void 0,this.toggleMonaco=void 0,this.toggleFullscreen=void 0,this.styles=void 0}componentDidLoad(){Boolean(this.styles&&this.element.shadowRoot)&&(this.element.shadowRoot.adoptedStyleSheets=[...this.element.shadowRoot.adoptedStyleSheets,this.styles])}getMonacoToggler(){return[[{icon:"ci-edit_pencil_line_01",title:$.getString("menu.source"),action:()=>{var e;return null===(e=this.toggleMonaco)||void 0===e?void 0:e.call(this)},isActive:()=>{var e;return null===(e=this.states)||void 0===e?void 0:e.isMonaco},isHidden:()=>{var e;return null===(e=this.states)||void 0===e?void 0:e.isCollaborative},menuModeLevel:ce.full}]]}getMenubarItems(e){return[...ge(e),[{icon:"ci-bar_top",title:$.getString("menu.fullscreen"),action:()=>{var e;return null===(e=this.toggleFullscreen)||void 0===e?void 0:e.call(this)},isActive:()=>{var e;return null===(e=this.states)||void 0===e?void 0:e.isFullscreen},isHidden:()=>!Boolean(this.toggleFullscreen)}],...this.getMonacoToggler()]}render(){const{editor:e,states:A}=this,{isMonaco:n}=A,i=(n?this.getMonacoToggler():this.getMenubarItems(e)).map((e=>{const A=e.map((e=>{const{isHidden:A,menuModeLevel:n}=e,i=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);ithis.menubarMode?null:t("zen-editor-menu-item",{itemProps:Object.assign({},i),menubarMode:this.menubarMode})}));return Boolean(A.filter((e=>Boolean(e))).length)?t("div",{class:"menu-item-group"},A):null}));return t("div",{class:"menubar"},i,this.extraMenubarItems&&t("div",{className:"menu-item-group extra-menubar-items",innerHTML:this.extraMenubarItems}))}get element(){return A(this)}};Yk.style='.menubar{align-items:center;border-bottom:1px solid #a6a39e;display:flex;flex:0 0 auto;flex-wrap:wrap;padding:0.25em}.menu-item-group{margin-right:0.5em}.menu-item-group:not(:last-child):not(:has(+.extra-menubar-items))::after{content:"";display:inline-block;background-color:rgba(0, 0, 0, 0.1);height:1.25em;margin:0 -0.1em -0.1em 0.4em;width:1px}.menu-item-group:empty{display:none}';export{le as zen_editor_bubble_menu,Qe as zen_editor_content,Dk as zen_editor_core,Fk as zen_editor_menu_item,Yk as zen_editor_menubar} \ No newline at end of file diff --git a/www/js/zui3/zen-editor/p-7b1e6314.js b/www/js/zui3/zen-editor/p-bb08ba1a.js similarity index 98% rename from www/js/zui3/zen-editor/p-7b1e6314.js rename to www/js/zui3/zen-editor/p-bb08ba1a.js index 46d2bef2dd..b39b4df7b7 100644 --- a/www/js/zui3/zen-editor/p-7b1e6314.js +++ b/www/js/zui3/zen-editor/p-bb08ba1a.js @@ -1,4 +1,4 @@ -import{m as e}from"./p-eb7120ba.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) diff --git a/www/js/zui3/zen-editor/p-2091a01b.js b/www/js/zui3/zen-editor/p-eca4d606.js similarity index 88% rename from www/js/zui3/zen-editor/p-2091a01b.js rename to www/js/zui3/zen-editor/p-eca4d606.js index 23786ebf64..f8bf4fc9f5 100644 --- a/www/js/zui3/zen-editor/p-2091a01b.js +++ b/www/js/zui3/zen-editor/p-eca4d606.js @@ -1,7 +1,7 @@ -import{m as e}from"./p-eb7120ba.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; +import{m as e}from"./p-aa688caf.js";import"./p-7900c24a.js";import"./p-986e5fe7.js"; /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt - *-----------------------------------------------------------------------------*/var t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,a=(e,a,m,r)=>{if(a&&"object"==typeof a||"function"==typeof a)for(let c of o(a))i.call(e,c)||c===m||t(e,c,{get:()=>a[c],enumerable:!(r=n(a,c))||r.enumerable});return e},m={};a(m,e,"default");var r={comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:m.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:m.languages.IndentAction.Indent}}]},c={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[//,{token:"comment",next:"@pop"}],[//,{token:"comment",next:"@pop"}],[/","");const p=h.content;if(n&&d.assetsIds.length){const v=new Set(d.assetsIds),w=new Map;a.assets.entries().forEach(([x,S])=>{S.name&&w.set(S.name,{file:S,id:x})}),p.querySelectorAll("img").forEach(x=>{const S=x.getAttribute("alt")??"";let D=S.split(".").shift(),M;if(D&&v.has(D))M=a.assets.get(D);else{const P=w.get(S);P&&(D=P.id,M=P.file)}if(M){const P=be(n,{gid:btoa(`g-${D}`),title:btoa(D),extra:"editor"});x.src=P.replaceAll("&","{{AMP}}")+"#g="+btoa(D)}})}return p.querySelectorAll("pre.shiki>code").forEach(v=>{v.textContent=v.textContent}),p.querySelectorAll(".affine-block-children-container").forEach(v=>{v.childNodes.length||v.remove()}),p.children[p.childElementCount-1].innerHTML.replaceAll("{{AMP}}","&")}static createEmptyDoc(e){const{store:t}=Le.Module;e||(e=new t.DocCollection({schema:Le.createSchema()}),e.start(),e.meta.initialize());const n=e.createDoc();n.load();const i=n.addBlock("affine:page",void 0);n.addBlock("affine:surface",void 0,i);const r=n.addBlock("affine:note",void 0,i);return n.addBlock("affine:paragraph",void 0,r),n}static toSnapshot(e){const{collection:t}=e;return new Le.Module.store.Job({collection:t}).docToSnapshot(e)}static cleanHtml(e){const t=document.createElement("template");return t.innerHTML=e,t.content.querySelectorAll("img").forEach(i=>{const r=i.getAttribute("src");r!=null&&r.startsWith("/")&&i.setAttribute("src",`${location.origin}${r}`)}),t.innerHTML}static async importConfluence(e,t){const n=await Le.loadModule(),{store:i}=n;try{t=t||new i.DocCollection({schema:Le.createSchema()});const r=await n.blocks.ConfluenceTransformer.importConfluenceToDoc({collection:t,confluence:e});if(r)return t.getDoc(r)}catch(r){console.error("[ZUI] import confluence error:",r)}}static async importHtml(e,t){const{store:n,blocks:i}=await Le.loadModule();try{t=t||new n.DocCollection({schema:Le.createSchema()});const r=await i.HtmlTransformer.importHTMLToDoc({collection:t,html:this.cleanHtml(e)});if(r)return t.getDoc(r)}catch(r){console.error("[ZUI] import html error:",r)}}static async htmlToSnap(e,t){try{const{store:n,blocks:i}=await Le.loadModule();t=t||new n.DocCollection({schema:Le.createSchema()});const r=new n.Job({collection:t});return await new i.HtmlAdapter(r).toBlockSnapshot({file:this.cleanHtml(e)})}catch(n){console.error("[ZUI] html to snap error:",n)}}static setGlobalConfig(e){window.EDITOR_CONFIG||(window.EDITOR_CONFIG={}),Object.assign(window.EDITOR_CONFIG,e)}static createSchema(){const{store:e,blocks:t}=Le.Module,{AffineSchemas:n}=t,i=new e.Schema().register(n);return["affine:embed-linked-doc","affine:embed-youtube","affine:embed-figma","affine:embed-github","affine:embed-loom"].forEach(r=>i.flavourSchemaMap.delete(r)),i}static nanoid(){return bs()}};Xt.NAME="Editor",Xt.DEFAULT={mode:"page",contentType:"snapshot"},Xt.slashMenuSettings=[],Xt.iframe=Db,Xt.confluenceBlockMatcherMap={},Xt.registerConfluenceBlockMatcher=(s,e)=>{if(Xt.Module)Xt.Module.blocks.ConfluenceAdapter.registerBlockMatcher(s,e);else if(typeof s=="object")for(const t in s)Xt.confluenceBlockMatcherMap[t]=s[t];else Xt.confluenceBlockMatcherMap[s]=e};let Jt=Xt;const zp=Ne.getCode();y.registerLib("blocksuite",{src:[`editor/blocksuite/editor${zp!=="zh_cn"?`.${zp}`:""}.umd.cjs`,"editor/blocksuite/editor.css"],check:"BlockSuite"}),Jt.register();let{maxUploadSize:Cs}=window.config||{};Cs&&(Cs=typeof Cs=="string"?gn(Cs):Cs,Jt.setGlobalConfig({maxFileSize:Cs,maxImageSize:Cs}));const $b=Dt("file","read","fileID={fileID}","{viewType}");Jt.setGlobalConfig({imageSrcGetter:s=>{if(s.startsWith("{")&&s.endsWith("}")){const e=s.slice(1,-1),[t,n]=e.split(".");return $b.replace("{fileID}",t).replace("{viewType}",n)}return s}});class fa extends Jt{}fa.NAME="PageEditor",fa.DEFAULT={mode:"page"},fa.register(),Object.assign(window,{Editor:Jt});class fi extends pe{constructor(){super(...arguments),this._ref=ue()}get element(){return this._ref.current}get $(){return this._editor}init(e){var h;const{className:t,style:n,rootProps:i,ref:r,children:o,jsx:a,key:l,autoInit:c,...d}=this.props;return e={...d,...e},(h=this._editor)==null||h.destroy(),y(this.element).empty(),this._editor=new Jt(this.element,e),this._editor}destroyHocuspocusProvider(){var e;(e=this._editor)==null||e.destroyHocuspocusProvider()}update(e){var t;(t=this._editor)==null||t.render(e)}getData(){var e;return(e=this._editor)==null?void 0:e.getData()}getHtml(){var e;return(e=this._editor)==null?void 0:e.getHtml()}componentDidMount(){this.props.autoInit&&this.init()}componentWillUnmount(){var e;(e=this._editor)==null||e.destroy()}render(e){const{className:t,style:n,rootProps:i,children:r}=e;return _("div",{ref:this._ref,className:V("editor",t),style:n,...i},r)}}fi.defaultProps={autoInit:!0};const Fp=class Yg extends pe{constructor(e){super(e),this._editorRoot=ue(),this._titleEle=ue(),this._handleChange=()=>{var t,n;(n=(t=this.props).onChange)==null||n.call(t,this.data)},this._uid=e.uid??bs(13).replaceAll("-","_")}get data(){var t,n,i;const e=((n=(t=this._editorRoot.current)==null?void 0:t.querySelector("zen-editor"))==null?void 0:n.value)??"";return{title:((i=this._titleEle.current)==null?void 0:i.value)??"",content:e,html:e,uid:this._uid,contentType:this.props.contentType}}_loadLib(){return y.getLib("zeneditor",{type:"module"})}async init(e){var l,c,d,h;customElements.get("zen-editor")||((c=(l=this.props).onLoadingLibChange)==null||c.call(l,!0),await this._loadLib(),(h=(d=this.props).onLoadingLibChange)==null||h.call(d,!1));const{readonly:t,content:n,contentType:i,placeholder:r,uploadUrl:o=""}={...this.props,...e},a=[];a.push(``,`
      ${n}
      `,"
      ",``,``),y(this._editorRoot.current).html(a.join(` +var Ou=(I,st,Nt)=>{if(!st.has(I))throw TypeError("Cannot "+Nt)};var It=(I,st,Nt)=>(Ou(I,st,"read from private field"),Nt?Nt.call(I):st.get(I)),jt=(I,st,Nt)=>{if(st.has(I))throw TypeError("Cannot add the same private member more than once");st instanceof WeakSet?st.add(I):st.set(I,Nt)},Ut=(I,st,Nt,sl)=>(Ou(I,st,"write to private field"),sl?sl.call(I,Nt):st.set(I,Nt),Nt);var zu=(I,st,Nt)=>(Ou(I,st,"access private method"),Nt);(function(I,st){typeof exports=="object"&&typeof module<"u"?st(exports):typeof define=="function"&&define.amd?define(["exports"],st):(I=typeof globalThis<"u"?globalThis:I||self,st(I.zui={}))})(this,function(I){var Ta,Da,Cr,xr,Sr,kr,Tr,Dr,$a,Gg,Ia,Yg,qn,Gn;"use strict";const st="",Nt="",sl="",fC="",pC="",mC="",gC="",yC="",vC="",bC="",_C="",wC="",il="3.0.0",ey="production",Bu="f073d9fcc21572ec32f6e3177f84584cfff44e5a",fn=document,Ur=window,Uu=fn.documentElement,is=fn.createElement.bind(fn),Wu=is("div"),rl=is("table"),ty=is("tbody"),Vu=is("tr"),{isArray:Wr,prototype:Ku}=Array,{concat:ny,filter:ol,indexOf:qu,map:Gu,push:sy,slice:Yu,some:al,splice:iy}=Ku,ry=/^#(?:[\w-]|\\.|[^\x00-\xa0])*$/,oy=/^\.(?:[\w-]|\\.|[^\x00-\xa0])*$/,ay=/<.+>/,ly=/^\w+$/;function ll(s,e){const t=cy(e);return!s||!t&&!rs(e)&&!rt(e)?[]:!t&&oy.test(s)?e.getElementsByClassName(s.slice(1).replace(/\\/g,"")):!t&&ly.test(s)?e.getElementsByTagName(s):e.querySelectorAll(s)}class Vr{constructor(e,t){if(!e)return;if(cl(e))return e;let n=e;if(_t(e)){const i=t||fn;if(n=ry.test(e)&&rs(i)?i.getElementById(e.slice(1).replace(/\\/g,"")):ay.test(e)?td(e):cl(i)?i.find(e):_t(i)?y(i).find(e):ll(e,i),!n)return}else if(os(e))return this.ready(e);(n.nodeType||n===Ur)&&(n=[n]),this.length=n.length;for(let i=0,r=this.length;i{for(;e.firstChild;)e.removeChild(e.firstChild)})};function Kr(...s){const e=uy(s[0])?s.shift():!1,t=s.shift(),n=s.length;if(!t)return{};if(!n)return Kr(e,y,t);for(let i=0;i{rt(r)&&dt(t,(o,a)=>{n?e?r.classList.add(a):r.classList.remove(a):r.classList.toggle(a)})})},se.addClass=function(s){return this.toggleClass(s,!0)},se.removeAttr=function(s){const e=qr(s);return this.each((t,n)=>{rt(n)&&dt(e,(i,r)=>{n.removeAttribute(r)})})};function fy(s,e){if(s){if(_t(s)){if(arguments.length<2){if(!this[0]||!rt(this[0]))return;const t=this[0].getAttribute(s);return Si(t)?void 0:t}return Et(e)?this:Si(e)?this.removeAttr(s):this.each((t,n)=>{rt(n)&&n.setAttribute(s,e)})}for(const t in s)this.attr(t,s[t]);return this}}se.attr=fy,se.removeClass=function(s){return arguments.length?this.toggleClass(s,!1):this.attr("class","")},se.hasClass=function(s){return!!s&&al.call(this,e=>rt(e)&&e.classList.contains(s))},se.get=function(s){return Et(s)?Yu.call(this):(s=Number(s),this[s<0?s+this.length:s])},se.eq=function(s){return y(this.get(s))},se.first=function(){return this.eq(0)},se.last=function(){return this.eq(-1)};function py(s){return Et(s)?this.get().map(e=>rt(e)||hy(e)?e.textContent:"").join(""):this.each((e,t)=>{rt(t)&&(t.textContent=s)})}se.text=py;function pn(s,e,t){if(!rt(s))return;const n=Ur.getComputedStyle(s,null);return t?n.getPropertyValue(e)||void 0:n[e]||s.style[e]}function en(s,e){return parseInt(pn(s,e),10)||0}function Zu(s,e){return en(s,`border${e?"Left":"Top"}Width`)+en(s,`padding${e?"Left":"Top"}`)+en(s,`padding${e?"Right":"Bottom"}`)+en(s,`border${e?"Right":"Bottom"}Width`)}const ul={};function my(s){if(ul[s])return ul[s];const e=is(s);fn.body.insertBefore(e,null);const t=pn(e,"display");return fn.body.removeChild(e),ul[s]=t!=="none"?t:"block"}function Ju(s){return pn(s,"display")==="none"}function Qu(s,e){const t=s&&(s.matches||s.webkitMatchesSelector||s.msMatchesSelector);return!!t&&!!e&&t.call(s,e)}function Gr(s){return _t(s)?(e,t)=>Qu(t,s):os(s)?s:cl(s)?(e,t)=>s.is(t):s?(e,t)=>t===s:()=>!1}se.filter=function(s){const e=Gr(s);return y(ol.call(this,(t,n)=>e.call(t,n,t)))};function Nn(s,e){return e?s.filter(e):s}se.detach=function(s){return Nn(this,s).each((e,t)=>{t.parentNode&&t.parentNode.removeChild(t)}),this};const gy=/^\s*<(\w+)[^>]*>/,yy=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,ed={"*":Wu,tr:ty,td:Vu,th:Vu,thead:rl,tbody:rl,tfoot:rl};function td(s){if(!_t(s))return[];if(yy.test(s))return[is(RegExp.$1)];const e=gy.test(s)&&RegExp.$1,t=ed[e]||ed["*"];return t.innerHTML=s,y(t.childNodes).detach().get()}y.parseHTML=td,se.has=function(s){const e=_t(s)?(t,n)=>ll(s,n).length:(t,n)=>n.contains(s);return this.filter(e)},se.not=function(s){const e=Gr(s);return this.filter((t,n)=>(!_t(s)||rt(n))&&!e.call(n,t,n))};function mn(s,e,t,n){const i=[],r=os(e),o=n&&Gr(n);for(let a=0,l=s.length;ae.selected&&!e.disabled&&!e.parentNode.disabled),"value"):s.value||""}function vy(s){return arguments.length?this.each((e,t)=>{const n=t.multiple&&t.options;if(n||fd.test(t.type)){const i=Wr(s)?Gu.call(s,String):Si(s)?[]:[String(s)];n?dt(t.options,(r,o)=>{o.selected=i.indexOf(o.value)>=0},!0):t.checked=i.indexOf(t.value)>=0}else t.value=Et(s)||Si(s)?"":s}):this[0]&&nd(this[0])}se.val=vy,se.is=function(s){const e=Gr(s);return al.call(this,(t,n)=>e.call(t,n,t))},y.guid=1;function tn(s){return s.length>1?ol.call(s,(e,t,n)=>qu.call(n,e)===t):s}y.unique=tn,se.add=function(s,e){return y(tn(this.get().concat(y(s,e).get())))},se.children=function(s){return Nn(y(tn(mn(this,e=>e.children))),s)},se.parent=function(s){return Nn(y(tn(mn(this,"parentNode"))),s)},se.index=function(s){const e=s?y(s)[0]:this[0],t=s?this:y(e).parent().children();return qu.call(t,e)},se.closest=function(s){const e=this.filter(s);if(e.length)return e;const t=this.parent();return t.length?t.closest(s):e},se.siblings=function(s){return Nn(y(tn(mn(this,e=>y(e).parent().children().not(e)))),s)},se.find=function(s){return y(tn(mn(this,e=>ll(s,e))))};const by=/^\s*\s*$/g,_y=/^$|^module$|\/(java|ecma)script/i,wy=["type","src","nonce","noModule"];function Cy(s,e){const t=y(s);t.filter("script").add(t.find("script")).each((n,i)=>{if(_y.test(i.type)&&Uu.contains(i)){const r=is("script");r.text=i.textContent.replace(by,""),dt(wy,(o,a)=>{i[a]&&(r[a]=i[a])}),e.head.insertBefore(r,null),e.head.removeChild(r)}})}function xy(s,e,t,n,i){n?s.insertBefore(e,t?s.firstChild:null):s.nodeName==="HTML"?s.parentNode.replaceChild(e,s):s.parentNode.insertBefore(e,t?s:s.nextSibling),i&&Cy(e,s.ownerDocument)}function En(s,e,t,n,i,r,o,a){return dt(s,(l,c)=>{dt(y(c),(u,h)=>{dt(y(e),(p,m)=>{const v=t?h:m,w=t?m:h,x=t?u:p;xy(v,x?w.cloneNode(!0):w,n,i,!x)},a)},o)},r),e}se.after=function(){return En(arguments,this,!1,!1,!1,!0,!0)},se.append=function(){return En(arguments,this,!1,!1,!0)};function Sy(s){if(!arguments.length)return this[0]&&this[0].innerHTML;if(Et(s))return this;const e=/]/.test(s);return this.each((t,n)=>{rt(n)&&(e?y(n).empty().append(s):n.innerHTML=s)})}se.html=Sy,se.appendTo=function(s){return En(arguments,this,!0,!1,!0)},se.wrapInner=function(s){return this.each((e,t)=>{const n=y(t),i=n.contents();i.length?i.wrapAll(s):n.append(s)})},se.before=function(){return En(arguments,this,!1,!0)},se.wrapAll=function(s){let e=y(s),t=e[0];for(;t.children.length;)t=t.firstElementChild;return this.first().before(e),this.appendTo(t)},se.wrap=function(s){return this.each((e,t)=>{const n=y(s)[0];y(t).wrapAll(e?n.cloneNode(!0):n)})},se.insertAfter=function(s){return En(arguments,this,!0,!1,!1,!1,!1,!0)},se.insertBefore=function(s){return En(arguments,this,!0,!0)},se.prepend=function(){return En(arguments,this,!1,!0,!0,!0,!0)},se.prependTo=function(s){return En(arguments,this,!0,!0,!0,!1,!1,!0)},se.contents=function(){return y(tn(mn(this,s=>s.tagName==="IFRAME"?[s.contentDocument]:s.tagName==="TEMPLATE"?s.content.childNodes:s.childNodes)))},se.next=function(s,e,t){return Nn(y(tn(mn(this,"nextElementSibling",e,t))),s)},se.nextAll=function(s){return this.next(s,!0)},se.nextUntil=function(s,e){return this.next(e,!0,s)},se.parents=function(s,e){return Nn(y(tn(mn(this,"parentElement",!0,e))),s)},se.parentsUntil=function(s,e){return this.parents(e,s)},se.prev=function(s,e,t){return Nn(y(tn(mn(this,"previousElementSibling",e,t))),s)},se.prevAll=function(s){return this.prev(s,!0)},se.prevUntil=function(s,e){return this.prev(e,!0,s)},se.map=function(s){return y(ny.apply([],Gu.call(this,(e,t)=>s.call(e,t,e))))},se.clone=function(){return this.map((s,e)=>e.cloneNode(!0))},se.offsetParent=function(){return this.map((s,e)=>{let t=e.offsetParent;for(;t&&pn(t,"position")==="static";)t=t.offsetParent;return t||Uu})},se.slice=function(s,e){return y(Yu.call(this,s,e))};const ky=/-([a-z])/g;function dl(s){return s.replace(ky,(e,t)=>t.toUpperCase())}se.ready=function(s){const e=()=>setTimeout(s,0,y);return fn.readyState!=="loading"?e():fn.addEventListener("DOMContentLoaded",e),this},se.unwrap=function(){return this.parent().each((s,e)=>{if(e.tagName==="BODY")return;const t=y(e);t.replaceWith(t.children())}),this},se.offset=function(){const s=this[0];if(!s)return;const e=s.getBoundingClientRect();return{top:e.top+Ur.pageYOffset,left:e.left+Ur.pageXOffset}},se.position=function(){const s=this[0];if(!s)return;const e=pn(s,"position")==="fixed",t=e?s.getBoundingClientRect():this.offset();if(!e){const n=s.ownerDocument;let i=s.offsetParent||n.documentElement;for(;(i===n.body||i===n.documentElement)&&pn(i,"position")==="static";)i=i.parentNode;if(i!==s&&rt(i)){const r=y(i).offset();t.top-=r.top+en(i,"borderTopWidth"),t.left-=r.left+en(i,"borderLeftWidth")}}return{top:t.top-en(s,"marginTop"),left:t.left-en(s,"marginLeft")}};const sd={class:"className",contenteditable:"contentEditable",for:"htmlFor",readonly:"readOnly",maxlength:"maxLength",tabindex:"tabIndex",colspan:"colSpan",rowspan:"rowSpan",usemap:"useMap"};se.prop=function(s,e){if(s){if(_t(s))return s=sd[s]||s,arguments.length<2?this[0]&&this[0][s]:this.each((t,n)=>{n[s]=e});for(const t in s)this.prop(t,s[t]);return this}},se.removeProp=function(s){return this.each((e,t)=>{delete t[sd[s]||s]})};const Ty=/^--/;function fl(s){return Ty.test(s)}const pl={},{style:Dy}=Wu,$y=["webkit","moz","ms"];function Iy(s,e=fl(s)){if(e)return s;if(!pl[s]){const t=dl(s),n=`${t[0].toUpperCase()}${t.slice(1)}`,i=`${t} ${$y.join(`${n} `)}${n}`.split(" ");dt(i,(r,o)=>{if(o in Dy)return pl[s]=o,!1})}return pl[s]}const Ny={animationIterationCount:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0};function id(s,e,t=fl(s)){return!t&&!Ny[s]&&Xu(e)?`${e}px`:e}function Ey(s,e){if(_t(s)){const t=fl(s);return s=Iy(s,t),arguments.length<2?this[0]&&pn(this[0],s,t):s?(e=id(s,e,t),this.each((n,i)=>{rt(i)&&(t?i.style.setProperty(s,e):i.style[s]=e)})):this}for(const t in s)this.css(t,s[t]);return this}se.css=Ey;function rd(s,e){try{return s(e)}catch{return e}}const My=/^\s+|\s+$/;function od(s,e){const t=s.dataset[e]||s.dataset[dl(e)];return My.test(t)?t:rd(JSON.parse,t)}function Ay(s,e,t){t=rd(JSON.stringify,t),s.dataset[dl(e)]=t}function Py(s,e){if(!s){if(!this[0])return;const t={};for(const n in this[0].dataset)t[n]=od(this[0],n);return t}if(_t(s))return arguments.length<2?this[0]&&od(this[0],s):Et(e)?this:this.each((t,n)=>{Ay(n,s,e)});for(const t in s)this.data(t,s[t]);return this}se.data=Py;function ad(s,e){const t=s.documentElement;return Math.max(s.body[`scroll${e}`],t[`scroll${e}`],s.body[`offset${e}`],t[`offset${e}`],t[`client${e}`])}dt([!0,!1],(s,e)=>{dt(["Width","Height"],(t,n)=>{const i=`${e?"outer":"inner"}${n}`;se[i]=function(r){if(this[0])return Os(this[0])?e?this[0][`inner${n}`]:this[0].document.documentElement[`client${n}`]:rs(this[0])?ad(this[0],n):this[0][`${e?"offset":"client"}${n}`]+(r&&e?en(this[0],`margin${t?"Top":"Left"}`)+en(this[0],`margin${t?"Bottom":"Right"}`):0)}})}),dt(["Width","Height"],(s,e)=>{const t=e.toLowerCase();se[t]=function(n){if(!this[0])return Et(n)?void 0:this;if(!arguments.length)return Os(this[0])?this[0].document.documentElement[`client${e}`]:rs(this[0])?ad(this[0],e):this[0].getBoundingClientRect()[t]-Zu(this[0],!s);const i=parseInt(n,10);return this.each((r,o)=>{if(!rt(o))return;const a=pn(o,"boxSizing");o.style[t]=id(t,i+(a==="border-box"?Zu(o,!s):0))})}});const ld="___cd";se.toggle=function(s){return this.each((e,t)=>{if(!rt(t))return;const n=Ju(t);(Et(s)?n:s)?(t.style.display=t[ld]||"",Ju(t)&&(t.style.display=my(t.tagName))):n||(t[ld]=pn(t,"display"),t.style.display="none")})},se.hide=function(){return this.toggle(!1)},se.show=function(){return this.toggle(!0)};const cd="___ce",ml=".",gl={focus:"focusin",blur:"focusout"},hd={mouseenter:"mouseover",mouseleave:"mouseout"},Ly=/^(mouse|pointer|contextmenu|drag|drop|click|dblclick)/i;function yl(s){return hd[s]||gl[s]||s}function vl(s){const e=s.split(ml);return[e[0],e.slice(1).sort()]}se.trigger=function(s,e){if(_t(s)){const[n,i]=vl(s),r=yl(n);if(!r)return this;const o=Ly.test(r)?"MouseEvents":"HTMLEvents";s=fn.createEvent(o),s.initEvent(r,!0,!0),s.namespace=i.join(ml),s.___ot=n}s.___td=e;const t=s.___ot in gl;return this.each((n,i)=>{t&&os(i[s.___ot])&&(i[`___i${s.type}`]=!0,i[s.___ot](),i[`___i${s.type}`]=!1),i.dispatchEvent(s)})};function ud(s){return s[cd]=s[cd]||{}}function Ry(s,e,t,n,i){const r=ud(s);r[e]=r[e]||[],r[e].push([t,n,i]),s.addEventListener(e,i)}function dd(s,e){return!e||!al.call(e,t=>s.indexOf(t)<0)}function Yr(s,e,t,n,i){const r=ud(s);if(e)r[e]&&(r[e]=r[e].filter(([o,a,l])=>{if(i&&l.guid!==i.guid||!dd(o,t)||n&&n!==a)return!0;s.removeEventListener(e,l)}));else for(e in r)Yr(s,e,t,n,i)}se.off=function(s,e,t){if(Et(s))this.each((n,i)=>{!rt(i)&&!rs(i)&&!Os(i)||Yr(i)});else if(_t(s))os(e)&&(t=e,e=""),dt(qr(s),(n,i)=>{const[r,o]=vl(i),a=yl(r);this.each((l,c)=>{!rt(c)&&!rs(c)&&!Os(c)||Yr(c,a,o,e,t)})});else for(const n in s)this.off(n,s[n]);return this},se.remove=function(s){return Nn(this,s).detach().off(),this},se.replaceWith=function(s){return this.before(s).remove()},se.replaceAll=function(s){return y(s).replaceWith(this),this};function Oy(s,e,t,n,i){if(!_t(s)){for(const r in s)this.on(r,e,t,s[r],i);return this}return _t(e)||(Et(e)||Si(e)?e="":Et(t)?(t=e,e=""):(n=t,t=e,e="")),os(n)||(n=t,t=void 0),n?(dt(qr(s),(r,o)=>{const[a,l]=vl(o),c=yl(a),u=a in hd,h=a in gl;c&&this.each((p,m)=>{if(!rt(m)&&!rs(m)&&!Os(m))return;const v=function(w){if(w.target[`___i${w.type}`])return w.stopImmediatePropagation();if(w.namespace&&!dd(l,w.namespace.split(ml))||!e&&(h&&(w.target!==m||w.___ot===c)||u&&w.relatedTarget&&m.contains(w.relatedTarget)))return;let x=m;if(e){let D=w.target;for(;!Qu(D,e);)if(D===m||(D=D.parentNode,!D))return;x=D}Object.defineProperty(w,"currentTarget",{configurable:!0,get(){return x}}),Object.defineProperty(w,"delegateTarget",{configurable:!0,get(){return m}}),Object.defineProperty(w,"data",{configurable:!0,get(){return t}});const S=n.call(x,w,w.___td);i&&Yr(m,c,l,e,v),S===!1&&(w.preventDefault(),w.stopPropagation())};v.guid=n.guid=n.guid||y.guid++,Ry(m,c,l,e,v)})}),this):this}se.on=Oy;function zy(s,e,t,n){return this.on(s,e,t,n,!0)}se.one=zy;const Fy=/\r?\n/g;function jy(s,e){return`&${encodeURIComponent(s)}=${encodeURIComponent(e.replace(Fy,`\r +`))}`}const Hy=/file|reset|submit|button|image/i,fd=/radio|checkbox/i;se.serialize=function(){let s="";return this.each((e,t)=>{dt(t.elements||[t],(n,i)=>{if(i.disabled||!i.name||i.tagName==="FIELDSET"||Hy.test(i.type)||fd.test(i.type)&&!i.checked)return;const r=nd(i);if(!Et(r)){const o=Wr(r)?r:[r];dt(o,(a,l)=>{s+=jy(i.name,l)})}})}),s.slice(1)},window.$=y;function pd(s,e){if(s==null)return[s,void 0];typeof e=="string"&&(e=e.split("."));const t=e.join(".");let n=s;const i=[n];for(;typeof n=="object"&&n!==null&&e.length;){let r=e.shift(),o;const a=r.indexOf("[");if(a>0&&a{const i=t[n]??"";s=s.replace(new RegExp(`\\{${n}\\}`,"g"),`${i}`)}),s}for(let t=0;t(s[s.B=1]="B",s[s.KB=1024]="KB",s[s.MB=1048576]="MB",s[s.GB=1073741824]="GB",s[s.TB=1099511627776]="TB",s))(bl||{});function pt(s,e=2,t){return Number.isNaN(s)?"?KB":(t||(s<1024?t="B":s<1048576?t="KB":s<1073741824?t="MB":s<1099511627776?t="GB":t="TB"),(s/bl[t]).toFixed(e)+t)}const gn=s=>{const e=/^[0-9]*(B|KB|MB|GB|TB)$/;s=s.toUpperCase(),s.endsWith("B")||(s+="B");const t=s.match(e);if(!t)return 0;const n=t[1];return s=s.replace(n,""),Number.parseInt(s,10)*bl[n]};let _l=(document.documentElement.getAttribute("lang")||"zh_cn").toLowerCase().replace("-","_"),yn;function md(){return _l}function Uy(s){_l=s.toLowerCase().replace("-","_")}function gd(s,e){yn||(yn={}),typeof s=="string"&&(s={[s]:e??{}}),y.extend(!0,yn,s)}function Ee(s,e,t,n,i,r){Array.isArray(s)?yn&&s.unshift(yn):s=yn?[yn,s]:[s],typeof t=="string"&&(r=i,i=n,n=t,t=void 0);const o=i||_l;let a;for(const l of s){if(!l)continue;const c=l[o]||l.default;if(!c)continue;const u=r&&l===yn?`${r}.${e}`:e;if(a=ki(c,u),a!==void 0)break}return a===void 0?n:t?_e(a,...Array.isArray(t)?t:[t]):a}function Wy(s,e,t,n){return Ee(void 0,s,e,t,n)}Ee.addLang=gd,Ee.getLang=Wy,Ee.getCode=md,Ee.setCode=Uy,Ee.map=yn,gd({zh_cn:{confirm:"确定",save:"保存",cancel:"取消",delete:"删除",reset:"重置",add:"添加",copy:"复制",close:"关闭"},zh_tw:{confirm:"確定",save:"儲存",cancel:"取消",delete:"刪除",reset:"重置",add:"添加",Copy:"複製",close:"關閉"},en:{confirm:"Confirm",save:"Save",cancel:"Cancel",delete:"Delete",reset:"Reset",add:"Add",copy:"Copy",close:"Close"}});function as(s,e,t){t!=null&&(Array.isArray(t)?t.forEach(n=>as(s,e,n)):!(t instanceof Blob)&&y.isPlainObject(t)?Object.entries(t).forEach(([n,i])=>{as(s,`${e}[${n}]`,i)}):s.append(e,t instanceof Blob?t:String(t)))}function Xr(s,e){const t=e||new FormData;return s&&(typeof s=="string"&&(s=new URLSearchParams(s)),s instanceof URLSearchParams?s.forEach((n,i)=>{as(t,i,n)}):Array.isArray(s)?s.forEach(([n,i])=>{as(t,n,i)}):s instanceof FormData?s.forEach((n,i)=>{as(t,i,n)}):typeof s=="object"&&s&&Object.entries(s).forEach(([n,i])=>{as(t,n,i)})),t}function yd(s,e,t){s instanceof Headers?s.set(e,t):Array.isArray(s)?s.push([e,t]):s[e]=t}function Vy(s,e){if(s){const t={text:"text/plain",html:"text/html",json:"application/json",...e};for(const[n,i]of Object.entries(t))if(i.split(",").map(r=>r.trim()).includes(s))return n}return"text"}class Ti{get completed(){return this.data!==void 0||this.error!==void 0}get[Symbol.toStringTag](){return"Ajax"}constructor(e){this.setting=e,this._controller=new AbortController,this._callbacks={success:[],error:[],complete:[]}}on(e,t){return this._callbacks[e].push(t),this}success(e){return this.on("success",e)}done(e){return this.success(e)}fail(e){return this.on("error",e)}complete(e){return this.on("complete",e)}always(e){return this.complete(e)}then(e,t){return this.completed?t&&this.error?t(this.error):e(this.data):(this.success(n=>e(n)),t&&this.fail(t)),this}catch(e){return this.error?(e(this.error),this):this.on("error",t=>e(t))}finally(e){return this.completed?(e(),this):this.complete(()=>e())}abort(e){return this.completed?!1:(this._abortError=e,this._controller.abort(),!0)}getResponseHeader(e){var t;return(t=this.response)==null?void 0:t.headers.get(e)}_init(){if(this.completed)return;const{url:e,type:t,data:n,processData:i=!0,contentType:r,crossDomain:o,accepts:a,dataType:l,timeout:c,dataFilter:u,beforeSend:h,success:p,error:m,complete:v,...w}=this.setting;t&&(w.method=t);let x=n;x&&(i&&(x=Xr(x)),w.body=x),o&&(w.mode="cors");const S=w.headers||{};yd(S,"X-Requested-With","XMLHttpRequest"),r&&yd(S,"Content-Type",r),w.headers=S,w.signal&&w.signal.addEventListener("abort",()=>{this.abort()});const D=[...this.constructor.globalBeforeSends,h];for(const M of D){if(!M)continue;const P=M.call(this,w);if(P===!1)return;P&&Object.assign(w,P)}p&&this.success(p),m&&this.fail(m),v&&this.complete(v),w.signal=this._controller.signal,this.url=e,this.request=w}_emit(e,...t){this._callbacks[e].forEach(n=>{n.call(this,...t)})}async send(){var u;if(this.completed)return[];this._init();const{timeout:e,dataType:t,accepts:n,dataFilter:i,throws:r,jsonParser:o}=this.setting;e&&(this._timeoutID=window.setTimeout(()=>{this.abort(new Error("timeout"))},e));let a,l,c;try{a=await fetch(this.url,this.request),this.response=a;const{statusText:h}=a;if(a.ok){const p=(u=a.headers.get("Content-Disposition"))==null?void 0:u.startsWith("attachment"),m=p?"blob":t||Vy(a.headers.get("Content-Type"),n);p||m==="blob"||m==="file"?c=await a.blob():m==="json"?typeof o=="function"?(c=await a.text(),c=o(c)):c=await a.json():c=await a.text(),this.data=c;const v=(i==null?void 0:i(c,m))??c;this._emit("success",v,h,a)}else throw this.data=await a.text(),new Error(h)}catch(h){this.data===void 0&&c!==void 0&&(this.data=c),l=h;let p=!1;l.name==="AbortError"&&(this._abortError?l=this._abortError:p=!0),this.error=l,p||this._emit("error",l,a==null?void 0:a.statusText,l.message)}if(this._timeoutID&&clearTimeout(this._timeoutID),this._emit("complete",a,a==null?void 0:a.statusText),l&&r)throw l;return[c,l,a]}}Ti.globalBeforeSends=[],y.ajax=(s,e)=>{e=e||{},typeof s=="string"?e.url=s:y.extend(e,s);const t=new Ti(e);return t.send(),t},y.getJSON=(s,e,t)=>(typeof e=="function"&&(t=e,e=void 0),y.ajax({url:s,data:e,success:t,dataType:"json"})),y.get=(s,e,t,n,i="GET")=>{let r,o;return typeof e=="function"?(r=e,o=void 0):o=e,typeof t=="function"?(r=t,n=void 0):n=t,y.ajax({method:i,url:s,data:o,success:r,dataType:n})},y.post=(s,e,t,n)=>y.get(s,e,t,n,"POST"),y.fn.load=function(s,e,t){typeof e=="function"&&(t=e,e=void 0);const[n,i]=s.split(" ");return y.get(n,e,(r,o,a)=>{i&&(r=y(r).find(i).html()),y(this).html(r).zuiInit(),t==null||t.call(this,r,o,a)},"html"),this};async function mt(s,e=[],t,n,i){const r={throws:!0,dataType:"json"};if(typeof s=="string")r.url=s;else if(typeof s=="object")y.extend(r,s);else if(typeof s=="function"){const l=s.call(n,...e);return l instanceof Promise?await l:l}t&&y.extend(r,typeof t=="function"?t(r):t),r.url&&(r.url=_e(r.url,...e));const o=new Ti(r);i==null||i(o);const[a]=await o.send();return a}function wl(s){return!!(s&&(typeof s=="string"||typeof s=="object"&&s.url||typeof s=="function"))}y.fetch=mt;function wt(){return y.guid++}function Zr(s,e){if(s===e)return!1;if(s&&e){const t=typeof s,n=typeof e;if(t!==n)return!0;if(t==="object"&&n==="object"){const i=Array.isArray(s),r=Array.isArray(e);if(i!==r)return!0;if(i&&r){if(s.length!==e.length)return!0;for(let l=0;ln instanceof ls?n.value!==t[i]:Zr(n,t[i])))&&(this._value=this._compute(),this._lastDependencies=e.map(n=>n instanceof ls?n.cache:n)),this._value}}function Cl(...s){const e=[],t=new Map,n=(i,r)=>{if(Array.isArray(i)&&(r=i[1],i=i[0]),!i.length)return;const o=t.get(i);typeof o=="number"?e[o][1]=!!r:(t.set(i,e.length),e.push([i,!!r]))};return s.forEach(i=>{typeof i=="function"&&(i=i()),Array.isArray(i)?Cl(...i).forEach(n):i&&typeof i=="object"?Object.entries(i).forEach(n):typeof i=="string"&&i.split(" ").forEach(r=>n(r,!0))}),e.sort((i,r)=>(t.get(i[0])||0)-(t.get(r[0])||0))}const V=(...s)=>Cl(...s).reduce((e,[t,n])=>(n&&e.push(t),e),[]).join(" ");y.classes=V,y.fn.setClass=function(s,...e){return this.each((t,n)=>{const i=y(n);s===!0?i.attr("class",V(i.attr("class"),...e)):i.addClass(V(s,...e))})};const zs=new WeakMap;function Jr(s,e,t){const n=zs.has(s),i=n?zs.get(s):{};typeof e=="string"?i[e]=t:e===null?Object.keys(i).forEach(r=>{delete i[r]}):Object.assign(i,e),Object.keys(i).forEach(r=>{i[r]===void 0&&delete i[r]}),Object.keys(i).length?(!n&&s instanceof Element&&Object.assign(i,y(s).dataset(),i),zs.set(s,i)):zs.delete(s)}function Di(s,e,t){let n=zs.get(s)||{};return t&&s instanceof Element&&(n=Object.assign({},y(s).dataset(),n)),e===void 0?n:n[e]}function Ky(s){zs.delete(s)}y.fn.dataset=y.fn.data,y.fn.data=function(...s){const[e,t]=s;return!s.length||s.length===1&&typeof e=="string"?this.length?Di(this[0],e,!0):void 0:this.each((n,i)=>Jr(i,e,t))},y.fn.removeData=function(s=null){return this.each((e,t)=>Jr(t,s))};function cs(s,...e){return s.includes("RAWJS")&&(s=s.split('"RAWJS<').join("").split('>RAWJS"').join("").split("").join('"').split("").join(` +`)),new Function(`return ${s}`)(...e)}function xl(s,...e){return s.includes("RAWJS")?cs(s,...e):JSON.parse(s)}function qy(s){return JSON.stringify(s,(e,t)=>{if(typeof t=="function")return`RAWJS<${t.toString().split('"').join("").split(` +`).join("")}>RAWJS`})}function Fs(s,e){const t=y(s)[0];if(!t)return;const{prefix:n,getter:i,evalValue:r,json:o=!0,evalArgs:a=[]}={prefix:"z-",...typeof e=="string"?{prefix:e}:e},l=Array.isArray(r)?new Set(r):void 0;return Array.from(t.attributes).reduce((c,u)=>{let{name:h}=u;const{value:p}=u;let m=p;if(h.startsWith(n)){if(h=h.slice(n.length).replace(/-([a-z])/g,v=>v[1].toUpperCase()),i)m=i(h,p);else try{r&&(!l||l.has(h))||r===void 0&&p.includes("RAWJS")?m=cs(p,...a):o&&(m=JSON.parse(p))}catch{}c[h]=m}return c},{})}function Sl(s,e,t="z-"){const n=y(s);Object.keys(e).forEach(i=>{let r=e[i];typeof r=="function"&&(r=`RAWJS<${r}>RAWJS`),typeof r!="string"&&(r=JSON.stringify(r)),i=i.replace(/[A-Z]/g,o=>`-${o.toLowerCase()}`),n.attr(`${t}${i}`,r)})}function Gy(...s){var t;const e=s.length;if(!e)return Fs(this);if(e===1){const[n]=s;return typeof n=="string"?(t=Fs(this))==null?void 0:t[n]:(y.isPlainObject(n)&&Sl(this,n),this)}return Sl(this,{[s[0]]:s[1]}),this}y.fn.z=Gy,y.fn._attr=y.fn.attr,y.fn.extend({attr(...s){const[e,t]=s;return!s.length||s.length===1&&typeof e=="string"?this._attr.apply(this,s):typeof e=="object"?(e&&Object.keys(e).forEach(n=>{const i=e[n];i===null?this.removeAttr(n):this._attr(n,i)}),this):t===null?this.removeAttr(e):this._attr(e,t)}}),y.Event||(y.Event=(s,e)=>{const[t,...n]=s.split("."),i=new Event(t,{bubbles:!0,cancelable:!0});return i.namespace=n.join("."),i.___ot=t,i.___td=e,i});const hs=(s,e)=>new Promise(t=>{const n=window.setTimeout(t,s);e&&e(n)}),vd={};y.share=vd;var Qr,Be,bd;I.isValidElement=void 0;var us,_d,wd,kl,Tl,Dl,$l,$i={},Cd=[],Yy=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,eo=Array.isArray;function An(s,e){for(var t in e)s[t]=e[t];return s}function xd(s){s&&s.parentNode&&s.parentNode.removeChild(s)}function _(s,e,t){var n,i,r,o={};for(r in e)r=="key"?n=e[r]:r=="ref"?i=e[r]:o[r]=e[r];if(arguments.length>2&&(o.children=arguments.length>3?Qr.call(arguments,2):t),typeof s=="function"&&s.defaultProps!=null)for(r in s.defaultProps)o[r]===void 0&&(o[r]=s.defaultProps[r]);return to(s,o,n,i,null)}function to(s,e,t,n,i){var r={type:s,props:e,key:t,ref:n,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:i??++bd,__i:-1,__u:0};return i==null&&Be.vnode!=null&&Be.vnode(r),r}function ue(){return{current:null}}function vn(s){return s.children}function pe(s,e){this.props=s,this.context=e}function js(s,e){if(e==null)return s.__?js(s.__,s.__i+1):null;for(var t;ee&&us.sort(kl));no.__r=0}function Td(s,e,t,n,i,r,o,a,l,c,u){var h,p,m,v,w,x=n&&n.__k||Cd,S=e.length;for(t.__d=l,Xy(t,e,x),l=t.__d,h=0;h0?to(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i).__=s,i.__b=s.__b+1,r=null,(a=i.__i=Zy(i,t,o,u))!==-1&&(u--,(r=t[a])&&(r.__u|=131072)),r==null||r.__v===null?(a==-1&&h--,typeof i.type!="function"&&(i.__u|=65536)):a!==o&&(a==o-1?h--:a==o+1?h++:(a>o?h--:h++,i.__u|=65536))):i=s.__k[n]=null;if(u)for(n=0;n(l!=null&&!(131072&l.__u)?1:0))for(;o>=0||a=0){if((l=e[o])&&!(131072&l.__u)&&i==l.key&&r===l.type)return o;o--}if(a{!t||typeof t!="object"||Object.keys(t).forEach(n=>{let i=t[n];const r=s[n];i!==r&&(r!==void 0&&(n==="className"||n.endsWith("Class")?i=[r,i]:n==="children"?i=[...so(r),...so(i)]:typeof r=="object"&&(n==="style"||n.endsWith("Style")||n==="attrs"||n.endsWith("Attrs")||n==="props")&&(i=y.extend(r,i))),s[n]=i)})}),s}function El(s){return Object.keys(s).forEach(e=>{s[e]===void 0&&delete s[e]}),s}function Md(s,e=!0){const t=y(s),n=t[0],i="zui-disable-scroll";if(e){if(t.data(i))return;if((t.css("scrollbar-gutter")||"").includes("stable")){t.data(i,{overflow:t.css("overflow")}).css("overflow","hidden");return}const r=n===document.body||t.is("html")?window.innerWidth-document.body.clientWidth:n.offsetWidth-n.clientWidth;if(!r)return;const o=t.css("paddingRight")||"0";t.data(i,{paddingRight:o,overflow:t.css("overflow")}).css({paddingRight:`${r+Number.parseInt(o,10)}px`,overflow:"hidden"})}else{const r=t.data(i);if(!r)return;t.css(r).removeData(i)}}y.fn.disableScroll=function(s=!0){return this.each((e,t)=>{Md(t,s)})},y.fn.enableScroll=function(s=!0){return this.disableScroll(!s)};function Ml(s,e,t){if(!(t.on||"click").split(" ").includes(e.type))return;const n=t.selector?y(e.target).closest(t.selector):s;if(!n.length)return;const i=c=>c===""?!0:c,r=c=>{if(typeof c=="string")try{c=JSON.parse(c)}catch{}return c};if(i(t.once)){if(t.onceCalled)return;s.dataset("once-called",!0)}if(i(t.prevent)&&e.preventDefault(),i(t.stop)&&e.stopPropagation(),i(t.self)&&e.currentTarget!==e.target)return;const o=[["$element",s],["event",e],["options",t],["$target",n]],a=c=>typeof c=="function"?c(...o):y.runJS(c,...o);if(t.if!==void 0&&!a(t.if))return;const l=t.call;if(l){let c;if(typeof l=="string"?c=/^[$A-Z_][0-9A-Z_$.]*$/i.test(l)?ki(window,l):a(l):c=l,typeof c=="function"){const u=[],h=t.params;t.params=u,typeof h=="string"&&h.length?h[0]==="["?u.push(...r(h)):u.push(...h.split(", ").map(p=>(p=p.trim(),p==="$element"?s:p==="event"?e:p==="options"?t:p.startsWith("$element.")||p.startsWith("event.")||p.startsWith("options.")?a(p):r(p)))):Array.isArray(h)?u.push(...h):u.push(h),c(...u)}}t.do&&a(t.do)}function ev(s){const e=y(this),t=s.type,n=e.attr("zui-on");if(n){const[o,a]=n.split("~").map(l=>l.trim());o&&o.split(" ").includes(t)&&Ml(e,s,y.extend({on:o},a?a.startsWith("{")?cs(a):{do:a}:Fs(e,{prefix:"data-",evalValue:["call","if","do"]})))}const i=e.attr(`zui-on-${t}`);i&&Ml(e,s,y.extend({on:t},i.startsWith("{")?cs(i):{do:i}));const r=e.attr("data-on");r&&r.split(" ").includes(t)&&Ml(e,s,Fs(e,{prefix:"data-",evalValue:["call","if","do"]}))}function Ad(s){y(document).off(".zui.global").on(s.map(e=>`${e}.zui.global`).join(" "),`[zui-on],${s.map(e=>`[zui-on-${e}]`)},[data-on]`,ev)}y(()=>{Ad(["click","change","inited"])});function fs(s,e){if(typeof s=="function")return fs(s(...e||[]));if(typeof s=="number")return[s];let t=s.match(/(\d+)(%|px)?/);return t?[parseInt(t[1]),t[2]]:(t=s.match(/(\d+)\/(\d+)/),t?[100*parseInt(t[1])/parseInt(t[2]),"%"]:[NaN])}function qe(s,e){if(s==null)return null;const[t,n="px"]=fs(s,e);return Number.isNaN(t)?typeof s=="string"?s:null:`${t}${n}`}async function Hs(s,e){var n,i,r;if(s instanceof Blob){const o=document.createElement("a");return o.href=window.URL.createObjectURL(s),e&&(o.download=decodeURIComponent(e)),o.click(),o.remove(),s}if(s instanceof Response){const o=await s.blob();return e=e||((r=(i=(n=s.headers.get("Content-Disposition"))==null?void 0:n.split(";")[1])==null?void 0:i.split("=")[1])==null?void 0:r.replace(/"/g,"")),Hs(o,e)}const t=await fetch(s);return Hs(t)}class Pd{constructor(e){this._$target=y(e)}on(...e){return this._$target.on(...e),this}one(...e){return this._$target.one(...e),this}off(...e){return this._$target.off(...e),this}trigger(...e){return this._$target.trigger(...e),this}}const nn=new Pd(document);y.bus=nn,y.on=nn.on.bind(nn),y.one=nn.one.bind(nn),y.off=nn.off.bind(nn),y.trigger=nn.trigger.bind(nn);var tv=["Shift","Meta","Alt","Control"],Ld=typeof navigator=="object"?navigator.platform:"",Rd=/Mac|iPod|iPhone|iPad/.test(Ld),nv=Rd?"Meta":"Control",sv=Ld==="Win32"?["Control","Alt"]:Rd?["Alt"]:[];function Al(s,e){return typeof s.getModifierState=="function"&&(s.getModifierState(e)||sv.includes(e)&&s.getModifierState("AltGraph"))}function iv(s){return s.trim().split(" ").map(function(e){var t=e.split(/\b\+/),n=t.pop();return[t=t.map(function(i){return i==="$mod"?nv:i}),n]})}function Od(s,e){var t;e===void 0&&(e={});var n=(t=e.timeout)!=null?t:1e3,i=Object.keys(s).map(function(a){return[iv(a),s[a]]}),r=new Map,o=null;return function(a){a instanceof KeyboardEvent&&(i.forEach(function(l){var c=l[0],u=l[1],h=r.get(c)||c;(function(p,m){return!(m[1].toUpperCase()!==p.key.toUpperCase()&&m[1]!==p.code||m[0].find(function(v){return!Al(p,v)})||tv.find(function(v){return!m[0].includes(v)&&m[1]!==v&&Al(p,v)}))})(a,h[0])?h.length>1?r.set(c,h.slice(1)):(r.delete(c),u(a)):Al(a,a.key)||r.delete(c)}),o&&clearTimeout(o),o=setTimeout(r.clear.bind(r),n))}}function rv(s,e,t){var n;t===void 0&&(t={});var i=(n=t.event)!=null?n:"keydown",r=Od(e,t);return s.addEventListener(i,r),function(){s.removeEventListener(i,r)}}function Pl(s,e={}){if(!s)return;const t=Object.keys(e).reduce((n,i)=>(e[i].optional||(n[i]={...e[i]}),n),{});return Object.keys(s).forEach(n=>{const i=s[n];i?i===!0?e[n]&&(t[n]={...e[n]}):t[n]=i:delete t[n]}),Object.keys(t).reduce((n,i)=>{const{keys:r,handler:o}=t[i];return typeof r=="string"?n[r]=o:r.forEach(a=>{n[a]=o}),n},{})}function Ll(s,e,t){const{timeout:n,event:i="keydown",scope:r,when:o}=t||{},a=Od(e,{timeout:n}),l=`.zui.hotkeys${r?`.${r}`:""}`,c="zui-hotkeys-composing";return y(s).on(`${i}${l}`,function(u){o&&o(u)===!1||y(u.target).data(c)||a(u)}).on(`compositionstart${l}`,u=>{y(u.target).data(c,!0)}).on(`compositionend${l}`,u=>{y(u.target).removeData(c)})}function Rl(s,e){return y(s).off(`.zui.hotkeys${e?`.${e}`:""}`)}const ov=rv;y.fn.hotkeys=function(s,e){return Ll(this,s,e)},y.fn.unbindHotkeys=function(s){return Rl(this,s)},y.hotkeys=function(s,e){Ll(window,s,e)},y.unbindHotkeys=function(s){Rl(window,s)};function ro(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement}async function zd(s){(typeof s=="string"||s instanceof Element||s instanceof y)&&(s={target:s});const{target:e,onError:t,onSuccess:n,afterExit:i,afterEnter:r}=s,o=y(e),a=o[0];if(!a)return;const l=a.requestFullscreen||a.webkitRequestFullscreen||a.mozRequestFullScreen;if(!l){t==null||t.call(a,new Error("[ZUI] The browser does not support full screen feature."));return}try{await l.call(a),n==null||n.call(a),y(a).off(".zui.fullscreen"),i&&o.on("exitFullscreen.zui.fullscreen",i),r&&o.on("enterFullscreen.zui.fullscreen",r)}catch(c){t==null||t.call(a,c)}document.zuiBindFullscreenChange||(document.zuiBindFullscreenChange=!0,y(document).on("fullscreenchange.zui webkitfullscreenchange.zui mozfullscreenchange.zui",c=>{const u=ro();let h=u;u?y(u).addClass("is-in-fullscreen"):(h=y(document).find(".is-in-fullscreen")[0]||document,y(h).removeClass("is-in-fullscreen")),y("body").toggleClass("has-in-fullscreen",!!u);const p={event:c,target:h,fullscreenElement:u};y(h).trigger(u?"enterFullscreen":"exitFullscreen",p).trigger("toggleFullscreen",p)}))}async function Ol(s){const e=ro();return s===!1&&!!e===s?s:e?(document.exitFullscreen(),!1):(await zd(s),!0)}y.fn.fullscreen=function(s){return Ol({target:this,...s})},y.getFullscreenElement=ro,y.toggleFullscreen=Ol;function Pn(s){return!s||s.parentNode===document?!1:s.parentNode?Pn(s.parentNode):!0}y.isDetached=Pn,y.fn.isDetached=function(){const s=this[0];return!s||Pn(s)};const ps=class Bg{constructor(e,t){var v;this._inited=!1,this._autoDestory=0,this._destroyed=!1;const{KEY:n,DATA_KEY:i,MULTI_INSTANCE:r,NAME:o,ATTR_KEY:a,ALL:l,TYPED_ALL:c}=this.constructor;if(!o)throw new Error('[ZUI] The component must have a "NAME" static property.');const u=y(e);if(u.data(n)&&!r)throw new Error(`[ZUI] The component "${o}" has been initialized on element.`);const h=u[0];if(!h)throw new Error(`[ZUI] Invalid selector "${e}" for component "${o}", can not find the element matched.`);const p=wt();this._gid=p,this._element=h,this.resetOptions(t),this._key=this.options.key??`__${p}`;let m=l.get(h);if(m?m.add(this):(m=new Set([this]),l.set(h,m)),c.has(o)?c.get(o).add(this):c.set(o,new Set([this])),u.data(n,this).attr(a,"").attr(i,`${p}`).attr("z-use",[...new Set([...m].map(w=>w.constructor.NAME))].join(",")),r){const w=`${n}:ALL`;let x=u.data(w);x||(x=new Map,u.data(w,x)),x.set(this._key,this)}this.init(),(v=this.options.$onCreate)==null||v.call(this),requestAnimationFrame(async()=>{var w;this._inited=!0,await this.afterInit(),this.emit("inited",this.options),(w=this.options.$onInited)==null||w.call(this)})}static get ZUI(){return this.NAME.replace(/(^[A-Z]+)/,e=>e.toLowerCase())}static get KEY(){return`zui.${this.NAME}`}static get NAMESPACE(){return`.zui.${this.ZUI}`}static get DATA_KEY(){return`data-zui-${this.NAME}`}static get ATTR_KEY(){return`z-use-${this.NAME}`}static get SELECTOR(){return`[${this.DATA_KEY}]`}get inited(){return this._inited}get destroyed(){return this._destroyed}get element(){return this._element}get key(){return this._key}get options(){return this._options}get gid(){return this._gid}get $element(){return y(this.element)}get $emitter(){return this.$element}get i18nData(){return[this.options.i18n,this.constructor.i18n]}init(){}afterInit(){}render(e,t){this.setOptions(e,t)}destroy(){var m;const{KEY:e,DATA_KEY:t,ALL:n,TYPED_ALL:i,NAME:r,MULTI_INSTANCE:o,ATTR_KEY:a}=this.constructor,{$element:l,element:c}=this;if(this.emit("destroyed"),this._destroyed=!0,l.off(this.namespace).removeData(e).removeAttr(a).removeAttr(t),o){const v=this.$element.data(`${e}:ALL`);if(v)if(v.delete(this._key),v.size===0)this.$element.removeData(`${e}:ALL`);else{const w=v.values().next().value;l.data(e,w).attr(t,String(w==null?void 0:w.gid))}}const u=n.get(c);u&&(u.delete(this),u.size===0&&n.delete(c));const h=i.get(r);h&&(h.delete(this),h.size===0&&i.delete(r));const p=n.get(c);p!=null&&p.size?l.attr("z-use",[...new Set([...p].map(v=>v.constructor.NAME))].join(",")):l.removeAttr("z-use"),(m=this.options.$onDestroy)==null||m.call(this)}autoDestroy(e=100){this._autoDestory&&clearTimeout(this._autoDestory),this._autoDestory=window.setTimeout(()=>{this._autoDestory=0,Pn(this.element)&&this.destroy()},e)}setOptions(e,t){if(t){const n={...this.constructor.DEFAULT,...(e==null?void 0:e.$optionsFromDataset)!==!1?this.$element.dataset():{},...e},{$options:i}=n;if(i){const r=typeof i=="function"?i.call(this,this.element,n):i;r&&y.extend(n,r),delete n.$options}this._options=n}else e&&y.extend(this._options,e);return this._options}resetOptions(e){return this.setOptions(e,!0)}emit(e,...t){const n=y.Event(e);return n.__src=this,this.$emitter.trigger(n,[this,...t]),n}on(e,t,n){const i=this;this.$element[n!=null&&n.once?"one":"on"](this._wrapEvent(e),function(r,o){(!r.__src||r.__src===i)&&t.call(this,r,o)})}one(e,t){this.on(e,t,{once:!0})}off(e){this.$element.off(this._wrapEvent(e))}i18n(e,t,n){const{i18nData:i}=this;return Ee(i,e,t,n,this.options.lang,this.constructor.NAME)??Ee(i,e,t,n,this.options.lang)??`{i18n:${e}}`}get namespace(){return`${this.constructor.NAMESPACE}.${this._key}`}_wrapEvent(e){return e.split(" ").map(t=>t.includes(".")?t:`${t}${this.namespace}`).join(" ")}static get(e,t){const n=y(e);if(this.MULTI_INSTANCE&&t!==void 0){const i=n.data(`${this.KEY}:ALL`);return i?i.get(t):void 0}return n.data(this.KEY)}static isValid(e){return!0}static ensure(e,t){const n=this.get(e,t==null?void 0:t.key);if(n){if(this.isValid(n))return t&&n.setOptions(t),n;n.destroy()}return new this(e,t)}static getAll(e,t){var l;const{SELECTOR:n,ALL:i,TYPED_ALL:r}=this,o=[],a=c=>{c instanceof this&&(!t||t(c)!==!1)&&o.push(c)};return e?y(e).find(n).each((c,u)=>{var h;(h=i.get(u))==null||h.forEach(a)}):this!==Bg?(l=r.get(this.NAME))==null||l.forEach(a):i.forEach(c=>{c.forEach(a)}),o.sort((c,u)=>c.gid-u.gid)}static query(e,t,n){return e===void 0?this.getAll(void 0,n).pop():this.get(y(e).closest(this.SELECTOR),t)}static defineFn(e){let t=e||this.ZUI;y.fn[t]&&(t=`zui${this.NAME}`);const n=this;y.fn.extend({[t](i,...r){const o=typeof i=="object"?i:void 0,a=typeof i=="string"?i:void 0;let l;return this.each((c,u)=>{let h=n.get(u);if(h)o&&h.render(o);else{if(a)return;h=new n(u,o)}if(a){let p=h[a],m=h;p===void 0&&(m=h.$,p=m[a]),typeof p=="function"?l=p.call(m,...r):l=p}}),l!==void 0?l:this}})}static register(e,t){var i,r;e=e||this,t=(t??e.NAME).toLowerCase(),this.map.set(t,e);const n=(r=(i=e.toggle)==null?void 0:i.name)==null?void 0:r.toLowerCase();n&&n!==t&&this.toggleMap.set(n,e)}};ps.DEFAULT={},ps.MULTI_INSTANCE=!1,ps.ALL=new Map,ps.TYPED_ALL=new Map,ps.map=new Map,ps.toggleMap=new Map;let Ue=ps;function Ii(s){return Ue.map.get(s.toLowerCase())}function oo(s,e,t={}){let n=Ii(s);if(n||(n=zl(s)),!n)return null;const{$update:i,...r}=t;if(!n.MULTI_INSTANCE){const o=n.get(e);if(o)return i&&o.render(r,i==="reset"),o}return new n(e,r)}function av(s,e,t={}){requestAnimationFrame(()=>oo(s,e,t))}function Fd(s,e){Ue.register(s,e)}function zl(s){const{zui:e}=window;if(e){s=s==null?void 0:s.toLowerCase();for(const t in e){const n=t.toLowerCase()===s;if(s&&!n)continue;const i=e[t];if(!(typeof i!="function"||!i.NAME||!i.ZUI)&&(Ue.map.has(t.toLowerCase())||Fd(i),n))return i}}}function lv(s){var e;s?(e=Ii(s))==null||e.defineFn():window._zuiDefined||(zl(),Ue.map.forEach(t=>{t.defineFn()}),Object.assign(window,{_zuiDefined:!0}))}function cv(s,e={}){const t=y(s);let n=t.attr("zui-create");const{update:i,onCreate:r}=e,o=(a,l)=>{if(l={$update:i,$optionsFromDataset:!1,...l},r){const u=r(a,l);if(u===!1)return;u&&(l=u)}const c=l.$lib;if(c){delete l.$lib,y.getLib(c).then(()=>oo(a,s,l));return}av(a,s,l)};if(typeof n=="string"){n=n.trim();const a=n.length?n.split(",").map(u=>u.trim()):[],l=Fs(s,{prefix:"zui-create-",evalValue:!0}),c=Object.keys(l);if(!c.length&&a.length===1)o(a[0],t.dataset());else{const u=new Set;[...a,...c].forEach(h=>{if(u.has(h))return;const p=l[h];o(h,p),delete l[h],u.add(h)})}}else{const a=t.dataset(),l=a==null?void 0:a.zui;if(!l)return;console.warn("[ZUI] create component instance with [data-zui] is deprecated, use [zui-create] instead.",{element:s,options:e}),delete a.zui,o(l,a)}}function hv(){y(document).on("click.zui.toggle mouseenter.zui.toggle","[data-toggle],[zui-toggle]",function(s){const e=y(this),t=e.dataset("toggle")||e.attr("zui-toggle");if(!t)return;const n=Ue.toggleMap.get(t)||Ii(t),i=n==null?void 0:n.toggle;if(!i)return;const{trigger:r="click",skip:o="[disabled],.disabled",check:a}=i,l=s.type==="mouseover"?"hover":"click";if(!r.includes(l)||a&&!a.call(n,this,l,s)||o&&e.is(o))return;const{onGet:c,onCreate:u,setOptions:h=!0,getOptions:p,prevent:m=!0,handler:v,onToggle:w,convertHref:x}=i;let S=e.dataset();const D=e.attr(`zui-toggle-${t}`);if(D&&(S=y.extend(S,cs(D))),x&&e.is("a")){const P=e.attr("href");if(P){const B=x===!0?{selector:"target",url:"url"}:x;"#.".includes(P[0])?B.selector&&S[B.selector]===void 0&&(S[B.selector]=P):B.url&&S[B.url]===void 0&&(S[B.url]=P)}}if(p&&(S=p.call(n,this,S,s)),v){v.call(n,this,S,l,s),m&&s.preventDefault();return}let M=c?c.call(n,this):n.get(this);if(M)h&&M.setOptions(S);else{const P=u?u.call(n,this,s,S):new n(this,S);if(!P)return;M=P}if(w){if(w.call(n,M,this,s)===!1)return}else{const{shown:P,show:B,hide:q,toggle:Y}=M;let Z;if(Y?Z=Y:B&&q?P?Z=q:Z=B:B&&(Z=B),Z)Z.call(M);else return}m&&s.preventDefault()})}function uv(s,e){const t=Di(s),n=[];return Object.keys(t).forEach(i=>{if(!i.startsWith("zui."))return;const r=t[i];(e==null?void 0:e(r,i))!==!1&&n.push(t[i])}),n}let ao=0;function jd(s=100){if(ao&&clearTimeout(ao),s){ao=window.setTimeout(()=>jd(0),s);return}ao=0,Ue.ALL.forEach(e=>{e.forEach(t=>t.autoDestroy())})}function dv(){if(!document.body||Di(document.body,"_autoDestoryMob"))return;const s=new MutationObserver(e=>{let t=!1;for(const n of e)if(n.removedNodes.length){t=!0;break}t&&jd()});s.observe(document.body,{childList:!0,subtree:!0}),Jr(document.body,"_autoDestoryMob",s)}function Fl(s,e){const t=y(s);t.find("[zui-create],[data-zui]").each(function(){var n;((n=e==null?void 0:e.beforeCreate)==null?void 0:n.call(e,this))!==!1&&cv(this,e)}),t.find("[zui-init]").each(function(){this.hasAttribute("z-zui-inited")||(this.setAttribute("z-zui-inited",""),y.runJS(this.getAttribute("zui-init"),["$element",y(this)]))}),t.find(".hide-before-init").removeClass("invisible hidden opacity-0"),t.find(".scroll-into-view").scrollIntoView(),t.find('[data-on="inited"],[zui-on-inited]').each((n,i)=>{const r=y(i);r.zui()||r.trigger("inited")}),e!=null&&e.runJS&&t.runJS()}y.fn.zuiInit=function(s){return Fl(this,s),this},y.fn.zui=function(s,e){const t=this[0];if(!t)return;if(typeof s!="string"){const i={};let r;return uv(t,(o,a)=>{i[a]=o,(!r||r.gid1?t[0]:void 0,i=t[t.length>1?1:0],r=y(this).zui(n),o=r==null?void 0:r[i];typeof o=="function"&&o.apply(r,e)}),this},y(()=>{y("body").zuiInit({update:!0}),hv(),dv()});class lo extends Ue{get $targets(){const{$element:e}=this,{targets:t}=this.options;return t?e.find(t):e}_handleScroll(e,t,n){const{offset:i=1}=this.options,r=this.$targets,o=e.getBoundingClientRect(),{scrollTop:a,scrollLeft:l}=e;r.each((c,u)=>{const h=u.getBoundingClientRect(),p=t==="top"&&a>0&&h.top<=o.top+i||t==="bottom"&&h.bottom>=o.bottom-i||t==="left"&&l>0&&h.left<=o.left+i||t==="right"&&l{this._raf&&cancelAnimationFrame(this._raf),this._raf=requestAnimationFrame(()=>{this._raf=0,this._handleScroll(l,t,i)})};this._scrollListener=c,l.addEventListener("scroll",c)}this._container=l,requestAnimationFrame(()=>{this._handleScroll(l,t,i)})}else this._ob=new IntersectionObserver(l=>{l.forEach(c=>{c.target.classList.toggle(i,c.intersectionRatiothis._ob.observe(c))}destroy(){var e;(e=this._ob)==null||e.disconnect(),this._container&&(this._container.removeEventListener("scroll",this._scrollListener),this._raf&&cancelAnimationFrame(this._raf))}}lo.NAME="Sticky";const Bs=24*60*60*1e3,We=s=>s===void 0?new Date:(s instanceof Date||(typeof s=="string"&&(s=s.trim(),/^\d+$/.test(s)&&(s=Number.parseInt(s,10))),typeof s=="number"&&s<1e10&&(s*=1e3),s=new Date(s)),s),Hd=(s,e,t="day")=>{if(typeof e=="string"){const n=Number.parseInt(e,10);t=e.replace(n.toString(),""),e=n}return s=new Date(We(s).getTime()),t==="month"?s.setMonth(s.getMonth()+e):t==="year"?s.setFullYear(s.getFullYear()+e):t==="week"?s.setDate(s.getDate()+e*7):t==="hour"?s.setHours(s.getHours()+e):t==="minute"?s.setMinutes(s.getMinutes()+e):t==="second"?s.setSeconds(s.getSeconds()+e):s.setDate(s.getDate()+e),s},Ln=(s,e=new Date)=>We(s).toDateString()===We(e).toDateString(),Ni=(s,e=new Date)=>We(s).getFullYear()===We(e).getFullYear(),jl=(s,e=new Date)=>(s=We(s),e=We(e),s.getFullYear()===e.getFullYear()&&s.getMonth()===e.getMonth()),fv=(s,e=new Date)=>{s=We(s),e=We(e);const t=1e3*60*60*24,n=Math.floor(s.getTime()/t),i=Math.floor(e.getTime()/t);return Math.floor((n+4)/7)===Math.floor((i+4)/7)},pv=(s,e)=>Ln(We(e),s),mv=(s,e)=>Ln(We(e).getTime()-Bs,s),gv=(s,e)=>Ln(We(e).getTime()+Bs,s),Hl=s=>s!=null&&!isNaN(We(s).getTime()),Je=(s,e="yyyy-MM-dd hh:mm",t="")=>{if(s=We(s),!Hl(s))return t;if(typeof e=="function")return e(s);const n={"M+":s.getMonth()+1,"d+":s.getDate(),"h+":s.getHours(),"H+":s.getHours()%12,"m+":s.getMinutes(),"s+":s.getSeconds(),"S+":s.getMilliseconds()};return/(y+)/i.test(e)&&(e.includes("[yyyy-]")&&(e=e.replace("[yyyy-]",Ni(s)?"":"yyyy-")),e=e.replace(RegExp.$1,`${s.getFullYear()}`.substring(4-RegExp.$1.length))),Object.keys(n).forEach(i=>{if(new RegExp(`(${i})`).test(e)){const r=`${n[i]}`;e=e.replace(RegExp.$1,RegExp.$1.length===1?r:`00${r}`.substring(r.length))}}),e},yv=(s,e,t)=>{const n={full:"yyyy-M-d",month:"M-d",day:"d",str:"{0} ~ {1}",...t},i=Je(s,Ni(s)?n.month:n.full);if(Ln(s,e))return i;const r=Je(e,Ni(s,e)?jl(s,e)?n.day:n.month:n.full);return n.str.replace("{0}",i).replace("{1}",r)};function Bl(s){let e=0;if(typeof s!="string"&&(s=String(s)),s&&s.length)for(let t=0;t{try{a.includes("%")&&(a=decodeURIComponent(a)),a=JSON.parse(a)}catch{}return[o,a]})),params:n.map(o=>{if(o!=="undefined"){if(o==="null")return null;try{return o.includes("%")&&(o=decodeURIComponent(o)),JSON.parse(o)}catch{return o}}})}}function Bd(s){if(Array.isArray(s))return{commands:s.map(co).filter(Boolean)};if(typeof s=="object")return s;s=s.replace(/^#!?/,"");const e=s.includes(">"),t=s.split(e?">":"|").map(co);return{async:e,commands:t.filter(Boolean)}}function Ul(s,e,t){if(typeof s=="string"&&(s=co(s)),!s)return;const{execute:n,event:i,scope:r}=e;if(!(r&&s.scope&&s.scope!==r))return n({name:s.name,options:{...e.options,...s.options},event:i,scope:s.scope,prevResult:t},s.params)}async function Ud(s,e){const{async:t,commands:n}=Bd(s);if(!n.length)return[];const{signal:i}=e;if(t){const o=[];let a;for(const l of n){if(!(i!=null&&i.aborted))break;a=await Ul(l,e,a),i!=null&&i.aborted&&(a=void 0),o.push(a)}return o}return await Promise.all(n.map(o=>{if(!(i!=null&&i.aborted))return Ul(o,e)}))}const Us="zui.commands",Ws="z-commands",Wl="zui-commands-proxy",Wd="zui-command",ho={};function Vd(s,e){typeof s=="string"&&e?ho[s]=e:typeof s=="object"&&Object.assign(ho,s)}function uo(s,e){typeof e=="string"?e={scope:e}:typeof e=="function"&&(e={onCommand:e});const{scope:t="",events:n="click"}=e??{},i=y(s),r=(i.attr(Ws)||"").split(",");t&&!r.includes(t)&&r.push(t),i.attr(Ws,r.join(",")).data(Us,{[t]:{...e,scope:t,events:n,gid:wt()},...i.data(Us)})}function fo(s,e=!0){const t=y(s);if(e===!0)t.removeAttr(Ws),t.removeData(Us);else if(e.length){const n=t.data(Us)||{};e.split(",").forEach(r=>{delete n[r]});const i=Object.keys(n);i.length?t.attr(Ws,i.join(",")).data(Us,uo):fo(t,!0)}}function Kd(s,e){let t=s.closest(`[${Ws}],[${Wl}]`).first();if(t.attr(Wl)!==void 0&&(t=y(t.data("zui.commandProxy")||t.attr(Wl)).closest(`[${Ws}]`)),!t.length)return;const n=t.data(Us)||{},i=Object.values(n).sort((o,a)=>a.gid-o.gid);let r;return e!=null&&e.length?(r=i.find(o=>o.scope===e),r||(r=i.find(o=>{var a;return!((a=o.scope)!=null&&a.length)&&!o.scoped})),r):(r=i.find(o=>{var a;return!((a=o.scope)!=null&&a.length)&&!o.scoped}),r||(r=i.find(o=>!o.scoped)),r?r.element=t[0]:r=Kd(s.parent(),e),r)}function vv(s){if(!s.currentTarget)return;const e=y(s.currentTarget);if(e.closest(".disabled,[disabled]").length)return;const t=e.attr(Wd)||(e.is('a[href^="#!"]')?e.attr("href"):"");if(!t)return;const n=new AbortController,i=()=>n.abort();Ud(t,{signal:n.signal,execute:(r,o)=>{const{scope:a,name:l}=r,c={...r,abort:i};let u;const h=Kd(e,a);if(h){c.element=h.element;const m=(h.commands?h.commands[`${a}~${l}`]||h.commands[l]:null)||h.onCommand;if(m&&(u=m(c,o),s.commandHandled))return u}const p=[c,o];if(e.trigger("command",p).trigger(`command:${a?`${l}.${a}`:l}`,p),a&&e.trigger(`command:.${a}`,p),s.commandHandled)return u;if(a==="event"){l==="stop"?s.stopPropagation():l==="prevent"?s.preventDefault():Mn(s,l,o);return}return a==="window"?Mn(window,l,o):a==="zui"?Mn(window.zui,l,o):a==="target"?Mn(e[0],l,o):a==="$target"?Mn(e,l,o):a==="$"?Mn(y,l,o):a===""&&ho[l]!==void 0?ho[l](c,o):u},event:s})}y.fn.command=function(s,e){return this.on(`command:${s}`,e)},y.fn.offCommand=function(s,e){return this.off(`command:${s}`,e)},y.fn.commands=function(s){return this.each((e,t)=>uo(t,s)),this},y.fn.unbindCommands=function(s){return this.each((e,t)=>fo(t,s)),this},y(()=>{y(document).on("click.zui.command",`[${Wd}],a[href^="#!"]`,vv)});function Ei(s,e,t=!1){var i;const n=y(s);if(e!==void 0){if(typeof e=="string"&&e.length){const r=`zui-runjs-${wt()}`;n.append(`